Skip to content

Nuface Blog

隨意隨手記 Casual Notes

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

Proxmox Backup Server 運作原理

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

🔰 引言

在虛擬化與雲端基礎架構中,備份 (Backup) 不僅是資料保護的最後防線,
更是系統可用性與營運持續的重要依據。

傳統的備份方案往往採用「完整 + 差異」方式,
造成儲存空間浪費、重複資料過多、還原速度慢。

Proxmox Backup Server (PBS) 則以全新的架構重新定義備份流程:
透過 增量備份 (Incremental Backup)、資料去重 (Deduplication)、壓縮與加密 (Compression / Encryption)
以及 完整驗證機制 (Verification),
在確保資料安全的同時,大幅降低儲存與傳輸成本。


🧩 一、PBS 架構概覽

架構示意圖

          ┌──────────────────────────────┐
          │      Proxmox VE Cluster       │
          │ (VMs / CTs / Hosts / Nodes)   │
          └─────────────┬────────────────┘
                        │
                Incremental Backup
                        │
          ┌──────────────────────────────┐
          │     Proxmox Backup Server     │
          │  (Datastore + Verifier + API) │
          └─────────────┬────────────────┘
                        │
               Remote Sync / Cloud Tier
                        │
          ┌──────────────────────────────┐
          │  Secondary PBS / Object Store │
          └──────────────────────────────┘

整體架構由三層組成:
1️⃣ 來源端 (Client):Proxmox VE、Linux Host、或 PBS Client
2️⃣ 備份伺服器 (Server):執行實際備份、壓縮、去重與驗證
3️⃣ 同步層 (Sync / Remote):將資料複製至異地 PBS 或雲端


⚙️ 二、核心運作原理

1️⃣ Incremental Backup 增量備份

PBS 並非每次都備份整個磁碟映像,而是透過 Chunk-based Incremental 機制:

  • 每個備份檔被分割成固定大小區塊 (Chunk),預設為 4 MiB。
  • 系統以區塊雜湊值 (SHA-256) 判斷是否為新資料。
  • 若區塊已存在於資料庫,則不重複儲存,只記錄索引指向。

✅ 優點:大幅減少空間使用與網路傳輸量。


2️⃣ Deduplication 資料去重

PBS 將所有備份的區塊雜湊值儲存在一個全域的 索引資料庫 (Datastore Index)。
因此,不僅同一台 VM 的重複區塊不會重複儲存,
連多台 VM 間相同的資料也只存一次。

這意味著:

  • 多版本共用相同區塊,節省儲存空間。
  • 還原時直接重組所需區塊,效能極佳。

📦 Deduplication 是 PBS 的核心技術,使其能在 TB 級資料下仍保持高效。


3️⃣ Compression 壓縮

PBS 預設採用 ZSTD 壓縮演算法,在效能與壓縮比之間取得平衡。
壓縮在傳輸與儲存階段皆會自動進行,無需額外設定。

備份過程中即時壓縮,可顯著減少磁碟 I/O 負擔。


4️⃣ Encryption 加密

PBS 支援 client-side encryption:

  • 加密動作在客戶端 (Proxmox VE) 進行。
  • 伺服器端僅存放加密後資料,無法直接解密。
  • 使用 AES-256-GCM 加密演算法,安全性極高。

這使得 PBS 能安全地作為異地備份伺服器或雲端同步節點。


5️⃣ Verification 驗證機制

PBS 內建 Verify Job 功能,可定期比對:

  • 資料索引 (index.json)
  • 區塊校驗碼 (Chunk Hash)
  • 儲存庫一致性 (Datastore Integrity)

若發現資料遺失或錯誤,PBS 會即時標記損壞區塊,並可重新同步修復。


🧠 三、備份與還原流程說明

🌀 備份流程 (Backup Workflow)

[Client VM/CT]
   ↓
Chunk-based backup
   ↓
[Proxmox VE Backup Daemon (vzdump)]
   ↓
Network Stream (ZSTD + AES)
   ↓
[PBS Datastore]
   ↓
Indexed, deduplicated, stored

步驟簡述:
1️⃣ 客戶端執行備份任務 (透過 vzdump 或 pve-backup)。
2️⃣ 系統將映像分塊、壓縮、加密。
3️⃣ 傳送至 PBS Server,進行 dedup 與索引儲存。
4️⃣ 寫入完成後更新快照記錄,並標示為一個「Snapshot Set」。


🔁 還原流程 (Restore Workflow)

[PBS Datastore]
   ↓
Index Lookup + Chunk Mapping
   ↓
Data Decompression + Decryption
   ↓
[Proxmox VE / Host Target]
   ↓
Rebuild Image / Container

PBS 不需解壓整份備份檔,而是直接重組必要區塊。
這讓還原速度比傳統映像型備份快上數倍。


🧮 四、資料結構與儲存格式

PBS 儲存結構簡潔明確:

/mnt/datastore/
└── vm-101/
    ├── 2024-12-25T00:00:00Z/
    │   ├── index.json
    │   ├── drive-scsi0.img.fidx
    │   └── chunks/
    ├── 2024-12-26T00:00:00Z/
    │   ├── index.json
    │   └── drive-scsi0.img.fidx
  • index.json:描述整份備份的區塊結構
  • .fidx:每個磁碟映像的區塊索引檔
  • chunks/:實際的資料區塊

PBS 可同時管理多個 Datastore,並支援不同的備份週期與保留策略。


☁️ 五、異地同步與多站備援

PBS 內建 Sync Job 功能,可定期將 Datastore 複製至遠端 PBS:

proxmox-backup-manager sync-job create \
--source local-pbs \
--remote remote-pbs@10.0.1.10:8007 \
--store pbs-remote

也可整合 Ceph 或 S3-compatible Object Storage 進行雲端備援。

✅ 異地 PBS 間採用增量同步,僅傳輸新區塊,節省頻寬。


🔒 六、安全與權限管理

PBS 採用與 Proxmox 相同的權限模型:

  • Role-Based Access Control (RBAC)
  • API Token / LDAP / 2FA 支援
  • Audit Log 記錄所有操作
  • TLS 加密傳輸 確保備份過程安全

📊 七、效能與優化建議

項目建議做法
儲存類型採用 ZFS RAIDZ2 或 Mirror Pool
網路頻寬建議使用 10GbE 或以上
備份週期日增量 + 週驗證
Chunk 大小預設 4 MiB 已為平衡設定
Verify Job每週執行 1 次完整驗證
Dedup Index Cache建議使用 SSD 加速

✅ 結語

Proxmox Backup Server 以獨特的區塊化增量備份與去重設計,
突破了傳統備份架構的瓶頸。

它兼具:

  • 高效能(ZSTD 壓縮 + Incremental 傳輸)
  • 高可靠性(Checksum 驗證 + Dedup 儲存)
  • 高安全性(Client-side AES 加密 + RBAC 權限)

在結合 ZFS 儲存池 或 Ceph 物件儲存 時,
PBS 更能構成完整的混合備援架構,
成為企業級 IT 架構中不可或缺的資料防線。

💬 下一篇將介紹:
「Proxmox Backup Server 效能調校與最佳化實務」,
包含多線程調整、ZFS 快取設定、及 Verify Job 自動化排程技巧。

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