Xenでハマる〜備忘録〜

内容:過去に稼動していたXenゲストが、起動(xm create)しようとするとエラーが出る。
エラー:Xen Error: destroyDevice() takes exactly 3 arguments (2 given)
発生環境:CentOS(5.2)、xen-3.0.3

  • 発生に至る経緯
    • 過去にXenを使ったテスト環境を当時最新の安定バージョンであるCentOS5.0上に作成してあった。
    • この環境はしばらく利用されていなかった。(ゲストOSは停止状態)
    • ある日テスト用の仮想環境が欲しくなったので、このゲストOSを立ち上げてみた。(この時点では問題なく起動)
    • CentOSはすでに安定版5.2が出ていたので、ホストOS、ゲストOSともに yum update を実施。(今にして思えば、テスト環境とはいえかなり無謀だった)
    • この時点でCentOS5.2、xen-3.0.3にバージョンアップ。updateが終わった時点でマシンをシャットダウンして帰宅。
    • 翌日、ホストマシンを立ち上げ、ゲストOSを立ち上げ(xm create)ようとしたら、上記のエラーが出て起動不能。途方に暮れかける。
  • 解決に向けてのアプローチ
    • エラーの内容を理解しようとするが、どう考えても「コーディングミスか?」と思ってしまうほどのエラーメッセージ。無論コーディングなどしていない。
    • yum updateが間接的な原因であろう事は状況的に理解できるが、後の祭り。戻せるわけも無い。
    • ググる。エラーメッセージそのままで。まずは日本語サイト。
    • いくつかの情報を見つけるものの、私のケースとマッチしているとは思えず。

http://www.grandarbre.net/2007/11/xen-2.html
Xenが使用するNICを変更する - Lism.in * blog - nekoya (id:studio-m)

    • ググる。エラーメッセージそのままで。あきらめて英語サイト。
    • 山ほど出てくる。同じ悩みを持った方々が、世界中にいることにちょっと安心。やはり英語の壁をクリアすれば、情報爆発の恩恵(ちょっとおかしい)に与れる。
    • よさそうな情報を発見。2パターン試してみる。

http://www.centos.org/modules/newbb/viewtopic.php?topic_id=10517

  • 結果
    • パターン1:うまくいった!さくっと立ち上がりました。
    • パターン2:これまたうまくいった!さくっと立ち上がりました。
    • とりあえず、1のパターンで行こうかなっと。スクリプト書き換えるってのも強引過ぎるし。
  • これから
    • ちなみにいくつかの情報によると、どうやらRedHatRPMに対するバグらしい。(RedHatの中の人がコメントしてた)
    • ただし、バグではあるものの、あくまでも不適切なメッセージ等ということで、根本的な問題は、環境側にあるらしい。つまり私のほうに。
    • 根本原因を特定して、内容を理解したいものです。

長くなりましたが、こんなところ。
同じ障害で悩んでいる人の力になりますように。(あくまでも暫定的対処ではありますが・・・)