Choosing Full vs Incremental Backups in Proxmox VE with vzdump
Learn how to combine full and incremental Proxmox VE backups with vzdump, set a retention policy, and verify the backup chain to balance storage efficiency with restore reliability.
03 Oct 2025, 04:51 UTC

Problem Statement
When running a Proxmox VE cluster, you need backups that are both reliable and efficient. Taking a full backup of every VM each night can fill storage quickly, while relying only on incremental backups risks losing the entire chain if the base backup becomes corrupted.
How vzdump Handles Full and Incremental Modes
vzdump can create a point‑in‑time snapshot using LVM or filesystem‑level dumps, then store the result as a .vma file plus a metadata .conf file. In full mode the entire disk image is copied each run. In incremental mode only the blocks that changed since the last backup are saved, which reduces I/O and storage but requires an unbroken chain of previous backups.
Worked Example: Setting Up a Retention Policy
Suppose you want a weekly full backup and daily incremental backups for VM ID 101, keeping the last four weeks of data.
# /etc/vzdump.conf
# Weekly full backup on Sunday at 01:00
schedule 01:00,weekly
# Daily incremental backup at 02:00 (except Sunday)
schedule 02:00,daily
# Target storage (local LVM pool)
storage local-lvm
# Keep 4 full backups and associated increments
maxfiles 4
With this configuration, vzdump will:
- Run a full backup of VM 101 every Sunday at 01:00.
- Run an incremental backup every other day at 02:00, linking to the most recent full backup.
- Automatically prune older backups once the total number of files exceeds
maxfiles, preserving the required chain.
Trade‑offs and Verification Steps
While incremental backups save space, they introduce a dependency chain. If the Sunday full backup is corrupted, all subsequent increments for that week cannot be restored. To mitigate this risk:
- Store the weekly full backup on a separate, immutable snapshot (e.g., a read‑only CephFS export).
- After each backup, check the log for success messages.
- Periodically perform a test restore of the most recent full backup and apply the latest increment to verify the chain.
Example verification commands (run as root on the Proxmox host):
# List recent backups for VM 101
ls -l /var/lib/vz/dump/*vzdump-101*
# Check the log for the last run
grep vzdump /var/log/vzdump.log | tail -20
# Test restore to a new VM ID 200 using the latest full backup
vzdump --restore /var/lib/vz/dump/vzdump-101-20261015.vma 200 --storage local-lvm
A successful test is confirmed when the restored VM boots and the application data matches the source.
Actionable Next Steps
- Decide on a backup window that avoids peak workload periods.
- Edit
/etc/vzdump.confwith a schedule that matches your retention needs (full + incremental). - Run a manual full backup (
vzdump 101 --mode snapshot --storage local-lvm) and verify the output. - Enable incremental runs and monitor
maxfilespruning behavior. - Schedule a monthly restore test to ensure the backup chain remains intact.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.