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