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

🧱 Proxmox VE 防呆與高可用設計:避免節點失聯、磁碟失效與 Quorum 掉點的完整指南

    🧱 Proxmox VE 防呆與高可用設計:避免節點失聯、磁碟失效與 Quorum 掉點的完整指南

    架設 Proxmox VE 叢集(Cluster)時,最常遇到的問題包含: 節點失聯、Quorum 消失、虛擬機無法移轉、高可用(HA)失效、Ceph OSD 掉點、SSD 讀寫快掛

    本文將用最完整的方式整理出「Proxmox 防呆與高可用架構最佳實務」,目標是讓你的叢集 永遠維持穩定,不會因為單點問題導致整個環境停擺


    📌 一、Proxmox Cluster 易壞的真正原因

    幾乎所有 Proxmox 叢集問題,都可被歸類為三大類:

    • 網路問題:Corosync 延遲、Bond 模式錯誤、VLAN 配置錯誤、MTU 不一致
    • 儲存問題:Ceph 單點、OSD 掉點、SSD 壽命過短、ZFS over-provision 過高
    • 節點問題:時間不同步、CPU C-State、Power Saving 造成卡頓或延遲

    Proxmox 叢集最怕的是: 網路延遲 + 儲存不穩 = Corosync 過載 = Quorum 掉點 = 整個叢集無法操作


    📌 二、建議的 Proxmox HA 網路架構(ASCII 示意)

    3 Nodes Cluster(建議 3、5、7 台,不要 2 台)
    ---------------------------------------------
    
           (Corosync / Cluster Network)
         10.0.0.0/24 —— 低延遲獨立網段
    
      +-----------+      +-----------+      +-----------+
      |   Node1   |      |   Node2   |      |   Node3   |
      | vmbr0 mgmt|      | vmbr0 mgmt|      | vmbr0 mgmt|
      +-----+-----+      +-----+-----+      +-----+-----+
            |                   |                   |
            +--------Bond0------+--------Bond0------+----- (Cluster Net)
                    (LACP / Active-Backup)
      

    重點:

    • Cluster Network(Corosync)必須與 VM Traffic 分離
    • 建議兩張網卡做 Bond0 (active-backup) 或 LACP
    • Cluster/HA/Corosync 不要跑在 VLAN trunk 裡,延遲會更高
    • 三台以上才能有 Quorum(2 台一定會問題多)

    📌 三、Proxmox 必做的穩定調校(防呆設定)

    1. 關閉 CPU C-State(避免卡頓與 Corosync spike)

    # 在 BIOS 中關閉下列:
    Intel SpeedStep
    C1E Support
    C-State
    Package C-State limit (設為 C0)
      

    2. 開啟 chrony(時間不同步會導致叢集失聯)

    apt install chrony -y
    systemctl enable chronyd --now
      

    3. Cluster Network 使用專線(避免延遲)

    ping -f 10.0.0.12
    # 如果延遲超過 1ms 就不建議跑 HA
      

    4. Corosync 設定調整

    /etc/pve/corosync.conf
    rrp_mode: passive
    token: 3000
    consensus: 6000
    join: 60
      

    token/consensus 加長可以避免「瞬斷就掉 cluster」問題。


    📌 四、計劃 Ceph 的防呆設計(避免 OSD、MON 掉點)

    Ceph 是整個叢集中最容易因硬體問題而連鎖崩壞的部分。

    1. 每台至少要有 1 MON、1 MGR

    Node1 → MON + MGR
    Node2 → MON + MGR
    Node3 → MON + MGR
      

    2. OSD 建議至少 6 顆(每節點 2 顆)

    • SSD / NVMe 建議 Enterprise 級(DWPD>1)
    • 不要用 TLC/QLC 家用 SSD,OSD 極易損壞

    3. Ceph Network 一定要獨立(不要跑在 mgmt)

    Public Network:   10.10.0.0/24
    Cluster Network:  10.11.0.0/24
      

    4. 設定健康檢測

    ceph osd set-require-min-compat-client luminous
      

    📌 五、避免 Quorum 掉點:叢集最重要的防呆

    Proxmox 叢集失聯的 70% 都與 Quorum 有關。

    1. 使用「奇數節點」

    3 台 → 最低可運作:2
    5 台 → 最低可運作:3
    7 台 → 最低可運作:4
      

    2. 千萬不要這樣做:

    • ❌ 兩節點 cluster(非常容易 split-brain)
    • ❌ Cluster Network 放在 VLAN trunk
    • ❌ 用家用 switch
    • ❌ 使用 QLC/TLC SSD 當 OSD

    3. 開啟 QDevice(給兩節點用的,或用於提升可用性)

    pvecm qdevice setup 
      

    QDevice 本質是「投票機器」,讓 Quorum 不容易掉。


    📌 六、如何避免節點掉線(Node lost)

    Proxmox 節點掉線常見原因:

    • 網路 delay > 5ms(最常見)
    • NTP 不同步
    • CPU 省電模式
    • Bond 設置錯誤(802.3ad 換 port、hash 不一致)
    • Cluster Network 混雜 VM Traffic

    建議檢查方式

    # 檢查 corosync 狀態
    pvecm status
    
    # 檢查延遲
    corosync-cfgtool -s
    
    # 檢查節點 log
    journalctl -f
      

    📌 七、Proxmox HA 必做的「完整防呆配置」

    以下為企業用的最佳 HA 配置:

    1. Cluster Network 專線 + Bond0
    2. Management Network (vmbr0) 分離
    3. Ceph Public/Cluster network 分離
    4. 節點 CPU C-State 關閉
    5. 全部使用 Enterprise SSD / NVMe(DWPD>1)
    6. Bios 設置固定模式(Performance、停用省電)
    7. 啟用 chrony,所有節點完全同步
    8. 禁用兩台 cluster,至少三台

    📌 八、範例:最佳 Proxmox Cluster 三網劃分(企業版)

    vmbr0 → Management
    vmbr1 → Ceph Public (10.10.0.x)
    vmbr2 → Ceph Cluster (10.11.0.x)
    bond0 → Corosync (Cluster Net)
      

    這種架構的優點:

    • 管理、Ceph、Cluster 分離,不互相干擾
    • 延遲極低,HA 不會亂跳
    • 任何一個網路出問題不會拖垮叢集

    📌 九、常見的錯誤架構(務必避免)

    • ❌ 再大的環境只有 2 個 Node
    • ❌ Ceph + 管理 + VM + Corosync 全部跑同一網卡
    • ❌ VLAN Trunk 內跑 Corosync
    • ❌ Home Switch 當核心交換器
    • ❌ 使用 SATA SSD 鋪 Ceph

    📌 十、總結(你應該這樣做)

    如果要讓 Proxmox Cluster 永遠不掉、永遠不壞,你必須遵守以下原則:

    • ✔ Cluster Network 一定獨立
    • ✔ Corosync 延遲需小於 2ms
    • ✔ Ceph 需使用 Enterprise SSD
    • ✔ 必要時啟用 QDevice
    • ✔ 關閉 BIOS 節能機制
    • ✔ 必定使用奇數節點

    做到這些,你的 Proxmox 叢集將能在硬體故障、網路瞬斷、甚至 OSD 損毀的情況下,仍然保持高可用性並快速恢復。

    🔗 分享這篇 LINE Facebook X

    沒有留言:

    字級