Skip to content

How to Back Up and Restore Proxmox VMs

Back up and restore Proxmox VMs with vzdump: snapshot vs suspend vs stop modes, scheduled jobs, storage targets, restoring to a new VMID, and retention rules.

SDSysadmin Desk July 7, 2026 9 min read
Diagram-style cover showing a Proxmox VM being written to a backup file with snapshot, suspend, and stop modes, and an arrow restoring it back to a host

Proxmox VE has a backup engine built in. It’s called vzdump, it backs up both KVM virtual machines and LXC containers, and you drive it from the web GUI or the command line. There’s nothing to install and no third-party agent inside the guest.

This guide covers the parts that actually matter day to day: the three backup modes and when each one is safe, how to schedule jobs, where to send the files, how to restore a VM (including to a fresh VMID for testing), and how retention keeps your storage from filling up. The steps target Proxmox VE 8.x; the 7.x workflow is nearly identical apart from a few menu labels.

One thing to settle up front: a backup that lives only on the same host as the VM is a convenience, not a disaster recovery plan. If the host dies, both go with it. Plan for at least one copy on separate storage.

The three backup modes

Every vzdump backup runs in one of three modes. The mode decides how the disk is captured and how much the running VM is disturbed.

vzdump backup modes for VMs

Snapshot VM keeps running. Proxmox takes a point-in-time copy of the disk and backs that up. Zero downtime, but the guest filesystem can be mid-write unless the QEMU guest agent is installed to flush it.
Suspend VM is paused for the duration of the backup, then resumed. More consistent than a bare snapshot, but the workload is frozen the whole time.
Stop VM is shut down cleanly, backed up, then powered back on. Fully consistent and simple, at the cost of real downtime.

For most live systems, snapshot mode is the right default — no downtime, and with the guest agent it’s consistent enough for general workloads. Stop mode is the safe choice for anything you can’t risk catching mid-write, like a database server without application-aware quiescing, when a short maintenance window is acceptable. Suspend mode is the odd one out; it’s mostly useful for containers or VMs where snapshot isn’t available on the underlying storage.

Run a one-off backup

Before automating anything, take a manual backup so you know the storage target works.

In the GUI, select the VM, open the Backup tab, and click Backup now. Choose the target storage, the mode, and the compression, then start it. The task log streams as it runs.

From the command line, vzdump takes the VMID:

# back up VM 101 to local storage, snapshot mode, zstd compression
vzdump 101 --storage local --mode snapshot --compress zstd

You can back up several VMs at once, or every VM on the node:

# back up specific VMs
vzdump 101 102 105 --storage backup-nfs --mode snapshot --compress zstd

# back up all VMs on this node, excluding a couple
vzdump --all --exclude 999,1000 --storage backup-nfs --mode snapshot

The result is a single file named like vzdump-qemu-101-2026_07_07-02_15_03.vma.zst. The qemu part marks it as a VM (containers get lxc), and the timestamp is when the job ran.

Choosing a storage target

vzdump can only write to storage that has the VZDump backup file content type enabled. Set that under Datacenter → Storage, then edit the storage and tick the backup content type.

Where to send Proxmox backups

Local directory Default local storage at /var/lib/vz/dump. Fast and simple. Useless if the host hardware fails — keep it as a first tier only.
NFS / CIFS share A NAS or file server on the network. Survives a host failure and is easy to set up. Good general-purpose target.
Proxmox Backup Server Dedicated backup appliance. Adds deduplication, incremental backups, client-side encryption, and verification. The right answer once you have more than a couple of hosts.

For a homelab or a single host, an NFS share on a NAS is usually enough. Once you’re running several nodes or your backup window gets long, Proxmox Backup Server earns its place: it only ships changed blocks, so daily backups of a large VM take minutes instead of writing the whole disk each time.

Schedule automatic backups

A backup you have to remember to run isn’t a backup. Proxmox schedules jobs at the Datacenter level so they cover whichever node a VM lives on.

Go to Datacenter → Backup and click Add. You configure:

  • Storage — the backup target.
  • Schedule — when it runs, using a calendar format like 02:00 for daily at 2 AM, or mon..fri 21:00 for weekday evenings.
  • Selection mode — pick specific VMs, all VMs, or all-except a list. The “all” and “exclude” options auto-include new VMs, which is handy so a freshly built machine isn’t silently left unprotected.
  • Mode — snapshot, suspend, or stop.
  • Compression and retention (covered below).

The schedule uses systemd calendar syntax. A few common ones:

02:30                 # every day at 02:30
mon..fri 21:00        # weekdays at 21:00
sun 03:00             # Sundays at 03:00
*/6:00                # every 6 hours, on the hour

Set retention so backups don’t pile up

Without retention, every run adds another file and the storage eventually fills — at which point new backups fail and you’re suddenly unprotected. Proxmox handles this with prune rules that keep a tiered set of recent backups and delete the rest after each successful run.

The keep options stack, so you can hold many recent backups and progressively fewer older ones:

Retention (prune) options

keep-last Keep the N most recent backups regardless of age
keep-daily Keep one backup per day for N days
keep-weekly Keep one per week for N weeks
keep-monthly Keep one per month for N months
keep-yearly Keep one per year for N years

