ドメインのマイグレーション2009/04/20 |
複数のホスト間でドメイン ( ゲストOS ) の移行が簡単に行えるマイグレーション機能を使ってみます。
前節で作成したイメージファイルのゲストOSをマイグレーションしてみます。
ホストの負荷が高くなっている場合、負荷の低いホストへ退避させるといった用途向きでしょうか。
退避させた後、ゆっくりメンテナンスをするといったこともできますね。 ということで、これには最低でも2台のホストが必要になります。3台あれば、1台をドメインデータを格納する専用NFSサーバ、 残りの2台をプライマリホストとセカンダリホストとして、可用性のあるシステムを構築できますが、 さすがに3台はきついので、以下は2台での例です。 事前準備として2台目のマシンに1台目のマシンの環境と同じものを用意します。 さらに、すでにある1台目のホスト(ここの例では 192.168.0.17)でNFSサーバーを稼動させておき、 2台目のホスト(ここの例では 192.168.0.105)でゲストOSのイメージファイルが入っている ディレクトリをマウントできるようにしておきます。 構築方法はNFSサーバーの項を参照ください。 |
|
[1] | 1台目のホストでの作業 |
[root@ns ~]# vi /etc/exports /home 192.168.0.0/24(rw,sync,no_root_squash) # 以下を追記 /var/xen 192.168.0.0/24(rw,sync,no_root_squash) [root@ns ~]# /etc/rc.d/init.d/nfs restart Shutting down NFS mountd: [ OK ] Shutting down NFS daemon: [ OK ] Shutting down NFS quotas: [ OK ] Shutting down NFS services: [ OK ] Starting nfs services: [ OK ] Starting nfs quotas: [ OK ] Starting nfs daemon: [ OK ] Starting nfs mountd: [ OK ] [root@ns ~]# vi /etc/xen/xend-config.sxp # 21行目:行頭の#を削除しyesに変更 (xend-relocation-server yes )# 33行目:行頭の#を削除 (xend-relocation-port 8002) # 58行目:行頭の#を削除 (xend-relocation-hosts-allow '') # 59行目:コメント化 # (xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')[root@ns ~]# /etc/rc.d/init.d/xend restart restart xend: [ OK ] |
[2] | 2台目のホストでの作業 |
[root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host2 0 510 2 r----- 12.6 [root@ns ~]# mkdir /var/xen [root@ns ~]# mount -t nfs 192.168.0.17:/var/xen /var/xen [root@ns ~]# vi /etc/xen/xend-config.sxp # 21行目:行頭の#を削除しyesに変更 (xend-relocation-server yes )# 33行目:行頭の#を削除 (xend-relocation-port 8002) # 58行目:行頭の#を削除 (xend-relocation-hosts-allow '') # 59行目:コメント化 # (xend-relocation-hosts-allow '^localhost$ ^localhost\\.localdomain$')[root@ns ~]# /etc/rc.d/init.d/xend restart restart xend: [ OK ] |
[3] | 再び1台目に戻ってゲストOS 'rx7' のマイグレーションを実行 |
[root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host 0 510 2 r----- 34.6 lan 3 511 2 r----- 10.8 rx7 4 511 2 r----- 13.9 mail 2 511 2 r----- 19.4 www 1 511 2 r----- 12.3 [root@ns ~]# xm migrate rx7 192.168.0.105 # マイグレーション [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host 0 510 2 r----- 34.6 lan 3 511 2 r----- 10.8 mail 2 511 2 r----- 19.4 www 1 511 2 r----- 12.3 # 以上のようにrx7はいなくなりました
|
[4] | 2台目にいってゲストOS 'rx7' が来てるか確認してみます。 |
[root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host2 0 510 2 r----- 34.6 rx7 2 511 2 r----- 0.1 # 以上のようにrx7がしっかりときています
|
マイグレーション自体は成功しましたが、コンソールを rx7 に切り替えてみると、 以下のようなエラーメッセージが出ていました。どうやらCPUが違うのでダメなようです。 ログインして一応動作させることはできますが、なんか気持ちわるいのでもうしません。 どうやらこれをやるには2台のホスト間でCPUまでも合わせる必要があるようです。 ということで、rx7には再び元のところへ戻ってもらいます。 |
BUG: soft lockup detected on CPU#1! [<c043ea7f>] softlockup_tick+0x98/0xa6 [<c0408b7d>] timer_interrupt+0x504/0x557 [<c043ecb3>] handle_IRQ_event+0x27/0x51 [<c043ed70>] __do_IRQ+0x93/0xe8 [<c040672b>] do_IRQ+0x93/0xae [<c053a095>] evtchn_do_upcall+0x64/0x9b [<c0404ec5>] hypervisor_callback+0x3d/0x48 [<c0407fd1>] raw_safe_halt+0x8c/0xaf [<c0402bca>] xen_idle+0x22/0x2e [<c0402ce9>] cpu_idle+0x91/0xab ======================= [root@ns ~]# xm migrate rx7 192.168.0.17 [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host2 0 510 2 r----- 36.3 |
[5] | 上記のマイグレーションは移動する過程でドメインの停止があるため、ネットワークコネクションも切断されてしまいます。 これを回避するために「ライブマイグレーション」というものがあります。こちらは無停止で行えます。 例えば、あるユーザーがあるゲストOSにあるクライアントからSSH接続をして作業していた場合でも、 ライブマイグレーションでは、相手はゲストOSが移動していることは分からないでしょう。とても便利です。 実行は「--live」オプションをつけるだけです。ということで、通常はこちらを使うことになるでしょう。 |
//////////// 1台目側 //////////// [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host 0 510 2 r----- 34.6 lan 3 511 2 r----- 10.8 rx7 4 511 2 r----- 13.9 mail 2 511 2 r----- 19.4 www 1 511 2 r----- 12.3 [root@ns ~]# xm migrate --live rx7 192.168.0.105 [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host 0 510 2 r----- 34.6 lan 3 511 2 r----- 10.8 mail 2 511 2 r----- 19.4 www 1 511 2 r----- 12.3 //////////// 2台目側 //////////// [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host2 0 510 2 r----- 34.6 rx7 2 511 2 r----- 0.1 [root@ns ~]# xm migrate --live rx7 192.168.0.17 [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host2 0 510 2 r----- 51.6 //////////// 1台目側 //////////// [root@ns ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Host 0 510 2 r----- 34.6 lan 3 511 2 r----- 10.8 rx7 4 511 2 r----- 13.9 mail 2 511 2 r----- 19.4 www 1 511 2 r----- 12.3 |
Sponsored Link |
|