virt-manager/libvirt/KVM에서 약간의 손실이 발생했습니다.
KVM 가상 머신(Windows XP)이 제대로 실행되고 있습니다.
가상 머신은 약 4GB의 파일(.img).
이제 저는 매우 간단한 작업을 수행하고 싶습니다. 가상 머신의 복사본을 만들고 싶습니다.
제 생각에는"알겠습니다. 4GB 파일을 복사하고 XML을 복사해 보겠습니다."문서.
그러나 libvirt FAQ는 모두 대문자로 되어 있습니다."XML이 어디에 저장되어 있는지 신경쓰지 마세요."
글쎄, 난 신경 안 써도 돼. 하지만 가상 머신을 어떻게 복제합니까?
이 가상 머신의 복사본인 새 가상 머신을 생성하고 싶습니다.
답변1
가장 편리한 방법은 다음과 같습니다.
# virt-clone --connect=qemu://example.com/system -o this-vm -n that-vm --auto-clone
복사본을 만들고 this-vm
이름을 지정 that-vm
하며 저장 장치 복사를 담당합니다. 세부 사항 외에 여기에는 새로운 것이 없습니다.
더 중요한 것은 FAQ에 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"
답변2
"virt-clone" 외에도 다음을 통해 가상 머신을 복제할 수도 있습니다.
- 복사할 기존 가상 머신의 전원이 꺼져 있는지 확인하세요.
- 기존 VM에서 "sudo virsh dumpxml < domid >"를 실행하고 출력 xml 파일을 저장합니다.
- <domain> 태그 아래의 <name> 태그를 수정합니다.
- "uuidgen"을 사용하여 새로운 고유 ID를 생성하고 이를 사용하여 기존 <uuid> 태그를 수정합니다.
- VM에서 사용하는 기존 qcow 가상 이미지를 복사합니다(일반적으로 /var/lib/libvirt/images에 저장되지만 정확한 위치를 얻으려면 XML 파일을 읽어야 합니다). 명령은 "sudo cp /var/lib/libvirt/images/xxx.qcow2 yyyy.qcow2"이고 XML 파일에 새 파일 yyyy.qcow2를 채웁니다.
- 새 가상 머신 시작: sudo virsh new.xml 정의
- 새 domid 시작: sudo virsh start <new_domid>
답변3
virsh
서버의 XML 정의를 편집하고, 내보내고, 가져올 수 있습니다. 이를 사용하여 virt-clone
복제 이미지 파일을 생성하고 이를 XML로 내보냅니다. 안전을 위해 원래 서버에서 복제 구성을 제거하겠습니다.
답변4
다음 명령이 저에게 효과적이었습니다(명령을 실행하기 전에 VSA/Vm을 종료해야 했습니다).
# virt-clone --connect=qemu:///system -o present_vsa/vm_name -n vsa/vm_to_be_cloned_name --auto-clone