가상화와 QEMU/KVM · 디스크 이미지: qcow2, 백킹파일, 스냅샷 · 실습
스냅샷 두 방식
목표
qcow2 의 내부 스냅샷과 외부 스냅샷을 모두 만들어 보고, 두 방식의 차이를 실제 파일 구조로 확인합니다.
왜 중요한가
내부 스냅샷은 파일 하나로 관리되어 편하지만 백업이 어렵습니다 — 원본이 계속 바뀌기 때문입니다. 외부 스냅샷은 현재 이미지를 백킹으로 삼는 새 오버레이를 만들어 원본을 그 시점에 얼어붙게 합니다. 그래서 백업 도구가 원본을 안전하게 복사할 수 있고, 이것이 실무 백업 워크플로의 표준입니다. 되돌리기도 오버레이를 버리는 것으로 끝나 단순합니다. 대신 파일이 늘어나고 체인 관리가 필요합니다.
주의: VM 이 실행 중일 때 qemu-img 로 이미지를 건드리면 안 됩니다. 이 실습은 정지 상태에서만 진행합니다.
단계
1. /root/snap 디렉터리를 만들고 /root/snap/disk.qcow2 를 1G qcow2 로 만드세요.
2. before-upgrade 라는 이름의 내부 스냅샷을 만드세요.
3. 스냅샷 목록을 /root/snap/list1.txt 로 저장하세요. before-upgrade 가 보여야 합니다.
4. after-patch 와 rollback-point 두 개를 더 만들고, 목록을 /root/snap/list3.txt 로 저장하세요. 스냅샷이 정확히 3개여야 합니다.
5. before-upgrade 스냅샷을 적용(되돌리기)하고, 그 명령의 종료 코드를 /root/snap/applied.txt 에 rc=0 형식으로 적으세요.
6. after-patch 스냅샷을 삭제하고, 남은 목록을 /root/snap/list2.txt 로 저장하세요. 스냅샷이 정확히 2개여야 합니다.
7. 외부 스냅샷을 만드세요. disk.qcow2 를 백킹으로 하는 /root/snap/disk.ext1.qcow2 를 만들고, 백킹 체인 출력을 /root/snap/chain.txt 로 저장하세요.
8. /root/snap/compare.txt 를 다음 4줄로 만드세요.INTERNAL_COUNT=<6번 이후 남은 내부 스냅샷 개수> / EXTERNAL_FILES=2 / BACKUP_FRIENDLY=external / ROLLBACK_INTERNAL=-a
참고
qemu-img snapshot -c <이름> <파일>/-l/-a <이름>/-d <이름>네 가지면 내부 스냅샷은 끝납니다.- 외부 스냅샷은
qemu-img create -f qcow2 -b <현재이미지> -F qcow2 <새오버레이>입니다. -l출력에는 머리말 두 줄이 있으니 개수를 셀 때 제외하세요.- 흔한 실수 1: 6번에서
-d대신-a를 쓰는 경우. 삭제가 아니라 적용이 됩니다. - 흔한 실수 2: 7번에서 오버레이가 아니라 백킹 쪽을 지우면 체인이 통째로 깨집니다.
단계 8개
- 실습 이미지 준비
- 내부 스냅샷 생성
- 스냅샷 목록
- 여러 시점 만들기
- 스냅샷 되돌리기
- 스냅샷 삭제
- 외부 스냅샷 만들기
- 두 방식 비교표