Skip to content

Nuface Blog

隨意隨手記 Casual Notes

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

PBS 備份架構 vs 傳統「全備 / 增備 / 差異備份」

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

Q:在PBS 上,看到很多備份的資料,到底那一份是完全備份?那一份是增量備份?


這個問題正是很多人在剛接觸 Proxmox Backup Server (PBS) 時的疑惑之一:

為什麼備份那麼多份,但每一份看起來都像「完整備份」?到底哪一份是全備?哪一份是增量?

其實這是因為 PBS 的架構與傳統「全備 / 增備 / 差異備份」完全不同。
我們來逐層拆解讓你清楚理解👇

🧩 一、PBS 的備份方式:不是傳統的「全備 + 增備」,而是 去重複快照備份 (deduplicated snapshot)

每一份你在 GUI 上看到的備份(例如 ct/104/2025-10-23T06:02:57Z)
在邏輯上都是一份 完整可還原的快照(snapshot)。
但在物理上,它只會儲存「與前一版本不同的資料塊(chunks)」。

👉 換句話說:

  • 從使用者角度:每一份 snapshot 都是「完整備份」。
  • 從儲存角度:只有變動的區塊才會新增,其餘共用舊的。

🔬 二、內部原理:Chunk-based Deduplication

PBS 備份時,會將 VM/LXC 的磁碟內容切成很多「chunk」(預設 4 MB 一個),
並且對每個 chunk 計算 SHA-256 雜湊值。

流程如下:

  1. 備份開始 → PBS 計算每個區塊的 hash
  2. 若這個 hash 已存在於 datastore(以前備份過),就不再存
  3. 只新增新的 hash(即變動過的區塊)

所以,雖然你看到有 10 多個時間點:

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

但實際上:

  • 第一份(10:03Z)是真正的「全量」資料;
  • 之後的每一份只是「變更過的 chunk」,但索引(index.json)仍完整描述整個 VM;
  • PBS 在還原時會自動把所有 chunk 拼回完整磁碟映像。

📦 三、檔案結構舉例

在 PBS 的 datastore(例如 /pbs/datastore1)下,每份備份會像這樣:

ct/104/2025-10-22T10:03:00Z/
 ├── index.json           ← 記錄這份備份使用哪些 chunks
 ├── manifest.blob        ← 含 metadata (CPU, RAM, OS type, notes)
 ├── root.pxar            ← 檔案系統的 PXAR 封包
 └── ...

但所有備份實際的資料塊(chunks)都共存在:

/pbs/datastore1/.chunks/

如果一個 chunk 在多個備份裡都出現,PBS 只會儲存一份。


🧮 四、如何知道「哪一份是第一次全備」?

嚴格來說:

  • PBS 不會標記「這是 full / incremental」;
  • 但第一份(最早的時間點)必然是全量備份;
  • 之後的備份都是「deduplicated snapshot」(增量式存放)。

你可以在 CLI 檢查備份大小:

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

會看到每份 snapshot 的 logical size 與 stored size:

SnapshotLogical SizeStored Size備註
2025-10-22T10:03Z1.26 GiB1.26 GiB首次全量
2025-10-22T12:02Z1.26 GiB20 MiB增量(只變更區塊)
2025-10-22T14:09Z1.26 GiB15 MiB增量

📊 五、在 GUI 中如何判斷

在 PBS GUI → Datastore → Content → 右上角 Columns,勾選「Size」欄位:

  • 若看到多份 snapshot 大小接近,但時間差短;
  • 那表示實際儲存空間(stored size)是 dedup 之後的結果;
  • 實際 datastore 容量不會隨備份數線性增長。

✅ 六、總結對照表

傳統備份系統PBS 備份機制
全備 + 增備 + 差異所有 snapshot 都完整可還原
增備需依賴上一份每份 snapshot 可獨立還原
容易空間爆炸Dedup + 壓縮共用 chunk
備份鏈 (backup chain) 複雜單一 datastore,自動 dedup 管理
不同版本佔多份空間相同資料只儲存一次

💡 實務建議

  • ✅ 備份週期頻繁沒問題(每 2 小時一次):
    PBS 只會新增有變動的區塊,空間使用非常有效率。
  • ✅ 可直接刪除舊版本(PBS 會自動 GC 未用的 chunk)。
  • ✅ 可設定 verify job 定期驗證每份 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