Proxmox Backup and Recovery

3 Nov 2026, 18:2122 min readby ITYantra Admin

Complete guide to Proxmox VE backup and recovery including backup jobs, Proxmox Backup Server, restoration, and disaster recovery.

# Proxmox Backup and Recovery

Introduction

Backup and recovery are critical components of any virtualization strategy. Proxmox VE provides built-in backup functionality for virtual machines and containers, with integration to Proxmox Backup Server (PBS) for enterprise-grade deduplicated, encrypted, and incremental backups.

This tutorial covers Proxmox backup configuration, backup jobs, Proxmox Backup Server setup, restoration procedures, backup verification, and disaster recovery planning.

By the end of this guide, you will be able to configure and manage backups for Proxmox VE VMs and containers, perform restorations, and implement a disaster recovery strategy.

Technical Background

Backup Types

| Backup Type | Description | Use Case | |-------------|-------------|----------| | Full backup | Complete VM/container image | Weekly or monthly backups | | Incremental backup | Changed blocks only (requires PBS) | Daily backups with PBS | | Snapshot | Point-in-time state | Pre-update snapshots | | Backup file | Compressed archive (vma, tar.zst) | Off-site storage |

Backup Modes

| Mode | Description | Consistency | |------|-------------|-------------| | Stop | Shuts down VM before backup | Crash-consistent | | Suspend | Suspends VM during backup | Crash-consistent | | Snapshot | Live backup with snapshot | Crash-consistent (with QEMU guest agent: application-consistent) |

Proxmox Backup Server (PBS)

PBS is a dedicated server for centralized backup storage with:

  • Deduplication (fixed and variable chunk)
  • Encryption (AES-256)
  • Incremental backups
  • Backup verification
  • Multi-tenant support
  • Web interface and API

Prerequisites

  • Proxmox VE installed and operational
  • Storage for backups (local disk, NFS, or Proxmox Backup Server)
  • Sufficient disk space for backup retention
  • Network connectivity between Proxmox and backup storage

Architecture

Backup Architecture

Proxmox VE Host
├── VM 100 (running)
├── VM 101 (running)
└── Backup Job (daily, 02:00)
    │
    ├── Snapshot → Compress → Store
    │
    └── Backup Storage
        ├── local (directory)
        ├── nfs-backup (NFS share)
        └── pbs (Proxmox Backup Server)
graph TB
    subgraph Proxmox VE
        VM1[VM 100]
        VM2[VM 101]
        BJ[Backup Job]
    end
    subgraph Backup Storage
        Local[Local Directory]
        NFS[NFS Share]
        PBS[Proxmox Backup Server]
    end
    
    VM1 --> BJ
    VM2 --> BJ
    BJ --> Local
    BJ --> NFS
    BJ --> PBS
    
    PBS --> Restore[Restore Operations]
    NFS --> Restore
    Local --> Restore

Backup Retention Example

Retention Policy:
  Daily: 7 days
  Weekly: 4 weeks
  Monthly: 12 months
  Yearly: 5 years

Step-by-Step Implementation

Step 1: Configure Backup Storage

**Purpose**: Set up storage destination for backup files.

**Commands** (directory backup storage):

# Create backup directory
mkdir -p /mnt/backups/vzdump

# Add directory storage for backups
pvesm add dir local-backup --path /mnt/backups/vzdump --content backup

# Verify storage
pvesm status

**Configuration files**: `/etc/pve/storage.cfg`

**Explanation**: Backup storage must have the `backup` content type. Use separate physical storage from VM disks for disaster recovery protection.

**Expected output**: `local-backup` storage available for backup jobs.

**Verification**:

pvesm status
# Shows local-backup with content type "backup"

Step 2: Create Backup Job

**Purpose**: Schedule automated backups for VMs and containers.

**Commands** (via web interface or `/etc/pve/vzdump.conf`):

# Global backup configuration defaults
cat /etc/pve/vzdump.conf

**Example backup job configuration** (via web interface: Datacenter → Backup):

Backup job: Daily VM Backup
Schedule: 0 2 * * * (daily at 2:00 AM)
Nodes: pve01, pve02, pve03
Storage: local-backup
Mode: snapshot
Compression: zstd
Retention:
  Daily: 7
  Weekly: 4
  Monthly: 12
Include VMs: 100, 101, 102
Exclude VMs: 9000 (templates)

