8.5. 스냅샷 삭제

더 이상 필요하지 않은 개별 스냅샷 또는 연쇄 스냅샷을 삭제할 수 있습니다. 스냅샷 삭제 시 해당 특정 복원 지점으로 가상 머신 디스크 이미지를 복원할 수 있는 능력이 제거됩니다. 이러한 작업이 스냅샷이 사용한 디스크 공간을 다시 확보하거나 데이터를 삭제하는 것은 아닙니다. 이후의 스냅샷이 삭제된 스냅샷의 데이터에 덮어쓰기를 한 경우에만 디스크 공간이 다시 확보됩니다. 예를 들어 다섯 개의 스냅샷 중 세 번째 스냅샷이 삭제되는 경우 이러한 세 번째 스냅샷에서 변경되지 않은 데이터가 디스크에 남아 있어야 네 번째 및 다섯 번째 스냅샷을 사용할 수 있습니다. 하지만 네 번째 또는 다섯 번째 스냅샷이 세 번째 스냅샷의 데이터에 덮어쓰기를 한 경우 세 번째 스냅샷은 중복되게 되며 해당 디스크 공간이 다시 확보됩니다. 스냅샷을 삭제하는 것은 디스크 공간 확보 외에도 가상 머신 성능을 개선할 수 있습니다.
삭제될 스냅샷 선택 시 QEMU는 삭제될 스냅샷과 이후 스냅샷을 통합하기 위해 같은 크기의 논리 볼륨을 새로 생성합니다. 이러한 새 논리 볼륨은 두 스냅 샷의 차이를 수용할 수 있도록 크기가 변경됩니다. 새 논리 볼륨은 두 스냅샷을 합친 크기가 될 가능성도 있습니다. 두 스냅샷이 통합된 이후의 스냅샷은 이름이 변경되어 삭제 플래그가 표시되며 새 논리 볼륨이 이를 대체하고 그 이름을 갖게 됩니다. 삭제 플래그가 표시된 기존 스냅샷과 이후의 스냅샷은 모두 삭제되며 그 대신에 통합된 하나의 스냅샷이 있게 됩니다.
예를 들어 Delete_snapshot 스냅샷은 200 GB이며 이후의 스냅샷인 Next_snapshot 스냅샷은 100 GB입니다. Delete_snapshot이 삭제되고 Snapshot_merge라는 임시 이름의 새 논리 볼륨이 200 GB 크기로 생성됩니다. Snapshot_merge는 결국 Delete_snapshotNext_snapshot의 통합 컨텐츠를 수용하기 위해 크기가 300 GB로 변경됩니다. 그 후Next_snapshot의 이름은 Snapshot_merge의 이름이 Next_snapshot으로 변경될 수 있도록 Delete_me_too_snapshot으로 변경됩니다. 마지막으로 Delete_snapshotDelete_me_too_snapshot이 삭제됩니다.
Snapshot Deletion

그림 8.4. 스냅샷 삭제

실행중인 가상 머신에서 스냅샷을 삭제하는 데 사용하는 로직은 종료된 가상 머신의 경우와 약간 다릅니다. 라이브 스냅샷 삭제는 비동기 블록 작업으로 다루게 됩니다. 이러한 경우 VDSM이 다시 시작하거나 가상 머신이 작업 중 종료되더라도 작업을 추적할 수 있도록 VDSM은 가상 머신의 복원 파일에 해당 작업 기록을 보관합니다. 작업 시작 후에는 이러한 작업이 실패하거나 중단되더라도 삭제되는 스냅샷을 미리 보거나 복원 지점으로 사용할 수 없습니다. 활성 레이어(layer)를 부모와 통합하는 작업은 활성 레이어에서 부모 레이어로 데이터를 복사하고 디스크 쓰기 내용이 활성 및 부모 레이어에 동일하게 작용되는 두 단계로 진행됩니다. 마지막으로 삭제되는 스냅샷의 데이터가 부모 스냅샷과 통합되고 VDSM이 이러한 변경 내용을 이미지 체인에 걸쳐 동기화하면 작업이 완료됩니다.