Proxmox 스냅샷 vs 백업 vs 템플릿¶
Proxmox VE에서 VM/컨테이너 상태를 저장하고 관리하는 세 가지 핵심 기능의 차이점과 활용법을 정리합니다.
한눈에 보는 비교¶
| 구분 | 스냅샷 (Snapshot) | 백업 (Backup) | 템플릿 (Template) |
|---|---|---|---|
| 핵심 비유 | 게임 '세이브 포인트' | 외장하드에 복사 | 공장의 '금형(틀)' |
| 주 목적 | 단기 상태 저장 및 롤백 | 장기 보관 및 재해 복구 | VM 배포 및 복제 |
| 저장 위치 | 원본 디스크와 동일 | 외부 스토리지 권장 | Proxmox 스토리지 내 |
| 의존성 | 원본 손상 시 복구 불가 | 원본과 완전 독립 | 새 VM 생성용 원본 |
| 속도 | 매우 빠름 (수 초) | 느림 (전체 복사) | 빠름 (Linked Clone) |
| 데이터 포함 | RAM 상태 포함 가능 | 설정 + 디스크 전체 | OS 및 패키지 상태 |
스냅샷 (Snapshot)¶
"실행 취소(Undo) 버튼" - 특정 시점의 VM 상태를 찍어두는 기능
핵심 용도¶
- 위험한 작업(OS 업데이트, 설정 변경) **직전**에 생성
- 문제 발생 시 즉시 롤백(Rollback)
작동 방식¶
- 원본 디스크에서 **변경된 데이터(Delta)**만 따로 저장
- 생성 속도가 매우 빠름 (수 초 이내)
GUI에서 스냅샷 생성¶
- VM 선택 → [Snapshots] 탭
- [Take Snapshot] 클릭
- 이름 입력 (예:
before-kernel-update) Include RAM체크 (실행 중인 상태까지 저장하려면)
CLI 명령어¶
# 스냅샷 생성
qm snapshot <VMID> <스냅샷이름> --description "설명"
# 스냅샷 목록 확인
qm listsnapshot <VMID>
# 스냅샷으로 롤백
qm rollback <VMID> <스냅샷이름>
# 스냅샷 삭제
qm delsnapshot <VMID> <스냅샷이름>
주의사항
- 백업이 아닙니다! 원본 디스크가 깨지면 스냅샷도 함께 소실
- 오래 유지하거나 많이 만들면 디스크 성능 저하
- 작업 완료 후에는 삭제하는 것이 원칙
백업 (Backup)¶
"보험(Safety Net)" - VM 전체를 압축하여 별도 파일로 저장
핵심 용도¶
- 하드웨어 고장, 데이터 삭제, 랜섬웨어 감염 등 재해 복구
- 장기 보관 및 아카이빙
작동 방식¶
GUI에서 백업 생성¶
- VM 선택 → [Backup] 탭
- [Backup now] 클릭
- 설정:
- Storage: 백업 저장 위치 (NAS, PBS 권장)
- Mode: Stop/Suspend/Snapshot
- Compression: ZSTD (권장)
CLI 명령어¶
# 즉시 백업
vzdump <VMID> --storage <저장소> --compress zstd --mode stop
# 백업 파일에서 복원
qmrestore <백업파일경로> <새VMID> --storage <스토리지>
자동 백업 스케줄 설정¶
Datacenter → Backup → Add
Storage: nfs-backup
Schedule: 02:00 (매일 새벽 2시)
Selection mode: Include/Exclude
Mode: Snapshot
Compression: ZSTD
Retention: keep-last=7, keep-weekly=4
백업 전략 (3-2-1 규칙)
- **3개**의 데이터 사본
- **2개**의 다른 저장 매체
- **1개**는 오프사이트(외부 위치)
템플릿 (Template)¶
"붕어빵 틀(Blueprint)" - VM 복제를 위한 기본 이미지
핵심 용도¶
- 동일한 환경의 VM을 빠르게 대량 생산
- 표준화된 설정의 VM 배포
작동 방식¶
Ubuntu VM (설정 완료)
↓ Convert to Template
Template (불변, 부팅 불가)
↓ Clone
├── web-server-01
├── web-server-02
└── web-server-03
템플릿 생성 방법¶
방법 1: 기존 VM을 템플릿으로 변환¶
- VM을 완전히 설정하고 종료
- VM 우클릭 → [Convert to Template]
- 템플릿은 더 이상 부팅/수정 불가
방법 2: Cloud Image로 템플릿 생성 (권장)¶
# 1. 우분투 클라우드 이미지 다운로드
wget https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img
# 2. 빈 VM 생성
qm create 9000 --name "ubuntu-template" --memory 2048 --net0 virtio,bridge=vmbr0
# 3. 이미지를 VM 디스크로 임포트
qm importdisk 9000 jammy-server-cloudimg-amd64.img local-lvm
# 4. 디스크 연결
qm set 9000 --scsihw virtio-scsi-pci --scsi0 local-lvm:vm-9000-disk-0
# 5. 부팅 순서 설정
qm set 9000 --boot c --bootdisk scsi0
# 6. Cloud-Init 드라이브 추가
qm set 9000 --ide2 local-lvm:cloudinit
# 7. 템플릿으로 변환
qm template 9000
템플릿에서 VM 복제 (Clone)¶
- 템플릿 우클릭 → [Clone]
- 설정:
- VM ID / Name: 새 VM 정보
- Mode:
- Linked Clone: 빠름, 공간 절약, 템플릿 의존
- Full Clone: 느림, 완전 독립
| Clone 방식 | 생성 속도 | 디스크 사용량 | 템플릿 의존성 |
|---|---|---|---|
| Linked Clone | 수 초 | 매우 적음 | 있음 |
| Full Clone | 수 분 | 전체 크기 | 없음 |
Cloud-Init 설정¶
복제 후 [Cloud-Init] 탭에서:
- User: 기본 사용자 계정
- Password / SSH Key: 접속 인증 정보
- IP Config: DHCP 또는 Static IP
Regenerate Image
설정 변경 후 반드시 [Regenerate Image] 클릭!
템플릿 내보내기/가져오기¶
내보내기 (Export)¶
Proxmox에는 직접적인 Export 메뉴가 없습니다. **백업 기능**을 사용합니다.
# 1. 템플릿 백업 생성
vzdump 9000 --storage local --compress zstd
# 2. 백업 파일 다운로드
# GUI: Storage → Backups → Download
# 또는 SCP로 직접 복사
scp /var/lib/vz/dump/vzdump-*.vma.zst user@remote:/backup/
가져오기 (Import)¶
# 1. 백업 파일 업로드
# GUI: Storage → Backups → Upload
# 2. 복원
qmrestore /var/lib/vz/dump/vzdump-qemu-9000-*.vma.zst 9001
# 3. 다시 템플릿으로 변환
qm template 9001
언제 무엇을 써야 할까?¶
| 상황 | 선택 |
|---|---|
| "방화벽 설정을 건드리기 전 혹시 몰라서..." | 스냅샷 |
| "서버 디스크가 언제 고장 날지 모르니..." | 백업 |
| "똑같은 리눅스 서버 5대를 빨리 만들어야..." | 템플릿 |