これは内部的に、以下のような流れのためだろう。
- gemini 上の leo を一時停止
- leo のメモリ空間に内容を cancer 上にコピー
- gemini 上の leo の定義を、cancer 上にコピー
- cancer 上で、leo の一時停止を解除(再開)
- gemini 上の leo の定義を削除。(共有しているため、cancer 上も削除される。ただし、cancer の libvirt の内部情報としては持っている状態)
他に方法は無いか?ということで、virt-manager を使用した移行処理の時、「一時的に移動」というオプションがあることに気付いた。
もしかしてコレじゃないか?ということで、今回試してみようと思う。
leo が停止していたら、起動しておこう。( gemini 上で起動しておく。)
leo の起動が確認できたら、前回までと同様、cancer へ移行を行う。
但し、以下の画面で「一時的に移動」をチェックしておく。
「一時的に移動」にチェックを入れる |
結果、どうなっただろうか?
どうやら、見た目上はすんなり移動したようだ。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 の再起動して何か変化があるか?(あるはず無いのだが…)
(leo) $ sudo systemctl reboot
(gemini) $ virsh list --all
(cancer) $ virsh list --all
変化なし。
じゃぁこの状態で gemini を再起動すると?
(gemini) $ sudo systemctl reboot
(gemini) $ virsh list --all
(cancer) $ virsh list --all
変化なし。
virt-manager を使って、leo を gemini に戻して(「一時的に移動」して)みても…。
問題なしだ。
「一時的に移動」というオプションフラグは、仮想マシン定義ファイルの移動処理は行わず、libvirt が内部で抱えている仮想マシン情報のみを移動させる、ということか。
これは使えるな。というか、狙っていた挙動そのものだ。
今後、こちら(「一時的に移動」オプションをOn」を使うようにしよう。
0 件のコメント:
コメントを投稿