Skip to content

Nuface Blog

隨意隨手記 Casual Notes

Menu
  • Home
  • About
  • Services
  • Blog
  • Contact
  • Privacy Policy
  • Login
Menu

PBS Backup Architecture vs Traditional “Full / Incremental / Differential Backup”

Posted on 2025-11-032025-11-03 by Rico

Q: In PBS, I see many backup entries — which one is a full backup and which one is incremental?

This is one of the most common questions people have when they first start using Proxmox Backup Server (PBS):

Why are there so many backups, and why does each one look like a “full backup”?
Which one is the real full backup, and which ones are incremental?

The confusion comes from the fact that PBS works very differently from the traditional “full / incremental / differential” backup system.
Let’s break it down layer by layer 👇


🧩 1. PBS Backup Method: Deduplicated Snapshots (Not Traditional Full + Incremental)

Each backup you see in the GUI (e.g., ct/104/2025-10-23T06:02:57Z)
is logically a complete and restorable snapshot of the VM or container.
However, physically, PBS only stores the changed data blocks (chunks) compared to the previous version.

👉 In other words:

  • From the user’s perspective: every snapshot is a “full backup.”
  • From the storage perspective: only the changed chunks are new; unchanged data is shared from previous backups.

🔬 2. How It Works: Chunk-Based Deduplication

When PBS performs a backup, it splits the VM/LXC disk data into many chunks (default size: 4 MB each)
and calculates a SHA-256 hash for each chunk.

The process:

  1. PBS starts backup and hashes each chunk.
  2. If a hash already exists in the datastore (backed up before), it won’t be stored again.
  3. Only new hashes (changed chunks) are saved.

So, even if you see multiple snapshots like:

ct/104/2025-10-22T10:03:00Z
ct/104/2025-10-22T12:02:55Z
ct/104/2025-10-22T14:09:22Z
...

What’s really happening is:

  • The first one (10:03Z) is the true initial full data set.
  • Each subsequent snapshot only adds the changed chunks,
    while the index.json file still describes the entire VM.
  • During restore, PBS automatically reassembles all required chunks into a complete disk image.

📦 3. Example of Directory Structure

In a PBS datastore (e.g., /pbs/datastore1), each backup looks like this:

ct/104/2025-10-22T10:03:00Z/
 ├── index.json        ← Lists which chunks this backup uses
 ├── manifest.blob     ← Contains metadata (CPU, RAM, OS type, notes)
 ├── root.pxar         ← PXAR archive of the file system
 └── ...

But the actual chunk data shared across all backups resides in:

/pbs/datastore1/.chunks/

If a chunk appears in multiple backups, PBS stores it only once.


🧮 4. How to Identify the “First Full Backup”

Strictly speaking:

  • PBS does not label backups as full or incremental;
  • However, the earliest snapshot (the first timestamp) is the initial full backup;
  • All later backups are deduplicated snapshots (incremental in storage).

You can verify backup sizes via CLI:

proxmox-backup-manager snapshot list datastore1 --backup-id ct/104

Example output:

SnapshotLogical SizeStored SizeNote
2025-10-22T10:03Z1.26 GiB1.26 GiBInitial full
2025-10-22T12:02Z1.26 GiB20 MiBIncremental (changed chunks only)
2025-10-22T14:09Z1.26 GiB15 MiBIncremental

📊 5. Checking in the GUI

In PBS GUI → Datastore → Content, enable the “Size” column (via top-right “Columns” menu):

  • If multiple snapshots have similar logical size but small stored size,
    that indicates effective deduplication.
  • The datastore’s actual usage will not grow linearly with the number of backups.

✅ 6. Summary Comparison

Traditional Backup SystemPBS Mechanism
Full + Incremental + DifferentialEvery snapshot is fully restorable
Incremental depends on previous backupsEach snapshot can be restored independently
High risk of space explosionDeduplication + compression share chunks
Complex backup chainsSingle datastore with automatic dedup management
Multiple versions take extra spaceIdentical data stored only once

💡 Practical Tips

✅ Frequent backups (e.g., every 2 hours) are fine — PBS only saves changed data, so space use is very efficient.
✅ You can safely delete old backups — PBS will automatically garbage-collect unused chunks.
✅ Set up a verify job to periodically check the integrity of each snapshot.

Recent Posts

  • Postfix + Let’s Encrypt + BIND9 + DANE Fully Automated TLSA Update Guide
  • Postfix + Let’s Encrypt + BIND9 + DANE TLSA 指紋自動更新完整教學
  • Deploying DANE in Postfix
  • 如何在 Postfix 中部署 DANE
  • DANE: DNSSEC-Based TLS Protection

Recent Comments

  1. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on High Availability Architecture, Failover, GeoDNS, Monitoring, and Email Abuse Automation (SOAR)
  2. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on MariaDB + PostfixAdmin: The Core of Virtual Domain & Mailbox Management
  3. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Daily Operations, Monitoring, and Performance Tuning for an Enterprise Mail System
  4. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Final Chapter: Complete Troubleshooting Guide & Frequently Asked Questions (FAQ)
  5. Building a Complete Enterprise-Grade Mail System (Overview) - Nuface Blog on Network Architecture, DNS Configuration, TLS Design, and Postfix/Dovecot SNI Explained

Archives

  • December 2025
  • November 2025
  • October 2025

Categories

  • AI
  • Apache
  • Cybersecurity
  • Database
  • DNS
  • Docker
  • Fail2Ban
  • FileSystem
  • Firewall
  • Linux
  • LLM
  • Mail
  • N8N
  • OpenLdap
  • OPNsense
  • PHP
  • QoS
  • Samba
  • Switch
  • Virtualization
  • VPN
  • WordPress
© 2025 Nuface Blog | Powered by Superbs Personal Blog theme