🧱 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 配置:
- Cluster Network 專線 + Bond0
- Management Network (vmbr0) 分離
- Ceph Public/Cluster network 分離
- 節點 CPU C-State 關閉
- 全部使用 Enterprise SSD / NVMe(DWPD>1)
- Bios 設置固定模式(Performance、停用省電)
- 啟用 chrony,所有節點完全同步
- 禁用兩台 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 損毀的情況下,仍然保持高可用性並快速恢復。
沒有留言: