Skip to main content
RunBook Academy

Proxmox VEXIII · Proxmox Backup ServerPBS operations

PBS datastores, namespaces, prune, GC, verify

Intermediate⏱ ~16 min

What you'll learn

  • Create and configure datastores
  • Use namespaces for tenant isolation
  • Apply retention policies prune correctly
  • Schedule GC and verification jobs

Prerequisites

Verified against Proxmox VE 9.2.4 · Proxmox Backup Server 4.2.5 · Ceph Squid / Tentacle · Debian 13 (Trixie) · Linux kernel 7.0 (PVE 9.2 default) · 2026-08-07

Not yet marked complete on this device.

Why this matters in production

Datastores are the unit of capacity in PBS. Retention (prune), garbage collection, and verification together determine whether backups remain useful or become unusable after months of accumulation.

Datastores

A datastore is a directory-backed (typically ZFS) storage target. PBS has one or more datastores; each holds backups, chunks, and metadata.

GUI: Administration → Storage → Datastore. CLI:

proxmox-backup-manager datastore create main /mnt/datastore/main

The path must exist and be writable by the backup user.

Namespaces

Namespaces provide logical isolation within a datastore. Use them for tenants, environments, or business units.

flowchart LR
  DS[Datastore 'main'] --> N1[Namespace 'tenant-a']
  DS --> N2[Namespace 'tenant-b']
  DS --> N3[Namespace 'default']

GUI: Datastore → Namespaces. CLI:

proxmox-backup-manager namespace create main tenant-a

When a client backs up, it specifies the namespace. Different tenants cannot see each other’s backups.

Retention with prune

PBS uses prune options to keep a defined number of backups per VM:

OptionMeaningExample
keep-last=NKeep the last N backupskeep-last=7
keep-daily=NKeep one per day for the last N dayskeep-daily=7
keep-weekly=NKeep one per week for the last N weekskeep-weekly=4
keep-monthly=NKeep one per month for the last N monthskeep-monthly=6
keep-yearly=NKeep one per year for the last N yearskeep-yearly=2

Multiple options combine; PBS keeps backups matching any option.

GUI: Datastore → Prune & GC. CLI:

proxmox-backup-manager prune-job create main --schedule 'daily' --keep-last 7 --keep-daily 7 --keep-weekly 4 --keep-monthly 6

Garbage collection

Garbage collection removes chunks that are no longer referenced by any backup:

proxmox-backup-manager gc create main --schedule 'sun 02:00'

GC runs after prune to clean up the orphan chunks. Skipping GC bloats the datastore with unreachable data.

Verification

Verification reads every chunk and validates the hash. Three modes:

ModeWhat it checks
none(No verification)
readReads chunks and validates hashes
read+verifyReads, validates, AND recomputes checksums (paranoia mode)

GUI: Administration → Verify. CLI:

proxmox-backup-manager verify-job create main --schedule 'sat 03:00' --mode read

Sync jobs

Datastores can sync to a remote PBS:

proxmox-backup-manager sync-job create main remote-main --remote 'pbs-remote' --schedule 'hourly' --remove-vanished

Sync jobs handle the off-site replication discussed in the next lessons.

Production considerations

Common mistakes

  • Setting keep rules too aggressively (loses long-term history).
  • Skipping GC (datastore grows beyond expectations).
  • Skipping verification (silent corruption undetected).

Key takeaways

  • Datastores are ZFS-backed storage targets.
  • Namespaces provide tenant separation within a datastore.
  • Prune + GC + verify is the operational triad.

Knowledge check

Knowledge check · 3 questions

  1. Q1. What does a PBS prune job do?

  2. Q2. A prune on its own frees no disk space on a PBS datastore.

  3. Q3. Which PBS verification mode is the most thorough?

Passing score: 75%. Answers are checked in this browser.