Virt-manager/libvirt/KVMで少し迷っています。
私はうまく機能しているKVM VM(Windows XP))はうまく動作します。
VMは4GBファイル程度(a。img)でサポートされています)。
次に、非常に単純なことを行います。VMを複製します。
「OK、問題ありません。4GBファイルをコピーしてXMLをコピーしましょう」ファイルだと思いました。
ただし、libvirt FAQはすべて大文字で表記します: "XMLの場所を気にしないでくださいIS STORED"
大丈夫、気にしないでください。しかし、どうすればVMを複製できますか?
そのVMのコピーである新しいVM=を作成したい。
virsh
を使用すると、サーバーのXML定義を編集、エクスポート、およびインポートできます。私は使うだろう virt-clone
クローン画像ファイルを生成し、XMLをエクスポートします。安全のために、元のサーバーからクローン構成を削除します。
最も便利なのは単純です:
# virt-clone --connect=qemu://example.com/system -o this-vm -n that-vm --auto-clone
これにより、this-vm
という名前のthat-vm
のコピーが作成され、ストレージデバイスの複製が処理されます。詳細を除いて、ここでは新しいことは何もありません。
要点は、FAQが言っていることは、XMLドメインの説明は直接編集できないということです。through libvirtにアクセスする必要があります。 virt-clone
コマンドを使用すると、次のことができます。
source_vm=vm_name
new_vm=new_vm_name
# You cannot "clone" a running vm, stop it. suspend and destroy
# are also valid options for less graceful cloning
virsh shutdown "$source_vm"
# copy the storage.
cp /var/lib/libvirt/images/{"$source_vm","$new_vm"}.img
# dump the xml for the original
virsh dumpxml "$source_vm" > "/tmp/$new_vm.xml"
# hardware addresses need to be removed, libvirt will assign
# new addresses automatically
sed -i /uuid/d "/tmp/$new_vm.xml"
sed -i '/mac address/d' "/tmp/$new_vm.xml"
# and actually rename the vm: (this also updates the storage path)
sed -i "s/$source_vm/$new_vm" "/tmp/$new_vm.xml"
# finally, create the new vm
virsh define "/tmp/$new_vm.xml"
virsh start "$source_vm"
virsh start "$new_vm"
「virt-clone」以外は、VMこのように複製できます:
どうやらvirt-cloneが最適です。
XMLを複製してみましたが、virt-managerの下には表示されません。
XML + .imgを次のような新しいシステムに転送するにはどうすればよいのでしょうか...
次のコマンドが機能しました(コマンドを実行する前にVSA/Vmをシャットダウンする必要があります)
# virt-clone --connect=qemu:///system -o present_vsa/vm_name -n vsa/vm_to_be_cloned_name --auto-clone
virt-clone --auto-cloneはLVMでうまく機能していないようです。スナップショットを作成してそれを使用することを期待していましたが、代わりにすべてのデータをコピーします。
Dumpxml/defineルートを実行することをお勧めします。元のクローンを開始する前に、クローンのルートファイルシステムをマウントし、IPアドレスとホスト名を適切に変更することを忘れないでください。