2017年5月6日土曜日

仮想ディスク領域が共有されている状態でのライブマイグレーション

さて、多分これで、gemini 上で動いている leo を、稼働させたまま cancer へ移すことが出来るのではないか?
これを行うためには、gemini / cancer に接続可能なマシン上で virt-manager を動かすのが都合がいい。
やり方としては
  1. gemini 上で virt-manager を起動し、cancer への追加接続する
  2. cancer 上で virt-manager を起動し、gemini への追加接続する
  3. sagittarius 上で virt-manager を起動し、gemini / cancer 両ノードへ追加接続する
等が考えられる。

今回は3番目を試してみることにする。

まずは、sagittarius 上で virt-manager を起動しよう。
(sagittarius) $ virt-manager
起動したら、メニューバーの「ファイル」から「接続を追加」だ。

出てきたダイアログを、以下の図のように設定。
ユーザー名は、gemini 上のOSアカウント名だ。
また、ホスト名は gemini の IPアドレスを入れよう。

接続ボタンを押すと、すぐには反応が無いはず。
この場合、 gemini に接続している teraterm を見てみよう。
「エージェント転送要求を受け入れますか?」というダイアログが出てきていたら、「はい」と答えよう。

無事に gemini への接続が行われ、leo が稼働しているのが分かるはずだ。

同じ手順で、 cancer にも接続しておこう。

もし、一連の作業が上手く行かなかったら、sagittarius から gemini / cancer へ ssh 接続してみよう。今回の設定は、ssh を使って接続しているので、そもそも ssh が利用できなかったら接続できない。
また、「エージェント転送を受け入れますか?」に関しては、 teraterm の設定で無条件に受け入れるようにすることも可能だ。セキュリティ的にどうかと思うが、面倒くさかったら自動受け入れにしてもいいだろう。teraterm.ini の ForwardAgentConfirm というパラメータだと思う。

ちなみにこの先、ちょっとオペレーションするたびに、「エージェント転送を受け入れますか?」と聞かれる。マジで鬱陶しい。teraterm.ini を書き換えたら、teraterm を再起動する必要があるので要注意だ。

さて、実際にライブマイグレーションする前に、状況を確認しておこう。
本当に稼働中かどうかを確認するために、leo へログインしておく。

gemini / cancer の仮想マシン状態をチェックしておこう。
(gemini) $ ls -l /etc/libvirt/qemu
(cancer) $ ls -l /etc/libvirt/qemu
(gemini) $ virsh list --all
(cancer) $ virsh list --all

また、gemini / cancer 両ノードから、 leo へ ping を打ち続けておこう。
(gemini) $ ping 192.168.55.138
(cancer) $ ping 192.168.55.138

先程起動した virt-manager の gemini の中にある leo を右クリック、表示されたコンテキストメニューから「移行」を選択だ。

出てきたダイアログに対し、「移行先のホスト」は cancer の接続設定を、モードは「ダイレクト」と「トンネル」があるが、今回は「ダイレクト」を選んでみた。「トンネル」では、条件が整わずに実行エラーになった。こちらは別途調査。移行先のアドレスは、まだ名前解決が出来ないので、cancer の IP アドレスを直接入力。

これで「マイグレーション」を押すと…
(例によって「エージェント転送を許可しますか?」と聞かれるので「はい」だ)

少し(10秒程度?)で、移行が完了したことが分かる。
(先程まで gemini にあった leo が、cancer の方に移動していることが分かる。)

ping も途切れていないし、leo へログインしていたセッションも切れていないはずだ。

では、gemini / cancer の状態を確認。
(gemini) $ ls -l /etc/libvirt/qemu
(cancer) $ ls -l /etc/libvirt/qemu
(gemini) $ virsh list --all
(cancer) $ virsh list --all

gemini から leo の定義ファイル(/etc/libvirt/qemu/leo.xml)が消えて、cancer に移っているのが確認でき、更に leo が cancer 側で動いているのが確認できる。

ライブマイグレーションはこのように実施できるのが確認できた。
cancer 上で leo の起動停止も出来るはずだ。
合わせて確認してみて欲しい。

次は、/etc/libvirt まで共有化し、その上でライブマイグレーションが可能かどうか?を確認したい。
それに備えて、先程の手順と同様に、leo を gemini に戻し、leo を停止させておこう。
(leo を停止してから移動、つまりオフラインマイグレーションはこの手順では出来ないようだ。)

今回はココまで。

0 件のコメント:

コメントを投稿