**Commands** (create backup job via API or edit config):

# Example: manually trigger backup of VM 100
vzdump 100 --mode snapshot --compress zstd --storage local-backup

**Explanation**: Snapshot mode provides live backups without shutting down VMs. `zstd` compression offers good compression ratio with reasonable CPU usage.

**Expected output**: Backup job scheduled; backups run automatically.

**Verification**:

# List backup files
pvesm list local-backup --content backup
# Or check /mnt/backups/vzdump/

Step 3: Configure Proxmox Backup Server (PBS)

**Purpose**: Set up enterprise backup server with deduplication and encryption.

**Commands** (on PBS server):

# Install Proxmox Backup Server (separate installation)
# After installation, access web interface at https://pbs-host:8007

# Create datastore
pbs-dir datastore create --name vm-backups --path /mnt/backups/vm-backups

# Create backup user
pbs-user create backup-admin@pbs
pbs-acl add / -user backup-admin@pbs -role Admin

**Commands** (on Proxmox VE, add PBS storage):

# Add PBS storage to Proxmox
pvesm add pbsbackup pbs-backup --server 192.168.1.60 --datastore vm-backups --username backup-admin@pbs --password <password>

# Verify
pvesm status

**Explanation**: PBS provides deduplication across backups, encryption at rest, and incremental backup support. Multiple Proxmox VE hosts can back up to the same PBS.

**Expected output**: PBS storage added to Proxmox; backup jobs can target PBS.

**Verification**:

pvesm status
# Shows pbs-backup storage active

Step 4: Perform Manual Backup

**Purpose**: Create an on-demand backup outside the scheduled job.

**Commands**:

# Backup VM 100 with snapshot mode
vzdump 100 --mode snapshot --compress zstd --storage local-backup --mailto admin@ityantra.lab

# Backup all VMs on a node
vzdump --all --mode snapshot --compress zstd --storage local-backup

# Backup specific VMs
vzdump 100 101 102 --mode snapshot --storage local-backup

**Expected output**: Backup file created (e.g., `vzdump-qemu-100-2024_01_15-02_00_00.vma.zst`).

**Verification**:

ls -lh /mnt/backups/vzdump/
pvesm list local-backup --content backup

Step 5: Restore VM from Backup

**Purpose**: Recover a virtual machine from backup.

**Commands**:

# List available backups for VM 100
vzdump --list local-backup --vmid 100

# Restore VM 100 from backup
qmrestore local-backup:vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 100

# Restore with new VM ID
qmrestore local-backup:vzdump-qemu-100-2024_01_15-02_00_00.vma.zst 200

# Start restored VM
qm start 200

**Explanation**: `qmrestore` restores a QEMU VM backup. The target VM ID must not exist or will be overwritten (with `--force`).

**Expected output**: VM restored with original configuration and disks.

**Verification**:

qm list
# Shows restored VM
qm start 200
# VM boots successfully

Step 6: Restore Container from Backup

**Purpose**: Recover an LXC container from backup.

**Commands**:

# List container backups
pct list backups  # or via web interface

# Restore container 101
pctrestore local-backup:vzdump-lxc-101-2024_01_15-02_00_00.tar.zst 101

# Start restored container
pct start 101

**Expected output**: Container restored and running.

**Verification**:

pct list
# Shows restored container

Step 7: Verify Backup Integrity

**Purpose**: Ensure backups can be successfully restored.

**Commands** (PBS verification):

# Verify backup on PBS
proxmox-backup-client verify vm-backups:vm/100

# Or via Proxmox web interface: Datacenter → Backup → Verify

**Explanation**: Backup verification reads backup chunks and validates checksums, ensuring data integrity before a disaster occurs.

**Expected output**: Verification passes with no errors.

**Verification**:

proxmox-backup-client verify vm-backups:vm/100
# Shows: verify OK

Configuration Examples

Backup Job Configuration (Datacenter → Backup)

Schedule: 0 2 * * *
Days of week: Mon, Tue, Wed, Thu, Fri, Sat, Sun
Storage: pbs-backup
Mode: Snapshot
Compression: ZSTD
Retention:
  keep-daily: 7
  keep-weekly: 4
  keep-monthly: 12
  keep-yearly: 5
Notification: admin@ityantra.lab

PBS Datastore Configuration

