ログ日記

作業ログと日記とメモ

Xenライブマイグレーション失敗の原因を探るログ

http://d.hatena.ne.jp/n314/20130226/1361901155
Xenのライブマイグレーションのエラー原因探索編。


もう一度データセンター側にプライマリ&セカンダリ指定してインスタンスを作り、マイグレーションを往復してみたけれどエラーは起きなかった。
なんか深みにハマっている。


メーリングリストを見つけた。
つまみ読み。
別にマイグレーションとは関係なさそうだけれども。

I just tried d-i 6beta1 and booted Squeeeze and its 2.6.32 kernel for
the first time on my usual server hardware (Dell R410).

(snip)

It seems very prone to crashing at any APIC/ACPI bugs, of
which there seem to be quite a bit of in both Dell and IBM.

http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=603632

DellIBMでクラッシュ報告がよくある?


今回失敗したのもDell R410だねぇ…。
このスレの内容は直接は関係なさそうだが、軽く調べた程度では原因は特定できなさそうってことと、アップデートで直ってる可能性があるってことが予想できる。


古いから関係ないけど
http://xen.1045712.n5.nabble.com/DomU-crashes-after-live-migration-td3238441.html
lennyのxenカーネルはバグだらけ?


カーネルバージョンの詳細を調べる。

# ls /var/cache/apt/archives/linux-image-2.6.32-5*
/var/cache/apt/archives/linux-image-2.6.32-5-xen-amd64_2.6.32-34squeeze1_amd64.deb

なんか32-34ってのが古い気がする。最近入れた方は48だったような…。


コマンドを調べてみると、apt-cache showを使うらしい。aptitudeでもあるような気がするが

# apt-cache show linux-image-2.6.32-5-xen-amd64 |grep Version
Version: 2.6.32-48
Version: 2.6.32-48squeeze1
Version: 2.6.32-34squeeze1


ちょっと近づいた気がする。
データセンター側のカーネルは最近入れたから 2.6.32-48 だ。移動の方向ではなくてdomUを起動するノードのカーネルバージョンが関係している可能性が高くなってきた。
起動しているカーネルバージョン詳細ってどうやって見るんだろう。unameだと2.6.32-5としか出ない。

gnt-cluster command "apt-cache show linux-image-2.6.32-5-xen-amd64 |grep Version"

# 各ノードで
ls /var/cache/apt/archives/linux-image-*
  1. 一番古いカーネルを持っているノードを探す。
  2. そこにテスト用インスタンスを移す。
  3. その古いカーネルdomU起動
  4. マイグレーション


再現しない…。
ある程度CPUが動いていないとダメなのかもしれないので、社内サーバーマイグレーションで往復してみる。


  1. 2.6.32-48で起動中
  2. migration往復
    • エラーなし
  3. migrationでカーネルが古いノードに移動
  4. poweroff => インスタンス起動 (2.6.32-35)
  5. migration往復

カーネルパニック再現した!


念のため2.6.32-48でマイグレーションを2往復してマイグレーション中に書き込み処理などをやってみたがエラーなし。
希望的な推測をすると、2.6.32-35から2.6.32-48の間のバグ修正で今回の事例が入っていたという可能性が高くなった。
これで解決?



結局、今回の環境では移動自体は無停止で出来そうだがカーネルアップデートのために一度は再起動しないといけない。