Proxmox VEXIII · Proxmox Backup ServerPBS operations
PBS datastores, namespaces, prune, GC, verify
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
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:
| Option | Meaning | Example |
|---|---|---|
keep-last=N | Keep the last N backups | keep-last=7 |
keep-daily=N | Keep one per day for the last N days | keep-daily=7 |
keep-weekly=N | Keep one per week for the last N weeks | keep-weekly=4 |
keep-monthly=N | Keep one per month for the last N months | keep-monthly=6 |
keep-yearly=N | Keep one per year for the last N years | keep-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:
| Mode | What it checks |
|---|---|
none | (No verification) |
read | Reads chunks and validates hashes |
read+verify | Reads, 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
Q1. What does a PBS prune job do?
Q2. A prune on its own frees no disk space on a PBS datastore.
Q3. Which PBS verification mode is the most thorough?
Passing score: 75%. Answers are checked in this browser.