Datastore: vm-backups
Path: /mnt/backups/vm-backups
Content: backup
Prune options: keep-daily=7, keep-weekly=4, keep-monthly=12
Authentication: TLS

Backup Schedule Examples

# Daily at 2 AM
0 2 * * *

# Weekly on Sunday at 1 AM
0 1 * * 0

# Monthly on 1st at 1 AM
0 1 1 * *

Email Notification Configuration

# /etc/pve/vzdump.conf
mailto: admin@ityantra.lab

Verification

Backup Verification Commands

pvesm list <storage> --content backup     -- List backup files
vzdump --list <storage> --vmid <vmid>     -- List backups for VM
proxmox-backup-client verify <ds>:vm/<id> -- Verify PBS backup integrity
qmrestore --verify <backup> <vmid>        -- Dry-run restore verification

Expected Results

  • Backup files listed with dates and sizes
  • Verification reports all chunks valid
  • Test restores boot successfully
  • Backup jobs complete without errors
  • Email notifications sent on completion/failure

Restore Testing Checklist

[ ] Select backup file
[ ] Choose restore target (same or new VM ID)
[ ] Verify disk restoration
[ ] Verify network configuration
[ ] Start restored VM
[ ] Verify guest OS boots
[ ] Verify application functionality
[ ] Document restore time

Troubleshooting

| Symptom | Possible Cause | Diagnostic Command | Corrective Action | Verification | |---------|---------------|-------------------|-------------------|--------------| | Backup job fails | Storage full or unreachable | `pvesm status` | Free space; fix storage | Backup succeeds | | PBS authentication failed | Wrong username/password | PBS web interface | Reset password; verify ACL | PBS storage added | | VM locked during backup | Previous backup incomplete | `qm status <vmid>` | Unlock VM: `qm unlock <vmid>` | Backup runs | | Restore fails - VM ID exists | Target VM already exists | `qm list` | Use different VM ID or `--force` | Restore succeeds | | Slow backup performance | Compression too high | Backup logs | Use `lzo` or `none` compression | Faster backups | | Backup verification fails | Corrupted backup chunks | `proxmox-backup-client verify` | Re-create backup; check storage health | Verification passes | | PBS not reachable | Network or firewall | `ping <pbs-host>` | Fix network; open port 8007 | PBS accessible | | Deduplication not working | Different backup modes | PBS datastore config | Use consistent backup mode | Deduplication active | | Retention not pruning old backups | Incorrect retention settings | Backup job config | Verify keep-daily/weekly/monthly | Old backups removed |

Best Practices

1. **Follow 3-2-1 rule**: 3 copies of data, 2 different media, 1 off-site copy. 2. **Use PBS for production**: Deduplication, encryption, and incremental backups save storage and bandwidth. 3. **Test restores regularly**: Verify backups are actually recoverable; don't wait for a disaster. 4. **Backup templates too**: Templates are configuration assets that need protection. 5. **Use snapshot mode**: Minimizes VM downtime during backups. 6. **Encrypt backups**: Protect sensitive data at rest, especially off-site backups. 7. **Monitor backup jobs**: Set up email notifications and alerting for failures. 8. **Document recovery procedures**: Write step-by-step restore procedures for common scenarios. 9. **Test disaster recovery**: Perform full DR tests quarterly or annually. 10. **Retain multiple backup generations**: Protect against ransomware and corrupted backups.

Conclusion

Proxmox backup and recovery provides multiple layers of data protection from simple directory backups to enterprise Proxmox Backup Server with deduplication and encryption. Regular backups, tested restoration procedures, and proper retention policies form the foundation of a resilient virtualization environment. Implement backup verification and regular disaster recovery testing to ensure your backups are truly recoverable when needed.

References

  • Proxmox VE Backup and Restore (https://pve.proxmox.com/wiki/Backup_and_Restore)
  • Proxmox Backup Server Documentation (https://pbs.proxmox.com/docs/)
  • Proxmox VE vzdump (https://pve.proxmox.com/wiki/Backup_and_Restore#vzdump)
  • Proxmox Backup Server Administration Guide (https://pbs.proxmox.com/docs/admin-guide.html)
  • 3-2-1 Backup Rule (https://www.veeam.com/)
  • NIST SP 800-34 Rev. 1 - Contingency Planning Guide (https://csrc.nist.gov/)
#proxmox#backup#recovery#proxmox-backup-server#disaster-recovery#virtualization#proxmox-ve#backup-strategy