それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

kvm-qemu/virsh でクローンの作成

KVM/QEMU仮想マシンを別のマシンへコピーしたい

マイグレーションだと「移転・移動」してしまうので、「コピーして移動したい」

全体の流れ

という2段階でやろうと思う。

コピー/クローンの作成について

クローン作成コマンド

クローン作成には、virt-clone を使うと楽

virt-clone --original AdguardHome --name AdguardHome02 --auto-clone

virt-clone の準備

virt-clone コマンドは、virsh とは別のパッケージなため未導入の場合がある。

sudo apt install virtinst

未停止の場合

clone にはシャットダウンが要求されるためシャットダウンしておく

virsh shutdown xxx

シャットダウンしてないとエラーになる。

$ virt-clone --original AdguardHome --name AdguardHome02 --auto-clone
ERROR    Domain with devices to clone must be paused or shutoff.

clone 時の注意

クローンは、丸コピーとは違ってクローン作成です。同じものを「起動できる状態」にしてくれる

何を言ってるのかというと、MACアドレスは変わる。MACアドレスが変わるということは ubuntu など cloud-init でnetplanしているとMACが変わってIP割当が変わる。

コピーの確認

シャットダウン状態でコピーされるので、

virsh list --all 

または、virt-managerから

必要な時間

qcow2 などボリュームをコピーするので、SSDの書き込み速度とqcow2 の容量に依存する。8GB で5分程度かかった

できないこと

clone 時に、SSH経由でCloneができればよかったんだけど

一気呵成にできない。

virt-clone \
   --original qemu:///system/FromVM  \
   --name qemu+ssh://takuya@another/system/ToVM` 

のようなURI+パスで仮想マシン指定でができれば強かったんだけど。できないですね。

マイグレーション

移転の方法は、2つある。

今回は、rsync 移転にする。

手作業転送とライブマイグレーション

ライブマイグレーション機能はストレージを共有しているホスト間で仮想マシンを移動することが前提だったと思う。

ライブマイグレーションは、「ストレージを共有しているホスト間でメモリや書き込みを転送しつつ」うまい感じに起動したままホストを移動する機能なので、オフラインで転送するようなコピーには全く向かない。

設定を取り出して転送

dumpxml で取り出して ssh 経由でサクッと転送。

virsh dumpxml DomA | ssh srv02  dd of=DomA.xml

設定をロード

virsh define DomA.xml

XML ファイル名がドメイン名(仮想ゲスト名)になる。

ストレージを転送

ストレージを転送

rsync -avz --progress --partial DomA-clone.qcow2 takuya@srv02:~

起動する

最後に起動しして終了

ssh srv02 virsh start DomA