Proxmox VE Common Patterns: Backup, Clone & Migration

3 min read

This article focuses on the five most common daily operations, with practical templates you can use right away. Master these patterns and you can handle 80% of scenarios — the remaining 20% is for the advanced section.

Pattern 1: Backup a Virtual Machine

Goal: keep a periodic backup you can restore from — so if things break, you're not starting from scratch.

# Manual backup of VM 100 to local (snapshot mode — VM stays running)
vzdump 100 --storage local --mode snapshot --compress zstd

Schedule it at: Datacenter -> Backup -> Add, set a time (e.g. 02:00 daily). Set it and forget it.

snapshot mode lets you back up while the VM is running — like photographing a sleeping cat without waking it up.

Pattern 2: Clone a Virtual Machine

Goal: quickly copy an existing environment without reinstalling from scratch.

# Full clone (independent disk, fully self-contained)
qm clone 100 101 --name clone-vm --full
 
# Linked clone (shares base disk, saves space)
qm clone 100 102 --name linked-clone --linked

One-sentence difference: full = independent, takes space; linked = saves space, but depends on the parent disk. Don't delete the parent disk — the linked clones will break with it.

Pattern 3: Live Migration

Goal: move a VM to another node without shutting it down — no service interruption.

Prerequisite: the target node must be able to access the same disk (shared storage is ideal).

qm migrate 100 <target-node> --live

If the disk is on local, you typically need to migrate the disk first or switch to shared storage — otherwise migrate will tell you "I can't find the disk."

Pattern 4: Create an LXC Container

Goal: quickly spin up a lightweight Linux environment to run a service — uses fewer resources than a VM.

# Update template list first
pveam update
 
# Download Debian template
pveam download local debian-12-standard_12.2-1_amd64.tar.zst
 
# Create container
pct create 200 local:vztmpl/debian-12-standard_12.2-1_amd64.tar.zst \
  --hostname my-app \
  --memory 512 \
  --cores 1 \
  --net0 name=eth0,bridge=vmbr0,ip=dhcp \
  --rootfs local-lvm:8

LXC starts fast and uses few resources — great for running lots of small services. Like a litter of small otters, each carrying very little overhead.

Pattern 5: Snapshots and Rollback

Goal: before a major update or configuration change, leave a restore point you can "return to."

# Create a snapshot
qm snapshot 100 before-update
 
# Something went wrong? Roll back
qm rollback 100 before-update
 
# All good? Delete the snapshot
qm delsnapshot 100 before-update

Make it a habit to snapshot before major operations: snapshot first, then act. The debugging time you save can be spent on better things.

Next Steps

Once you've practiced the daily patterns, if you want to try multi-node, HA, or Ceph: 👉 Advanced