virt-cloneコマンドでKVM上のVMをらくらくクローニング
KVM上でたくさんVMを使って検証したいなぁ〜なんてときは
必要な台数VMをイチイチ生成してインストールするのがメンドクサイ。
同じVMを生成するのであれば、virt-cloneで簡単にクローン生成する事が出来る。
使い方
# virt-clone --help usage: virt-clone [options] options: -h, --help show this help message and exit --connect=CONNECT URI でハイパーバイザーに接続 General Options: -o ORIGINAL_GUEST, --original=ORIGINAL_GUEST Name of the original guest; The status must be shut off or paused. --original-xml=ORIGINAL_XML XML file to use as the original guest. -n NEW_NAME, --name=NEW_NAME 新しいゲストの名前 -u NEW_UUID, --uuid=NEW_UUID クローンゲストの新しい uuid: 省略値はランダムに生成された UUID です Storage Configuration: -f NEW_DISKFILE, --file=NEW_DISKFILE ディスクイメージとして使用される、新 ゲスト用の新ファイル --force-copy=TARGET 装置のコピーを強制する (例えば 'hdc' が読込みのみの cdrom 装置なら、--force- copy=hdc) --nonsparse クローニングのディスクイメージに疎ら なファイルを使用しないでください --preserve-data 新ファイルを新ゲスト用のディスクイメ ージとして使用するよう保存する Networking Configuration: -m NEW_MAC, --mac=NEW_MAC クローンゲスト用の固定 MAC アドレス。・ 略値はランダムに生成されます Miscellaneous Options: -d, --debug デバッグ情報を印刷 --prompt Request user input for ambiguous situations or required options. --force Do not prompt for input. Answers yes where applicable, terminates for all other prompts
こんな感じでコマンド実行すれば簡単にクローンを生成出来る
(あ、きちんと確認してないけどクローニングの時にはクローン元は止めておいた方がよさげ)
# virsh list --all Id Name State ---------------------------------- - vm-host1 shut off # virt-clone --original=vm-host1 --name=vm-host2 --file=/dev/sda6 --prompt Cloning /dev/sda5 | 5.6 GB 01:44 Clone 'vm-host3' created successfully. # virsh list --all Id Name State ---------------------------------- - vm-host1 shut off - vm-host2 shut off
このコマンドの便利な所はUUIDとMACアドレスを
自動的に生成してくれてるからラクチン(`・ω・´)
# diff /etc/libvirt/qemu/vm-host[12].xml 2,3c2,3 < <name>vm-host1</name> < <uuid>442ca70c-6188-1566-3394-1e72501dff71</uuid> --- > <name>vm-host2</name> > <uuid>f11ee30c-6386-0630-92f0-52a24c9af4a6</uuid> 26c26 < <source dev='/dev/sda5'/> --- > <source dev='/dev/sda6'/> 30c30 < <mac address='54:52:00:70:8a:7f'/> --- > <mac address='00:16:36:62:af:34'/>
あとは、一台ずつ起動してIPアドレスやらホスト名やらを修正してあげればOK(≧∇≦)b