Wenn Clusterknoten den Kontakt miteinander verlieren, um ein Split-Brain- Szenario zu vermeiden , in dem beide Knoten sich als primär betrachten und gleichzeitig versuchen, die gemeinsam genutzte Ressource mit potenzieller Katastrophe auszuführen (dies ist insbesondere bei zwei Knotenclustern ein großes Problem , denn wer ist beschlussfähig, wenn beide Knoten jeweils eine Stimme haben?) Um dies zu mildern, implementieren einige Cluster verschiedene Formen der Umzäunung.
Auf der Linux-Ha-Wiki-Seite:
Beim Fechten werden Ressourcen von einem Knoten weggesperrt, dessen Status ungewiss ist.
Es gibt eine Vielzahl von Zauntechniken.
Man kann entweder Knoten mit Node Fencing oder Ressourcen mit Resource Fencing umzäunen. Einige Arten von Ressourcen sind Self-Fencing-Ressourcen, andere werden bei gleichzeitiger Verwendung nicht beschädigt und erfordern überhaupt keine Umzäunung.
Wenn ein Knoten ein sauberes Herunterfahren durchführt, verlässt er den Cluster und die anderen wissen, was los ist, und übernehmen daher nur alle Dienste, die der Knoten möglicherweise ausgeführt hat, und fahren dann fort. Wenn der Knoten den Cluster nicht verlässt, sondern eine Kernel-Panik bekommt, kennen die anderen Cluster-Mitglieder den Status des anderen Knotens nicht. Es wird aus ihrer Sicht "unsicher" sein, also werden sie stattdessen die konfigurierten "Fencing" -Aktionen ausführen, was im Fall von STONITH bedeutet, dass versucht wird, den fehlerhaften Knoten mit Gewalt aus dem Cluster zu entfernen (durch Aus- und Einschalten usw.).
In Ihren Protokollen scheint der meatware
STONITH- Mechanismus für Ihre Cluster-Konfiguration ausgewählt zu sein. Wie der Name schon sagt, bedeutet dies, dass der andere Knoten manuell aus- und wieder eingeschaltet und dann der Befehl ausgeführt wird. Aus doc :
Fleischwaren
Seltsamer Name und ein einfaches Konzept. Fleischwaren benötigen die Hilfe eines Menschen, um funktionieren zu können. Bei jedem Aufruf protokolliert Fleischwaren eine CRIT-Schweregradmeldung, die auf der Konsole des Knotens angezeigt werden soll. Der Bediener sollte dann sicherstellen, dass der Knoten ausgefallen ist, und einen Befehl fleischclient (8) ausgeben, um Fleischwaren mitzuteilen, dass es in Ordnung ist, dem Cluster mitzuteilen, dass der Knoten möglicherweise tot ist. Weitere Informationen finden Sie unter README.meatware.
Es gibt andere Möglichkeiten, das Fencing zu konfigurieren. Wenn ich einen Cluster erstelle, bekomme ich normalerweise zwei APC-Switches für das Netzteil: s und konfiguriere "APC-Fencing" ( stonith -t apcmaster -h
). Wenn ein Knoten ausfällt, führt der andere einen harten Neustart durch, indem das fehlerhafte Mitglied aus- und wieder eingeschaltet wird, indem es sich bei der APC-Schnittstelle anmeldet und den Befehl zum Herunterfahren / Neustarten an die angeschlossenen Netzteilsteckplätze sendet (ich erhalte zwei, um einen einzelnen Fehlerpunkt zu vermeiden). .