13년차의 서버실

서버, 인프라, 홈랩 기술 블로그

[태그:] vzdump

  • Proxmox 백업 vzdump 완전 정리 — 스냅샷 말고 진짜 백업 걸기

    지난 ZFS 글에서 “스냅샷은 백업이 아니다”라고 했습니다. 그럼 Proxmox에서 진짜 백업은 어떻게 할까요? 답은 vzdump입니다. VM·컨테이너를 통째로 백업하는 Proxmox 내장 도구인데, 솔직히 저도 아직 예약 백업을 안 걸어둔 상태라 이번 기회에 제대로 정리합니다.

    1. vzdump이 하는 일

    vzdump은 VM/LXC 전체를 하나의 아카이브로 백업합니다. 스냅샷(같은 디스크 안의 되돌리기)과 달리, 별도 스토리지(NAS 등)에 복제본을 만드는 진짜 백업입니다.

    • 디스크가 통째로 죽어도 복구 가능
    • 다른 노드·다른 서버로 이전 가능
    • 보관 개수를 정해 자동 로테이션

    2. 백업 모드 3가지

    모드 다운타임 특징
    snapshot 거의 없음 실행 중 백업(권장)
    suspend 잠깐 정지 중간 안전성
    stop 완전 정지 가장 일관적

    대부분 snapshot 모드면 충분합니다. 실행 중인 서비스를 멈추지 않고 백업하니까요(단, DB처럼 일관성이 중요하면 stop 고려).

    3. 수동 백업 — 한 줄

    # LXC 113을 NAS 스토리지에 snapshot 모드로 백업
    vzdump 113 --mode snapshot --storage nas-backup --compress zstd
    
    # 여러 개 한 번에
    vzdump 112 113 124 --mode snapshot --storage nas-backup --compress zstd

    --compress zstd는 빠르고 압축률도 좋아 요즘 표준입니다. 백업 파일은 지정한 스토리지(예: NAS)에 .vma.zst(VM) / .tar.zst(LXC)로 쌓입니다.

    4. 예약 백업 (여기가 진짜 핵심)

    수동은 잊어버립니다. Proxmox 웹UI Datacenter → Backup → Add에서 예약을 겁니다. 핵심 설정은 —

    • 대상: 백업할 VM/LXC 선택(또는 전체)
    • 스토리지: 반드시 다른 디스크/NAS(같은 풀에 백업하면 의미 없음)
    • 스케줄: 예) 매일 새벽 3시
    • 보관(Retention): 일 7 / 주 4 / 월 3 등
    # /etc/pve/jobs.cfg 에 생성되는 예약 백업(예시)
    vzdump: backup-daily
    	schedule 03:00
    	storage nas-backup
    	mode snapshot
    	compress zstd
    	prune-backups keep-daily=7,keep-weekly=4

    5. 복구

    백업이 있으면 복구는 간단합니다. 웹UI에서 백업 파일 선택 → Restore, 또는 CLI로:

    # LXC 복구 (새 ID 113으로)
    pct restore 113 /mnt/nas-backup/dump/vzdump-lxc-113-....tar.zst --storage local-zfs

    중요: 백업은 복구 테스트까지 해봐야 진짜 백업입니다. 한 번쯤 테스트 ID로 복구해 정상 부팅을 확인해 두세요.

    6. 정리 — 스냅샷 + vzdump = 완성

    스냅샷은 위험한 작업 직전의 빠른 되돌리기, vzdump은 다른 스토리지에 두는 진짜 백업입니다. 둘은 역할이 다르니 둘 다 써야 합니다. 저처럼 “스냅샷은 하는데 예약 백업은 아직”인 분이라면, 오늘 Datacenter → Backup에서 매일 백업 하나만 걸어두세요. 미래의 내가 고마워할 겁니다.

  • [Proxmox VE] VM 백업 및 복구 완벽 가이드: 데이터 손실 방지 전략

    [Proxmox VE] VM 백업 및 복구 완벽 가이드: 데이터 손실 방지 전략

    [Proxmox VE] VM 백업 및 복구 완벽 가이드: 데이터 손실 방지 전략

    안녕하세요, 13년차의 서버실 주인장입니다. 오늘은 Proxmox VE(Virtual Environment) 환경에서 VM(Virtual Machine) 백업과 복구에 대한 이야기를 좀 해볼까 합니다. 서버실에서 13년을 굴러보니, 데이터만큼 중요한 게 없더라고요. 한 번의 실수로 데이터가 날아가면 정말 아찔하죠. 특히 홈랩(Home Lab)을 운영하면서 이것저것 실험하다 보니 백업의 중요성을 뼈저리게 느끼게 됩니다. 😱

    저도 예전에 백업을 소홀히 했다가 중요한 설정 파일이나 프로젝트 데이터가 통째로 날아간 경험이 있거든요. 그때의 허탈함이란… 그래서 Proxmox VE VM 백업은 선택이 아니라 필수라고 항상 강조합니다. 오늘은 제가 직접 홈랩에서 Proxmox를 운영하며 겪었던 경험을 바탕으로, 어떻게 하면 안전하게 Proxmox 백업을 설정하고, 위기 상황에서 VM 복구를 할 수 있는지, 그 데이터 손실 방지 전략을 완벽하게 알려드릴게요. 저와 함께 Proxmox 스냅샷을 포함한 다양한 데이터 보호 방법을 알아봅시다!

    Proxmox VE VM 백업 및 복구 전체 아키텍처 다이어그램

    Proxmox 백업, 진짜 왜 중요할까요? (개념 설명)

    쉽게 말해, Proxmox VE 환경에서 VM 백업은 우리 집의 귀한 물건들을 금고에 넣어두는 것과 같습니다. 언제든 문제가 생기면 금고에서 다시 꺼내 쓸 수 있도록 말이죠. Proxmox는 기본적으로 아주 강력한 백업 기능을 제공하고 있거든요.

    VZDump: Proxmox의 핵심 백업 도구

    Proxmox에는 vzdump라는 백업 툴이 내장되어 있습니다. 이 툴로 VM(QEMU/KVM)과 LXC 컨테이너를 효율적으로 백업할 수 있거든요. 백업 시점에 VM의 모든 상태(디스크 이미지, 설정 파일 등)를 하나의 파일로 만들어주고, 나중에 복구할 때 사용하죠.

    스냅샷(Snapshot)과 백업(Backup)의 차이

    여기서 많은 분들이 헷갈리시는 게 스냅샷과 백업입니다. 저도 처음엔 이게 뭔가 싶었거든요. 간단히 비유하자면:

    • 스냅샷(Snapshot): 책갈피 같은 거예요. 특정 시점의 VM 상태를 빠르게 저장하고, 문제가 생겼을 때 그 시점으로 되돌아갈 수 있게 해줍니다. 하지만 스냅샷은 원본 VM과 같은 스토리지에 존재하기 때문에, 스토리지 자체가 손상되면 스냅샷도 같이 날아갈 위험이 있어요.
    • 백업(Backup): 책 전체를 복사해서 다른 안전한 장소에 보관하는 거라고 생각하시면 됩니다. 원본 VM과는 완전히 분리된 별도의 백업 스토리지에 저장되므로, 원본 VM이 손상되더라도 안전하게 복구할 수 있죠.

    결론적으로, 스냅샷은 빠른 롤백(Rollback)에 좋고, 백업은 데이터 손실 방지와 재해 복구(Disaster Recovery, DR)에 필수적입니다.

    어떤 백업 스토리지를 사용할까?

    Proxmox는 다양한 백업 스토리지를 지원하거든요. 제가 홈랩에서 주로 쓰는 방식은 NFS(Network File System)나 SMB/CIFS(Server Message Block/Common Internet File System) 공유 스토리지를 사용하는 겁니다. 아니면 Proxmox Backup Server(PBS)를 구축해서 쓰는 방법도 있는데, 이건 정말 끝판왕이라고 할 수 있죠.

    Proxmox VE VM 백업 및 복구 실전 구현 (단계별 가이드)

    자, 이제 실전입니다. 제가 직접 쓰는 방법들을 단계별로 보여드릴게요. Proxmox 웹 GUI를 주로 활용하겠지만, CLI(Command Line Interface) 명령어 몇 가지도 함께 알아두시면 좋습니다.

    1단계: 백업 스토리지 추가하기 (NFS 예시)

    가장 먼저 백업 파일을 저장할 공간을 Proxmox에 연결해야 합니다. 저는 NAS(Network Attached Storage)에 NFS 공유 폴더를 만들어서 사용하고 있거든요.

    1. Proxmox 웹 GUI에 접속합니다.
    2. 좌측 메뉴에서 Datacenter > Storage로 이동합니다.
    3. Add 버튼을 클릭하고 NFS를 선택합니다.
    4. 다음 정보를 입력합니다:

      • ID: backup-nfs (원하는 이름)
      • Server: 192.168.1.100 (NAS IP 주소)
      • Export: /volume1/proxmox-backup (NAS의 NFS 공유 경로)
      • Content: VZDump backup file (필수!)
    5. Add 버튼을 눌러 추가를 완료합니다.

    CLI로 직접 마운트하는 방법도 있어요. 예를 들어, /etc/fstab에 추가해서 부팅 시 자동 마운트되도록 설정할 수 있습니다.

    
    # /etc/fstab
    192.168.1.100:/volume1/proxmox-backup /mnt/pve/backup-nfs nfs defaults 0 0
    

    그리고 mount -a 명령어로 바로 적용해줍니다. 그 후 Proxmox GUI에서 Storage를 추가하면 되는데, 이 방법이 좀 더 안정적이더라고요.

    Proxmox VE 웹 GUI 백업 작업 설정 화면

    2단계: 백업 작업 생성 및 스케줄링

    스토리지를 연결했으니 이제 Proxmox 백업 작업을 만들어볼까요?

    1. Datacenter > Backup으로 이동합니다.
    2. Add 버튼을 클릭하여 새 백업 작업을 생성합니다.
    3. 백업 설정:

      • Node: 백업할 VM이 있는 Proxmox 노드 선택 (All도 가능)
      • Storage: 1단계에서 추가한 backup-nfs 선택
      • Schedule: Daily (매일), Weekly (매주) 등 원하는 주기로 설정합니다. 저는 새벽 2시에 매일 돌리도록 설정해놓았어요.
      • VMs: 백업할 VM 선택 (All 또는 특정 VM ID)
      • Mode: Snapshot (가장 권장하는 방식입니다. VM 운영 중에도 백업 가능)
      • Compression: Zstd (최신 알고리즘으로 압축률과 속도 모두 좋습니다)
      • Email notification: 백업 결과 알림을 받을 이메일 주소 설정 (필수!)
      • Retention: 백업본 유지 기간. 저는 보통 7일로 설정해서 일주일치 백업본을 가지고 있습니다.
    4. Create 버튼을 눌러 백업 작업을 완료합니다.

    이렇게 하면 설정한 스케줄에 따라 자동으로 Proxmox VE VM 백업이 진행돼요. 정말 편하더라고요!

    3단계: VM 복구하기

    불의의 사고로 VM이 날아갔다거나, 특정 시점으로 되돌리고 싶을 때 VM 복구는 필수입니다. Proxmox는 복구도 아주 간단하게 할 수 있게 해줍니다.

    1. 좌측 메뉴에서 Datacenter > Storage > backup-nfs (백업 스토리지를 선택)로 이동합니다.
    2. 중앙 패널에서 백업된 파일 목록을 볼 수 있어요. 복구하려는 VM의 백업 파일을 선택합니다.
    3. Restore 버튼을 클릭합니다.
    4. 복구 설정:

      • Target Storage: VM이 복구될 스토리지 선택 (예: local-lvm)
      • VM ID: 새 VM ID를 지정하거나, 기존 VM ID로 덮어쓸 수 있습니다. 기존 ID로 덮어쓸 경우 기존 VM은 삭제되니 주의하세요!
      • Start after restore: 복구 완료 후 바로 VM을 시작할지 여부
    5. Restore 버튼을 눌러 복구를 시작합니다.

    CLI로 복구하는 방법도 있어요. 만약 웹 GUI에 접근할 수 없는 상황이라면 유용하겠죠?

    
    # 백업 파일 경로 확인 (예: /mnt/pve/backup-nfs/dump/vzdump-qemu-100-2023_10_26-02_00_01.vma.zst)
    # 새 VM ID 101로 복구 (기존 VM ID와 겹치지 않게)
    qmrestore /mnt/pve/backup-nfs/dump/vzdump-qemu-100-2023_10_26-02_00_01.vma.zst 101 --storage local-lvm
    
    # 만약 기존 VM ID 100에 덮어쓰려면 (기존 VM 삭제 후)
    # qmrestore /mnt/pve/backup-nfs/dump/vzdump-qemu-100-2023_10_26-02_00_01.vma.zst 100 --storage local-lvm --force
    

    --force 옵션은 기존 VM을 삭제하고 복구하는 거라서 정말 신중하게 사용해야 합니다!

    ⚠️ 주의사항 및 트러블슈팅: 삽질 경험 공유

    제가 13년 동안 삽질하면서 배웠던 Proxmox 데이터 보호에 대한 몇 가지 팁과 주의사항을 공유합니다. 홈랩이든 실제 서버든 똑같더라고요.

    백업 스토리지 용량 부족

    저도 처음엔 무작정 백업 돌렸다가 백업 스토리지가 꽉 차서 난리 났었죠. 😅 정기적으로 백업 스토리지 용량을 확인하고, Retention 정책을 잘 설정해서 오래된 백업본은 자동으로 삭제되도록 해야 합니다. 아니면 Proxmox Backup Server(PBS)를 쓰면 중복 제거(Deduplication) 기능 덕분에 용량 효율이 훨씬 좋아지더라고요. 이건 나중에 기회가 되면 더 자세히 다뤄볼게요.

    백업 일관성 (Consistency) 문제

    Snapshot 모드로 백업하면 VM이 실행 중인 상태에서 백업이 이루어지기 때문에 편리해요. 하지만 이 방식은 파일 시스템 일관성(Filesystem-consistent)은 보장하지만, 애플리케이션 일관성(Application-consistent)은 보장하지 못할 수 있거든요. 예를 들어, 데이터베이스 서버 같은 경우 백업 시점에 트랜잭션이 진행 중이었다면, 복구 후 데이터베이스에 문제가 생길 수도 있습니다. 중요한 서비스라면 백업 전에 잠시 서비스를 중단하거나, VM 내부에서 VSS(Volume Shadow Copy Service) 등을 활용하는 방법을 고려해야 합니다.

    네트워크 대역폭과 복구 시간

    백업이나 복구 시 네트워크 대역폭이 충분하지 않으면 시간이 오래 걸릴 수 있어요. 특히 대용량 VM을 복구할 때는 정말 답답하더라고요. 10GbE(기가비트 이더넷) 같은 고속 네트워크를 구축해두면 훨씬 쾌적합니다.

    VM ID 충돌

    복구 시 새 VM ID를 지정하지 않고, 이미 사용 중인 ID로 복구하려고 하면 에러가 발생해요. qmrestore 명령어를 쓸 때는 반드시 기존에 사용하지 않는 VM ID를 지정하거나, 정말 덮어써야 할 경우에만 --force 옵션을 사용해야 합니다.

    백업 및 복구 결과 확인 (검증)

    백업이 잘 됐는지, 복구된 VM이 제대로 작동하는지 확인하는 게 진짜 중요해요. 저는 예전에 백업은 잘 했는데, 복구 테스트를 안 해봤다가 나중에 문제가 생겨서 애먹었던 적이 있거든요. 백업만큼이나 복구 검증도 필수입니다!

    1. 백업 로그 확인: Proxmox 웹 GUI의 Datacenter > Task Log에서 백업 작업의 성공 여부를 확인할 수 있습니다. 오류가 발생했다면 로그를 자세히 살펴보세요.
    2. 복구된 VM 정상 작동 확인: 복구된 VM을 시작하고, 서비스가 정상적으로 올라오는지, 네트워크 연결은 잘 되는지, 데이터는 모두 유효한지 꼼꼼히 확인해야 합니다. 가능하다면 주기적으로 복구 테스트를 진행해보는 게 좋습니다.

    Proxmox VE 백업 작업 로그 및 성공 기록 확인 화면

    Proxmox 백업 모드별 장단점 비교

    Proxmox에서 VM 백업 시 선택할 수 있는 주요 모드들의 장단점을 정리해봤습니다. 어떤 상황에 어떤 모드를 쓰는 게 좋을지 판단하는 데 도움이 되실 거예요.

    백업 모드 (Mode) 설명 장점 단점
    Snapshot VM이 실행 중인 상태에서 스냅샷을 찍고 백업합니다. VM 서비스 중단 없음, 가장 편리함. 애플리케이션 일관성 보장 어려움, 스냅샷 생성/삭제 오버헤드.
    Suspend VM을 잠시 일시 중지(Suspend)한 후 백업합니다. 파일 시스템 일관성 보장, 스냅샷보다 안전. VM 서비스가 잠시 중단됨 (수 초 ~ 수십 초).
    Stop VM을 완전히 중지(Stop)한 후 백업합니다. 가장 높은 데이터 일관성 보장. VM 서비스가 백업 시간 동안 완전히 중단됨.

    대부분의 홈랩이나 중요도가 아주 높지 않은 서비스는 Snapshot 모드로도 충분해요. 하지만 금융 시스템처럼 데이터 일관성이 절대적으로 중요한 곳에서는 Stop 모드를 고려하거나, VM 내부에서 정교한 백업 스크립트를 돌려야 하겠죠.

    Proxmox VE 백업 모드별 장단점 비교 인포그래픽

    마무리: 데이터 보호는 기본 중의 기본입니다!

    오늘은 Proxmox VE 환경에서 VM 백업 및 복구에 대해 자세히 알아봤습니다. 제가 13년간 서버실에서 일하며 느낀 점은, 기술이 아무리 발전해도 데이터 보호의 중요성은 변치 않는다는 거예요. 백업은 주기적으로, 복구는 빠르게! 이 두 가지 원칙만 잘 지키면 소중한 데이터를 안전하게 지킬 수 있습니다.

    오늘 다룬 내용이 여러분의 Proxmox 환경 데이터 보호 전략을 세우는 데 큰 도움이 되었기를 바랍니다. 다음번에는 Proxmox Backup Server(PBS)를 활용한 더 강력한 백업 전략이나, Proxmox 클러스터 구성에 대한 이야기로 찾아올게요. 혹시 궁금한 점이나, 제가 겪었던 삽질 경험 중 더 듣고 싶은 이야기가 있다면 언제든 댓글로 남겨주세요! 😊

  • [Proxmox] Proxmox VE 백업 및 복원 전략: 안전한 가상 환경 운영 가이드

    [Proxmox] Proxmox VE 백업 및 복원 전략: 안전한 가상 환경 운영 가이드

    백업 없는 서버는 시한폭탄이나 마찬가지입니다

    13년 동안 인프라를 운영하면서 가장 많이 들은 말이 뭔지 아세요? “백업은 있는데 복원은 해본 적이 없어요.” 이거거든요. 솔직히 저도 초반에 그랬습니다. 백업 스크립트 돌려놓고 ‘됐겠지’ 하고 넘어갔다가… 실제로 장애가 났을 때 복원이 안 되는 경험을 한 번 해보고 나서야 정신이 번쩍 들었죠.

    Proxmox VE(프록스목스 가상 환경) 환경에서 VM(가상 머신)이나 LXC 컨테이너를 운영 중이라면, Proxmox VE 백업 전략은 선택이 아니라 필수입니다. 홈랩이든 소규모 프로덕션이든 마찬가지예요. 오늘은 제가 실제로 구성하고 운영 중인 Proxmox VE 백업 및 복원 전략을 처음부터 끝까지 풀어드리겠습니다.

    Proxmox VE 백업 전략 전체 아키텍처 구성도 — VM, 로컬 스토리지, NAS, 클라우드 백업 흐름

    ▲ Proxmox VE 백업 전략의 전체 구성도 — VM 백업, 스냅샷, 외부 스토리지까지 한눈에 볼 수 있습니다.

    Proxmox VE 백업 방식, 뭐가 다른 건가요?

    Proxmox VE에서 제공하는 데이터 보호 방식은 크게 세 가지입니다. 처음 접하면 헷갈리는데, 쉽게 정리해드릴게요.

    1. 스냅샷 (Snapshot) — 빠르지만 독립적이지 않다

    스냅샷은 특정 시점의 VM 상태를 기록해두는 기능입니다. 쉽게 말해서, 게임의 세이브 포인트 같은 거예요. 디스크 상태뿐 아니라 RAM 상태까지 저장할 수 있어서 그 순간 그대로 돌아올 수 있습니다. 단, 스냅샷은 원본 스토리지에 의존하기 때문에 스토리지 자체가 날아가면 함께 사라집니다. 이 점을 반드시 기억해야 해요.

    2. 백업 (Backup/vzdump) — 진짜 의미의 백업

    Proxmox VE의 vzdump 도구를 사용해서 VM이나 LXC의 전체 이미지를 별도 파일로 추출하는 방식입니다. 이 파일은 독립적으로 존재하기 때문에 원본이 날아가도 복원이 가능합니다. 저장 형식은 .vma(VM용) 또는 .tar(LXC용)이고, 압축 옵션을 선택할 수 있습니다.

    3. 복제 (Replication) — HA 구성을 위한 실시간 동기화

    Proxmox VE 클러스터 환경에서 노드 간에 ZFS 스냅샷 기반으로 데이터를 동기화하는 기능입니다. 고가용성(HA, High Availability) 구성에 주로 쓰이고, 단일 노드 홈랩에서는 크게 쓸 일이 없습니다.

    방식 독립성 속도 용도 권장 상황
    스냅샷 ❌ 원본 의존 ⚡ 매우 빠름 작업 전 임시 저장 업데이트, 설정 변경 전
    vzdump 백업 ✅ 독립적 🐢 느림 재해 복구(DR) 정기 백업, 장기 보관
    복제 ✅ 노드 분리 ⚡ 빠름(증분) HA 구성 클러스터 환경

    실전 구현: vzdump로 VM 백업 설정하기

    자, 이제 실제로 설정해봅시다. Proxmox VE 웹 UI와 CLI 양쪽 다 설명드릴게요. 저는 주로 CLI를 쓰는 편인데, 자동화하기 훨씬 편하거든요.

    백업 스토리지 추가

    먼저 백업 파일을 저장할 스토리지를 지정해야 합니다. 웹 UI 기준으로는 Datacenter → Storage → Add에서 추가할 수 있어요. NFS나 SMB/CIFS, 로컬 디렉토리 등 다양한 방식을 지원합니다.

    CLI로 NFS 스토리지를 추가하는 예시입니다:

    # NFS 백업 스토리지 추가
    pvesm add nfs backup-nfs \
      --server 192.168.1.100 \
      --export /mnt/nas/proxmox-backup \
      --content backup \
      --maxfiles 3
    
    # 추가된 스토리지 확인
    pvesm status

    여기서 --maxfiles 3은 백업 파일을 최대 3개까지 보관하고, 초과하면 오래된 것부터 자동 삭제한다는 뜻입니다. 스토리지가 부족할 때 꼭 설정해줘야 해요. 저 처음에 이거 안 해놨다가 NAS가 꽉 차서 백업이 실패하는 상황을 겪었거든요.

    수동 백업 실행 (CLI)

    # 특정 VM 백업 (VM ID: 100)
    vzdump 100 --storage backup-nfs --compress zstd --mode snapshot
    
    # 모든 VM 백업
    vzdump --all --storage backup-nfs --compress zstd --mode snapshot
    
    # LXC 컨테이너 백업 (CT ID: 200)
    vzdump 200 --storage backup-nfs --compress zstd --mode suspend

    백업 모드(--mode) 옵션이 중요합니다. 세 가지가 있어요:

    • snapshot: VM을 계속 실행하면서 스냅샷 기반으로 Proxmox VE 백업을 진행. 서비스 중단 없음. 권장
    • suspend: 백업 중 VM을 일시 정지. 데이터 일관성은 좋지만 서비스 잠깐 중단
    • stop: VM을 완전히 중지 후 백업. 가장 안전하지만 다운타임 발생

    자동 백업 스케줄 설정

    Proxmox VE 웹 UI에서 Datacenter → Backup → Add로 스케줄을 만들 수 있습니다. 하지만 저는 설정 파일을 직접 확인하고 관리하는 걸 더 좋아해요. 설정 파일 위치는 여기입니다:

    # 백업 스케줄 설정 파일
    cat /etc/cron.d/vzdump
    
    # 예시: 매일 새벽 2시에 모든 VM 백업
    0 2 * * * root /usr/bin/vzdump --all --storage backup-nfs \
      --compress zstd --mode snapshot \
      --mailto [email protected] \
      --quiet 1

    웹 UI에서 만든 스케줄은 /etc/pve/jobs.cfg 파일에 저장됩니다. 확인해보면 이런 형태예요:

    vzdump: job-daily-backup
    	compress zstd
    	day mon,tue,wed,thu,fri,sat,sun
    	enabled 1
    	mailnotification always
    	mode snapshot
    	node pve-node01
    	starttime 02:00
    	storage backup-nfs
    Proxmox VE 웹 UI 자동 백업 스케줄 설정 화면 예시

    ▲ Proxmox VE 웹 UI에서 자동 백업 스케줄을 설정하는 화면 — 스토리지, 시간, 압축 방식을 직관적으로 설정할 수 있습니다.

    복원(Restore) 실전 가이드

    백업만큼 중요한 게 복원 연습입니다. 실제로 장애 상황에서 손이 떨리면서 복원 명령어 치는 것보다, 미리 한 번이라도 해봤냐 안 해봤냐가 엄청난 차이를 만들어요.

    웹 UI로 복원하기

    1. Proxmox VE 웹 UI 접속 → 왼쪽 패널에서 백업 스토리지 선택
    2. Content 탭 클릭 → 백업 파일 목록 확인
    3. 복원할 백업 파일 선택 → Restore 버튼 클릭
    4. 복원할 노드, VM ID, 스토리지 선택 후 Restore 실행

    CLI로 복원하기

    # 백업 파일 목록 확인
    pvesm list backup-nfs
    
    # VM 복원 (백업 파일에서 VM ID 101로 복원)
    qmrestore /mnt/pve/backup-nfs/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 101
    
    # 기존 VM을 덮어쓰면서 복원 (같은 ID 사용)
    qmrestore /mnt/pve/backup-nfs/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 100 --force
    
    # LXC 컨테이너 복원
    pct restore 201 /mnt/pve/backup-nfs/dump/vzdump-lxc-200-2024_01_15-02_00_00.tar.zst \
      --storage local-lvm

    복원 후에는 반드시 VM을 시작해서 서비스가 정상 동작하는지 확인하세요. 저는 복원 테스트할 때 항상 다른 VM ID로 먼저 복원해보고, 내부에서 서비스 상태 확인한 다음에 실제 교체하는 방식을 씁니다.

    스냅샷 활용 전략 — 올바르게 쓰는 법

    스냅샷은 정말 편리한 기능인데, 잘못 쓰면 오히려 독이 됩니다. 제가 봐온 가장 흔한 실수가 스냅샷을 백업 대용으로 쓰는 거예요.

    스냅샷 생성 및 관리

    # VM 스냅샷 생성 (RAM 상태 포함)
    qm snapshot 100 pre-update-20240115 \
      --description "커널 업데이트 전 스냅샷" \
      --vmstate 1
    
    # 스냅샷 목록 확인
    qm listsnapshot 100
    
    # 스냅샷으로 롤백
    qm rollback 100 pre-update-20240115
    
    # 스냅샷 삭제
    qm delsnapshot 100 pre-update-20240115

    💡 팁: 스냅샷이 쌓이면 VM 성능에 영향을 줄 수 있습니다. 특히 QCOW2 포맷에서 스냅샷 체인이 길어지면 I/O 성능이 떨어지거든요. 작업이 끝나면 반드시 필요 없는 스냅샷은 지워주세요.

    스냅샷 vs 백업 — 언제 뭘 써야 하나

    • ✅ 스냅샷 사용 시점: 패키지 업데이트 전, 설정 변경 전, 테스트 작업 전 (단기 롤백 목적)
    • ✅ 백업 사용 시점: 정기적 데이터 보호, 장기 보관, 다른 서버로 이전, 재해 복구(DR, Disaster Recovery)

    ⚠️ 트러블슈팅 — 제가 직접 겪은 문제들

    자, 이제 진짜 중요한 부분입니다. Proxmox VE 백업 설정하면서 제가 삽질했던 경험들을 공유할게요.

    문제 1: 백업 중 “lock file exists” 오류

    백업이 중간에 실패하면 락 파일이 남아서 다음 백업도 실패하는 경우가 있습니다.

    # 락 파일 확인
    ls /var/run/vzdump.lock
    
    # 강제 삭제 (프로세스가 없을 때만!)
    rm /var/run/vzdump.lock
    
    # vzdump 프로세스 확인
    ps aux | grep vzdump

    문제 2: NFS 스토리지 백업 실패

    NFS 마운트 포인트 권한 문제로 백업이 실패하는 경우가 많습니다. NFS 서버 설정에서 no_root_squash 옵션이 빠져 있으면 root 권한으로 쓰기가 안 돼요.

    # NFS 서버 측 /etc/exports 설정 예시
    /mnt/nas/proxmox-backup 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
    
    # NFS 서버에서 exports 재적용
    exportfs -ra
    
    # Proxmox에서 마운트 상태 확인
    mount | grep nfs
    df -h

    문제 3: 스냅샷 상태에서 백업 실패

    VM에 스냅샷이 남아 있는 상태에서 mode=snapshot으로 백업하면 오류가 나는 경우가 있습니다. 특히 QCOW2 포맷에서 발생하는데, 이럴 때는 mode=suspend나 mode=stop을 시도해보세요.

    문제 4: 백업 파일 무결성 검증

    백업 파일이 제대로 됐는지 확인하는 방법도 알아두면 좋습니다.

    # 백업 파일 무결성 검사
    vzdump --verify /mnt/pve/backup-nfs/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst
    
    # zstd 압축 파일 테스트
    zstd --test /mnt/pve/backup-nfs/dump/vzdump-qemu-100-2024_01_15-02_00_00.vma.zst
    Proxmox VE 백업 무결성 검증 및 복원 테스트 결과 대시보드

    ▲ 백업 무결성 검증 및 복원 테스트 결과 확인 — 정기적인 복원 테스트가 진짜 재해 복구의 핵심입니다.

    3-2-1 백업 규칙 — 홈랩에도 적용하세요

    인프라 업계에서 오랫동안 통용되는 백업 황금 규칙이 있습니다. 3-2-1 규칙이에요.

    • 📁 3: 데이터 복사본을 최소 3개 보관
    • 💾 2: 2가지 이상의 서로 다른 미디어/스토리지에 저장
    • 🌍 1: 1개는 오프사이트(원격 위치)에 보관

    홈랩 기준으로 현실적인 구성을 제안드리면:

    복사본 위치 방법
    원본 Proxmox 노드 로컬 스토리지 운영 중인 VM 자체
    2번째 로컬 NAS vzdump → NFS/SMB 백업
    3번째 클라우드 또는 외장 드라이브 rclone으로 클라우드 동기화

    클라우드 동기화는 rclone을 이용하면 편리합니다. Backblaze B2나 AWS S3 같은 저렴한 오브젝트 스토리지와 연동할 수 있거든요.

    # rclone으로 백업 파일 클라우드 동기화 예시
    rclone sync /mnt/pve/backup-nfs/dump/ remote:proxmox-backup/ \
      --include "*.vma.zst" \
      --min-age 1h \
      --log-file /var/log/rclone-backup.log
    
    # cron에 등록 (매일 새벽 4시 실행)
    echo "0 4 * * * root rclone sync /mnt/pve/backup-nfs/dump/ remote:proxmox-backup/ --include '*.vma.zst' --min-age 1h" >> /etc/cron.d/rclone-backup

    재해 복구(DR) 시나리오별 대응 전략

    마지막으로, 실제 장애 상황별로 어떻게 대응해야 하는지 정리해드릴게요. 이걸 미리 문서화해두면 실제 장애 시 훨씬 침착하게 대응할 수 있습니다.

    시나리오 1: VM 데이터 손상 (단일 VM 문제)

    1. 해당 VM 중지
    2. 최신 백업 파일 확인: pvesm list backup-nfs
    3. 새 VM ID로 복원 후 데이터 확인
    4. 문제없으면 기존 VM 삭제 후 ID 교체

    시나리오 2: Proxmox 노드 장애 (하드웨어 교체 필요)

    1. 새 하드웨어에 동일 버전 Proxmox VE 설치
    2. 백업 스토리지(NAS) 연결 및 스토리지 추가
    3. 모든 VM을 백업에서 순차 복원
    4. 네트워크 설정 재확인 및 서비스 점검

    시나리오 3: 스토리지 전체 장애

    1. 클라우드 또는 외장 드라이브에 보관된 3번째 백업 사용
    2. 새 스토리지 준비 후 백업 파일 복사
    3. Proxmox에서 스토리지 재구성 후 복원 진행
    Proxmox VE 재해 복구 전략 3-2-1 백업 규칙 인포그래픽

    ▲ 재해 복구 전략 요약 인포그래픽 — 3-2-1 백업 규칙과 시나리오별 대응 흐름을 한눈에 정리했습니다.

    자주 묻는 질문 (FAQ)

    Q. 백업 중에 VM을 사용해도 되나요?

    네, mode=snapshot 옵션을 사용하면 백업 중에도 VM이 계속 실행됩니다. 다만 데이터베이스 서버처럼 트랜잭션이 많은 경우엔 애플리케이션 레벨의 백업도 병행하는 걸 권장합니다.

    Q. 압축 형식은 뭘 써야 하나요?

    Proxmox VE 7.x 이상에서는 zstd를 추천합니다. gzip보다 훨씬 빠르면서 압축률도 비슷하거든요. 구버전에서는 lzo가 속도가 빠른 편입니다.

    Q. 백업 파일 크기가 너무 큰데 줄일 방법이 있나요?

    VM 내부에서 불필요한 파일을 정리하고 디스크 빈 공간을 0으로 채운 후 백업하면 압축률이 올라갑니다. Linux VM 기준으로 dd if=/dev/zero of=/tmp/zero.file; rm /tmp/zero.file 실행 후 백업해보세요.

    마무리 — 백업은 문화입니다

    오늘 Proxmox VE 백업과 복원 전략을 처음부터 끝까지 다뤄봤는데요. 핵심만 다시 정리하면:

    • ✅ 스냅샷은 단기 롤백, vzdump 백업은 장기 보관용으로 구분해서 사용하세요
    • ✅ 3-2-1 규칙을 홈랩에도 적용하세요 — 클라우드 동기화가 생각보다 저렴합니다
    • ✅ 복원 테스트를 정기적으로 해보세요 — 최소 분기에 한 번은 실제로 복원해보는 걸 강력 추천합니다
    • ✅ 백업 알림 설정을 꼭 해두세요 — 실패했는데 모르고 있는 게 제일 위험합니다

    혹시 Proxmox VE 클러스터 환경에서의 복제(Replication) 설정이나 Proxmox Backup Server(PBS) 연동에 대해 궁금하신 분들은 다음 글에서 자세히 다룰 예정이니 기대해주세요. PBS는 중복 제거(deduplication) 기능이 있어서 스토리지 효율이 훨씬 좋거든요.

    13년 동안 서버 운영하면서 배운 가장 중요한 교훈 하나를 드리고 마칠게요. “백업은 있는데 복원은 안 된다”는 건 백업이 없는 것과 같습니다. 오늘 바로 복원 테스트 한 번 해보시는 거 어떨까요? 🎉