Proxmox-Integration

Proxmox VE benutzt corosync zur Cluster-Kommunikation. Das QDevice klinkt sich als externer Quorum-Teilnehmer ein und wird über das pvecm-Tool aktiviert.

Corosync und Quorum in Proxmox

Proxmox-Nodes tauschen über corosync Heartbeats und Cluster-Zustand aus. Corosync zählt Stimmen und entscheidet, welche Partition Quorum hat. Standard: jede Node = 1 Stimme. Mit aktiviertem QDevice wird zusätzlich eine externe Stimme über corosync-qnetd hinzugefügt.

Welche Ports werden gebraucht?

Vom Proxmox-Node nach außen zum QDevice:

  • TCP 5403 — corosync-qnetd Protokoll (Quorum-Vote)
  • TCP 22 — einmaliges Setup (Schlüsselaustausch über pvecm qdevice setup)

Bei WireGuard-Modus geht beides durch den verschlüsselten Tunnel — nach außen sieht der Node nur die WG-IP des QDevice (10.200.x.1).

Setup auf dem Proxmox-Node

Das corosync-qdevice-Paket muss auf jedem Node installiert sein:

$ apt install corosync-qdevice

Dann auf einem Node das QDevice einbinden:

$ pvecm qdevice setup <qdevice-ip>

Der Befehl tauscht SSH-Keys aus, kopiert das corosync-qnetd-Zertifikat, passt /etc/pve/corosync.conf an und reloaded den Cluster. Danach hat das Cluster eine zusätzliche Quorum-Stimme.

Verifikation

Mit `pvecm status` siehst du die Quorum-Info:

$ pvecm status

Suche nach „Qdevice“ in der Membership-Liste und prüfe, dass die Gesamt-Stimmenzahl wie erwartet ist (2 Nodes + QDevice = 3 Stimmen).

QDevice wieder entfernen

Das Entfernen ist genauso simpel wie das Einbinden — auf einem Node reicht:

$ pvecm qdevice remove

Damit wird der QDevice aus `/etc/pve/corosync.conf` entfernt, corosync lädt auf allen Nodes die neue Config, und das Cluster läuft wieder ohne externen Tiebreaker. Wichtig: diesen Befehl immer ausführen, BEVOR du den zugehörigen Cluster in Quorumbase löschst — sonst zeigt `pvecm status` den QDevice danach als „missing“ an und du brauchst manuelle Cleanup-Schritte in der corosync.conf.

Notfall: erwartete Stimmen anpassen

Wenn ein 2-Node-Cluster ohne QDevice in eine Split-Brain-Situation gerät und du auf einer Seite weiterarbeiten musst (z.B. weil die andere Seite physisch tot ist), kannst du die Erwartung an die Stimmenzahl manuell senken:

$ pvecm expected 1

Damit akzeptiert corosync auf diesem Node 1 Stimme als Quorum-Mehrheit — VMs lassen sich wieder schreiben/migrieren. Achtung: Notfall-Maßnahme. Solange die andere Seite irgendwo läuft, riskierst du echten Datenverlust. Sobald genug Stimmen zurückkommen, normalisiert corosync den Wert von selbst.

Offizielle Proxmox-Doku

Die offizielle Proxmox-Doku geht in die Details. Besonders relevant:

Proxmox-Integration · Quorumbase