콘텐츠로 이동

Proxmox 스냅샷 vs 백업 vs 템플릿

Proxmox VE에서 VM/컨테이너 상태를 저장하고 관리하는 세 가지 핵심 기능의 차이점과 활용법을 정리합니다.

한눈에 보는 비교

구분 스냅샷 (Snapshot) 백업 (Backup) 템플릿 (Template)
핵심 비유 게임 '세이브 포인트' 외장하드에 복사 공장의 '금형(틀)'
주 목적 단기 상태 저장 및 롤백 장기 보관 및 재해 복구 VM 배포 및 복제
저장 위치 원본 디스크와 동일 외부 스토리지 권장 Proxmox 스토리지 내
의존성 원본 손상 시 복구 불가 원본과 완전 독립 새 VM 생성용 원본
속도 매우 빠름 (수 초) 느림 (전체 복사) 빠름 (Linked Clone)
데이터 포함 RAM 상태 포함 가능 설정 + 디스크 전체 OS 및 패키지 상태

스냅샷 (Snapshot)

"실행 취소(Undo) 버튼" - 특정 시점의 VM 상태를 찍어두는 기능

핵심 용도

  • 위험한 작업(OS 업데이트, 설정 변경) **직전**에 생성
  • 문제 발생 시 즉시 롤백(Rollback)

작동 방식

원본 디스크 [Base] ──┬── 스냅샷 1 (변경분만 저장)
                     └── 스냅샷 2 (변경분만 저장)
  • 원본 디스크에서 **변경된 데이터(Delta)**만 따로 저장
  • 생성 속도가 매우 빠름 (수 초 이내)

GUI에서 스냅샷 생성

  1. VM 선택 → [Snapshots]
  2. [Take Snapshot] 클릭
  3. 이름 입력 (예: before-kernel-update)
  4. Include RAM 체크 (실행 중인 상태까지 저장하려면)

CLI 명령어

# 스냅샷 생성
qm snapshot <VMID> <스냅샷이름> --description "설명"

# 스냅샷 목록 확인
qm listsnapshot <VMID>

# 스냅샷으로 롤백
qm rollback <VMID> <스냅샷이름>

# 스냅샷 삭제
qm delsnapshot <VMID> <스냅샷이름>

주의사항

  • 백업이 아닙니다! 원본 디스크가 깨지면 스냅샷도 함께 소실
  • 오래 유지하거나 많이 만들면 디스크 성능 저하
  • 작업 완료 후에는 삭제하는 것이 원칙

백업 (Backup)

"보험(Safety Net)" - VM 전체를 압축하여 별도 파일로 저장

핵심 용도

  • 하드웨어 고장, 데이터 삭제, 랜섬웨어 감염 등 재해 복구
  • 장기 보관 및 아카이빙

작동 방식

VM 전체 → 압축 → vzdump-qemu-100-2026_01_26.vma.zst
                 (NAS, PBS 등 외부 스토리지에 저장)

GUI에서 백업 생성

  1. VM 선택 → [Backup]
  2. [Backup now] 클릭
  3. 설정:
  4. Storage: 백업 저장 위치 (NAS, PBS 권장)
  5. Mode: Stop/Suspend/Snapshot
  6. 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을 템플릿으로 변환

  1. VM을 완전히 설정하고 종료
  2. VM 우클릭 → [Convert to Template]
  3. 템플릿은 더 이상 부팅/수정 불가

방법 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)

  1. 템플릿 우클릭 → [Clone]
  2. 설정:
  3. VM ID / Name: 새 VM 정보
  4. 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대를 빨리 만들어야..." 템플릿

참고 자료