Wir erhalten öfter Anfragen zu nicht mehr richtig funktionierenden Proxmox VE Clustern. Häufig wird zu Wartungszwecken ein Server aus dem Cluster entfernt und über Tage oder gar Wochen nicht mehr in den Cluster integriert - die vorhandenen VMs laufen ja auf dem verbleibenden Cluster oder der verbleibenden Node noch weiter. Möchte man dann Änderungen an einer VM oder Storage vornehmen, lassen sich diese Änderungen jedoch nicht mehr speichern. Dabei handelt es sich nicht um einen Bug, sondern um ein Sicherheitsfeature, das richtig konfiguriert auch mit solchen Situationen richtig umgeht.
Die Ursache dieses Verhaltens steckt in den Grundlagen eines Clusters. Bei einem Proxmox VE Cluster handelt es sich um einen Multi Master Cluster, bei dem es keine zentrale Steuerung gibt. Somit existiert auch kein Single Point Of Failure (SPOF). Egal welche Komponente des Clusters ausfällt - der Cluster selbst bleibt handlungsfähig und die hochverfügbaren Services bleiben weiterhin online.
Wenn ohne eine zentrale Steuerung in einem Cluster eine Entscheidung getroffen werden muss, beispielsweise zum Start eines HA Service, dann wird über ein Quorum ermittelt, ob mehr als die Hälfte aller Cluster Nodes noch verfügbar sind um eine Entscheidung gemeinsam treffen zu können. Dies geschieht, um sogenannte Split-Brain Situationen zu vermeiden.
Häufig bestehen Proxmox VE Cluster jedoch nur aus zwei Nodes und verwenden auch keine automatisierte Hochverfügbarkeit. Ist nun eine der beiden Cluster Nodes aufgrund von Neustarts, Wartungsarbeiten oder Ausfällen nicht verfügbar, besitzt die verbleibende Node nut noch 50% aller Stimmen des Clusters. Um Änderungen vornehmen zu können benötigt der verbleibende Teil des Clusters jedoch die Mehrheit aller Stimmen und 50% reichen dazu nicht aus.
Die Folge ist, dass /etc/pve auf Read-Only gesetzt wird und somit keine Änderungen mehr an VMs, Storages oder im Cluster selbst möglich sind.
In einem Cluster aus zwei Nodes bedeutet es, dass beide Nodes verfügbar sein müssen, damit Konfigurationsänderungen vorgenommen werden können. Bei einem Cluster aus zwei Nodes lässt sich dies aber kaum zu jeder Zeit sicherstellen. HA Cluster auf Basis von zwei Nodes alleine sollte man daher auch unbedingt vermeiden - eine Lösung kann das Einbinden einer dritten Stimme ("Vote") im Cluster mit Hilfe einer Quorum Disk sein.
Gerät man nun in die Situation, dass eine der beiden Nodes nicht verfügbar ist und man dennnoch Ãânderungen vornehmen muss, genügt es die benötigte Anzahl der Stimmen auf 1 herunter zu setzen. Dies kann man auf der Shell mit einem einfachen Kommando erledigen:
pvecm expected 1
Damit kommt ein Quorum zustande und /etc/pve wird wieder beschreibbar. Nun können Ãânderungen an der Konfiguration vorgenommen werden.
Allerdings lässt sich in der Cluster bereits vorab so konfigurieren, dass bereits eine verfügbare Node genügt um Quorum in einem "Two Node Cluster" zu erreichen. Hierfür muss nur die /etc/pve/cluster.conf
angepasst werden:
<cman two_node="1" expected_votes="1" [...bestehende weitere Konfiguration...] > </cman>
Wie üblich, muss die Konfiguration dann noch clusterweit verteilt und aktiviert werden - danach ist auch das Herunterfahren einer Node nicht mehr weiter tragisch.
Sie benötigen Support für Ihren Proxmox VE Cluster? Wir als erfahrener Proxmox Partner und autorisiertes Proxmox Training Center helfen gerne und freuen uns auf Ihre Anfrage.
Bildnachweis: © deathtothestockphoto.com