前回までで、virt-manager を使ったオンラインマイグレーションが実施できた。
で、全然気付かなかったけど、virsh にもマイグレーションのオプションがあった。
ヘルプを見てみよう。(今回はヘルプの中身も引用しておく。)
(sagittarius) $ virsh help migrate
名前
migrate - ドメインの他ホストへのマイグレーション
形式
migrate <domain> <desturi> [--live] [--offline] [--p2p] [--direct] [--tunnelled] [--persistent] [--undefinesource] [--suspend] [--copy-storage-all] [--copy-storage-inc] [--change-protection] [--unsafe] [--verbose] [--compressed] [--auto-converge] [--rdma-pin-all] [--abort-on-error] [--migrateuri <string>] [--graphicsuri <string>] [--listen-address <string>] [--dname <string>] [--timeout <number>] [--xml <string>] [--migrate-disks <string>]
詳細
ドメインを他のホストにマイグレーションします。ライブマイグレーションは --live を付加します。
オプション
[--domain] <string> ドメインの名前、ID または UUID
[--desturi] <string> クライアント(通常のマイグレーション)またはソース(p2p マイグレーション)から見える宛先ホストの接続 URI
--live ライブマイグレーション
--offline オフラインマイグレーション
--p2p ピアツーピア・マイグレーション
--direct ダイレクト・マイグレーション
--tunnelled トンネル・マイグレーション
--persistent 宛先における仮想マシンの永続化
--undefinesource ソースから VM の登録解除
--suspend 宛先ホストにおいてドメインを再開しません
--copy-storage-all 完全なディスクコピーとともに非共有のストレージを用いたマイグレーション
--copy-storage-inc 増分コピーとともに非共有のストレージを用いたマイグレーション(ソースと宛先の間で同じベースイメージを共有します)
--change-protection ドメインへのあらゆる設定変更をマイグレーションが終わる まで防ぎます
--unsafe 安全ではないときにも強制的にマイグレーションする
--verbose マイグレーションの進行状況の表示
--compressed ライブマイグレーション中の連続ページの圧縮
--auto-converge force convergence during live migration
--rdma-pin-all support memory pinning during RDMA live migration
--abort-on-error 移行中にソフトなエラーが発生した場合は中止する
--migrateuri <string> マイグレーション URI(通常は省略可)
--graphicsuri <string> シームレス・グラフィック・マイグレーションのために使用するグラフィック URI
--listen-address <string> listen address that destination should bind to for incoming migration
--dname <string> マイグレーション中に名前の変更(サポートされる場合)
--timeout <number> ライブマイグレーションがタイムアウトするとゲストを強制的に一時停止する(秒単位)
--xml <string> ターゲットの更新した XML を含むファイル名
--migrate-disks <string> comma separated list of disks to be migrated
これを見ると、「一時的な移動」は --parsistent オプションと関係ありそうだ。(恐らく、--parsistent をつけない場合が、「一時的な移動」だろう。)
--undefinesource は、転送元から仮想マシン定義を削除する、ということかな?
オプションを見てみると、virt-manager では出来無さそうだった「ディスクが共有されていない環境でのマイグレーション」も出来そうだ。
何パターンも実装方法がありそうだが、とりあえずは今までやってた「共有環境でのオンラインマイグレーション」を考えてみる。
gemini で動いている leo を、cancer に移動するパターンは以下のようだ。
migrate --live \
--domain leo \
--desturi qemu+ssh://(cancerのIPアドレス)/system \
--migrateuri tcp://(cancerのIPアドレス)/
(cancer のホスト名 cancer が名前解決出来るのなら、恐らく --migrateuri は不要だ。その場合、--desturi も IPアドレスじゃなく、ホスト名指定になるはず。)
これは、from のホストが指定されていないため、gemini 上で実行する必要があると思う。
実際に試してみよう。
(cancer) $ virsh list --all
(gemini) $ virsh list --all
(gemini) $ virsh migrate --live \
--domain leo \
--desturi qemu+ssh://192.168.55.137/system \
--migrateuri tcp://192.168.55.137/
(gemini) $ virsh list --all
(cancer) $ virsh list --all
どうやら上手く行ったようだ。
これを、逆方向(cancer から gemini に)に動かすためには、cancer 上で実行する必要がある。
(cancer) $ virsh migrate --live \
--domain leo \
--desturi qemu+ssh://192.168.55.136/system \
--migrateuri tcp://192.168.55.136/
これで戻せるはずだ。
(実行ホストに注意)
また、別のホスト (sagittarius) から同じように gemini→cancer や cancer→ gemini にマイグレーションするには、virsh に -c オプションを追加すればいい。
例
(sagittarius) $ virsh -c qemu+ssh://192.168.55.136/system \
migrate --live \
--domain leo \
--desturi qemu+ssh://192.168.55.137/system \
--migrateuri tcp://192.168.55.137/
(sagittarius) $ virsh -c qemu+ssh://192.168.55.137/system \
migrate --live \
--domain leo \
--desturi qemu+ssh://192.168.55.136/system \
--migrateuri tcp://192.168.55.136/
また、コチラ(外部サイト)を見ると、Xen / VMware / QEMU / VirtualBox は、通常のオプションで移動出来るようだ。
--p2p は QEMU、--tunnelled も QEMU、--direct は Xen のハイパーバイザで対応しているようだ。
とりあえず、コマンドでのマイグレーションも実現できたので、これで目的は達成。
ディスクが共有されていない環境でのマイグレーション(VMware製品だと、Storage vMothion に相当するかな?)は、ドコか別のタイミングで必要に応じて検証することにする。
これで、ココで書いた予定の1つ目はクリア。
2つ目の「dlm/corosync のフェンシング」について、詳細確認することにしよう。
多分かなり時間がかかると思う。
0 件のコメント:
コメントを投稿