A sensible everyday policy might be: keep the last 3, plus one daily for 7 days, one weekly for 4 weeks, and one monthly for 6 months. In a CLI job that looks like:

vzdump 101 --storage backup-nfs --mode snapshot \
  --prune-backups 'keep-last=3,keep-daily=7,keep-weekly=4,keep-monthly=6'

In the GUI, the same fields appear under the backup job’s Retention tab. Set them there and Proxmox prunes automatically after each run.

Restore a VM from a backup

Restoring is the part you actually care about, so it’s worth knowing both the click path and the command.

In the GUI, open the storage that holds the backup and go to its Backups tab (or select the VM and use its Backup tab). Pick the backup file, click Restore, then choose:

  • Target VMID — the original ID to overwrite it in place, or a new unused ID to restore alongside the original.
  • Target storage — where the restored disks land.
  • Unique — regenerate MAC addresses, useful when restoring a clone so it doesn’t clash with the original on the network.

From the CLI, qmrestore rebuilds a VM from a .vma file:

# restore into a brand-new VM with ID 150
qmrestore /var/lib/vz/dump/vzdump-qemu-101-2026_07_07-02_15_03.vma.zst 150

# restore over the existing VM 101 (must already be stopped); force overwrite
qmrestore /mnt/pve/backup-nfs/dump/vzdump-qemu-101-2026_07_07-02_15_03.vma.zst 101 --force

Containers use pct restore with the same idea. After a restore, check the VM’s network settings and, if it was a clone, confirm the MAC and hostname before powering it on so two identical machines don’t fight over the same IP.

A backup routine that holds up

Putting it together, a setup that survives real failures looks like this:

Proxmox backup checklist

  • QEMU guest agent installed and enabled on VMs you back up in snapshot mode
  • A scheduled Datacenter backup job, not manual runs
  • Backups written to storage separate from the host (NFS, CIFS, or Proxmox Backup Server)
  • Retention rules set so old backups prune automatically
  • At least one copy off-site or on a second device
  • A restore tested to a spare VMID in the last month

The storage choice you made at install time affects how snapshot mode behaves, since not every backing store supports VM snapshots the same way. If you’re unsure what you’re running on, Proxmox LVM vs LVM-Thin vs ZFS breaks down the differences. And if you haven’t set the host up yet, start with installing Proxmox VE on bare metal.

Get the schedule, the off-host target, and the retention right, then prove it with one test restore. After that, backups stop being something you worry about. For more walkthroughs, browse the Proxmox guides.

Frequently asked questions

What's the difference between snapshot, suspend, and stop backup modes?

Snapshot mode keeps the VM running and backs up a frozen point-in-time copy of the disk, so there's no downtime but the guest filesystem may be mid-write unless you have the QEMU guest agent installed. Suspend mode pauses the VM briefly during the backup, which is more consistent but freezes the workload. Stop mode shuts the VM down for a clean, fully consistent backup and powers it back on afterward. Snapshot is the usual default for live systems; stop is the safest for databases without agent integration.

Where are Proxmox vzdump backups stored?

They go to any storage that has the 'VZDump backup file' content type enabled — a local directory like /var/lib/vz/dump, an NFS or CIFS share, or a Proxmox Backup Server datastore. You set this per storage under Datacenter then Storage. Local disk is fine for quick rollbacks but useless if the host dies, so keep at least one copy on separate hardware.

How do I restore a Proxmox VM from a backup?

In the web GUI, open the storage that holds the backup, go to the Backups tab, select the file, and click Restore. You pick a target VMID and storage, then it rebuilds the VM. From the CLI, use qmrestore for VMs (pct restore for containers). Restoring to a new VMID lets you test the backup without touching the original.

Does vzdump back up the VM's RAM and running state?

No. vzdump backs up the VM configuration and its virtual disks, not live memory. When you restore, the VM boots fresh as if it had been powered off. If you need the running state preserved, that's a live snapshot with RAM (a different feature), not a vzdump backup.

What compression should I use for backups?

Zstandard (zstd) is the modern default in Proxmox VE and gives a good balance of speed and ratio, and it's multi-threaded. LZO is faster but compresses less; GZIP compresses harder but is slow and single-threaded. For most setups, leave it on zstd.

How does backup retention work in Proxmox?

Retention is controlled by 'prune' settings — keep-last, keep-daily, keep-weekly, keep-monthly, and so on. You set these per backup job or per storage, and Proxmox deletes older backups that fall outside the rules after each successful run. Without retention, backups pile up until the storage fills and jobs start failing.

Sources & further reading

Official vendor documentation referenced while writing this guide.

SD

Sysadmin Desk

Infrastructure & Cloud

Hands-on guidance for infrastructure, virtualization, and containers — Hyper-V, VMware, Docker, and the day-to-day operations work that keeps environments running.

MCSA Guru provides independent, educational IT guidance. Microsoft, Windows, Windows Server, Microsoft 365, Exchange, and Microsoft Teams are trademarks of Microsoft Corporation; Docker is a trademark of Docker, Inc. MCSA Guru is not affiliated with or endorsed by Microsoft or Docker. Always test changes in a safe environment before applying them in production.

Related guides

Fixing something right now?

Jump straight into the guide library or search for the exact error or task you are dealing with.