Skip to content

Proxmox Backup Server (PBS)

TL;DR / when to use this: PBS provides image-level backups of Proxmox VMs/LXCs with deduplication and snapshot verification. Running it as a small VM backed by an external USB drive keeps the backup target independent from the hypervisor's own storage. Full Proxmox setup is covered in Proxmox VE.

Step 1: Mount the USB drive to the host

For an all-purpose external drive (mine is 22 TB) shared by any VM, mount it on the host and expose it to VMs via Virtiofs — that pattern is described in Proxmox VE → Device passthrough and shared directories. Proxmox's UI still doesn't mount drives cleanly, so I use Cockpit for this step.

Step 2: Create a Directory Mapping

At the Datacenter level, add a Directory Mapping — e.g. PBS-Directory — pointing at a subfolder of the mounted drive, such as /mnt/external22TB/backups. A subfolder keeps the mapping clean if you create other mappings for other purposes.

Step 3: Create the PBS VM

Grab the installer ISO: click local storage under your node → ISO Images → Download from URL, using the link from the PBS downloads page.

VM sizing: 10 GB storage, 2 GB RAM, 2 CPUs.

Step 4: Mount the storage into the VM

On the PBS VM: Hardware → Add → Virtiofs, select the PBS-Directory mapping. Then in the PBS web UI (VM IP, port 8007) open the console and mount:

mount -t virtiofs PBS-Directory /mnt/pbs-backup

Persist in /etc/fstab:

PBS-Directory  /mnt/pbs-backup  virtiofs  defaults,nofail  0  0

Then in the PBS UI: Add Datastore → name it backup-local, type Local, path /mnt/pbs-backup, set your prune schedule. Verify the datastore shows the true physical drive size, then under Options set Verify New Snapshots to Yes — this checks snapshots after they're taken.

Step 5: Create a user for Proxmox VE to use

Configuration → Access Control → Add — e.g. user proxmox with a password. On the user's Permissions tab, add a permission at path /datastore with role DatastoreAdmin.

Step 6: Add PBS as Proxmox storage

Back in Proxmox VE: Datacenter → Storage → Add → Proxmox Backup Server:

  • id: pbs-backup-local
  • Server: the PBS VM's IP
  • User: proxmox@pbs + password
  • Datastore: /datastore/backup-local

It now appears under your other storages in the file tree.

Step 7: Schedule the backup job

Datacenter → Backup → Add, select storage pbs-backup-local, pick a schedule, select the VMs/LXCs to back up. Done.

See also