🧱 Proxmox VE 高可用叢集(HA Cluster)架構實作指南
要讓虛擬化環境在硬體故障時自動接手、縮短停機時間,你需要 HA 叢集。本文從 設計要點、建立叢集、Quorum/Corosync、HA Manager 到 Fencing 與故障演練,一步步完成可落地的 Proxmox HA 架構。
一、架構與前置規劃
- 節點數:建議 ≥3(避免 2-node split-brain)。
- 管理網路:
10G/1G皆可,Corosync 建議獨立網段,可用 Bond/雙環。 - 共享儲存:NFS、iSCSI(+LVM)、Ceph 或 ZFS Replication(需注意一致性與恢復速度)。
- 時間同步:所有節點使用
chrony/systemd-timesyncd校時。 - Watchdog/Fencing:建議啟用硬體 watchdog;大型環境可搭配 PDU/IPMI Fencing。
# 檢查必要套件
pveversion -v
timedatectl status
二、建立叢集(pvecm)
- 在第一台節點(node1)建立叢集:
# node1
pvecm create lab-cluster
pvecm status
- 其他節點加入叢集:
# node2 / node3
pvecm add 10.10.10.11 # 以 node1 的管理 IP 為例
# 依提示輸入 root@pam 密碼
完成後,所有節點的 Web 介面左側應可看到完整節點清單與共用 Datacenter 設定。
三、Corosync 與 Quorum 關鍵參數
Corosync 負責叢集通訊與投票(Quorum),建議使用 雙環(ring0 + ring1) 或至少使用 bonding。
# 顯示叢集成員與投票
pvecm status
corosync-cfgtool -s
# 若需編輯(高風險,請先備份)
cat /etc/pve/corosync.conf
# 常見重點:
# link { name: ring0; address: 10.10.10.0/24; }
# link { name: ring1; address: 172.16.0.0/24; } # 第二條心跳(選用)
- Transport:小型環境可用 UDP Multicast;跨網段或不支援 multicast 時改 Unicast。
- 投票數:以節點數過半為合法(Quorum=Majority)。
四、啟用 HA Manager 與資源註冊
Proxmox 的 ha-manager 用來管理 VM/LXC 的自動遷移與重啟。
# 將 VM 101 註冊為 HA 資源
ha-manager add vm:101 --group default --state started
# 檢視 HA 狀態
ha-manager status
你可以在 Web 介面「Datacenter → HA」建立 Group 與 Failover Domain,限制資源只能落在特定節點集合,並設定 優先順序 或 禁置。
五、即時遷移(Live Migration)與維護模式
Live Migration 可將 VM 從 A 節點遷至 B 節點而不中斷(需共享儲存或啟用一致性機制)。
# 以 CLI 進行即時遷移
qm migrate 101 node2 --online
# 節點維護(暫時移出 HA 排程)
ha-manager set node node1 --maintenance 1
# 完成維護後
ha-manager set node node1 --maintenance 0
六、Watchdog 與 Fencing(關鍵)
當節點失聯時,Fencing 能確保故障節點不會同時存取共享資源(避免資料毀損)。
- Watchdog:啟用硬體看門狗(如 iTCO_wdt),節點失去心跳時自動重啟。
- 外部 Fencing:透過 IPMI/PDU 關閉電源(大型叢集/高要求建議)。
# 檢查並啟用看門狗模組(範例)
lsmod | grep iTCO
echo iTCO_wdt >> /etc/modules
systemctl restart pve-ha-lrm pve-ha-crm
七、故障演練與驗證流程
- 關閉 HA 資源所在節點的管理網路介面或模擬主機斷電。
- 於其他節點監看
ha-manager status,確認資源於預期節點啟動。 - 在共享儲存上確認 VM 磁碟無損;檢查來回
ping與服務連線。
# 觀察叢集與 HA 日誌
journalctl -u pve-ha-crm -f
journalctl -u pve-ha-lrm -f
pvecm status
八、最佳實務清單(運維心法)
- 🔁 Corosync 使用獨立實體 NIC 或 Bond,必要時雙環配置。
- 🧭 DNS/Host 檔名一致、NTP 準確(跨節點時間差 < 100ms)。
- 🧱 共享儲存健康度監控(IOPS/延遲),避免瓶頸導致遷移卡頓。
- 🧪 每季進行一次 維護模式 → Live Migration → 故障演練。
- 🧰 組合策略:HA + 定期 vzdump、pve-zsync 異地;雙保險。
九、常見問題排查
❓ 加入叢集失敗(pvecm add 卡住)
# 檢查 SSH/防火牆/時間
ssh root@node1
ss -lntup | grep 5405 # corosync 預設埠
timedatectl status
❓ Split-brain / 無法取得 Quorum
# 快速判斷
pvecm status
# 以 3+ 節點、雙環或 Quorum Device(QDevice)避免
❓ Live Migration 很慢
# 檢查儲存與網路
pvesm status
iperf3 -c <peer> # 管理/遷移網路帶寬
📘 結語
HA 不是「裝好就沒事」,而是一套持續演練的營運機制。穩固的 Corosync 拓樸、可靠的共享儲存與完善的 Fencing,搭配定期備份與故障演練,才能讓你的 Proxmox 叢集真正達到企業級可用性。
🔗 延伸閱讀
- 🧱 Proxmox VE 快照與備份還原:pve-zsync 與 vzdump 自動化策略
- 🧱 Proxmox VE 儲存整合教學:ZFS、NFS、iSCSI 與 LVM 的差異與實作
- 🧱 Proxmox VE 網路設定與 VLAN 管理:bridge、bonding、VLAN Tag 全解析
— WWFandy・系統與網路筆記
沒有留言: