Backups are not optional. Bit rot, accidental deletion, and ransomware all target hypervisor storage. Proxmox VE offers two backup paths: the built-in vzdump and the dedicated Proxmox Backup Server (PBS).
Why Backup Matters
| Threat | Impact | Mitigation |
|---|---|---|
| Bit rot | Silent single-bit corruption | Integrity-verified (PBS) |
| Accidental deletion | VM lost instantly | Retention + off-site |
| Ransomware | Encrypted disks | Immutable off-site backups |
vzdump: The Built-In Tool
vzdump creates consistent backups of VMs and containers. For VMs, install the Qemu Guest Agent so vzdump can quiesce the filesystem before snapshotting:
apt install qemu-guest-agent && systemctl enable --now qemu-guest-agent
Containers use suspend mode (brief SIGSTOP). The config file is /etc/vzdump.conf:
compress: zstd
mode: snapshot
dumpdir: /var/lib/vz/dump
| Parameter | Options | Best Pick |
|---|---|---|
compress | lzo, gzip, zstd | zstd |
mode | snapshot, stop, suspend | snapshot (with Qemu Agent) |
encrypt | 0 / 1 | 1 for off-site |
Scheduling & Retention
In the UI: Datacenter → Backup → new job with cron schedule. Prune old backups:
proxmox-backup-manager prune --keep-daily 7 --keep-weekly 4 --keep-monthly 3
Restore
Full VM: select backup → Restore. Individual files:
proxmox-file-restore mount <backup-volume> <backup-id>
proxmox-file-restore unmount <backup-volume>
Proxmox Backup Server (PBS)
PBS adds deduplication, encryption, and integrity verification far beyond vzdump alone.
Setup
ISO: download from proxmox.com. apt on Debian:
echo "deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription" > /etc/apt/sources.list.d/pbs.list
apt update && apt install proxmox-backup-server
Create a datastore:
proxmox-backup-manager datastore create backup-pool --path /backup/pool
In the Proxmox UI: Datacenter → Storage → Add → Proxmox Backup Server, enter host, token, and datastore.
Deduplication
PBS uses chunk-based client-side dedup. A 100 GB VM backed up daily:
| Day | vzdump | PBS |
|---|---|---|
| 1 | ~100 GB | ~100 GB |
| 2 | ~100 GB | ~2–5 GB |
| 30-day total | ~3 TB | ~200–300 GB |
Sync & GC
Off-site replication via sync jobs:
proxmox-backup-manager sync-job create --remote <host> --remote-datastore <ds> --local-datastore <ds>
Run garbage collection weekly to reclaim orphaned chunks:
proxmox-backup-manager garbage-collection start <datastore>
Off-Site Strategies
| Method | RPO | RTO |
|---|---|---|
| rsync to remote server | 1–24 h | Medium |
| PBS remote sync | 1–24 h | Low |
| S3 / Backblaze | Configurable | High |
Combine local PBS for fast restore + remote sync for disaster tolerance.
Disaster Recovery: Node Replacement
When a node dies:
- Install Proxmox VE on new hardware.
- Join cluster:
pvecm add <cluster-ip> - Re-add PBS storage in the UI.
- Restore VMs from backup and verify.
A verified backup turns days into hours.
Summary
- Use vzdump with
zstdandsnapshotmode for simple setups. - Deploy PBS for dedup, integrity, and incremental forever.
- Configure prune retention — never let backups grow unbounded.
- Sync off-site for disaster tolerance.
- Test restores quarterly.
