Bagaimana saya bisa mengganti nama VM di KVM + libvirt?
Saya ingin mengubah nama di 'inventaris' serta mengubah nama penyimpanan dll.
Bagaimana saya bisa mengganti nama VM di KVM + libvirt?
Saya ingin mengubah nama di 'inventaris' serta mengubah nama penyimpanan dll.
Jawaban:
menjalankan
virsh dumpxml name_of_vm > name_of_vm.xml
Batalkan vm lama untuk mencegah kesalahan karena duplikat UUID.
virsh undefine name-of-vm
Edit file xml lalu impor.
virsh define name_of_vm.xml
Tentu saja Anda harus berhenti dan memulai vm agar perubahan diterapkan
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
Sumber: https://www.redhat.com/archives/libvirt-users/2010-October/msg00072.html
virsh
diimplementasikan domrename
dalam rilis 1.2.19: 02 Sep 2015. Jadi praktik terbaik saat ini adalah:
virsh domrename oldname newname
Seperti yang Anda harapkan, domain harus dihentikan, tetapi juga tidak dapat memiliki snapshot.
virsh edit newname
dan mengubah jalur file dan mv oldname newname
mengganti nama direktori jika Anda ingin semuanya cocok.
Untuk mengubah banyak mesin, Anda dapat menggunakan ini:
virsh shutdown old-name
Tunggu di atas untuk menyelesaikan dan menjalankan:
virsh dumpxml old-name > old-name.xml
virsh undefine old-name
Tunggu di atas untuk menyelesaikan dan menjalankan:
sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml
Jalankan ini satu per satu untuk setiap mesin. Anda dapat menggunakan RegExp ini jika Anda memiliki daftar yang berisi 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
Saya melakukannya sedikit berbeda dan mungkin metode yang tidak direkomendasikan (tidak yakin).
virsh destroy old-vm
virsh edit old-vm
Dalam perubahan XML
virsh list --all
1 old-vm shut-off
2 shut-off new-vm
Sekarang batalkan vm-lama
virsh undefine old-vm