virt-clone
은 qcow2 파일에서 특정 메타 데이터를 제거합니다. VM을 virt-clone
으로 복제하면 snapshot tags
의 메타 데이터가 디스크 파일에서 제거되므로 소스에서 xml
정의를 사용하여 스냅 샷을 redefine
할 수 없습니다. 음, 기술적으로는 가능하지만 스냅 샷을 재정의하는 순간 VM의 상태를 가리 킵니다. 스냅 샷이 기기에 나타나지만 복원 한 후에는 실제 의도 한 스냅 샷을 볼 수 없습니다.
우리는 대상 VM을 정의하기위한 XML 정의가 필요합니다
일의 몇 qemu
씨름 및 문서 수백 페이지의를 통과 후, 나는 일 다음과 같은 방법을 함께했다. virt-clone
을 사용하여 xml 정의를 생성 해 봅시다.
는
virt-clone --original $Source_VM_Name --name $Destination_VM_Name --file /var/lib/libvirt/images/$Destination_VM_Name.qcow2 --print-xml > $Destination_VM_Name.xml
상기 명령은 실제로 VM을 복제하지 않고 XML 정의를 생성한다.
Linux cp
명령을 사용하여 qcow2 디스크를 복사하십시오. 시스템의 올바른 디스크 파일을 가리 키도록 명령을 적용하십시오.
cp $Source_VM_Name.qcow2 $Destination_VM_Name.qcow2
이제 대상 디스크 파일에 대한 구성을 재설정해야 : 당신이 당신의 구성에 따라, 위의 명령에 대한 sudo
을 사용해야 할 수도 있습니다
virt-sysprep -a $Destination_VM_Name.qcow2
참고. 이 명령은 대상 VM에서 재설정해야하는 UUID, MAC 주소 및 기타 요소를 재설정합니다.
우리는 virsh를 명령을 사용하여 대상 시스템을 정의하기 위해 단계 파일에서 생성 된 XML 파일을 사용합니다 : virsh define $Destination_VM_Name.xml
우리는 이제 기능 VM을을, 우리는 스냅 샷 정의를 내 보내야합니다 이 단계에서 소스 VM으로부터.
virsh snapshot-list $Source_VM_Name --tree
이 명령은 원본 VM의 스냅 샷을 나열합니다. 이 나무에 나열된 각 스냅 샷
:
virsh snapshot-dumpxml $Source_VM_Name $Snapshot_Name --security-info > Snapshot_Name.xml
우리는 스냅 샷의 XML 정의의 UUID 및 도메인 이름을 변경해야합니다.
<mac address='$Destination_MACADDRESS'/>
그리고 채널 :
nano Snapshost_Name.xml
변경
<domain type='kvm'>
<name>$Source_VM_Name</name>
<uuid>$Source_UUID<uuid>
에
<domain type='kvm'>
<name>$Destination_VM_Name</name>
<uuid>$Destination_UUID<uuid>
또한 대상 MAC 주소를 MAC 주소 필드를 변경 대상 diskfile에 백업 디스크 파일을 앤지 :
<source file='/var/lib/libvirt/images/$Destination_VM_Name.qcow2'/>
지금 복제 된 VM을 위해, 각각의 스냅 샷을 재정의.
virsh snapshot-create $Destination_VM Snapshot_Name.xml --redefine
스냅 샷을 재정의하는 순서가 중요하므로 일부 스냅 샷은 다른 스냅 샷과 다를 수 있습니다. 나무의 뿌리부터 잎까지 시작하십시오.
virt-manager를 사용하는 경우 닫고 다시 열면 스냅 샷이 표시됩니다.