Skip to main content
RunBook Academy

Proxmox VEXIII · Proxmox Backup ServerPBS architecture

PBS architecture: chunk store, dedup, encryption

Intermediate⏱ ~18 min

What you'll learn

  • Explain how PBS stores backups as deduplicated, encrypted chunks
  • Distinguish fixed-size and dynamic-size chunks
  • Understand client-side encryption and key management
  • Recognise why PBS handles dedup so efficiently

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

PBS’s design determines what kinds of failures you can recover from, how much storage you need, and what the security model looks like. This lesson teaches the internals so you can reason about PBS confidently.

High-level architecture

flowchart LR
  PVE1[PVE node 1] -->|backup stream| PBS[Proxmox Backup Server]
  PVE2[PVE node 2] -->|backup stream| PBS
  PBS -->|sync| PBSo[Off-site PBS]
  PBS --> DS[Datastore on ZFS]

A PBS deployment has:

  • The PBS daemon (proxmox-backup-proxy, proxmox-backup).
  • One or more datastores (each backed by a directory or ZFS volume).
  • Optional: PBS clients (other hosts, including PVE nodes) push backups to it.
  • Optional: sync to a remote PBS for off-site.

The chunk store

PBS stores backups as a set of chunks — fixed or variable-length blocks of data, each identified by a cryptographic hash (SHA-256).

flowchart LR
  A[VM disk image] --> C1[Chunker]
  C1 --> CH[Chunks with hashes]
  CH --> STORE[(Chunk store)]

The chunker:

  • Reads the input stream.
  • Splits it into chunks using a rolling hash (similar to rsync).
  • Each chunk is identified by its SHA-256 hash.
  • Identical chunks are stored only once (deduplication).

Fixed-size vs dynamic chunks

PBS uses dynamic-size chunks. A small change in the input shifts the chunk boundaries, which means unchanged regions often remain as the same chunks. This is why PBS achieves very high dedup ratios for VM backups.

Deduplication

Because chunks are addressed by hash:

  • Two backups with identical content share chunks.
  • Backups of similar VMs (same OS, same applications) deduplicate heavily.
  • The dedup ratio is often 10–20× for fleets of similar VMs.

Encryption

PBS supports client-side encryption. The client (e.g., PVE node) encrypts each chunk before sending it to PBS. PBS stores ciphertext + hash; it cannot decrypt without the client’s key.

Two modes:

  • Key files: stored in /etc/pve/priv/ (cluster-wide) or in PBS itself.
  • Master keys: a key-encryption-key (KEK) encrypts per-backup keys, stored in a separate location.
flowchart LR
  A[VM data] --> C[Chunker]
  C --> CH[Chunks]
  CH --> ENC[Encrypt with key]
  ENC --> STORE[(Encrypted chunk store)]
  ENC --> HK[Hash + index]

Verification

PBS can verify stored chunks against the original hashes. This detects:

  • Silent corruption in storage.
  • Bit-rot in the chunk store.
  • Tampering.

Scheduled verification jobs iterate the chunk store and re-check hashes. The cost is read-heavy I/O during the verification window.

proxmox-backup-manager verify list

Garbage collection

When backups are deleted (or pruned), the chunks they referenced become orphans. Garbage collection removes them, freeing storage.

proxmox-backup-manager gc list

GC runs on a schedule. It can also be run manually:

proxmox-backup-manager gc run <datastore>

Backup verification: a critical capability

PBS can:

  • Verify the integrity of stored chunks.
  • Restore backups to a separate, isolated network for testing.
  • Verify that a backup can actually be restored (not just that the chunks are intact).

The last capability is what makes “tested restore” possible. Run a monthly restore drill.

Production considerations

Common mistakes

  • Storing backups on the same ZFS pool as live VM data.
  • Forgetting to back up encryption keys.
  • Disabling verification “to save I/O.”
  • Running GC during peak hours (it is read-heavy).

Key takeaways

  • PBS uses chunked, hashed, deduplicated storage.
  • Client-side encryption means losing the key loses the backups.
  • Verification and restore drills are the difference between “backed up” and “recoverable.”

Knowledge check

Knowledge check · 3 questions

  1. Q1. What identifies each chunk in the PBS chunk store?

  2. Q2. Losing the client encryption key makes an encrypted PBS datastore permanently unreadable, even with full administrative access to the PBS server.

  3. Q3. Which PBS operation removes orphan chunks after backups are pruned?

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