KVM/libvirt/virt-manager 仮想マシンのコピーを作成するには?

KVM/libvirt/virt-manager 仮想マシンのコピーを作成するには?

virt-manager/libvirt/KVMで若干の損失が発生しました。

KVM仮想マシン(Windows XP)が正しく実行されています。

仮想マシンは約4GBのファイル(.img)。

今私は非常に簡単なタスクを実行したいと思います。仮想マシンのコピーを作成したいと思います。

私の考えでは「わかりました。4GBファイルをコピーしてXMLをコピーしましょう。」文書。

しかし、libvirt FAQはすべて大文字になっています。「XMLがどこに保存されているか気にしないでください。」

libvirt FAQ

まあ、私は気にしません。しかし、仮想マシンをどのように複製しますか?

この仮想マシンのコピーである新しい仮想マシンを作成したいと思います。

ベストアンサー1

最も便利な方法は次のとおりです。

# virt-clone --connect=qemu://example.com/system -o this-vm -n that-vm --auto-clone

コピーを作成し、this-vm名前を付け、that-vmストレージデバイスのコピーを担当します。詳細に加えて、ここに新しいものはありません。

さらに重要なことは、よくある質問でXMLフィールドの説明を直接編集できないことです。渡す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 image.
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"

おすすめ記事