Làm cách nào để đổi tên VM trên KVM + libvirt?
Tôi muốn nó thay đổi tên trong 'kho' cũng như thay đổi tên của bộ lưu trữ, v.v.
Làm cách nào để đổi tên VM trên KVM + libvirt?
Tôi muốn nó thay đổi tên trong 'kho' cũng như thay đổi tên của bộ lưu trữ, v.v.
Câu trả lời:
chạy
virsh dumpxml name_of_vm > name_of_vm.xml
Xác định vm cũ để ngăn lỗi do UUID trùng lặp.
virsh undefine name-of-vm
Chỉnh sửa tập tin xml sau đó nhập nó.
virsh define name_of_vm.xml
Tất nhiên bạn sẽ phải dừng lại và bắt đầu vm để những thay đổi có hiệu lực
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
Nguồn: https://www.redhat.com/archives/libvirt-users/2010-Oc/10/msg00072.html
virsh
triển khai domrename
trong phiên bản 1.2.19: 02 tháng 9 năm 2015. Vì vậy, cách thực hành tốt nhất hiện nay chỉ là:
virsh domrename oldname newname
Như bạn có thể mong đợi, tên miền phải được dừng lại, nhưng nó cũng không thể có bất kỳ ảnh chụp nhanh nào.
virsh edit newname
và thay đổi đường dẫn tệp và mv oldname newname
đổi tên thư mục nếu bạn muốn mọi thứ khớp.
Để thay đổi nhiều máy bạn có thể sử dụng:
virsh shutdown old-name
Đợi ở trên để kết thúc và chạy:
virsh dumpxml old-name > old-name.xml
virsh undefine old-name
Đợi ở trên để kết thúc và chạy:
sed -i 's/<name>old-name<\/name>/<name>new-name<\/name>/g' old-name.xml
virsh define old-name.xml
Chạy từng cái một cho mỗi máy. Bạn có thể sử dụng RegExp này nếu bạn có một danh sách chứa 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
Tôi làm điều đó một chút khác nhau và có thể là phương pháp không được đề xuất (không chắc chắn).
virsh destroy old-vm
virsh edit old-vm
Trong thay đổi XML
virsh list --all
Tắt 1 vm cũ
Tắt 2 vm mới
Bây giờ xác định cũ-vm
virsh undefine old-vm