🔰 引言
隨著企業 IT 架構逐漸走向 多據點分佈 (Multi-site) 與 雲端混合化 (Hybrid Cloud),
如何在不同地區之間保持資料一致性、確保災難發生時能快速復原,
成為資訊部門的核心挑戰之一。
Proxmox Backup Server (PBS) 除了可作為本地備份解決方案外,
透過其內建的 Sync Job、遠端儲存 (Remote Store)、與 自動化 API 設計,
可輕鬆擴展成 多站點備援架構,實現真正的 資料韌性 (Data Resilience) 與 自動化災難復原 (Auto-DR)。
🧩 一、典型多站點架構設計
架構圖概念
┌───────────────────────────────┐
│ Site A (Primary Site) │
│ Proxmox VE + PBS + ZFS/NVMe │
└──────────────┬────────────────┘
│ Incremental Sync
│
┌──────────────┴────────────────┐
│ Site B (DR / Secondary) │
│ PBS + Ceph Object Storage │
└──────────────┬────────────────┘
│
Optional Cloud Tier Replication
│
┌──────────────┴────────────────┐
│ Site C (Cloud Archive) │
│ S3 / Backblaze / Wasabi / GCP │
└───────────────────────────────┘
三層設計:
1️⃣ 主站 (Site A):執行主要生產系統與本地 PBS 備份。
2️⃣ 備援站 (Site B):同步 Site A 備份資料,具自動切換與復原能力。
3️⃣ 雲端層 (Site C):長期保存、異地災難歸檔。
⚙️ 二、核心功能:PBS Sync Job 運作機制
PBS 的多站同步核心是 Sync Job,
可在不同 PBS 之間執行「增量式同步 (Incremental Replication)」。
特點:
- 只傳輸新區塊 (Chunk),節省頻寬
- 支援壓縮與加密傳輸
- 可設定自動排程與重試
- 可與 Verify Job 結合自動驗證
Sync Job 範例設定:
proxmox-backup-manager sync-job create \
--id sync-to-dr \
--source local-pbs \
--remote dr-pbs@192.168.10.20:8007 \
--store pbs-remote \
--schedule "daily"
📦 每日同步可確保 DR 站點永遠維持最新備份版本。
🧠 三、跨站驗證與一致性檢查
為確保異地資料完整性,
PBS 可透過 Verify Job + Sync Job 自動串接完成「複製 → 驗證 → 報告」三步驟。
自動化流程:
1️⃣ 每日增量同步 → 傳輸新區塊
2️⃣ 週期性驗證 (Verify Job) → 比對雜湊
3️⃣ 報告自動寄送 → PBS API 或 SMTP 通知
Verify Job CLI:
proxmox-backup-manager verify start --store pbs-remote --all --jobs 4
✅ 若驗證發現資料不一致,PBS 會標記損壞區塊並自動排入重傳。
☁️ 四、結合雲端物件儲存 (Cloud Tier)
為強化異地資料保存,PBS 可搭配 rclone / s3cmd 等工具,
將遠端 PBS 的備份同步至公有雲儲存,例如:
AWS S3、Wasabi、Backblaze B2、Google Cloud Storage 等。
範例:PBS → Ceph RGW → S3 雲端層
rclone sync /mnt/datastore/pbs-remote ceph-s3:cloud-archive
可達成:
- 三級備援 (Local → Remote → Cloud)
- 多地自動化同步與歸檔
- 自動清除與輪替保留策略 (Retention Policy)
🧮 五、自動化備援與還原流程設計
一、主動切換設計 (Failover Trigger)
可透過監控系統 (如 Prometheus + Alertmanager) 檢測主 PBS 狀態,
當主站不可用時,自動執行:
- 更新 Proxmox VE Cluster 的備份目標為 DR PBS
- 啟用遠端 PBS 的 Read/Write 模式
- 發送通知至管理人員
二、自動還原設計 (Auto-Restore API)
PBS 提供 RESTful API,可自動執行還原流程:
curl -k -X POST \
https://dr-pbs:8007/api2/json/admin/datastore/pbs-remote/restore \
-d "backup-type=vm&backup-id=vm-101&target=/mnt/vmrestore"
可結合自動化流程(例如 Ansible / N8N / Python Script)
在災難發生後自動進行復原或重新掛載 VM Disk。
🔄 六、自動化任務與排程設計
建議透過 systemd timer 或 cron 建立自動化週期:
| 任務 | 頻率 | 說明 |
|---|---|---|
| Sync Job | 每日 | 備份增量同步 |
| Verify Job | 每週 | 驗證遠端備份完整性 |
| Prune Job | 每月 | 清除過期快照 |
| Report Job | 每週 | 匯出報告寄送至 IT 管理者 |
範例自動化腳本:
#!/bin/bash
proxmox-backup-manager sync-job run --id sync-to-dr
proxmox-backup-manager verify start --store pbs-remote --all
proxmox-backup-manager prune start --all
📊 七、監控與報告設計
1️⃣ PBS 內建日誌
- 透過
/var/log/proxmox-backup/監控任務結果 - GUI 可即時查看 Sync 與 Verify 狀態
2️⃣ 外部監控整合
整合 Prometheus + Grafana + Wazuh:
- Prometheus 抓取 PBS API 指標 (task duration / I/O throughput)
- Grafana 建立多站點同步儀表板
- Wazuh 記錄與告警登入異常、資料異動
✅ 讓 PBS 不只是「備份伺服器」,而是「備援可觀測平台」。
🧩 八、實際應用範例
| 企業架構 | 實作方式 | 備援層級 |
|---|---|---|
| 台北總部 + 上海分公司 | Site A: ZFS + PBS;Site B: PBS + Ceph | 雙站備援 |
| 台灣主站 + 越南廠 + GCP 雲 | Site A→B 同步,B→C 雲端歸檔 | 三層備援 |
| 內部資料中心 + 外部 DR IDC | Sync Job + Verify + Ansible 自動切換 | 自動化 DR |
| 中型企業單一 PBS | 使用 rclone 至 S3 備份歸檔 | 雲端備援 |
✅ 結語
Proxmox Backup Server (PBS) 已不僅僅是「本地備份工具」,
而是可構成 企業級備援與自動化災難復原架構的核心組件。
透過:
- Sync Job 增量式跨站同步
- Verify Job 自動化驗證與修復
- REST API 自動化還原
- Cloud Tier 長期歸檔與治理
企業可在單一開源平台中達成:
多地備援、自動化復原、資料驗證、雲端治理
💬 下一篇(延伸主題):
「Proxmox Backup Server 與 N8N / Ansible 整合的自動化備援實務」,
將示範如何利用 PBS API 自動化 Sync、Verify、Restore 與報告流程。