In diesem Artikel erfahren Sie, wie Sie ein Proxmox-VE-Cluster nach einem schwerwiegenden Corosync-Konfigurationsfehler oder vollständigen Quorum-Verlust wiederherstellen, indem Sie das Cluster-Dateisystem (pmxcfs) im lokalen Modus starten und eine korrigierte corosync.conf synchronisieren.
Achtung: Eingriffe in das Proxmox Cluster Filesystem (pmxcfs) und die Corosync-Konfigurationsdateien greifen direkt in die Quorum- und Konsenslogik des Clusters ein. Fehlerhafte Syntax oder unvollständige Node-Definitionen können zum vollständigen Stillstand des Clusters und zu HA-Fencing (Watchdog-Reboots) führen. Erstellen Sie vor der Durchführung zwingend ein lokales Backup der aktuellen Konfigurationsdateien.
Haftungsausschluss: Für die Korrektheit, Vollständigkeit und Aktualität dieses Beitrags sowie der bereitgestellten Befehle wird keine Garantie oder Gewährleistung übernommen. Die Durchführung aller Schritte erfolgt ausdrücklich auf eigene Gefahr und eigenes Risiko.
Inhaltsverzeichnis
- Hintergrund: Die Blockade durch Quorum-Verlust in pmxcfs
- Vorbereitung: Korrigierte corosync.conf bereitstellen
- Schritt 1: Corosync und pve-cluster auf allen Nodes stoppen
- Schritt 2: pmxcfs im lokalen Modus starten
- Schritt 3: Korrigierte Corosync-Konfiguration einspielen
- Schritt 4: Lokalen pmxcfs-Prozess beenden
- Schritt 5: Cluster-Dienste regulär starten
- Schritt 6: Status & Logs verifizieren
- Befehlsübersicht (Cheatsheet)
- Fazit
Hintergrund: Die Blockade durch Quorum-Verlust in pmxcfs
Proxmox VE nutzt das Proxmox Cluster Filesystem (pmxcfs) unter /etc/pve/, um Konfigurationsdateien, VM-Zuweisungen und Cluster-Zustände synchron über alle Knoten bereitzustellen. Das Dateisystem ist über eine SQLite-Datenbank realisiert und eng an den Konsensdienst Corosync gekoppelt.
Kommt es durch Netzwerk-Umkonfigurationen, fehlerhafte IP-Adressen oder Syntaxfehler in corosync.conf zu einem Ausfall der Corosync-Kommunikation, verliert das Cluster sein Quorum. In diesem Zustand versetzt pmxcfs das gesamte Verzeichnis /etc/pve/ in einen Read-Only-Modus.
Hieraus entsteht eine typische Blockadesituation:
- Die Datei
/etc/pve/corosync.confkann im normalen Betrieb nicht editiert werden, da das Dateisystem schreibgeschützt ist. - Corosync kann nicht starten oder Quorum erlangen, solange die fehlerhafte Konfiguration in
/etc/pve/liegt.
Die Lösung für dieses Disaster-Recovery-Szenario besteht darin, pmxcfs im lokalen Modus (pmxcfs -l) zu starten. In diesem Modus arbeitet pmxcfs ohne Corosync-Bindung und erlaubt direkte Schreibzugriffe auf die lokale SQLite-Datenbank.
Vorbereitung: Korrigierte corosync.conf bereitstellen
Erstellen oder bearbeiten Sie vorab eine intakte Konfigurationsdatei (z. B. unter /root/correct_corosync.conf). Achten Sie darauf, dass alle Knotennamen, IDs und IP-Adressen (ring0_addr) der aktuellen Netzwerk-Topologie entsprechen.
Zwingend erforderlich: Inkrementieren der config_version
Innerhalb der Datei corosync.conf existiert im Block totem der Parameter config_version. Dieser Zähler muss zwingend um mindestens 1 erhöht werden (z. B. von 3 auf 4). Achten Sie darauf, nicht die Protokoll-Option version: 2 (welche unverändert bleibt) zu bearbeiten, sondern explizit config_version:
totem {
cluster_name: pve-cluster
config_version: 4
ip_version: ipv4-6
secauth: on
version: 2
interface {
linknumber: 0
}
interface {
linknumber: 1
}
}
Schritt 1: Corosync und pve-cluster auf allen Nodes stoppen
Um Konflikte und Sperren zu vermeiden, stoppen Sie die Dienste corosync und pve-cluster auf allen Knoten des Clusters:
root@pve:~# systemctl stop corosync pve-cluster
Damit sind die Hintergrund-Dämonen vollständig angehalten und der Zugriff auf das Cluster-Dateisystem ist vorübergehend freigegeben.
Schritt 2: pmxcfs im lokalen Modus starten
Starten Sie das Proxmox Cluster Filesystem nun manuell mit dem Parameter -l (Local Mode) auf den betroffenen Knoten:
root@pve:~# pmxcfs -l
Wirkung: Das Verzeichnis /etc/pve/ wird gemountet und ist ab sofort voll beschreibbar, ohne dass ein Corosync-Quorum vorausgesetzt wird.
Schritt 3: Korrigierte Corosync-Konfiguration einspielen
Kopieren Sie die vorbereitete, korrigierte Konfigurationsdatei sowohl in das Cluster-Dateisystem als auch in das lokale Corosync-Verzeichnis:
root@pve:~# cp correct_corosync.conf /etc/pve/corosync.conf
root@pve:~# cp correct_corosync.conf /etc/corosync/corosync.conf
Hintergrund der beiden Pfade:
/etc/pve/corosync.conf: Speichert die Konfiguration in der SQLite-Datenbank des Cluster-Dateisystems./etc/corosync/corosync.conf: Dient dem Corosync-Daemon als lokale Konfigurationskopie beim Systemstart.
Schritt 4: Lokalen pmxcfs-Prozess beenden
Nachdem die Dateien geschrieben wurden, beenden Sie den manuell im lokalen Modus gestarteten Prozess:
root@pve:~# killall pmxcfs
Damit wird das temporäre lokale Mounten von /etc/pve/ beendet, sodass der reguläre Systemd-Dienst pve-cluster wieder die saubere Verwaltung übernehmen kann.
Schritt 5: Cluster-Dienste regulär starten
Starten Sie nun auf allen Knoten die Dienste in der korrekten Reihenfolge wieder:
root@pve:~# systemctl start pve-cluster corosync
Zuerst initialisiert pve-cluster das Cluster-Dateisystem mit der neuen Konfiguration, woraufhin corosync die Kommunikation und das Quorum wiederherstellt.
Schritt 6: Status & Logs verifizieren
Prüfen Sie unmittelbar nach dem Start die System-Logs der letzten fünf Minuten sowie den aktuellen Cluster-Status:
1. Systemd-Journal abfragen
root@pve:~# journalctl --since '-5min' -u pve-cluster -u corosync
Achten Sie darauf, dass keine Fehlermeldungen bezüglich ungültiger Schlüssel oder abgelehnter Verbindungen auftreten.
2. Cluster-Quorum prüfen
root@pve:~# pvecm status
Die Ausgabe bestätigt ein vollständig synchronisiertes und handlungsfähiges Cluster:
Cluster information
-------------------
Name: pve-cluster
Config Version: 4
Transport: knet
Secure auth: on
Quorum information
------------------
Date: Mon Sep 14 13:40:00 2026
Quorum provider: corosync_knet
Nodes: 3
Node ID: 0x00000001
Ring ID: 1.4
Quorate: Yes
Votequorum information
----------------------
Expected votes: 3
Highest expected: 3
Total votes: 3
Quorum: 2
Flags: Quorate
Befehlsübersicht (Cheatsheet)
| Aktion | CLI-Befehl | Zweck |
|---|---|---|
| 1. Dienste stoppen | systemctl stop corosync pve-cluster |
Stoppt Dämonen clusterweit für wartungsfreien Dateizugriff |
| 2. Lokaler Modus | pmxcfs -l |
Startet pmxcfs ohne Quorum-Prüfung schreibbar |
| 3. Sync Konfiguration | cp correct_corosync.conf /etc/pve/corosync.confcp correct_corosync.conf /etc/corosync/corosync.conf |
Spielt korrigierte Datei mit erhöhter config_version ein |
| 4. Lokales pmxcfs beenden | killall pmxcfs |
Gibt Dateisystem für Systemd-Dienst frei |
| 5. Cluster-Start | systemctl start pve-cluster corosync |
Startet reguläre Cluster-Dienste in richtiger Reihenfolge |
| 6. Verifikation | journalctl --since '-5min' -u pve-cluster -u corosyncpvecm status |
Prüft Journal-Logs und Quorum-Status (Quorate: Yes) |
Fazit
Der lokale Modus von pmxcfs ist das entscheidende Rettungswerkzeug, um zirkuläre Abhängigkeiten bei fehlerhaften Corosync-Konfigurationen aufzulösen. Durch das gezielte Stoppen der Dienste, das Einspielen der korrigierten corosync.conf mit erhöhter config_version und den geordneten Neustart kann das Cluster innerhalb weniger Minuten ohne Datenverlust wieder in den produktiven Status überführt werden.
Sie benötigen Unterstützung bei Ihrem Proxmox VE Cluster?
Direkter Experten-Support, Audits und zertifizierte Trainings für Ihr IT-Team.
Proxmox VE & Corosync Support
Ob akute Split-Brain-Situationen, Corosync-Wiederherstellung, Cluster-Neustrukturierung oder ganzheitliche Enterprise-Audits: Unsere Spezialisten unterstützen Ihr IT-Team schnell, praxisnah und auf Augenhöhe.

