virt-manager 스냅샷을 마이그레이션/백업/복원하는 방법은 무엇입니까?

virt-manager 스냅샷을 마이그레이션/백업/복원하는 방법은 무엇입니까?

나는 virt-manager 가상 머신(모든 스냅샷 포함)을 백업/복원/복원하는 방법을 알아내려고 약 일주일을 보냈습니다.

qcow2 파일을 확인하면 생성된 모든 스냅샷이 포함되어 있습니다.

sudo qemu-img snapshot -l '../LinuxLiteV3.8.qcow2'
           
Snapshot list:
ID        TAG                     VM SIZE                DATE       VM CLOCK   
1         LinuxLite38_PreUD01         0 B 2020-11-06 23:37:14   00:00:00.000
2         snapshot1                   0 B 2020-12-27 15:59:03   00:00:00.000

이 파일을 virt-manager의 다른 인스턴스로 가져가서 VM을 다시 생성하면 실행될 수 있지만 virt-manager는 스냅샷에 대해 알지 못하는 것 같습니다.

원래 가상 머신이 여전히 존재하므로(필요한 경우) 다음을 사용하여 xml 파일을 생성할 수 있습니다.

virsh dumpxml LinuxLiteV3.8 --security-info --migratable >LinuxLiteV3.8
virsh snapshot-dumpxml LinuxLiteV3.8 LinuxLite38_PreUD01 --security-info  >LinuxLite38_PreUD01.xml
virsh snapshot-dumpxml LinuxLiteV3.8 snapshot1 --security-info  >snapshot1.xml

하지만 정의를 virt-manager로 가져오는 방법을 모르겠습니다.

IIUC virsh snapshot-create는 기존 스냅샷을 가져오지 않고 새 스냅샷을 생성합니다.

이 시점에서 나는 qemu:///session으로 이동하고 싶은 qemu:///system으로 정의된 두 대의 머신을 다시 생성하려고 합니다. virsh에 qemu:///system과 qemu:///session 중에서 선택할 수 있는 -c 옵션이 있다는 것을 알고 있지만 내보내기/가져오기 방법을 모르겠습니다.

또한 시스템을 새 하드웨어로 마이그레이션하는 중이므로 새로 설치된 virt-manager에서 VM과 해당 스냅샷을 다시 로드할 수 있어야 합니다. 한 시스템에서 내보내고 다른 시스템에서 가져오는 것을 제외하면 이것이 본질적으로 동일한 문제라고 가정합니다.

qcow2 파일을 사용하는 것이 더 좋지만 원래 작업 설치가 아직 남아 있으므로 xml 파일을 사용할 수 있는 옵션이 있습니다.

답변1

"sled9"라는 이전 VM(디스크 2개와 스냅샷 2개 포함)에 대해 다음을 수행했습니다.

소스 머신에서:

~$ virsh dumpxml sled9 > sled9.xml
~$ virsh snapshot-list sled9
   Name        Creation Time               State
   --------------------------------------------------
   snapshot1   2021-01-10 20:58:45 +0100   shutoff
   vor grub    2019-05-03 12:43:30 +0200   running

~$ virsh snapshot-dumpxml sled9 snapshot1 > snapshot1.xml
~$ virsh snapshot-dumpxml sled9 'vor grub' > vor_grub.xml

두 개의 디스크 파일과 세 개의 xml 파일을 대상 머신의 새로 생성된 디렉터리에 복사합니다./var/lib/libvirt/images/sled9

대상 머신에서:

먼저 세 개의 xml 파일을 수정하여 디스크 파일에 대한 다양한 경로(~ /var/lib/libvirt/images/local) 를 반영합니다 /var/lib/libvirt/images/sled9. 이는 경로가 컴퓨터마다 다른 경우에만 중요합니다. 그 다음에

  ~$  virsh define sled9.xml 
  ~$  virsh snapshot-create sled9 --xmlfile vor_grub.xml --redefine
  ~$  virsh snapshot-create sled9 --xmlfile snapshot1.xml --redefine
  ~$  virsh snapshot-list sled9
     Name        Creation Time               State
     --------------------------------------------------
     snapshot1   2021-01-10 20:58:45 +0100   shutoff
     vor grub    2019-05-03 12:43:30 +0200   running

대상 머신의 virtmanager에 도메인이 표시되고, 스냅샷이 표시되며, 두 머신에서 서로 다른 네트워크 인터페이스를 수정한 후 VM을 정상적으로 시작할 수 있습니다.

올바른 순서로 스냅샷을 재정의하는 것이 중요합니다. 그렇지 않으면 virsh가 불평할 것입니다(상위 누락).

관련 정보