Zum Inhalt springen
L

Wikipedia · einfach zusammengefasst · Stand

Split Brain (Informatik)

Split Brain ist in der Informatik ein unerwünschter Zustand eines Computerclusters, bei dem alle Zwischenverbindungen zwischen den Clusterteilen …

Inhalt5 Abschnitte
  1. 1. Kernidee
  2. 2. Formen der Auftrennung
  3. 3. Entstehung
  4. 4. Auswirkungen auf Daten
  5. 5. Gegenmaßnahmen

Kernidee

Split Brain ist in der Informatik ein unerwünschter Zustand eines Computerclusters. Ein Computercluster ist ein Verbund mehrerer Rechner oder Knoten, die gemeinsam einen Dienst bereitstellen. Von Split Brain spricht man, wenn alle Zwischenverbindungen zwischen Teilen des Clusters gleichzeitig unterbrochen sind.

Das ist wichtig, weil die getrennten Clusterteile weiterhin funktionieren können, aber sich nicht mehr miteinander koordinieren. Für Benutzerinnen und Benutzer kann der Dienst trotzdem normal wirken, obwohl im Hintergrund widersprüchliche Datenstände entstehen können.

Formen der Auftrennung

Es gibt mehrere Grundformen von Split Brain:

  • Ein einzelner Knoten wird vom restlichen Cluster getrennt. Ein Extremfall ist die Teilung eines 2-Knoten-Clusters.
  • Ein Mehr-Knoten-Cluster mit mehr als zwei Knoten wird in zwei ungleiche Teile aufgeteilt.
  • Ein Mehr-Knoten-Cluster mit mehr als zwei Knoten wird in zwei gleiche Teile aufgeteilt.
  • Ein Mehr-Knoten-Cluster mit mehr als zwei Knoten wird in mehr als zwei Teile aufgeteilt. Diese Lage wird jedoch als mehrere einzelne Split-Brain-Szenarien betrachtet.

Entstehung

Zur Koordination von Transaktionen in einem Cluster wird meist ein Cluster Interconnect oder ein Quorum verwendet. Ein Cluster Interconnect ist eine Verbindung zwischen den Clusterknoten zur Abstimmung. Ein Quorum ist ein Entscheidungsmechanismus, mit dem festgestellt werden soll, welcher Teil des Clusters handlungsfähig bleibt.

Wenn die Verbindung zwischen einem oder mehreren Clusterteilen über diesen Koordinationsweg unterbrochen wird, kann kein Teil mehr sicher unterscheiden, ob ein partieller Ausfall vorliegt oder ob der Cluster nur getrennt wurde. Die isolierten Clusterfragmente arbeiten dann für sich weiter, um den Dienst aufrechtzuerhalten. Da die Netzwerkanbindung zum öffentlichen Netz, also zu den Benutzern, normalerweise weiterhin funktioniert, bleibt das Problem zunächst oft verborgen.

Auswirkungen auf Daten

Das Grundproblem besteht darin, dass mindestens zwei Teile des Clusters noch funktionieren, aber keine Koordination zwischen ihnen möglich ist. Reine Lesezugriffe wirken zunächst nicht unmittelbar problematisch. Schreibzugriffe führen jedoch zu schweren Konflikten.

Schreibvorgänge verteilen sich auf die voneinander isolierten Clusterteile. Die Logikschicht, englisch middle tier, oder der Benutzer bemerkt dabei möglicherweise nichts Auffälliges, weil sich der Cluster aus Anwendersicht wie im Normalbetrieb verhält. Wegen der unterbrochenen Zwischenverbindung kann aber ein von Knoten oder Teil A geschriebener Block von Knoten oder Teil B nicht gelesen werden und umgekehrt.

Dadurch laufen die Datenstände auseinander. Die Konsistenz der Daten ist nicht mehr gewährleistet. Die Wiederherstellung aller Daten nach einer solchen Situation ist im Normalfall nicht mehr mit vertretbarem Zeitaufwand möglich oder sogar ganz unmöglich.

Gegenmaßnahmen

Die Grundlage aller Gegenmaßnahmen ist der gleichzeitige Einsatz von Quorum und Cluster Interconnect. Wenn nur eine dieser beiden Koordinationsmöglichkeiten getrennt wird, kann der Cluster weiterhin zwischen einer Teilung und einem partiellen Ausfall unterscheiden.

Sollen auch parallele Ausfälle abgesichert werden, also der gleichzeitige Verlust mehrerer betriebskritischer Teile, steigt der Aufwand stark. Zur Verhütung von Split Brain können zum Beispiel mehrere Quoren und parallelisierte oder gebondete Interconnects eingesetzt werden. So kann der Ausfall von Interconnect und einer Storage abgefangen werden.

Eine zuverlässige automatische Entscheidung ist nötig, damit klar ist, welcher Clusterteil weiterarbeiten darf. Bei Oracle Clusterware überlebt nach dem Verlust des Interconnects zunächst der Teil oder Knoten mit Sicht auf die meisten Quoren, danach der Teil oder Knoten mit der höchsten Arbeitslast. Oracle verwendet eine ungerade Anzahl von Quoren, damit nicht zwei Teile jeweils gleich viele, aber verschiedene Quoren sehen.

Alle Knoten, die sich im Quorum treffen, müssen sich auch im Interconnect sehen. Ist das nicht der Fall, entscheiden Last- und Topologieinformationen in der Voting Disk über Leben oder Tod eines Knotens. Die Entscheidungsliste wird dann erweitert: Es überlebt zuerst der Teil oder Knoten mit Sicht auf die meisten Quoren, dann der Teil mit den meisten Knoten, dann der Teil oder Knoten mit der höchsten Arbeitslast.

Einem Clusterknoten kann im Quorum eine höhere Wertung, also Stimme, gegeben werden, sodass dieser immer überlebt. Der überlebende Knoten zwingt die anderen Knoten dann zur Aufgabe, etwa durch einen Neustart; dies wird mit STONITH in Verbindung gebracht. Für höhere Sicherheit kann außerdem ein Zeuge, englisch Witness, eingeführt werden, damit mindestens zwei Quellen verfügbar sind oder eine Gewichtung stattfindet.

Weiterlesen