🧱 Proxmox VE 高可用叢集完整指南:HA、Node Failover、Quorum 與 Fencing 實戰解析
Proxmox VE(PVE)具備企業級 HA Cluster 能力,只要建立叢集並啟用 HA,便能在節點故障時自動將虛擬機(VM)或 LXC 容器移轉到存活節點繼續運作。 本篇是完整深入版,涵蓋 PVE HA 的核心概念與真實企業場景,包括:
- 🔹 叢集架構與 Corosync 運作原理
- 🔹 Quorum 的作用與投票機制
- 🔹 HA Manager 的角色與 Failover 流程
- 🔹 Fencing(自動隔離)如何保護叢集
- 🔹 節點故障、網路分裂(Split Brain)情境解析
- 🔹 實際 HA 設定與 troubleshooting
若你正在建立企業級 PVE 叢集,這篇將是最完整的 HA 參考指南。
📌 第一章:Proxmox Cluster 與 Corosync 基礎架構
PVE Cluster 的核心在 Corosync(叢集通訊)與 PVE Daemon(管理服務)。 Corosync 透過 UDP Multicast 或 Unicast(建議)傳遞:
- 心跳(heartbeat)
- 投票(vote)
- 節點狀態(online / offline)
1.1 Corosync 網路建議
- 使用 專用 Cluster Network(非 VM / Storage 流量)
- 避免 Wi-Fi、VLAN trunk 混雜
- 延遲(latency)需低且穩定
只要 Corosync 網路品質不穩,整個叢集會出現 Node LOST、No quorum、HA freeze 等問題。
📌 第二章:Quorum(法定票數)機制與 Node Vote
Quorum 是所有 HA 架構最核心的概念,它決定:
叢集是否允許存活節點繼續動作?2.1 Quorum 計算方式
Quorum = (總節點數 / 2) + 1
例如:
- 3 節點 → quorum = 2
- 5 節點 → quorum = 3
當 quorum 不足時 → 叢集將停止對 VM / LXC 的 HA 操作,避免 split brain。
2.2 為何至少建議 3 節點?
因為: - 2 節點架構中,任何一台掛掉都會失去 quorum - 3 節點最小可行架構(1 掛掉仍剩 2 ≥ quorum) ➡ 若只能部署兩台,請看下一段 Fencing。📌 第三章:Fencing(隔離)是 HA 的「自殺機制」
Fencing 的目的很簡單: 避免腦裂(Split Brain)!
當節點失去網路或不回應時,叢集會強制「隔離」失聯節點,確保:
- 不會出現兩台機器同時操作同一 VM - 不會導致資料毀損 - 叢集能安全重新選舉 leader3.1 PVE 的 Fencing 行為
PVE 使用: - watchdog - hardware reset(若有 IPMI / iDRAC / iLO) 啟動後會強制讓問題節點重啟或退出。📌 第四章:Proxmox HA Manager 工作流程(Failover 運作原理)
當 VM/LXC 標記為 HA Resource 時,HA Manager 會:- 監測 VM / Node 狀態
- 若 VM 所在節點故障 → 判斷 quorum
- 觸發 Fencing(確保安全)
- 由存活節點接手 VM(Failover)
- 在其他節點自動重啟 VM
Failover 速度視情況約 20 秒到 2 分鐘。
📌 第五章:建立 HA Resource(VM / LXC 高可用)
5.1 必要條件
- 叢集至少 3 節點(或 2 節點 + QDevice)
- 共用 Storage(ZFS over iSCSI / NFS / Ceph)
- VM Disk 要能在所有節點查看
5.2 設定 HA 的方法
GUI:選擇 VM → More → Add to HA
或 CLI:ha-manager add vm:101
5.3 調整 Failover Priority
ha-manager set vm:101 --state started --group default
可以指定優先節點、避免某節點負載過高。
📌 第六章:QDevice(兩節點叢集必備)
如果你只有 2 台 PVE 節點,建議加入 QDevice(仲裁機制),否則任何一台掉線都會失去 quorum。
6.1 QDevice 架構
- 可部署於任何 Linux 主機
- 不需安裝 PVE,只要 corosync-qnetd
- 讓 2 節點架構變成「2+1」票數
6.2 安裝方式(簡化)
apt install corosync-qnetd
pvecm qdevice setup IP
2 節點架構會大幅穩定。
📌 第七章:Storage 選擇與 Failover 必備條件
7.1 哪些 Storage 能做 HA?
| Storage | 是否支援 Failover |
|---|---|
| NFS | ✔ 可 |
| iSCSI(非 ZFS) | ❌ 不建議,需手動 mapping |
| ZFS local | ❌ 無法跨節點 |
| ZFS over iSCSI | ✔ 可(帶 multipath) |
| Ceph | ✔ 企業級推薦 |
7.2 最佳建議
企業環境 → Ceph
中小企業 → NFS(穩定且簡單)
📌 第八章:Failover 實際案例(節點掛掉後發生什麼?)
案例:pve2 節點突然斷電
- Corosync 偵測不到 pve2 心跳
- HA Manager 開始計時「fence timeout」
- Fencing 生效 → watchdog 讓 pve2 自動 shutdown
- 系統在 pve1 / pve3 上重新啟動 VM
- Failover 完成
整體過程約 30–60 秒。
📌 第九章:常見問題(Troubleshooting)
9.1 No Quorum
原因:
- 節點數不足(2 台其中 1 台掛掉)
- Corosync 網路不穩
pvecm status
pvecm expected 2
---
9.2 Unable to fence / watchdog failure
原因:
- 節點卡死 - Storage I/O hang - CPU 過載 解法: - 確保 watchdog 啟用 - 監控 Storage latency ---9.3 VM 無法自動 Failover
可能原因: - VM 未加入 HA - Storage 不是共享的 - Quorum 不足 - HA group 未設定📌 結語
Proxmox VE 的 HA 功能可靠完整,但前提是正確的架構設計:穩定的 Corosync、共享 Storage、正確的節點數與 Fencing 行為。 掌握本文介紹的 Quorum、Failover、Fencing、QDevice 與 Storage 選擇,你就能打造企業級 HA 架構。
下一篇將推出: 《Ceph on Proxmox:三節點高可用儲存架構完整部署指南》
沒有留言: