qemu-kvm Live Migration on Fedora10

前提条件

  • qemu-kvmコマンドのバージョンアップ

Fedora10 のインストール時に「仮想化」のパッケージを選択するとインストールされる qemu-kvm コマンドはバージョンが0.9.1で、
Live Migrationに必要な「-incoming」オプションをつけると

(qemu) Migration failed rc=201

となって無条件にLive Migrationが失敗してしまう(ように見えた)ので
qemu-kvmを0.10.5へバージョンアップする。
手順は上に書いた。
その他のパッケージはFedora10のデフォルトのまま。
KVMのバージョンはqemu-kvmによると(kvm-74)だそうな。

  • qemu-kvmが動作するマシンを2つ用意し、同一Networkセグメントに配置。

今回は

    • hostA: 192.168.0.1
    • hostB: 192.168.0.2

で行った。

  • Live Migration 元とLive Migration先の両方からアクセスできるストレージに仮想マシン(VM)のイメージを置く。

今回はNFSにおいたFedora10.imgを用いた。

Live Migration作業

  • hostAでVMを起動
/usr/local/bin/qemu-system_x86_64 -m 1024 -hda Fedora10.img -boot c -monitor stdio
  • hostBでLive Migrationの待ち受け準備
/usr/local/bin/qemu-system_x86_64 -m 1024 -hda Fedora10.img -boot c -monitor stdio -incoming tcp:0:4444

tcp:0:4444の0はアドレス(0.0.0.0)の省略。4444ポートでhostAからのコネクションを待ち受ける

  • hostAでLive Migrationに用いるNetwork帯域を設定
(qemu) migrate_set_speed 1g

どうやらこれで1GB/sまでの帯域を許可している?

  • hostAでLive Migration実行
(qemu) migrate -d tcp:192.168.0.2:4444

Migrationの状態の確認

(qemu) info migrate
Migration status: active

activeと出れば実行中。

失敗すると

(qemu) info migrate
Migration status: failed

完了すると

(qemu) info migrate
Migration status: completed

と出る。

Migration完了後はhostAのSDLウィンドウのタイトルが「QEMU」から「QEMU(Stopped)」へ変わる。
このウィンドウ(=qemu-kvmプロセス)は不要なので終了。
hostBでは逆で「QEMU(Stopped)」だったタイトルが「QEMU」へ変わり、
VMの画面が表示されるようになる。