🐧 Proxmox VE 高可用(HA)架構完整指南:Quorum、Fencing、Corosync、Failover 深入解析
Proxmox VE(PVE)提供企業級的高可用(High Availability, HA)功能,可確保當某一節點故障時,虛擬機或容器能自動切換到其他節點繼續運作。 本指南將從架構、通訊、故障偵測、Quorum 計算、Fencing、Failover 機制,一次完整深入解析。
此篇是企業級 HA 建置的完整教學,涵蓋: Corosync、Quorum、HA Manager、Fencing、Watchdog、Failover Logic、叢集建議架構與常見誤區。
📌 一、Proxmox HA 架構總覽
PVE HA 架構由下列四大核心組成:
| 元件 | 功能 |
|---|---|
| Corosync | 叢集通訊、節點狀態同步、Quorum 計算 |
| pve-ha-manager | HA 管理器,決定 Failover 動作 |
| Watchdog | 自動重啟死掉的節點,避免腦裂(Split Brain) |
| Fencing | 強制隔離異常節點確保資料一致性 |
這些元件形成「判斷 → 隔離 → 移轉 → 重啟」的 HA 工作流程。
📌 二、Corosync:PVE Cluster 的核心
Corosync 提供以下功能:
- 🌐 叢集節點間的心跳通訊(Heartbeat)
- 📡 狀態同步(Membership)
- 🧮 Quorum 投票計算
查看 Corosync 狀態:
pvecm status
輸出範例:
Quorum information
------------------
Date: Sun Dec 7
Quorum provider: corosync_votequorum
Ring ID: 1/224
Nodes: 3
Node ID: 0x00000002
Ring members: 0x00000001 0x00000002 0x00000003
至少需要三個節點才可形成真正穩定的 Quorum。
📌 三、Quorum 計算:叢集是否可持續運作的關鍵
Quorum(法定票數)決定叢集是否有權進行 HA 動作:
| 節點數 | 需要的 Quorum |
|---|---|
| 3 | 2 |
| 4 | 3 |
| 5 | 3 |
如果 Quorum 不足:
- 叢集無法移轉 VM
- HA 停止運作
- 避免 Split Brain 時,所有存放於共享儲存的 VM 都會暫停操作
最重要觀念: ❗ **兩節點叢集無法自然形成 Quorum,需要第三個 Vote(QDevice 或 Witness)。**
📌 四、Fencing(隔離機制):避免 Split Brain 的絕對必要功能
Fencing 用於「強制隔離已失去通訊但還在運作的節點」。 缺少 Fencing 的叢集可能會造成:
- 兩個節點同時執行 VM(Split Brain)
- 資料毀損(特別是 Ceph / ZFS)
- Failover 無法判斷真實狀況
🟦 PVE 使用 Watchdog 作為預設 Fencing
lsmod | grep -i watchdog
Watchdog 由 Kernel 觸發,當節點無法回應時會強制 Reboot, 確保該節點不會與叢集其他節點競爭資源。
重要提醒: 👉 若 BIOS 有 Watchdog 設定,務必啟用。
📌 五、HA Manager(pve-ha-manager)行為邏輯
PVE HA 的判斷流程如下:
- Corosync 偵測節點失聯
- 檢查 Quorum 是否有效
- 由 Watchdog Fencing 將該節點重啟(隔離)
- HA Manager 決定 VM 是否需要移轉
- 於其它節點重新啟動 VM
🟩 查看 HA 資源
ha-manager status
VM 設定為 HA:
ha-manager add vm:101
📌 六、Failover 如何運作?(完整流程)
1. 節點 A 掛掉 → 心跳中斷
Corosync 標記節點 A 為 offline。
2. Watchdog 進行 Fencing
強制重啟 A,避免 Split Brain。
3. HA Manager 執行移轉
檢查:
- 是否有 Quorum
- 那個節點最適合接手(CPU、RAM、HA Group)
4. VM 自動於節點 B 或 C 啟動
Failover 耗時依 VM 的 Disk 啟動時間而定。
📌 七、HA Group:控制 VM 被分配到哪些節點
建立 HA Group
ha-manager groupadd prodgroup --nodes pve01,pve02,pve03 --restricted=0
加入 VM:
ha-manager set vm:101 --group prodgroup
- restricted=1:VM 僅能在 group 指定節點運作
- restricted=0:VM 可在任意節點接管
📌 八、企業建議架構(必看)
🟩 1. 三節點叢集(最標準)
- PVE x 3
- 共享儲存(Ceph / ZFS / NFS)
- 雙網卡:Management + Corosync
⚠️ 不建議把 Corosync 放在與 VM 同網段。
🟦 2. 五節點叢集(企業級)
- 更高 Quorum 穩定度
- 更好的 HA 分散與效能
🟥 3. 兩節點叢集(風險高,需 QDevice)
兩節點必須加 QDevice(第三票)才能避免 Split Brain。
📌 九、常見錯誤與陷阱(非常重要)
❌ 錯誤 1:兩節點無 QDevice 就直接上線
這是所有 Split Brain 問題的根源。
❌ 錯誤 2:關閉 Watchdog(Fencing)
會讓叢集無法正確 Failover。
❌ 錯誤 3:Corosync 用一般 LAN(延遲不穩)
建議使用獨立的心跳網段。
❌ 錯誤 4:共享儲存效能不足,Failover 超慢
HA Flow 成敗取決於儲存 I/O。
📌 十、結語:Proxmox HA 是企業可靠架構的核心
Proxmox 的 HA 架構不僅簡潔易用,也直接採用企業級叢集技術(Corosync + Fencing)。 只要正確規劃網路、Quorum、Watchdog 與共享儲存,就能建置穩定可靠的虛擬化平台。
後續如需更深入的實作: 五節點 HA、Ceph HA、雙 Corosync 網路、QDevice 配置、隔離測試 也能協助撰寫完整進階篇。
🔗 延伸閱讀
💬 歡迎在下方留言交流!
你在建置 PVE Cluster 或 HA 時遇到什麼挑戰?歡迎留言,我會協助你一起分析!
— WWFandy・Proxmox Cluster 技術筆記
沒有留言: