DE60318468T2 - Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem - Google Patents

Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem Download PDF

Info

Publication number
DE60318468T2
DE60318468T2 DE60318468T DE60318468T DE60318468T2 DE 60318468 T2 DE60318468 T2 DE 60318468T2 DE 60318468 T DE60318468 T DE 60318468T DE 60318468 T DE60318468 T DE 60318468T DE 60318468 T2 DE60318468 T2 DE 60318468T2
Authority
DE
Germany
Prior art keywords
node
nodes
weight
cluster
shutdown
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60318468T
Other languages
English (en)
Other versions
DE60318468D1 (de
Inventor
Joseph W. Santa Cruz Armstrong
Shu-Ching Fremont Hsu
Miriyala San Jose SREEKANTH
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Siemens Computers Inc
Original Assignee
Fujitsu Siemens Computers Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Siemens Computers Inc filed Critical Fujitsu Siemens Computers Inc
Publication of DE60318468D1 publication Critical patent/DE60318468D1/de
Application granted granted Critical
Publication of DE60318468T2 publication Critical patent/DE60318468T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/142Reconfiguring to eliminate the error
    • G06F11/1425Reconfiguring to eliminate the error by reconfiguration of node membership
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0811Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

  • Die Erfindung betrifft ein Verfahren in einem Clustersystem mit einem ersten und wenigstens einem zweiten Knoten, wobei die Knoten mit einem Kommunikationsnetzwerk verbunden sind und ihnen ein Name und ein Hostgewicht zugeordnet ist, wobei das Verfahren in dem ersten und/oder dem wenigstens einen zweiten Knoten implementiert ist.
  • Computer-Clustersysteme bestehen aus einzelnen Computern, die als "Knoten" bezeichnet werden, die über ein Kommunikationsnetzwerk verbunden sind. Das Kommunikationsnetzwerk ermöglicht es ihnen, einen Kommunikationslink oder -kanal zwischen zwei Knoten herzustellen. Oft bestehen Computercluster auch aus einer gemeinsam genutzten Speichervorrichtung, die mit jedem der Knoten des Computerclusters verbunden ist. In dieser gemeinsam genutzten Vorrichtung werden einige Daten gespeichert, die von mehr als einem Knoten in dem Cluster verwendet werden. Um Nichtübereinstimmungen bei den Daten zu vermeiden, werden Mittel zur Datenübertragung zwischen den Knoten und den gemeinsam genutzten Vorrichtungen benötigt. Wenn zum Beispiel ein Knoten in dem Cluster Daten in eine Datei in der gemeinsam genutzten Speichervorrichtung schreibt, so darf ein zweiter Knoten diese Datei erst lesen, wenn der erste Knoten den Schreibvorgang beendet hat. Unter normalen Umständen setzt der erste Knoten, der die Daten in die Datei der gemeinsam genutzten Vorrichtung schreibt, den zweiten Knoten über den Schreibvorgang in Kenntnis und verhindert damit, dass der zweite Knoten die nun veraltete Datei liest. Diese Aufgabe wird über den Betriebskommunikationskanal zwischen den zwei Knoten erledigt.
  • Wenn ein Knoten in dem Computercluster ausfällt, so beendet er normalerweise die Nutzung der gemeinsam genutzten Vorrichtung. Andere Knoten in dem Computercluster können die Daten in der gemeinsam genutzten Vorrichtung verwenden, ohne dass das Risiko einer Datenbeschädigung besteht. Wenn jedoch der Kommunikationskanal zwischen zwei Knoten ausfällt, so dass die beteiligten Computer des Clusters zwar noch arbeiten, aber nicht mehr miteinander kommunizieren können, so kann es in den gemeinsam genutzten Vorrichtungen zu einer Datenbeschädigung kommen. Ein Ausfall des Kommunikationskanals wird als Split-Brain-Zustand bezeichnet. In diesem Fall kann es passieren, dass ein Knoten in einem der entstandenen Untercluster Daten in die Datei in einer gemeinsam genutzten Vorrichtung schreibt, während ein zweiter Knoten in dem anderen entstandenen Untercluster die Datei gleichzeitig liest oder beschreibt. Dadurch könnte ein ausgefallener Kommunikationskanal zu unkoordinierten Aktivitäten in den gemeinsam genutzten Vorrichtungen führen. Darum ist es erforderlich, eines der entstandenen Untercluster vollständig abzuschalten. Nach einer Abschaltung müssen Dienste durch die Knoten der verbliebenen Untercluster übernommen werden.
  • Ein Verfahren für diesen Zweck ist in EP 1 117 039 A2 gezeigt, wobei jeder Knoten Kommunikationsausfälle aus einer Gruppe von aufeinander reagierenden Knoten detektieren kann und mit diesen Unterclusterknoten die Bildung anderer zergliederter Untercluster vereinbaren kann. Wenn das Untercluster nicht die Mehrheit besitzt, d. h. wenn es nicht das größte verbliebene Untercluster ist, so senden die Knoten Abschaltbefehle an beteiligte Computer ihrer eigenen Untercluster.
  • Ein weiterer Abschaltvorgang eines Unterclustersystems erfolgt in der Weise, dass die Knoten eines Unterclusters Abschaltbefehle an die Knoten des zweiten Unterclusters senden. Jedoch kann das zu der Situation führen, dass ein Knoten eines Unterclusters das Ziel mehrerer Abschaltanforderungen wird, was Panik und unerwünschte Abstütze unter den Knoten, die diese Anforderungen empfangen, hervorrufen kann. Des Weiteren könnte es passieren, dass die beteiligten Computer des fortbestehenden Unterclusters nicht vor dem Beginn der Abschaltversuche bekannt sind. Das könnte zu der Situation führen, dass ein nicht-optimales Untercluster fortbesteht, das nicht in der Lage ist, alle erforderlichen Anwendungen, die auf dem Clustersystem laufen, zu handhaben.
  • Die Aufgabe dieser Erfindung besteht in der Bereitstellung eines Verfahrens in einem Clustersystem für einen Abschaltvorgang in einem Split-Brain-Zustand. Das Verfahren sollte einen Split-Brain-Zustand mit einem verbliebenen definierten und bestimmten Untercluster lösen.
  • Die Aufgabe wird mittels des Verfahrens mit Merkmalen der vorliegenden Erfindung gelöst.
  • Das erfindungsgemäße Verfahren wird in einem Clustersystem implementiert, das einen ersten und wenigstens einen zweiten Knoten aufweist. Die Knoten sind mit einem Kommunikationsnetzwerk verbunden und sind in der Lage, miteinander über das Kommunikationsnetzwerk zu kommunizieren. Jedem der Knoten ist ein Name und ein Hostgewicht zugeordnet. Das Verfahren weist folgende Schritte auf:
    • a) Inspizieren einer Kommunikationsverbindung über das Kommunikationsnetzwerk zwischen dem ersten und dem wenigstens einen zweiten Knoten;
    • b) Bestimmen, welcher des wenigstens einen zweiten Knotens abzuschalten ist, nachdem eine Ausfallmeldung der Kommunikationsverbindung über das Kommunikationsnetzwerk zwischen dem ersten und dem wenigstens einen zweiten Knoten empfangen wurde;
    • c) Erstellen eines Ankündigungsberichts für den wenigstens einen zweiten Knoten, dessen Abschaltung beschlossen wurde;
    • d) Senden des Ankündigungsberichts an wenigstens einen Knoten des Clustersystems, das den ersten und den wenigstens einen zweiten Knoten aufweist;
    • e) Berechnen einer Verzögerungszeit in Abhängigkeit wenigstens von dem Gewicht des ersten Knotens;
    • f) Senden eines Abschaltbefehls an den wenigstens einen zweiten Knoten nach Ablauf der berechneten Verzögerungszeit.
  • Dieses Verfahren stellt eine bestimmte Reihenfolge auf, in der die Abschaltbefehle gesendet werden. Jeder Abschaltbefehl wird nach Ablauf einer errechneten Verzögerungszeit gesendet, die wenigstens vom Gewicht des ersten Knotens abhängt. Das Berechnen der Verzögerungszeit gewährleistet, dass in einem Split-Brain-Zustand das Untercluster mit dem größten Gewicht automatisch fortbesteht. Aufgrund der Ankündigungsberichte, die durch den ersten Knoten versendet werden, wird auch bestimmt, welches das optimale Untercluster ist.
  • In einer bevorzugten Ausführungsform der Erfindung beinhaltet das Berechnen einer Verzögerungszeit in Abhängigkeit vom Gewicht des ersten Knotens das Berechnen einer Verzögerungszeit in Abhängigkeit vom Gewicht des Unterclusters, das durch die oder in den Ankündigungsberichten definiert ist.
  • In einer weiteren bevorzugten Ausführungsform der Erfindung beinhaltet das Inspizieren der Verbindung folgende Schritte: Lauschen auf eine Herzschlagmeldung, die von dem wenigstens einen zweiten Knoten über die Kommunikationsverbindung gesendet wurde, und Setzen eines Ausfallindikators, wenn die Herzschlagmeldung des wenigstens einen zweiten Knotens nicht innerhalb eines bestimmten Zeitraums empfangen wird. Die Herzschlagmeldung, die in einer bevorzugten Ausführungsform ein periodisches Signal ist, wird über das Kommunikationsnetzwerk gesendet, das den ersten Knoten und den wenigstens einen zweiten Knoten miteinander verbindet. Sie wird auch über die Kommunikationsverbindung in dem Kommunikationsnetzwerk gesendet, über das der erste Knoten und der wenigstens eine zweite Knoten ebenfalls miteinander kommunizieren. Wenn die Herzschlagmeldung nicht während einer bestimmten Zeitdauer empfangen wird, so nimmt der erste Knoten an, dass die Kommunikationsverbindung oder der wenigstens eine zweite Knoten defekt oder abgeschaltet ist. Der durch den ersten Knoten gesetzte Ausfallindikator zeigt den wenigstens einen zweiten Knoten an, der abzuschalten ist, um eine Datenbeschädigung unter den Clustern und insbesondere in einer gemeinsam genutzten Vorrichtung zu verhindern.
  • In einer weiteren bevorzugten Ausführungsform der Erfindung beinhaltet Schritt b) des Verfahrens folgende Schritte: Warten für die Dauer eines bestimmten Zeitraums, nachdem ein Ausfall einer Kommunikationsverbindung empfangen wurde, auf einen weiteren Ausfall einer Kommunikationsverbindung zwischen dem ersten und einem zweiten des wenigstens einen zweiten Knotens, und anschließend Feststellen des wenigstens einen zweiten Knotens, der abzuschalten ist. Das Warten auf weitere Ausfallindikatoren verhindert einen falschen Fehlerindikator infolge einer überlasteten Kommunikationsverbindung. Es ermöglicht des Weiteren das Aufbrauchen aller Ausfallindikatoren, bevor die abzuschaltenden Knoten bestimmt werden.
  • In einer weiteren bevorzugten Ausführungsform der Erfindung beinhaltet das Erstellen eines Ankündigungsberichts auch das Feststellen eines Knotens, für den kein Kommunikationsausfall als ein Masterknoten gemeldet wird. In dieser Ausführungsform der Erfindung definiert der erste Knoten einen Knoten des Computerclusters mit einem Betriebskanal als einem Masterknoten. Das Definieren eines Masterknotens ermöglicht das einfache und dynamische Spezifizieren und Identifizieren aller Knoten eines Unterclustersystems.
  • In einer bevorzugten Ausführungsform dieser Erfindung ist der Masterknoten der Knoten mit dem niedrigsten alphanumerischen Namen, für den kein Kommunikationsausfall gemeldet oder empfangen wird. Darum erklärt der erste Knoten einen Betriebsknoten mit dem niedrigsten alphanumerischen Namen zum Masterknoten. Ein zweiter Knoten, der einen Knoten mit dem gleichen alphanumerischen Namen zum Masterknoten erklärt, gehört zum selben Untercluster, wenn kein Ausfallindikator für diesen Knoten gemeldet wird. Diese Ausführungsform der Erfindung ist ein einfacher Weg zum Definieren und Identifizieren von Knoten in einem Unterclustersystem. Des Weiteren ermöglicht sie den dynamischen Wechsel des gesamten Clusters.
  • Eine weitere Ausführungsform der Erfindung beinhaltet den Schritt des Erstellens wenigstens einer Liste, die den Namen des ersten Knotens, den Namen des Masterknotens und den Namen des wenigstens einen zweiten Knotens, der abzuschalten ist, enthält. Diese Liste ist vorzugsweise Teil der Ankündigungsberichte. Darum erstellt der erste Knoten einen Bericht, der eine Liste aufweist, die seinen Namen, den Namen des Masterknotens, der im vorherigen Schritt bestimmt wurde, und den Namen des Knotens, für den eine Ausfallmeldung empfangen wird, enthält. Es ist bevorzugt, einen Ankündigungsbericht für jeden der zweiten Knoten, die abzuschalten sind, erstellt wird. Eine solche Ausführungsform ist bevorzugt, wenn es mehr als einen zweiten Knoten gibt, für den eine Ausfallmeldung empfangen wird.
  • In einer weiteren bevorzugten Ausführungsform der Erfindung enthält die Liste des Ankündigungsberichts außerdem das Hostgewicht des ersten Knotens. Das Hostgewicht könnte ein Maschinengewicht und ein Einzelanwendungsgewicht ausgeführter Anwendungen in dem ersten Knoten enthalten.
  • In einer weiteren bevorzugten Ausführungsform beinhaltet das Senden des Ankündigungsberichts das Senden des Ankündigungsberichts an jeden Knoten des ersten und wenigstens eines zweiten der Cluster. In dieser Ausführungsform der Erfindung wird der Ankündigungsbericht durch jeden Knoten in dem Cluster empfangen. Dies ermöglicht es jedem Knoten, sein eigenes Untercluster zu bestimmen und außerdem das Gesamt-Unterclustergewicht im Vergleich zum Gesamt-Clustergewicht zu berechnen.
  • Die errechnete Verzögerungszeit in Schritt e) kann auf null gesetzt werden, wenn das Hostgewicht, das dem ersten Knoten zugeordnet ist, größer als 50 % des Gesamtgewichts des ersten und des wenigstens einen zweiten Knotens ist. Da der erste Knoten das größte Gewicht des Gesamt-Clustersystems hat, kann der erste Knoten automatisch beginnen, Abschaltbefehle an den wenigstens einen zweiten Knoten zu senden, dessen Abschaltung beschlossen wurde. Das fortbestehende Untercluster, das den ersten Knoten enthält, ist das optimale Untercluster. In einer weiteren bevorzugten Ausführungsform der Erfindung wird die in Schritt e) des erfindungsgemäßen Verfahrens errechnete Verzögerungszeit auf null gesetzt, wenn die Summe des Gewichts des ersten Knotens und der Knoten, für die kein Kommunikationsausfall empfangen wird, größer als 50 des Gesamtgewichts des ersten Knotens und des wenigstens einen zweiten Knotens ist. In einer weiteren bevorzugten Ausführungsform der Erfindung wird die Verzögerungszeit auf null gesetzt, wenn das Gewicht der Knoten, die zum selben Untercluster gehören, 50 des Gesamt-Clustergewichts überschreitet. Knoten, die zum selben Untercluster gehören, haben denselben Knoten zum Masterknoten erklärt. Oder anders ausgedrückt: Wenn das Gewicht dieses Unterclusters 50 überschreitet, dann kann einer jener Knoten sofort beginnen, Abschaltbefehle an die anderen Knoten zu senden, für die ein Ausfallbericht empfangen wird.
  • In einer weiteren bevorzugten Ausführungsform dieser Erfindung wird die Abschaltung an den wenigstens einen zweiten Knoten gesendet, nachdem ein Indikatorsignal des wenigstens einen zweiten Knotens, das einen Abschaltvorgang anzeigt, ausbleibt. In einem solchen Fall sendet ein Knoten einen zweiten Abschaltbefehl, wenn ein weiterer Knoten desselben Unterclusters, der eine kürzere Verzögerungszeit hat, keinen erfolgreichen Abschaltbefehl an den wenigstens einen zweiten Knoten gesendet hat. Wenn also ein Indikatorsignal ausbleibt, so muss der Knoten annehmen, dass ein Problem aufgetreten ist und der wenigstens eine zweite Knoten noch keinen Abschaltvorgang ausgeführt hat.
  • Es ist bevorzugt, den Ankündigungsbericht mittels des UDP-Protokolls zu versenden. Dieses Protokoll hat weniger Verwaltungsdatenaufwand als ein normales TCP/IP-Protokoll. In einer weiteren bevorzugten Ausführungsform der Erfindung wird die gesamte Kommunikation bezüglich des Verfahrens über ein Verwaltungsnetzwerk gesendet, das jeden Knoten in dem Clustersystem verbindet.
  • Die vorliegende Erfindung kann anhand der folgenden detaillierten Beschreibung unter Bezug auf die begleitenden Zeichnungen besser verstanden werden. Diese Zeichnungen dienen nur der Veranschaulichung und schränken darum die vorliegende Erfindung nicht ein. In diesen Zeichnungen ist Folgendes dargestellt:
  • 1 zeigt ein Clustersystem mit fünf Knoten, die jeweils das erfindungsgemäße Verfahren beinhalten.
  • 2 gibt einen Überblick über die Logikebenenstruktur eines Knotens dieses Clusters.
  • 3 zeigt die Clusterstruktur mit einer defekten Kommunikationsverbindung zwischen Knoten.
  • 4 zeigt ein Clustersystem, das aus drei Knoten besteht, in einem Split-Brain-Zustand.
  • 5 zeigt die Verfahrensschritte in jedem Knoten des Clusters in der vorherigen Figur.
  • 6 veranschaulicht dasselbe Cluster in einem anderen Split-Brain-Zustand.
  • 7 zeigt die Verfahrensschritte für jeden Knoten in dem Cluster der vorherigen Figur.
  • 8 zeigt eine detaillierte Illustration des erfindungsgemäßen Verfahrens.
  • 1 veranschaulicht ein typisches Clustersystem mit fünf getrennten Clusterknoten N1 bis N5, in denen das erfindungsgemäße Verfahren implementiert ist. Die Clusterknoten N1 bis N5 sind normale Computer mit einer zentralen Verarbeitungseinheit, einem Speicher und wenigstens einer Netzwerkkarte sowie einer Verbindung zu einer Speichervorrichtung SD. Die Netzwerkkarten in jedem der Knoten N1 bis N5 verbinden die Knoten N1 bis N5 miteinander über ein Kommunikationsnetzwerk. Das Kommunikationsnetzwerk stellt eine Kommunikationsverbindung CN zwischen den Knoten her. Die Kommunikationsverbindung heißt auch Clusternetzwerk, das es ermöglicht, dass die Knoten N1 bis N5 des Computer-Clusters miteinander kommunizieren können. Die Kommunikationsverbindung CN ist außerdem mit einem Softwareprogramm namens Cluster Foundation in jedem Knoten verbunden, das als eine logische Schicht in jedem Knoten fungiert und die gesamte Cluster-Basisfunktionalität übernimmt. Die Software Cluster Foundation läuft auf jedem dieser Knoten und steuert und überwacht die Kommunikation zwischen den Knoten N1 bis N5. Die Kommunikation selbst erfolgt über das Cluster Foundation-IP-Protokoll CFIP. Cluster-Software, die auf den Knoten läuft, kommuniziert über das CFIP und die Kommunikationsverbindung CN mit anderen Knoten.
  • Des Weiteren enthält das Kommunikationsnetzwerk ein Verwaltungsnetzwerk AN, das ebenfalls mit jedem dieser Knoten verbunden ist. Befehle, die nicht die Cluster-Software betreffen, werden über das Verwaltungsnetzwerk AN gesendet. Zum Beispiel kann ein Systemadministrator über das Verwaltungsnetzwerk AN Abschaltbefehle an einen dieser Knoten senden. Des Weiteren ist jeder Knoten des Clusters mit einer gemeinsam genutzten Speichervorrichtung SD verbunden. Über die Speichervorrichtungskommunikation SDC werden Daten aus der Speichervorrichtung SD geladen oder in die Speichervorrichtung SD geschrieben.
  • Cluster-Software, die auf einem dieser Knoten läuft und mit anderer Cluster-Software auf anderen Knoten kommuniziert, steuert das Lesen und Schreiben in der Speichervorrichtung in einer Weise, dass es zu keiner Dateninkonsistenz oder Datenbeschädigung kommt. Wenn zum Beispiel eine Cluster-Software, die auf dem Knoten 2 läuft, versucht, eine Datei aus der gemeinsam genutzten Speichervorrichtung SD über das Kommunikationsnetzwerk SDC zu lesen, so schreibt eine andere Cluster-Software in dem Knoten N3 Daten erst dann in diese Datei, wenn der Lesevorgang beendet ist. Der Zugriff auf die gemeinsam genutzte Speichervorrichtung SD könnte ebenfalls durch die Cluster Foundation CF und das Cluster Foundation-IP-Protokoll CFIP auf jedem der Clusterknoten gesteuert werden.
  • Des Weiteren ist jedem Knoten in dem Clustersystem ein Name sowie ein Gewicht zugewiesen. In dieser Ausführungsform der Erfindung hat jeder dieser Knoten N1 bis N5 das Gewicht 1. Das Gewicht ist ein Maß für die Bedeutung eines bestimmten Knotens im Gesamt-Clustersystem. Das Gesamt-Clustergewicht wird unter Hinzurechnung des Hostgewichts jedes Knotens berechnet. In dieser Ausführungsform der Erfindung hat der Knoten N1 das Hostgewicht 1, was einem Fünftel des Gesamt-Clustergewichts entspricht. Das Hostgewicht von N1 besteht aus dem lokalen Maschinengewicht, das in dieser Ausführungsform durch die physischen Parameter des Host, zum Beispiel durch den CPU-Typ, die Speichergröße und so weiter, gegeben ist. Des Weiteren enthält das Hostgewicht ein Benutzeranwendungsgewicht. Das Benutzeranwendungsgewicht gibt Informationen über die ausgeführten Anwendungen auf dem speziellen Knoten und enthält außerdem ein vom Benutzer definierbares Gewicht.
  • 2 zeigt eine Skizze einer Logikschichtstruktur des Knotens N1. Die anderen Knoten N2 bis N5 in dem Cluster von 1 haben die gleiche Schichtstruktur. Der Knoten N1 enthält die Cluster Foundation-Schicht CF einschließlich des Cluster Foundation-IP-Protokolls CFIP, die es der Cluster-Software ermöglicht, mit jedem Knoten zu kommunizieren. Die Cluster Foundation CF steuert, verwaltet und überwacht außerdem das Cluster Foundation-IP-Protokoll und die Kommunikation zwischen den Knoten. Wenn ein Knoten sich zum Beispiel wegen eines administrativen Abschaltbefehls abschaltet, so sendet die Cluster Foundation CF dieses Knotens ein Signal NODE_DOWN, um allen anderen Knoten anzuzeigen, dass der Knoten N1 sich gleich abschaltet. Cluster Foundations CF auf anderen Knoten empfangen dieses NODE_DOWN-Signal und ändern ihre Priorität und übernehmen zum Beispiel die Programme, die auf diesem Knoten ausgeführt werden.
  • Diese Aufgabe wird auch durch die nächste Schicht ausgeführt, die aus einem Reliant Monitoring System RMS besteht. Das RMS ist für die hohe Verfügbarkeit von Benutzeranwendungen zuständig. Das Reliant Monitoring System startet und beendet die Cluster-Software und überwacht außerdem das Benutzeranwendungsgewicht.
  • Die Schicht enthält außerdem die Abschalteinrichtung SF. Die Abschalteinrichtung SF empfängt Ausfallmeldungen von der Cluster Foundation CF, wenn ein anderer Knoten defekt ist. Es wird davon ausgegangen, dass es sich bei einer defekten Kommunikation um einen Split-Brain-Zustand handelt. Darum muss die Abschalteinrichtung SF einen Abschaltbefehl über das Verwaltungsnetzwerk AN an den, abzuschaltenden Knoten senden. Sie versendet außerdem einen Signalknoten NODE_LEFT_DOWN_COMBO, um alle übrigen Clusterknoten über die Statusänderung zu informieren. Des Weiteren empfängt sie ein Signal, das den Abschaltfortschritt durch den abzuschaltenden Knoten anzeigt.
  • Ein Beispiel eines möglichen Split-Brain-Zustandes ist in 3 gezeigt. In dem Beispiel wurde das Cluster-Netzwerk zwischen dem Knoten N2 und dem Knoten N3 gespalten. Die Kommunikation SDC der gemeinsam genutzten Vorrichtung ist jedoch nicht gespalten, wie auch das Verwaltungsnetzwerk AN. Diese Situation führt zu zwei Unterclustern, die trotzdem dieselbe Speichervorrichtung SD nutzen. Ein Untercluster SC1 besteht aus zwei Knoten N1 und N2. Das zweite Untercluster SC2 enthält die Knoten N3, N4 und N5. Eine Cluster-Kommunikation über das Cluster-IP-Protokoll CFIP zwischen dem Knoten N1 und dem Knoten N2 sowie dem Knoten N3, dem Knoten N4 und dem Knoten N5 ist immer noch möglich. Die Verwendung derselben gemeinsam genutzten Vorrichtung führt jedoch zu Unregelmäßigkeiten. Darum muss eines dieser Untercluster abgeschaltet werden.
  • Das Verfahren, das durch die Cluster Foundation CF und die Abschalteinrichtung SF in den Knoten verwendet wird, ist in 8 gezeigt. Das erfindungsgemäße Verfahren ist in der Abschalteinrichtung implementiert und wird durch ein Spezialprogramm ausgeführt, das sich um den Abschaltvorgang kümmert. Es kann auch in verschiedene Programme aufgespaltet oder auf eine andere Weise implementiert werden. Die Verfahrensschritte sind jedoch ähnlich. Das Verfahren von 8 ist zur besseren Verständlichkeit nur für den Knoten N1 gezeigt.
  • Wie oben angesprochen, inspiziert die Cluster Foundation die Kommunikationsverbindungen. Die Cluster Foundation CF sendet über die Kommunikationsverbindung CN Herzschlagmeldungen an jeden dieser Knoten. Solange Herzschlagmeldungen von jedem anderen Knoten empfangen werden, wird die Kommunikationsverbindung als in Betrieb befindlich und funktionstüchtig erachtet. Wenn eine Herzschlagmeldung von einem bestimmten Knoten nicht innerhalb eines bestimmten Zeitraums empfangen wird, so wird angenommen, dass die Kommunikation mit diesem bestimmten Knoten nicht in Betrieb ist. Der konkrete Zeitraum kann entsprechend einem hohen Datenaufkommen in der Kommunikationsverbindung geändert werden. In dem Beispiel von 3 hören die Knoten N1 und N2 auf, Herzschlagmeldungen von N3 bis N5 zu empfangen. Ungefähr zur selben Zeit empfangen die Knoten N3 bis N5 keine Herzschlagmeldungen mehr von N1 und N2.
  • Nachdem die Cluster Foundation eine ausgefallene Kommunikation gemeldet hat, erzeugt sie einen Ausfallindikator und sendet diesen Ausfallindikator an die Abschalteinrichtung SF. Die Abschalteinrichtung wartet einen kurzen Zeitraum auf ausstehende und zusätzliche Ausfallindikatoren. Diese Verzögerung durch die Abschalteinrichtung muss wenigstens so lang sein wie die Zeit zwischen dem Empfangen von zwei Herzschlagmeldungen durch die Cluster Foundation. Zusätzliche Ausfallindikatoren, die anzeigen, dass die Kommunikation anderer Knoten ebenfalls außer Betrieb ist, werden durch die Abschalteinrichtung während der Verzögerungszeit erfasst. In dem Beispiel empfängt die Abschalteinrichtung SF des Knotens N1 zuerst einen Ausfallindikator für den Knoten N4 und wartet noch weitere 1 bis 2 Sekunden. Kurz darauf empfängt sie die Ausfallindikatoren der Knoten N5 und N3, die durch die Cluster Foundation gesendet wurden. Andererseits erstellt die Cluster Foundation CF der Knoten N3 bis N5 nur zwei Ausfallindikatoren und sendet sie an die Abschalteinrichtungen SF in diesen Knoten. Ein Ausfallindikator zeigt an, dass der Knoten N1 nicht in Betrieb ist, und der andere kennzeichnet N2 als nicht in Betrieb.
  • Nach der Verzögerung bestimmt die Abschalteinrichtung, welcher Knoten abgeschaltet werden soll, um den Split-Brain-Zustand aufzulösen. Die Abschalteinrichtungen der Knoten N1 und N2 erklären in diesem Beispiel beide die Abschaltung der Knoten N3, N4 und N5. Dementsprechend erklären die Abschalteinrichtungen der Knoten N3 bis N5 die Abschaltung der Knoten N1 und N2.
  • Im nächsten Schritt berechnet die Abschalteinrichtung SF in jedem Knoten das lokale Hostgewicht. Für diesen Zweck verwendet sie das Reliant Monitoring System RMS, das ein Benutzeranwendungsgewicht erzeugt. Sie hat außerdem Informationen über das lokale Maschinengewicht. Dies wird einer Tabellenliste entnommen, die in jedem Knoten gespeichert ist und im gesamten Cluster die gleichen Einträge hat. Die Summe beider Gewichte ist das lokale Host-Gesamtgewicht.
  • Die Abschalteinrichtung bestimmt dann, ob das Gewicht größer als 50 % des Gesamt-Clustergewichts ist. Wenn das der Fall ist, so kann sie unverzüglich beginnen, alle anderen Knoten in dem Cluster abzuschalten, die abzuschalten sind, weil selbst die Summe der Gewichte aller abzuschaltenden Knoten keinen höheren Rang haben kann als ihr lokales Gesamtgewicht. Dieser Schritt kann auch weggelassen oder verzögert werden. Die abzuschaltenden Knoten sind die Knoten, für die keine Herzschlagmeldung empfangen wurde.
  • Wenn das lokale Gewicht weniger als 50 % des Gesamt-Clustergewicht ist, so bestimmt eine Abschalteinrichtung den Masterknoten ihres Unterclusters. In dieser bevorzugten Ausführungsform der Erfindung ist der Masterknoten eines Unterclusters der Knoten mit der niedrigsten alphanumerischen Nummer oder dem niedrigsten alphanumerischen Namen, für die bzw. den die Kommunikationsverbindung noch funktioniert. Zum Beispiel hat im Untercluster SC1 der Knoten N1 den niedrigsten alphanumerischen Namen und wird als der Master dieses Unterclusters angesehen. Im Untercluster SC2 wird der Knoten N3 als der Master des Unterclusters angesehen.
  • Die Abschalteinrichtung SF des Knotens N4 hat einen Ausfallindikator für die Knoten N1 und N2 empfangen, aber nicht für den Knoten N3. Sie nimmt darum an, dass der Knoten N3 immer noch eine aktive Kommunikationsverbindung hat, und erklärt den Knoten N3 zum Masterknoten für das Untercluster SC2. Die Abschalteinrichtung SF des Knotens N5 kommt zum gleichen Schluss, und die Abschalteinrichtung SF des Knotens N3 erklärt sich selbst zum Masterknoten.
  • In dem Untercluster SC1 erklärt die Abschalteinrichtung des Knotens N2 den Knoten N1 zum Master, und die Abschalteinrichtung des Knotens N1 erklärt ihren eigenen Knoten zum Masterknoten. Der Schritt des Bestimmens des Masterknotens ihrer Untercluster und der Schritt des Berechnens des Gesamt-Hostgewichts können auch vertauscht werden.
  • Nach der Berechnung des Gesamt-Hostgewichts und der Bestimmung des Untercluster-Masterknotens erstellen die Abschalteinrichtungen jedes Knotens einen Ankündigungsbericht für jeden abzuschaltenden Knoten des anderen Unterclusters. In dieser Ausführungsform enthalten die Ankündigungsberichte den Namen des lokalen Knotens, den Namen des festgelegten Masterknotens, das lokale Gewicht sowie den abzuschaltenden Knoten. Wenn das lokale Gewicht kein Benutzeranwendungsgewicht enthält und dank des Tabelleneintrags bekannt ist, so kann das Gewicht weggelassen werden. Die Ankündigungsberichte werden dann über das Verwaltungsnetzwerk zu jedem der anderen Knoten des Gesamt-Cluster gesendet.
  • Die Knoten N1 und N2 senden drei Ankündigungsberichte mit Abschaltanforderungen für die Knoten N3 bis N5. Die Knoten N3 bis N5 des Unterclusters SC2 senden zwei Ankündigungsberichte. Zum Beispiel sehen die drei Ankündigungsberichte des Knotens N2 ähnlich wie das Beispiel in der folgenden Tabelle aus:
    Bericht 1 Bericht 2 Bericht 3
    Eigener Name N2 N2 N2
    Eigenes Hostgewicht 1 1 1
    Masterknoten N1 N1 N1
    Name des abzuschaltenden Knotens N3 N4 N5
  • Die Abschalteinrichtung wartet dann einen bestimmten Zeitraum zum Erfassen der Ankündigungsberichte, die durch die anderen Knoten versendet wurden. Die Abschalteinrichtung des Knotens N1 empfängt einen Ankündigungsbericht zum Abschalten der Knoten N3 bis N5 vom Knoten N2. In dieser Ausführungsform empfängt die Abschalteinrichtung außerdem einen Ankündigungsbericht durch die Knoten N3 bis N5 zum Abschalten der Knoten N1 und N2.
  • Im nächsten Schritt bestimmen die Abschalteinrichtungen jedes Knotens nach dem Erfassen aller Berichte die Untercluster, zu denen sie gehören. Für diesen Schritt verwenden sie die erklärten Masterknoten in jedem Bericht. Er wird davon ausgegangen, dass die Knoten, die denselben Knoten zum Masterknoten erklärt haben, zum selben Untercluster gehören. Zum Beispiel haben die Abschalteinrichtungen der Knoten N5 und N4 den Knoten N3 zu ihrem Master erklärt. Darum gehören die Knoten N4 und N5 zum selben Untercluster SC2 wie der Knoten N3.
  • Andererseits gehören die Knoten N1 und N2, die beide den Knoten N1 zum Masterknoten erklären, zum Untercluster SC1.
  • Nach diesem Schritt berechnet die Abschalteinrichtung das Unterclustergewicht. Das geschieht einfach durch Addieren des lokalen Clustergewichts in jedem Ankündigungsbericht, der durch einen Knoten versendet wurde, der zum selben Untercluster gehört. Wenn das Unterclustergewicht 50 % überschreitet, so kann die Abschalteinrichtung des Masterknotens dieses Unterclusters automatisch beginnen, Abschaltbefehle an den Knoten des anderen Unterclusters zu senden, weil die anderen Untercluster keinen höheren Rang haben können.
  • In dem Beispiel von 3 hat die Abschaltung des Knotens N3 die Ankündigungsberichte der Knoten N4 und N5 empfangen, die zum selben Untercluster gehören. Das lokale Gewicht der Knoten N4, N5 und N3 ergibt 3, was größer ist als 50 % des Gesamt-Clustergewichts von 5. Darum kann der Knoten N3 sofort anfangen, Abschaltbefehle an die Knoten N1 und N2 des Unterclusters SC1 zu senden.
  • Wenn das errechnete Gewicht exakt 50 % des Gesamt-Clustergewichts beträgt und das Gesamtgewicht der Knoten eines anderen Unterclusters weniger als 50 % beansprucht, so wird angenommen, dass es sich bei dem Split-Brain-Zustand um einen Dreifach-Split handelt. Der Masterknoten des 50 %-Unterclusters kann sofort beginnen, Abschaltbefehle an alle anderen Knoten zu senden, die nicht zu seinem Untercluster gehören, oder an die Knoten, deren Abschaltung beschlossen wurde. Noch immer kann kein anderes Untercluster einen höheren Rang haben.
  • In Fall eines Split-Zustandes, der zwei Untercluster mit jeweils 50 % Gewicht zur Folge hat, beginnt das Untercluster, das den niedrigsten alphanumerischen Namen enthält, zuerst mit dem Senden von Abschaltbefehlen an die anderen Untercluster. Das fortbestehende Untercluster enthält darum den Knoten mit dem niedrigsten alphanumerischen Knotennamen. Es ist auch möglich, im Fall eines genauen 50 %-Split andere Parameter als den Knotennamen zu benennen.
  • Zu einem Unterclustergewicht von weniger als 50 % für jedes Untercluster kommt es, wenn nicht alle Knoten einen Ankündigungsbericht senden oder einen bestimmten Knoten zum Master erklären. Wenn das Unterclustergewicht kleiner als 50 % ist, so errechnet jede der Abschalteinrichtungen in dem Untercluster eine Verzögerungszeit. Diese Verzögerungszeit richtet sich nach dem lokalen Gewicht des lokalen Knotens und außerdem nach der Position des Knotens in dem Untercluster. Zusätzlich sollte die Verzögerungszeit einen Wert enthalten, der die Summe aller abgelaufenen Zeiten aller Abschalteinrichtungen ist, die in dem Untercluster zu verwenden sind.
  • Zum Beispiel wartet in dem Untercluster SC1 die Abschalteinrichtung SF des Knotens N1 fünf Sekunden, bevor sie mit den Abschaltbefehlen beginnt. Die Abschalteinrichtung des Knotens N2 und des Unterclusters SC1 wartet fünf Sekunden plus weitere zwei Sekunden, was die zweite Position in der Rangfolge des Unterclusters SC1 darstellt. Schließlich prüft die Abschalteinrichtung SF, ob ein Anzeigesignal vorliegt. Dieses Signal zeigt an, ob der Abschaltvorgang der abzuschaltenden Knotens N3 bis N5 bereits begonnen hat. Wenn das der Fall ist und alle abzuschaltenden Knoten ihr Signal versendet haben, das den Abschaltvorgang anzeigt, so kann die Einrichtung hier aufhören. Wenn kein Anzeigesignal empfangen wird, so nimmt die Abschalteinrichtung an, dass eine vorherige Abschalteinrichtung mit einer kürzeren Verzögerungszeit Probleme hatte, das Abschaltsignal zu versenden. Sie beginnt daher sofort, die Knoten der anderen Untercluster abzuschalten. Dies ist ein ausfallsicherer Mechanismus.
  • Somit erhält der Masterknoten eines Unterclusters normalerweise eine kürzeste Verzögerungszeit im Vergleich zu allen anderen Knoten in diesem Untercluster. Darum beginnt er mit dem Versenden des Abschaltvorgangs an alle anderen Knoten, bevor die Verzögerungszeit aller anderen Knoten in diesem Untercluster abläuft. Daher ist es notwendig zu gewährleisten, dass kein Abschaltbefehl versendet wurde, bevor der ausfallsichere Mechanismus in anderen Knoten gestartet wurde. Das verhindert, dass ein Knoten zwei Abschaltbefehle in einer kurzen Zeit empfängt, was normalerweise Panik oder einen Computerabsturz in diesem Knoten verursacht.
  • Eine weitere Ausführungsform dieser Erfindung ist in 4 dargestellt. Sie zeigt ein Cluster mit drei verschiedenen Knoten N1, N2 und N3, die an ein Cluster-Netzwerk CN und ein Verwaltungsnetzwerk AN angeschlossen sind. Wie zu sehen ist, ist eine Cluster-Kommunikation zwischen dem Knoten N1 und dem Knoten N3 nicht in Betrieb, während die Kommunikation zwischen dem Knoten N1 und dem Knoten N2 sowie zwischen dem Knoten N2 und dem Knoten N3 in Betrieb ist. In dieser Ausführungsform der Erfindung empfängt die Cluster Foundation des Knotens N1 und des Knotens N3 keine Herzschlagmeldungen voneinander und senden einen Ausfallindikator für den anderen Knoten ungefähr um dieselbe Zeit an die Abschalteinrichtung. Jedoch kann der Knoten N2 immer noch mit dem Knoten N1 und dem Knoten N3 kommunizieren und empfängt daher keinen Ausfallindikator.
  • 5 zeigt einen Überblick über die Maßnahmen, die durch die Abschalteinrichtungen SF der Knoten in dem Cluster ergriffen werden. Die Abschalteinrichtung SF im Knoten N1 bestimmt zuerst den Knoten N3 als den abzuschaltenden Knoten, während die Abschalteinrichtung des Knotens N3 den Knoten N1 als den abzuschaltenden Knoten bestimmt. Weil kein Kommunikationsausfall mit dem Knoten N2 gemeldet wird, nimmt die Abschalteinrichtung des Knotens N1 an, dass sich der Knoten N2 im selben Untercluster befindet. Da der Knoten N1 einen niedrigeren alphanumerischen Wert hat als ein Knoten N2, erklärt die Abschaltung des Knotens N1 den Knoten N1 zum Masterknoten.
  • Zu ungefähr derselben Zeit nimmt die Abschalteinrichtung des Knotens N3 an, dass der Knoten N2 und der Knoten N3 sich im selben Untercluster befinden, und erklärt den Knoten N2 zu einem Masterknoten dieses Unterclusters. Beide Abschalteinrichtungen berechnen ihr Gewicht und erzeugen die Ankündigungsberichte, die einen Abschaltvorgang für den anderen Knoten anfordern. Sie senden dann diese Ankündigungsberichte über das Verwaltungsnetzwerk AN. Die Abschalteinrichtung des Knotens N2 empfängt diese Ankündigungsberichte, unternimmt aber nichts, weil sie immer noch mit beiden Knoten kommunizieren kann und darum automatisch zu dem fortbestehenden Untercluster gehört.
  • Die Abschalteinrichtungen verzögern um eine bis zwei Sekunden und warten auf alle Ankündigungen, die durch andere Knoten versendet wurden. Die Abschalteinrichtung des Knotens N1 empfängt die Ankündigung des Knotens N3, und die Abschalteinrichtung des Knotens N3 empfängt die Ankündigungen der Abschalteinrichtung des Knotens N1. Die Verzögerungszeit wird anhand der empfangenen Ankündigungen errechnet.
  • Die Abschalteinrichtungen berücksichtigen nur ihr eigenes Gewicht von 33 % des Gesamt-Clustergewichts, weil die Abschalteinrichtung des Knotens N2 keine Ankündigung ausgegeben hat. Somit können die Abschalteinrichtungen der Knotens N1 und N3 nicht annehmen, dass der Knoten N2 Teil ihres Unterclusters ist. Die Abschalteinrichtung des Knotens N3, die den Knoten N2 zum Masterknoten ihres Unterclusters erklärte, fügt der errechneten Verzögerungszeit noch etwas Zeit hinzu, weil sie nicht der Masterknoten des Unterclusters ist. Darum ist die errechnete Gesamtverzögerungszeit der Abschalteinrichtung des Knotens N1 kürzer als die Verzögerung der Abschalteinrichtung des Knotens N3.
  • Nach der errechneten Verzögerungszeit sendet die Abschalteinrichtung SF des Knotens N1 den Abschaltbefehl an den Knoten N3. Normalerweise würde der Knoten N3 beginnen, sich abzuschalten, und es würde kein Abschaltbefehl durch die Einrichtung des Knotens N3 versendet werden. Die Knoten N1 und N2 würden die verbleibenden Knoten sein.
  • Jedoch wird in diesem Beispiel, wie aus 5 zu ersehen ist, der Abschaltbefehl über das Verwaltungsnetzwerk AN aufgrund einer vorübergehenden Übertragungsstörung nicht durch den Knoten N3 empfangen. Die Verzögerungszeit des Knotens N3 verstreicht, ohne dass ein Abschalsignal empfangen wurde. Die Abschalteinrichtung SF des Knotens N3 nimmt nun an, dass, obgleich sie nicht das Untercluster ist, das ausgewählt wurde, über den Prozess hinaus fortzubestehen, das Untercluster mit dem höchsten Gewicht, das aus dem Knoten N1 und dem Knoten N2 besteht, nicht die Knoteneliminierung vornimmt, die es vornehmen sollte. Darum sendet es einen Abschaltbefehl an den Knoten N1, und der Knoten N1 schaltet sich ab. In dieser Ausführungsform wird der Split-Brain-Zustand zwar aufgelöst, doch das fortbestehende Untercluster des Knotens N2 und des Knotens N3 ist aufgrund seines Gewichts von 3 im Vergleich zum optimalen Unterclustergewicht des Knotens N1 und des Knotens N2 nicht das optimale Untercluster.
  • 6 zeigt einen weiteren Aspekt der Erfindung: ein Cluster, das aus drei Knoten N1, N2 und N3 besteht, die an ein Cluster-Netzwerk CN und ein Verwaltungsnetzwerk AN angeschlossen sind. Die Kommunikation zwischen den Knoten N2 und N3 sowie zwischen den Knoten N1 und N3 ist defekt. Die Cluster Foundations CF übertragen einen Ausfallindikator, nachdem die Herzschlagmeldungen eine Zeitlang nicht empfangen wurden. Die Abschalteinrichtung des Knotens N1 und des Knoten N2 empfängt einen Ausfallindikator für den Knoten N3, während die Abschalteinrichtung des Knotens N3 einen Ausfallindikator für den Knoten N1 und den Knoten N2 empfängt.
  • Im nächsten Schritt bestimmen die Abschalteinrichtungen die Master der jeweiligen Untercluster. Der Knoten N1 wird durch die Abschalteinrichtungen des Knotens N1 und des Knotens N2 zum Master erklärt, und die Abschalteinrichtung des Knotens N3 erklärt sich selbst zum Master, da eine Kommunikation mit einem anderen Knoten nicht mehr möglich ist.
  • Im nächsten Schritt wird das Gesamtgewicht errechnet. In diesem Fall ist das Gesamtgewicht des Unterclusters des Knotens N1 und des Knotens N2 gleich 11, während das Gesamtgewicht des Unterclusters N3 nur 10 beträgt. Danach werden die Ankündigungsberichte erstellt. In dieser Ausführungsform der Erfindung sendet die Abschalteinrichtung des Knotens N2 den Ankündigungsbericht nur an die Abschalteinrichtung des Knotens N1, während die Abschalteinrichtung des Knotens N1 ihren Ankündigungsbericht nur an die Einrichtung des Knotens N2 sendet. Sie sendet den Ankündigungsbericht nicht an den Knoten N3. Die Abschalteinrichtung des Knotens N3 braucht die Ankündigungsberichte nicht an die Knoten N1 oder N2 zu senden.
  • Sie wartet jedoch einige Zeit, bevor sie mit der Berechnung der Verzögerungszeit beginnt, um die Zeit auszugleichen, die zum Empfangen der Ankündigungen benötigt wird. Danach wird die Verzögerungszeit errechnet. Die Abschalteinrichtung des Knotens N1 berechnet das Gesamt-Unterclustergewicht so, dass es größer als 50 % des Gesamt-Clustergewichts ist. Sie setzt ihre errechnete Zeit auf null und beginnt sofort mit dem Versenden des Abschaltvorgangs an den Knoten N3. Nach einiger Zeit sollten der Knoten N1 und der Knoten N3 ein Signal empfangen, das anzeigt, dass der Knoten N3 abgeschaltet wurde. Der Split-Brain-Zustand ist aufgelöst.
  • Das beschriebene Verfahren in dieser Erfindung kann problemlos für andere Clustersysteme angepasst werden. Des Weiteren ist es für die Berechnung des lokalen sowie des Unterclustergewichts möglich, andere Gewichtswerte als nur das lokale Maschinen- und das Benutzeranwendungsgewicht aufzunehmen. In einer bevorzugten Ausführungsform der Erfindung wird das Maschinengewicht jedes Knotens in dem Clustersystem in eine Konfigurationsdatei geschrieben. Es ist sinnvoll, ein "LEFTCLUSTER"-Signal durch die Cluster Foundation CF zu erzeugen, das an alle anderen Clusterknoten in dem fortbestehenden Cluster gesendet wird und die Änderung der Clusterstruktur anzeigt.
  • In dieser bevorzugten Ausführungsform der Erfindung wird die Verzögerungszeit anhand des lokalen Gewichts, des Knotennamens und des Gewichts des fortbestehenden Unterclusters errechnet. Wenn nicht alle Clusterknoten in einem Untercluster ihre Gewichte angekündigt haben, so ist es notwendig, sich auf einen Algorithmus zu stützen, um es dem Untercluster mit dem größten Gewicht zu ermöglichen, die kürzeste Zeit zu verzögern, sowie auf einen Faktor in der systematischen Beurteilungsabweichung des alphanumerischen Knotennamens. Eine mögliche Lösung für diese Verzögerung ist durch folgende Formel gegeben: Verzögerung = (maximale Verzögerung) × Faktor
  • Der Faktor enthält eine relative Rangordnung der Knoten in dem Untercluster sowie ein relatives Gewicht im Vergleich zum Gesamt-Clustergewicht. Die Formel sollte zu einer Verzögerungszeit führen, wo Knoten in einem Untercluster von geringem Gewicht im Vergleich zum Gesamt-Cluster eine sehr große Verzögerungszeit erhalten. Knoten eines Unterclusters, dessen relatives Gewicht hoch ist, errechnen eine kleine Verzögerungszeit. Die Verzögerungszeit zwischen Knoten in einem Untercluster bleibt eine andere und abhängig vom der relativen Rangfolge in diesem Untercluster.
  • Diese Erfindung macht die Kommunikationsausfallindikatoren sowie die Abschaltanforderung zum lokalen Wissen eines bestimmten einzelnen Knotens des Clusters. Darum ist es erforderlich, dass die Bestimmung der Zugehörigkeit der Unterclusters warten muss, bis alle Abschaltanforderungen angekündigt, versendet und empfangen wurden. Es ist jedoch nicht notwendig, Ankündigungsberichte an andere Knoten als die beteiligten Computer ihres eigenen Unterclusters zu senden.

Claims (13)

  1. Verfahren für einen Abschaltprozess in einem Clustersystem, das einen ersten (N1) und mindestens einen zweiten Knoten (N2, N3, N4, N5) aufweist, wobei diese Knoten mit einem Kommunikationsnetzwerk (CN) und mit einem Verwaltungsnetzwerk (AN) verbunden sind und ihnen ein Name und ein Hostgewicht zugeordnet ist, wobei das Verfahren in dem ersten Knoten und in wenigstens einem zweiten Knoten implementiert ist und das Verfahren, wenn es in dem ersten Knoten implementiert ist, folgende Schritte aufweist: a) Inspizieren einer Kommunikationsverbindung zwischen dem ersten und dem wenigstens einen zweiten Knoten, die über das Kommunikationsnetzwerk hergestellt wurde; b) Bestimmen, welcher des wenigstens einen zweiten Knotens nach einem Ausfall der Kommunikationsverbindung zwischen dem ersten und dem wenigstens einen zweiten Knoten abzuschalten ist; c) Erstellen eines Ankündigungsberichts für den wenigstens einen zweiten Knoten, dessen Abschaltung beschlossen wurde; d) Senden des Ankündigungsberichts über das Verwaltungsnetz an wenigstens einen Knoten des Clustersystems, das den ersten und den wenigstens einen zweiten Knoten aufweist; e) Berechnen einer Verzögerungszeit in Abhängigkeit wenigstens von dem Gewicht und von einer Position des ersten Knotens, wobei die Position im Verhältnis zu Knoten festgestellt wird, für die keine Abschaltung beschlossen wurde; f) Senden eines Abschaltbefehls an den wenigstens einen zweiten Knoten, der abzuschalten ist, nach Ablauf der berechneten Verzögerungszeit, wobei die Schritte entsprechend in jedem des wenigstens einen zweiten Knotens angewendet werden.
  2. Verfahren nach Anspruch 1, wobei das Inspizieren der Verbindung folgende Schritte aufweist: – Lauschen auf Herzschlagmeldungen, die von dem wenigstens einen zweiten Knoten über die Kommunikationsverbindung gesendet wurden, und – Setzen eines Ausfallindikators, wenn die Herzschlagmeldungen des wenigstens einen zweiten Knotens nicht innerhalb eines bestimmten Zeitraums empfangen werden.
  3. Verfahren nach Anspruch 1 oder 2, wobei Schritt b) folgende Schritte aufweist: – Warten für die Dauer eines bestimmten Zeitraums, nachdem ein Ausfall einer Kommunikationsverbindung empfangen wurde, auf einen weiteren Ausfall einer Kommunikationsverbindung zwischen dem ersten und einem zweiten des wenigstens einen zweiten Knotens und – Feststellen des wenigstens einen zweiten Knotens, der abzuschalten ist.
  4. Verfahren nach einem der Ansprüche 1 bis 3, wobei das Erstellen eines Ankündigungsberichts den Schritt aufweist, einen Knoten festzustellen, für den kein Kommunikationsausfall als ein Masterknoten gemeldet wird.
  5. Verfahren nach Anspruch 4, wobei der Masterknoten der Knoten mit dem niedrigsten alphanumerischen Namen ist, für den kein Kommunikationsausfall gemeldet wird.
  6. Verfahren nach einem der Ansprüche 4 und 5, wobei das Erstellen eines Ankündigungsberichts den Schritt aufweist, wenigstens eine Liste zu erstellen, die den Namen des ersten Knotens, den Namen des Masterknotens und den Namen des wenigstens einen zweiten Knotens, der abzuschalten ist, enthält.
  7. Verfahren nach Anspruch 6, wobei eine Liste für jeden des wenigstens einen zweiten Knotens, der abzuschalten ist, erstellt wird.
  8. Verfahren nach einem der Ansprüche 6 oder 7, wobei die Liste das Hostgewicht des ersten Knotens enthält.
  9. Verfahren nach einem der Ansprüche 1 bis 8, wobei das Senden des Ankündigungsberichts aufweist, den Ankündigungsbericht an jeden Knoten des ersten und wenigstens einen zweiten Knotens in dem Cluster zu senden.
  10. Verfahren nach einem der Ansprüche 1 bis 9, wobei in Schritt e) die Verzögerungszeit auf null gesetzt wird, wenn die Summe des Gewichts des ersten Knotens und der Knoten, für die kein Kommunikationsausfall empfangen wird, größer als 50 % des Gesamtgewichts des ersten und des wenigstens einen zweiten Knotens ist.
  11. Verfahren nach einem der Ansprüche 1 bis 10, wobei das Senden eines Abschaltbefehls an den wenigstens einen zweiten Knoten in Schritt f) ausgeführt wird, nachdem ein Indikatorsignal des wenigstens einen zweiten Knotens, das einen Abschaltprozess anzeigt, fehlt.
  12. Verfahren nach einem der Ansprüche 1 bis 11, wobei das Hostgewicht ein zuvor festgelegtes Maschinengewicht und ein Benutzeranwendungsgewicht enthält, das von ausgeführten Anwendungen auf dem Host abhängt.
  13. Verfahren nach einem der Ansprüche 1 bis 12, wobei die Ankündigungsberichte mittels des UDP-Protokolls gesendet werden.
DE60318468T 2002-10-07 2003-10-02 Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem Expired - Lifetime DE60318468T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US41678302P 2002-10-07 2002-10-07
US416783P 2002-10-07
PCT/EP2003/010985 WO2004031979A2 (en) 2002-10-07 2003-10-02 Method of solving a split-brain condition

Publications (2)

Publication Number Publication Date
DE60318468D1 DE60318468D1 (de) 2008-02-14
DE60318468T2 true DE60318468T2 (de) 2008-05-21

Family

ID=32069953

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60318468T Expired - Lifetime DE60318468T2 (de) 2002-10-07 2003-10-02 Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem

Country Status (5)

Country Link
US (1) US7843811B2 (de)
EP (1) EP1550036B1 (de)
AU (1) AU2003276045A1 (de)
DE (1) DE60318468T2 (de)
WO (1) WO2004031979A2 (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360100B1 (en) 1998-09-22 2002-03-19 Qualcomm Incorporated Method for robust handoff in wireless communication system
US7668541B2 (en) 2003-01-31 2010-02-23 Qualcomm Incorporated Enhanced techniques for using core based nodes for state transfer
US6862446B2 (en) 2003-01-31 2005-03-01 Flarion Technologies, Inc. Methods and apparatus for the utilization of core based nodes for state transfer
US8509799B2 (en) 2005-09-19 2013-08-13 Qualcomm Incorporated Provision of QoS treatment based upon multiple requests
US8982778B2 (en) 2005-09-19 2015-03-17 Qualcomm Incorporated Packet routing in a wireless communications environment
US9078084B2 (en) * 2005-12-22 2015-07-07 Qualcomm Incorporated Method and apparatus for end node assisted neighbor discovery
US8983468B2 (en) 2005-12-22 2015-03-17 Qualcomm Incorporated Communications methods and apparatus using physical attachment point identifiers
US9066344B2 (en) 2005-09-19 2015-06-23 Qualcomm Incorporated State synchronization of access routers
US9736752B2 (en) 2005-12-22 2017-08-15 Qualcomm Incorporated Communications methods and apparatus using physical attachment point identifiers which support dual communications links
US8982835B2 (en) 2005-09-19 2015-03-17 Qualcomm Incorporated Provision of a move indication to a resource requester
US9083355B2 (en) 2006-02-24 2015-07-14 Qualcomm Incorporated Method and apparatus for end node assisted neighbor discovery
US9155008B2 (en) 2007-03-26 2015-10-06 Qualcomm Incorporated Apparatus and method of performing a handoff in a communication network
US8830818B2 (en) 2007-06-07 2014-09-09 Qualcomm Incorporated Forward handover under radio link failure
US9094173B2 (en) 2007-06-25 2015-07-28 Qualcomm Incorporated Recovery from handoff error due to false detection of handoff completion signal at access terminal
EP2227057B1 (de) * 2009-03-04 2012-12-26 Fujitsu Limited Verbesserungen an drahtlosen Netzen mit kurzer Reichweite
US8671218B2 (en) * 2009-06-16 2014-03-11 Oracle America, Inc. Method and system for a weak membership tie-break
US8615241B2 (en) 2010-04-09 2013-12-24 Qualcomm Incorporated Methods and apparatus for facilitating robust forward handover in long term evolution (LTE) communication systems
US8806264B2 (en) * 2010-08-30 2014-08-12 Oracle International Corporation Methods for detecting split brain in a distributed system
US8634328B2 (en) 2010-12-03 2014-01-21 International Business Machines Corporation Endpoint-to-endpoint communications status monitoring
US8433760B2 (en) 2010-12-03 2013-04-30 International Business Machines Corporation Inter-node communication scheme for node status sharing
US8634330B2 (en) 2011-04-04 2014-01-21 International Business Machines Corporation Inter-cluster communications technique for event and health status communications
US8595546B2 (en) * 2011-10-28 2013-11-26 Zettaset, Inc. Split brain resistant failover in high availability clusters
JP5541275B2 (ja) * 2011-12-28 2014-07-09 富士通株式会社 情報処理装置および不正アクセス防止方法
CN103297396B (zh) 2012-02-28 2016-05-18 国际商业机器公司 群集系统中管理故障转移的装置和方法
US20140195672A1 (en) * 2013-01-09 2014-07-10 Microsoft Corporation Automated failure handling through isolation
JP5790723B2 (ja) * 2013-09-12 2015-10-07 日本電気株式会社 クラスタシステム、情報処理装置、クラスタシステムの制御方法及びプログラム
US9450852B1 (en) * 2014-01-03 2016-09-20 Juniper Networks, Inc. Systems and methods for preventing split-brain scenarios in high-availability clusters
CN105450717A (zh) * 2014-09-29 2016-03-30 中兴通讯股份有限公司 集群脑裂处理方法和装置
US10846219B2 (en) * 2015-07-31 2020-11-24 Hewlett Packard Enterprise Development Lp Data copy to non-volatile memory
US10764144B2 (en) * 2016-10-13 2020-09-01 International Business Machines Corporation Handling a split within a clustered environment
US10592342B1 (en) * 2018-02-02 2020-03-17 EMC IP Holding Company LLC Environmental aware witness for active-active storage cluster nodes
US11558454B2 (en) 2018-07-31 2023-01-17 Hewlett Packard Enterprise Development Lp Group leader role queries
CN111651291B (zh) * 2020-04-23 2023-02-03 国网河南省电力公司电力科学研究院 一种共享存储集群防脑裂的方法、系统、计算机存储介质
US11544228B2 (en) * 2020-05-07 2023-01-03 Hewlett Packard Enterprise Development Lp Assignment of quora values to nodes based on importance of the nodes

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192401B1 (en) * 1997-10-21 2001-02-20 Sun Microsystems, Inc. System and method for determining cluster membership in a heterogeneous distributed system
US6467050B1 (en) * 1998-09-14 2002-10-15 International Business Machines Corporation Method and apparatus for managing services within a cluster computer system
US6363495B1 (en) * 1999-01-19 2002-03-26 International Business Machines Corporation Method and apparatus for partition resolution in clustered computer systems
US7076783B1 (en) * 1999-05-28 2006-07-11 Oracle International Corporation Providing figure of merit vote from application executing on a partitioned cluster
US6757836B1 (en) * 2000-01-10 2004-06-29 Sun Microsystems, Inc. Method and apparatus for resolving partial connectivity in a clustered computing system
US6789213B2 (en) * 2000-01-10 2004-09-07 Sun Microsystems, Inc. Controlled take over of services by remaining nodes of clustered computing system
US6728897B1 (en) * 2000-07-25 2004-04-27 Network Appliance, Inc. Negotiating takeover in high availability cluster
US7228453B2 (en) * 2000-10-16 2007-06-05 Goahead Software, Inc. Techniques for maintaining high availability of networked systems
US7197660B1 (en) * 2002-06-26 2007-03-27 Juniper Networks, Inc. High availability network security systems
US7403993B2 (en) * 2002-07-24 2008-07-22 Kasenna, Inc. System and method for highly-scalable real-time and time-based data delivery using server clusters

Also Published As

Publication number Publication date
DE60318468D1 (de) 2008-02-14
EP1550036A2 (de) 2005-07-06
EP1550036B1 (de) 2008-01-02
AU2003276045A1 (en) 2004-04-23
US20050268153A1 (en) 2005-12-01
WO2004031979A2 (en) 2004-04-15
AU2003276045A8 (en) 2004-04-23
US7843811B2 (en) 2010-11-30
WO2004031979A3 (en) 2004-07-29

Similar Documents

Publication Publication Date Title
DE60318468T2 (de) Verfahren zur lösung von entscheidungslosigkeiten in einem cluster-rechnersystem
DE60106467T2 (de) Verfahren zum Installieren Überwachungsagenten, System und Computerprogramm von Objekten in einem IT-Netz Überwachung
DE69210399T2 (de) Rechnerueberwachungsverfahren und system
DE69829759T2 (de) Verteilung von nachrichten zu dienststeuereinrichtungen
DE60214994T2 (de) Verfahren und system zur verringerung von falschalarmen in netzwerkfehlermanagementsystemen
DE19509363C2 (de) Parallelprozessorsystem und Verfahren zum Umschalten zwischen Gruppen von Parallelprozessoren
DE19607515B4 (de) Computer mit Prozessverwalter
DE102004005128B3 (de) Anordnung mehrerer Rechner und Verfahren zum Betreiben einer Anordnung mehrerer Rechner bei einem Rechnerausfall
DE3201768A1 (de) Job-verarbeitungsverfahren
DE60116187T2 (de) Wartunssmeldung auf Basis der Fahrparametern eines Aufzugs
DE102012224362B4 (de) Anpassung einer Testhäufigkeit für die Ressourcenauslastung
DE10349005B4 (de) Verfahren zur Überwachung eines Netzwerks
DE112018001561B4 (de) Verteiltes speichernetzwerk
DE102009004726A1 (de) Systeme und Verfahren zum Verfolgen von Befehlszeigern und Datenzugriffen
DE602004010111T2 (de) Backup-zellensteuerung
DE102006054090A1 (de) Verfahren zum Ausführen eines Dienstes in einem dezentralen Datennetz
DE60309012T2 (de) Verfahren und system zur sicherstellung eines busses und eines steuerservers
EP1820307B1 (de) Verfahren zum nachweis der verf]gbarkeit von systemkomponenten eines redundanten kommunikationssystems
DE60217729T2 (de) Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem
DE112011100536T5 (de) Transaktionsverarbeitungssystem
EP1997007B1 (de) Verfahren und managementsystem zum konfigurieren eines informationssystems
DE102021109775A1 (de) Adaptive zeitfenster- basierte deduplizierung von protokollnachrichten
EP2021922B1 (de) Verfahren und vorrichtung für ein fehlertoleranzmanagement einer softwarekomponente
DE10360535B4 (de) Einrichtung und Verfahren zur Steuerung und Kontrolle von Überwachungsdetektoren in einem Knoten eines Clustersystems
EP1619849A1 (de) Verfahren zum Synchronisieren eines verteilten Systems

Legal Events

Date Code Title Description
8364 No opposition during term of opposition