2017-04-17 9 views
0

예 :VM을 virt-clone 한 후 KVM 스냅 샷을 유지 (가져 오기)하는 방법은 무엇입니까?

qemu-img info winxp_sp3_03.updated.qcow2 

image: winxp_sp3_03.updated.qcow2 
file format: qcow2 
virtual size: 80G (85899345920 bytes) 
disk size: 8.2G 
cluster_size: 65536 
Snapshot list: 
ID  TAG     VM SIZE    DATE  VM CLOCK 
1   winxpsp3_basic   0 2017-04-14 23:44:14 00:00:00.000 
2   winxpsp3_pajno   0 2017-04-16 02:12:27 00:00:00.000 
Format specific information: 
    compat: 1.1 
    lazy refcounts: false 

그러나 스냅 샷을 virsh를 표시하지 않습니다 :

virsh snapshot-list winxp_sp3_03 
Name     Creation Time    State 
------------------------------------------------------------ 

는 안전한 방법 것입니다

virt-clone --connect=qemu:///system -o winxp_sp3_00 -n winxp_sp3_03 -f /opt/vme/winxp_sp3/winxp_sp3_03.updated.qcow2 

나는 그 qcow2 스냅 샷을 복제 한 새 도메인 winxp_sp3_03있어 virsh가 스냅 샷을 인식하도록 하시겠습니까?

들으

답변

0

virsh를 스냅리스트 winxp_sp3_10l_sc_99

virsh를 스냅 샷 dumpxml winxp_sp3_10l_sc_99 1,497,601,133> snapshot.xml

덤프 snapshot.xml에 기초

--create 스냅

virsh를 snapshot- 만들기 --domain winxp_sp3_10l_sc_01 snapshot.xml

0

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를 사용하는 경우 닫고 다시 열면 스냅 샷이 표시됩니다.