Bir VM'yi KVM + libvirt'te nasıl yeniden adlandırabilirim?
Depodaki ismi değiştirmenin yanı sıra 'envanterdeki' adını değiştirmesini istiyorum.
Bir VM'yi KVM + libvirt'te nasıl yeniden adlandırabilirim?
Depodaki ismi değiştirmenin yanı sıra 'envanterdeki' adını değiştirmesini istiyorum.
Yanıtlar:
koşmak
virsh dumpxml name_of_vm > name_of_vm.xml
Yinelenen bir UUID nedeniyle bir hatayı önlemek için eski vm'yi tanımlayın.
virsh undefine name-of-vm
Xml dosyasını düzenleyin ve ardından içe aktarın.
virsh define name_of_vm.xml
Elbette değişikliklerin etkili olması için vm'yi durdurmanız ve başlatmanız gerekecek
virsh destroy name_of_vm
virsh start name_of_vm
virsh dumpxml myvm > foo.xml
<edit foo.xml, change the name, move storage>
virsh undefine myvm
virsh define foo.xml
Kaynak: https://www.redhat.com/archives/libvirt-users/2010- Ekim / msg00072.html
virsh
domrename
1.2.19: 02.02.2015 tarihli sürümde uygulanmıştır .
virsh domrename oldname newname
Beklediğiniz gibi etki alanı durdurulmalı, ancak aynı zamanda herhangi bir anlık görüntü bulunamıyor.
virsh edit newname
dosya yolunu değiştirebilir ve mv oldname newname
her şeyi eşleştirmek istiyorsanız dizini yeniden adlandırabilirsiniz.
Birçok makineyi değiştirmek için bunu kullanabilirsiniz:
virsh shutdown old-name
Bitirmek ve çalıştırmak için yukarıdaki bekleyin:
virsh dumpxml old-name > old-name.xml
virsh undefine old-name
Bitirmek ve çalıştırmak için yukarıdaki bekleyin:
sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml
Her makine için bunu birer birer çalıştırın. Aşağıdakileri içeren bir listeniz varsa, bu RegExp'i kullanabilirsiniz old-name new-name
:
([^\r\n]+?)[ \t]+([^\r\n]+)
virsh shutdown $1\n#WAIT!\nvirsh dumpxml $1 > $1.xml\nvirsh undefine $1\n\#WAIT!\nsed -i 's/<name>$1<\\/name>/<name>$2<\\/name>/g' $1.xml\nvirsh define $1.xml\n
Biraz farklı yapıyorum ve önerilmeyen bir yöntem olabilir (emin değilim).
virsh destroy old-vm
virsh edit old-vm
XML değişikliğinde
virsh list --all
1 old-vm kapanma
2 yeni vm kapatma
Şimdi eski-vm'yi tanımla
virsh undefine old-vm