Node aus Cluster entfernen

Bastelecke > Proxmox VE > Knowledge Base > Node aus Cluster entfernen

Während das Hinzufügen eines Nodes, zu einem Cluster, mit wenigen Klicks in der Weboberfläche erfolgt, lassen sich Nodes nur mit Befehl über die Shell aus den bestehenden Cluster heraus werfen. Dieser Befehl muss in der Shell des Nodes eingegeben werden, der auch das Cluster erstellt hat.

Zuerst müsst ihr jedoch alle virtuellen Maschinen und Container von eurem rauszuwerfenden Node entfernen. Ihr könnt diese also entweder löschen oder auf andere Nodes verteilen. Ist der Node leer, fahrt ihr ihn herunter, wechselt ihr in die Konsole eines anderen Nodes und gebt den Befehl ein:

pvecm delnode <name_des_nodes>

Als Namen gibt ihr den Namen an, der euch auch in der Weboberfläche als Name des zu entfernenden Nodes angezeigt wird.

And thats it. Um nun noch den Namen des rausgeworfenen Nodes aus der Liste zu entfernen, müsst ihr noch das entsprechende Verzeichnis aus dem Dateisystem löschen:

cd /etc/pve/nodes

rm -r <name_des_nodes>

Ein Node, welcher aus einem Cluster entfernt wurde, kann nicht einfach wieder als Standalone-Server eingesetzt werden. Auch kann man ihn nicht einfach wieder hinzu fügen. Er wird nach seinem Entfernen nie wieder der sein, der er vor seinem Hinzufügen war. Hier ist nun zwingend eine komplette Neuinstallation erforderlich, bevor man mit ihm weiter arbeiten kann!

 

Das Problem mit dem gestörten Quorum

Es kann vorkommen, das nach dem Entfernen eines Nodes auf einmal die virtuellen Maschinen auf sämtlichen anderen Nodes stoppen und in eine art Warteschleife versetzt werden, jedoch nicht wieder starten wollen. 

Keine Panik, hier ist nichts "zerschossen", das liegt lediglich am voreingestellten Quorum. 

Fasst ihr Nodes zu einem Cluster zusammen, bilden sie zusammen ein so genanntes Hochverfügbarkeitscluster. Das heißt, ihr könnt virtuellen Maschinen sagen, das wenn ihr Node ausfällt, sie einfach auf einem anderen Node wieder starten sollen. Dafür ist jedoch eine gewisse voreingestellte Mindestanzahl von Nodes erforderlich, die sich beim Cluster mit einem "hallo, hier bin ich" melden müssen und somit das Quorum erfüllen. Die Anzahl der erforderlichen Nodes erhöht sich mit jedem weiteren Node, den ihr hinzu fügt. 

Werft ihr nun mehrere Nodes hinaus, kann es passieren das zum erfüllen des Quorums beispielsweise 5 Anmeldungen erforderlich sind, ihr aber nur noch 4 Nodes im Cluster habt. Somit reicht die Anzahl der Nodes nicht aus und die virtuellen Maschinen starten nicht. Das lässt sich mit folgendem Befehl beheben:

pvecm expected 3

Dabei steht die "3" für die Anzahl eurer Nodes steht, die ihr in eurem Cluster betreibt. Daraus wird dann das Quorum gebildet, also die Anzahl der Nodes, die "hallo hier bin ich" melden müssen, damit die Maschinen starten. 

 

Wozu das ganze mit dem Quorum und warum "1" und "2" ganz schlechte Zahlen sind

Das Quorum soll sicher stellen das eine virtuelle Maschine immer nur ein Mal gestartet wird. 

Stellt euch ein Cluster von 3 Nodes vor und jetzt fällt die Netzwerkverbindung von Node 3 aus. Für Node 1 und 2 passiert hier erstmal nichts besosnderes, alle auf ihnen ausgeführten Maschinen laufen ungehindert weiter. Für Node 3 sieht das ganze jedoch so aus als ob Node 1 und 2 beide ausgefallen sind. Mit einem Quorum von 1 würde nun alleine die Meldung von Node 3 "himself" ausreichen um die Maschinen von 1 und 2 neu auf Node 3 zu starten. Blöd nur das sie auch auf 1 und 2 weiter laufen und dort, durch andere äußere Einflüsse, sich die Speicherstände auf unterschiedliche Weise entwickeln als auf 3. Es kommt zum so genannten "Split-Brain-Problem". Stellt man die Netzwerkverbindung nun wieder her, hat man zwei mal die gleichen Maschinen unter selben Namen im Cluster, jedoch mit unterschiedlichen Datenbeständen. Das führt unweigerlich zum Datenverlust.

In diesem einfachen Beispiel würde es ausreichen die Maschine auf Node 3 zu beenden und zu entfernen bevor er wieder ans Netz geht. Da dieser komplett isoliert war, sind die hier erfolgten Änderungen belanglos und es reicht aus nach Herstellung der Netzwerkverbindung die Replikation neu anzuwerfen. Schlimmer verhält es sich wenn das Cluster über ein zweites Netz, auf einer seperaten Netzwerkkarte, betrieben wird, und eben hier die Verbindung ausfällt. Benutzerseitig wäre der Node 3 ja immer noch am Netz und das System wäre immer noch verfügbar, jetzt jedoch doppelt. Möglicherweise könnten nun auf beiden Systemen wichtige Nutzerdaten gespeichert werden und die Datenbestände würden sich immer weiter voneinander entfernen und ließen sich auch nachträglich nicht wieder einfach zusammen führen. 

Das Quorum stellt somit sicher das die größere Hälfte des Verbundes noch vorhanden ist und nur dann dürfen die virtuellen Maschinen des ausgefallenen Nodes übernommen werden. Ist die eine Hälfte größer, ist die Andere unweigerlich kleiner. Somit ist klar definiert welche Seite übernehmen darf und welche nicht.

Der Status des HA-Clusters, sowie das eingestellte Quorum, lässt sich wie rechts zu sehen auch mit folgendem Befehl abfragen:

pvecm status

Erst mit einer Node-Anzahl von mehr als 2 Nodes lässt sich eine klar größere Hälfte bilden. Daher ist 3 auch die Mindestanzahl von Nodes, die erforderlich ist um ein Hochverfügbarkeits-Cluster zu bilden. Eine kleinere Anzahl kann zu eben diesem besagten Split-Brain-Problem führen.