libvirt에서만 스냅샷을 제거하고 qcow2에는 보관하세요.

libvirt에서만 스냅샷을 제거하고 qcow2에는 보관하세요.

다음 명령을 실행했습니다.

-- 12:18:40 sudo virsh snapshot-delete Windows-10-128GB 2022-04-12-Pre-Activation
Domain snapshot 2022-04-12-Pre-Activation deleted
                                                                                                                                                                                                                                                  66ms

-- 12:28:20 sudo virsh snapshot-list Windows-10-128GB
 Name                         Creation Time               State
-------------------------------------------------------------------
 2022-04-12-Post-Activation   2022-04-12 21:54:19 +0200   shutoff
                                                                                                                                                                                                                                                  58ms


-- 12:28:24 qemu-img snapshot -l ~/kvm-images/Windows-10-128GB.qcow2
Snapshot list:
ID        TAG               VM SIZE                DATE     VM CLOCK     ICOUNT
1         2022-04-12-Pre-Activation      0 B 2022-04-12 21:19:39 00:00:00.000
2         2022-04-12-Post-Activation      0 B 2022-04-12 21:54:19 00:00:00.000

virsh snapshot-delete이로 인해 스냅샷은 libvirt의 내부 데이터 저장소에서만 제거되고 qcow2 파일에는 영향을 미치지 않을 것이라고 믿게 됩니다 .

sudo virsh undefine Windows-10-128GB그래서 이 방법을 모두 제거하고 .dll을 통해 libvirt에서 가상 머신을 제거했습니다.

이 모든 작업을 수행하기 전에 스냅샷과 가상 머신의 xml 정의를 내보냈습니다.

sudo virsh dumpxml Windows-10-128GB > 2023-09-10---Windows-10-128GB.xml
sudo virsh snapshot-dumpxml Windows-10-128GB 2022-04-12-Pre-Activation > 2023-09-10---Windows-10--128GB---2022-04-12-Pre-Activation.xml
sudo virsh snapshot-dumpxml Windows-10-128GB 2022-04-12-Post-Activation > 2023-09-10---Windows-10-128GB---2022-04-12-Post-Activation.xml

하지만 이제 다시 발행하면 qemu-img snapshot -l ~/kvm-images/Windows-10-128GB.qcow2더 이상 해당 파일의 스냅샷이 표시되지 않습니다. 게다가 치수도 다양합니다.

48G -rw-------  1 user user 156G Sep 10 12:52 Windows-10-128GB.qcow2
to
31G -rw-------  1 user user 156G Sep 10 12:52 Windows-10-128GB.qcow2

이는 스냅샷이 누락되었음을 나타내는 것 같습니다.

처음에 qcow2 파일에서 데이터가 제거되지 않은 이유는 무엇 virsh snapshot-delete이며 나중에 참조할 수 있도록 libvirt에서 스냅샷을 제거하되 qcow2 파일에 유지하여 virsh undefineVM 및 사용하지 않는 qcow2 파일을 일부 콜드 스토리지로 이동할 수 있는 방법은 무엇입니까?

virsh undefine Windows-10-128GB다음을 던지면 애초에 스냅샷을 삭제하라는 메시지가 표시되었습니다.

error: Failed to undefine domain 'Windows-10-128GB'
error: Requested operation is not valid: cannot delete inactive domain with 2 snapshots

snapshot-dumpxml의 qcow2 파일 경로가 존재하지 않는 파일을 가리킨다는 점 을 추가해야 합니다. source파일을 이동하고 VM의 xml이 새 위치를 가리키도록 조정했기 때문입니다. 이것이 스냅샷이 삭제되지 않는 이유일까요? 그 후에 내보낸 snapshot-dumpxml을 올바른 위치를 가리키도록 수정하고 이를 사용하여 sudo virsh snapshot-create --redefine Windows-10-128GB 2023-09-10---Windows-10-128GB---2022-04-12-Pre-Activation---corrected.xml스냅샷을 libvirt에 다시 통합했습니다. 아마도 이러한 수정으로 인해 virshqcow2 파일에서 해당 내용이 제거될 수 있을까요?

관련 정보