叢集要能正常運作,需要「過半數」節點同意,這叫仲裁(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 生成。