兩台 Proxmox 組叢集,第三票從哪來?QDevice 跟 Ceph 副本解的是兩件不同的事
叢集要能正常運作,需要「過半數」節點同意,這叫仲裁(quorum)。三台機器壞一台,剩兩台還是過半;但如果只有兩台,任何一台失聯,剩下那台就只有一半的票,叢集會為了安全直接停在唯讀狀態。
中小企業常常只有兩台主機,第三票要從哪裡來?
做法一(最推薦):QDevice
在 NAS 上跑一個很輕量的 corosync-qnetd 服務。它不存任何虛擬機資料,只當「見證人」:兩台 PVE 失聯時,誰還連得到 NAS,誰就拿到那一票、繼續運作,避免兩邊各自以為自己是老大(腦裂)。
條件是 NAS 要能跑 Docker 或裝 Linux 套件;PVE 端裝 corosync-qdevice,再用 pvecm qdevice setup 註冊。
做法二:Ceph 的第三副本——解的是另一件事
很多人以為在 NAS 上放一份 Ceph 資料副本,也能當第三票。不行。Ceph 副本解的是「資料有幾份」,處理的是資料遺失;QDevice 解的是「誰有投票權」,處理的是腦裂。兩件事都重要,但不能拿一個代替另一個。
叢集出事時的兩個常見情境
- 幽靈節點:某台主機下線很久,設定卻還留在叢集裡,票數永遠湊不齊。要從
corosync.conf和/etc/pve/nodes/把殘留清掉。 - Ceph 認證衝突:節點重建後,金鑰跟叢集對不上,硬碟加不回去。要重新產生並發送金鑰。
一個用錯就會出大事的指令
失去仲裁時 /etc/pve 會變唯讀,連設定都改不了。救援期間可以用 pvecm expected 1,暫時把需要的票數降到 1。
但這是雙面刃:只能在確定另一台真的關機之後才用。如果兩台其實都還活著,你在兩邊各下一次,就會直接造成腦裂、資料分岔。修好之後,記得把票數改回來。
小結
兩台主機組叢集是可以的,但一定要有第三票。QDevice 管投票,Ceph 副本管資料,兩個都想清楚了,叢集才真的「高可用」。
資料來源
- 本人 PVE 叢集維運筆記與一次叢集救援的復盤(2026-01)
- Proxmox VE 官方叢集管理文件
封面圖由 AI 生成。
留言討論
留言載入中…
留言會公開顯示,請遵守留言規範;違規留言會被移除。