Wie lässt sich ein Cluster-Node manuell trennen?

Hallo zusammen,

ich habe auf einem VMware ESX-Host zwei MobyDick-Appliances laufen (Community Edition), welche über ein Cluster miteinander verbunden sind. Bis gestern liefen diese auch durch (Testumgebung, daher nichts kritisches).

Nun jedoch komme ich über die Cluster-IP nicht mehr auf das Webfrontend. Ein Ping auf die Cluster-IP bringt keine Antwort. Über die direkten IPs der beiden MD kann ich den CRM-Status einwandfrei aufrufen. Unter “Node list” steht, dass beide im Standby laufen, als wenn sich gerade keine zuständig fühlt. Auch ein Neustart der beiden Appliances schlug fehl. Gestern stand einzig der ESX-Host unter erhöhter Last.

Frage: Wie kann ich die beiden vom Cluster manuell trennen sodass ich wieder eine Stand-alone MD habe und wie kann das passieren?

Viele Grüße und vielen Dank
Michel

Hallo MIS,

Kann es sein das der Cluster Heartbeat getrennt ist?

Gruß Markus

Hallo Michel,

“STANDBY” bedeutet im Zusammenhang mit dem Cluster das dieser Knoten gerade nicht aktiv am Cluster beteiligt ist, d. h . er würde auch im Falle eines Failovers nicht einspringen. Dies passiert grundsätzlich immer dann wenn kurz vorher tatsächlich ein Failover passiert ist. Dann geht der Node, der früher Master war, in Standby, da man ja ohnehin die Ursache für den Failover zuerst erforschen muss (es könnte ja sein das an diesem Node etwas defekt ist).

Dein Fall, dass beide Nodes in Standby sind, sollte üblicherweise nicht auftreten, kann aber bei einer Unsachgemäßen Netzwerkkonfiguration vorkommen. Der Cluster ist ja über 2 Netzwerke verbunden, zum einen das Telefonnetz, und dann das interne Clusternetz, das zur Synchronsiation und zum “Hearbeat” verwendet wird, d. h. beide Nodes prüfen ob der jeweils andere “noch lebt”. Verliert nun der Slave beide Netzwerkverbindungen, geht er automatisch in den Standby (und wird definitiv nicht Master) um eine Split-Brain Situation zu vermeiden wenn das Netzwerk zurückkehrt. Der Master hingegen geht davon aus das er der einzige Knoten ist der die Verbindung verloren hat und geht ebenfalls in den Standby, da dieser davon ausgehen muss dass der frühere Slave nun Master geworden ist. Ein anderes Verhalten würde ebenfalls in einer Split-Brain Situation resultieren.

Bei kommerziellen Anlagen empfehlen/liefern wir üblicherweise 2 Hardware-Maschinen deren über ein direktes Netzwerkkabel (ohne Switch/weitere Infrastruktur) verbunden sind. Die obige Situation ist da sehr unwahrscheinlich.

Es gibt im Moment leider keinen einfachen Weg einen Slave wieder in einen normalen Betriebszustand zurückzuversetzen.

Du musst, eingeloggt als Root direkt auf einem der beiden Slaves, die folgenden Befehle ausführen:


/sbin/mdpromote.sh
/usr/bin/exdjob.pl -f
/etc/init.d/exd restart
su - postgres -c 'psql mobydick -c "DELETE FROM \"006node\";
su - postgres -c 'psql mobydick -c "DELETE FROM \"005cluster\";"';
/etc/init.d/pacemaker stop
rm -rvf /SOURCE/SHARE/etc/corosync
rm -rvf /SOURCE/SHARE/var/lib/corosync
rm -rvf /SOURCE/SHARE/var/lib/heartbeat
rm -rvf /SOURCE/SHARE/var/lib/pengine
rm -f /etc/apache2/sites-enabled/cluster.conf
rm -f /etc/cron.d/clusterrsync
sed -i -e "s/^id:3:initdefault:/id:2:initdefault:/" /etc/inittab
reboot

Der Cluster ist hinterher allerdings vollständig aufgelöst und du musst diesen neu einrichten.

Ich hoffe das hilft dir weiter!

Grüße,
Jan Lorenz

Hallo Jan,

vielen Dank für deine sehr ausführliche Antwort und die detailierte Schilderung der Bedeutung.

Mittels dieser Befehle auf einem Node ließ sich das Cluster erfolgreich manuell trennen. Auch das erneute Anlegen des Clusters hat ohne Probleme wieder funktioniert, beide kommunizieren nun wieder ordnungsgemäß. :slight_smile:

Die beiden Appliances verfügen je über zwei virtuelle Netzwerkkarten. Die eine (eth0) ist dabei dem Telefonienetzwerk zugeordnet (physikalische Anbindung am ESX zum tatsächlichen Netzwerk), die zweite ein virtueller interner Switch des ESX-Hosts, bei dem nur die beiden Appliances verbunden sind:


Dies sollte einer physikalischen Direktverbindung gleich kommen, oder?

Wir werden die Kaufversion der MobyDick in absehbarer Zeit als große Hauptanlage in unserer Firma einsetzen, worauf ich mich schon freue.

Viele Grüße
Michel

Hallo Michel,

“Sollte” - wie sich das aber genau verhält kann ich dir leider nicht aus dem Stehgreif sagen. Generell empfehlen wir den Einsatz unseres Cluster-Modules ausschließlich auf “echter” Hardware. Wenn du ohnehin mit VMWare virtualisierst, würde sich hier VMWare HA anbieten, um die Ausfallsicherheit zu gewährleisten…

Grüße,
Jan