Xenを使う(Virshコマンド-ドメインをxmlファイルで管理)

仮想マシンマネージャで起動した状況と、/usr/sbin/xmで起動した場合で、仮想マシンの挙動が変わっていた件がわかってきた。詳しくは調べきれていないが、そもそも勘違いしていたようだ。

http://ja.wikipedia.org/wiki/Libvirt

  • virsh コマンドは、linux仮想マシンを操作する共通インタフェース(libvirtAPI)を使用していて、Libvirtでは、xen以外にも使えるように汎用的な構成になっている。
  • libvertの仮想マシン情報は、linuxのどこかに持っているが、隠蔽がされたとのこと。
  • メモ1
    • CentOSに付属している仮想マシンマネージャは、このvirshコマンドのフロントエンドになっているらしく、virshコマンドでの操作(作成、削除)は、数秒で反映される。
    • 従来の互換性のためか、仮想マシンマネージャのウィザードで、仮想マシンを作成したり削除したりする際には、hvmファイル(/etc/xen 配下)がセットで作成/削除される。
    • libvertの情報と、hvmファイル(/etc/xen 配下)は同期しているのか?
      • virshで仮想マシン情報を操作したとき、hvmファイルへの反映は?
        • 確かめてみた。メモリサイズを変更してみたところ、hvmファイルへ反映されました。
      • hvmファイル(/etc/xen 配下)を変更したときの、libvirt仮想マシン情報は?
        • 確かめてみた。メモリサイズを変更してみたところ、libvirtに反映されるようです。
    • ↑イコールなのでは?
  • メモ2
    • libvirtに登録した仮想マシンでないと、仮想マシンマネージャに出てこない(でも、起動中は出てくる)。
      • → 登録には、仮想マシンマネージャかvirsh経由での操作が必要。
    • 仮想マシンマネージャの登録はウィザードしかないので、複数のマシンに同じ操作をするのが面倒だし、ミスる元になる。
    • virsh コマンドでは、ファイルからのマシン登録が出来るが、xmlファイルからでないと作成出来ない。

【追記】
 virshコマンドでマシン情報のエクスポート、インポートをすると、現状では情報が欠ける部分がある(バグなのか?)。少なくとも、USB(usb,usbdevice)はdump時にxmlに含まれない。
 Virtlibで持っている管理情報は、XMLでエクスポートされるものが全てのようで、仮想マシンマネージャで起動するとき、USBの設定が無効になってしまうのは、この辺が原因のようだ。

  • マシン情報のバックアップは・・・

  xmlファイルとhvmファイルを両方とる。

  • マシン情報のリストアは・・・

 1.virshでxmlファイルからマシンを登録する。
 2./etc/xen ディレクトリにhvmファイルをリストアする。

※且つ、USB機器を利用する場合はvirtshで起動は行わず、/usr/sbin/xm 経由で起動する。

【/追記】

  • hvmファイルをvirsh のxmlファイルに変換する手順(うまくいかない場合もあります)

  (コマンド例)
  /usr/sbin/xm HVMファイル

  (コマンド例)
  virsh dumpxml ドメイン名 > ~/ドメイン名.xml 

hvmファイルを正として、xmlファイルでのマシン情報はバックアップ程度にした方がいいのかな。