熱門分類
載入中…
目錄0%

🧱 Proxmox VE 高可用叢集(HA Cluster)架構實作指南

    🧱 Proxmox VE 高可用叢集(HA Cluster)架構實作指南

    要讓虛擬化環境在硬體故障時自動接手、縮短停機時間,你需要 HA 叢集。本文從 設計要點建立叢集Quorum/CorosyncHA ManagerFencing 與故障演練,一步步完成可落地的 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)

    1. 在第一台節點(node1)建立叢集:
    # node1
    pvecm create lab-cluster
    pvecm status
    
    1. 其他節點加入叢集:
    # 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」建立 GroupFailover 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
    

    七、故障演練與驗證流程

    1. 關閉 HA 資源所在節點的管理網路介面或模擬主機斷電。
    2. 於其他節點監看 ha-manager status,確認資源於預期節點啟動。
    3. 在共享儲存上確認 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 叢集真正達到企業級可用性。


    🔗 延伸閱讀

    — WWFandy・系統與網路筆記

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級