DE69629630T2 - Struktur zur Gruppenzugehörigkeitsverwaltung in einem Mehrfachrechnersystem - Google Patents
Struktur zur Gruppenzugehörigkeitsverwaltung in einem Mehrfachrechnersystem Download PDFInfo
- Publication number
- DE69629630T2 DE69629630T2 DE69629630T DE69629630T DE69629630T2 DE 69629630 T2 DE69629630 T2 DE 69629630T2 DE 69629630 T DE69629630 T DE 69629630T DE 69629630 T DE69629630 T DE 69629630T DE 69629630 T2 DE69629630 T2 DE 69629630T2
- Authority
- DE
- Germany
- Prior art keywords
- cluster
- node
- subsystems
- nodes
- subsystem
- 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 - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1425—Reconfiguring to eliminate the error by reconfiguration of node membership
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking by means of middleware or OS functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2035—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/202—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
- G06F11/2046—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share persistent storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/505—Clust
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multi Processors (AREA)
- Computer And Data Communications (AREA)
Description
- Die vorliegende Erfindung betrifft im Allgemeinen Multiprozessorsysteme und im Besonderen Clustersysteme mit gemeinsamem Datenträger. Insbesondere betrifft die Erfindung einen Rahmen zum Anschließen und Lösen von Knoten in einem Multiprozessor-Cluster-System.
- Ein Multiprozessor-Cluster-System weist im typischen Fall mehrere Knoten auf, die durch eine private Kommunikationsverbindung miteinander verbunden sind. Das Clustersystem hat außerdem eine gemeinsame Cluster-Ressource, wie z. B. einen virtuellen Datenträger, der für alle Knoten zugänglich ist, die ein Betriebssystem abarbeiten, das koordinierten Zugang zu der gemeinsamen Ressource unterstützt. Clustersysteme haben viele Vorteile. Sie verleihen dem Benutzer hohe Verfügbarkeit, weil die Verfügbarkeit nicht davon abhängt, dass alle Knoten aktive Teilnehmer im Cluster sind. Ein oder mehrere Knoten können das Cluster verlassen, ohne notwendigerweise die Verfügbarkeit zu beeinträchtigen. Neue Knoten können zu dem System hinzugefügt werden, ohne dass das System heruntergefahren und neu gestartet werden muss. Außerdem können Knoten voneinander verschiedene Prozessordesigns aufweisen, die die Erweiterung des Systems ermöglichen. Auf diese Weise sorgt das Clustersystem für eine hohe Gesamtleistung.
- Clustersysteme mit gemeinsamem Datenträger werden meist für Datenbankdienste verwendet, die ein verteiltes Sperrensystem benötigen, um eine Verletzung der Integrität von Daten auf dem gemeinsamen virtuellen Datenträger zu vermeiden. Das Mitgliedschaftsmanagement in einem solchen Clustersystem erforderte, dass dem verteilten Sperrensystem Clusterbewusstsein verliehen wurde. Derartige Clustersysteme mit gemeinsamem Datenträger sind aber begrenzt, weil sich das Clusterbewusstsein auf nur eine Subsystemschicht erstreckt. Bestimmte Betriebssysteme haben mehrere Subsysteme, die so geschichtet sind, dass ein höheres Subsystem vom Betrieb niedrigerer Subsysteme abhängen muss. Bekannte Methoden des Cluster-Mitgliedschaftsmanagements sind nicht in der Lage, derartige geschichtete Subsysteme durch Clusterübergänge von sich dem Cluster anschließenden und aus ihm ausscheidenden Knoten zu führen.
- Client-Dienste sind im typischen Fall auf die Knoten des Clusters verteilt, was eine ausgedehnte Koordination dessen erfordert, welcher Knoten welchen Dienst implementiert. Dies ist während Knotenübergängen eines sich dem Cluster anschließenden oder aus ihm ausscheidenden Knotens besonders schwierig. Grund dafür ist, dass den meisten Diensten die Clusterumgebung nicht bewusst ist. Die Client-Dienste würden im typischen Fall selbstständig den besten Knoten für die Ausführung bestimmen. Es würde ein Recovery-Mechanismus zum Einleiten der Wiederherstellung benötigt, wenn der derzeit den Dienst ausführende Knoten das Cluster verlässt. Einzelne Dienste ihren eigenen Mechanismus für diese Koordination implementieren zu lassen, erfordert detaillierte Modifikationen an den Client-Diensten, damit sie auf einem Clustersystem abgearbeitet werden können, was die Verwaltung des Clusters mühsam und schwierig macht, weil eventuell unkonsistente Mechanismen verwendet werden.
- Das US-Patent US-A-5.287.453 offenbart ein Cluster-Computersystem, das ein Cluster miteinander verbundener, unabhängig betriebener Computersysteme hat, die durch einen Cluster-Controller Informationen austauschen. Die Mitglieder des Clusters tauschen eine Liste aller clusterweit gemeinsam zu nutzenden Platten, Bänder und Drucker aus. Wenn ein Operator auf ein benanntes Disk- Volume in dem System Bezug nehmen will, setzt er den Plattensatz oder das Datenträgervolume in das Plattenlaufwerk von einem der Mitglieder des Clusters ein. Das System erkennt das Volume lokal und sendet eine Nachricht an alle anderen Mitglieder, dass das benannte Volume eingesetzt worden ist.
- Die Erfindung in ihren diversen Aspekten ist in den unabhängigen Ansprüchen unten definiert, auf die jetzt Bezug zu nehmen ist. Vorteilhafte Merkmale sind in den anhängigen Ansprüchen dargelegt.
- Eine bevorzugte Ausgestaltung der Erfindung, die unten mit Bezug auf die Zeichnungen ausführlicher beschrieben wird, sieht ein Verfahren und eine Vorrichtung zum Kombinieren bestimmter Prozessoren, oder Knoten, eines Multiprozessorsystems in einem Cluster vor, das Benutzern des System im Wesentlichen als ein vereintes System erscheint. Mehrere Subsysteme, die auf gegenwärtig in dem Cluster befindlichen Knoten abgearbeitet werden, werden über Übergänge von sich dem Cluster anschließenden und aus ihm ausscheidenden Knoten benachrichtigt. Dies stellt den Subsystemen der Cluster-Knoten eine konsistente Ansicht der aktiven Mitgliedschaft in dem Cluster bereit, wodurch alle Knoten-Subsysteme durch die Knotenübergänge geführt werden können. Dieses Merkmal ist besonders nützlich bei Subsystemen, die in Ebenen interdependent sind, wobei die Subsysteme höherer Ebenen von dem Betrieb von Subsystemen niedrigerer Ebenen abhängig sind. Ein spezieller Übergang wird dem Subsystem der gleichen Ebene an allen Knoten mitgeteilt. Die Benachrichtigung wird nicht auf eine weitere Subsystemebene weitergeleitet, bis das benachrichtigte Subsystem jedes Knotens diese Benachrichtung bearbeitet und bestätigt, dass eine solche Bearbeitung abgeschlossen ist. Wenn der Übergang ein sich dem Cluster anschließender Knoten ist, werden Subsysteme, angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend, benachrichtigt. Wenn der Übergang ein das Cluster kontrolliert verlassender Knoten ist, werden Subsysteme, angefangen mit Subsystemen höherer Ebene und der Reihe nach durch niedrigere Subsystemebenen fortschreitend, benachrichtig. Wenn der Übergang ein von anderen Knoten unkontrolliert aus dem Cluster gedrängter Knoten ist, werden Subsysteme, angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend, benachrichtigt.
- Es ist eine Registrierungs- und Start-Funktion vorgesehen, bei der Client-Dienste, einschließlich Benutzeranwendungen, auf speziellen Knoten in einem Cluster so eingeleitet werden, dass das Cluster den Client-Diensten im Wesentlichen als eine einheitliche Einheit erscheint. Für jeden Client-Dienst wird ein Knoten gewählt und dieser Client-Dienst wird bei dem Knoten registriert. Gegenwärtig in dem Cluster befindliche Knoten werden darüber benachrichtigt, dass der spezielle Dienst bei dem betreffenden Knoten registriert ist. Auf diese Weise können Client-Dienste auf einen anderen Knoten übertragen werden, wenn der Knoten, an dem dieser Dienst registriert ist, das Cluster verlässt. Der Client-Dienst kann an einem Knoten gemäß einem in dem Dienst enthaltenen Aktionsparameter in Reaktion auf das Registrieren dieses Dienstes bei diesem Knoten gestartet werden. Dies versieht Client-Dienste mit clusterweiter Verfügbarkeit, weil sie sich nicht jedesmal, wenn sie übertragen werden, ausdrücklich selbst einleiten müssen. Client-Dienste können vorteilhaft als Parent-Dienst (Eltern-Dienst) und einem oder mehreren Child-Diensten (Kind-Diensten) gruppiert werden.
- Gruppierte Client-Dienste sind bei dem gleichen Knoten registriert und nutzen in dem Parent-Dienst enthaltene Aktionsparameter für alle Startaktivitäten innerhalb der Gruppe. Das Wählen eines Knotens für jeden Client-Dienst kann das Bereitstellen einer Datenbank von Wählfaktoren für den Client-Dienst und das Anwenden der Wählfaktoren auf Informationen bezüglich der Verfügbarkeit der Knoten in dem Cluster aufweisen. Die Wählfaktoren legen Regeln fest, die Knoten mit dem Client-Dienst in Bezug setzen.
- Eine solche Registrierungs- und Startfunktion ist vorzugsweise eine Komponente eines Ereignismanagers, der ein Subsystem ist, das vom Cluster-Mitgliedschaftsmanager Benachrichtigungen über Knotenübergänge erhält. Der Ereignismanager überwacht bei einem bestimmten Knoten registrierte Client-Dienste mit Hilfe einer Ereignisüberwachung (Event-Watcher) und sorgt für Bedienungsvorgänge, die in Reaktion auf das Stattfinden eines Ereignisses, wie eines Knotenübergangs, ausgeführt werden. Die Ereignisüberwachung kann in Reaktion auf das Registrieren eines Client-Dienstes aktiviert und in Reaktion auf das Deregistrieren des Client-Dienstes deaktiviert werden.
- Im Folgenden wird die bevorzugte Ausgestaltung der vorliegenden Erfindung mit Bezug auf die Zeichnungen beispielhaft ausführlicher beschrieben. Dabei zeigt bzw. zeigen:
-
1 ein Blockdiagramm eines die Erfindung ausgestaltenden Multiprozessor-Cluster-Systems; -
2 ein Zustandsübergangsdiagramm eines Übergangsbenachrichtigungsrahmens für eine einzelne Subsystemebene; -
3 bis10 Diagramme von Subsystemzuständen in einem Zwei-Knoten-Cluster, das sich dem Cluster anschließende Knoten illustriert; -
11 und12 Diagramme von Subsystemzuständen in einem Zwei-Knoten-Cluster, die das kontrollierte Ausscheiden eines Knotens aus dem Cluster illustrieren; -
13 bis15 Diagramme von Subsystemzuständen in einem Zwei-Knoten-Cluster, die ein unkontrolliertes erzwungenes Ausscheiden eines Knotens aus dem Cluster illustrieren; -
16 ein Blockdiagramm, das die Gruppierung von Client-Diensten illustriert; -
17 ein15 ähnliches Diagramm, das mehrere Generationen von Client-Dienst-Gruppierungen illustriert; -
18 ein Zustandsübergangsdiagramm, das das Starten eines Client-Dienstes illustriert; -
19 ein Zustandsübergangsdiagramm, das die Übergangszustände eines Client-Dienstes illustriert; -
20 eine18 ähnliche Darstellung, die zusätzliche Übergangszustände illustriert, und -
21 ein Blockdiagramm eines Ereignismanager-Subsystems. - HARDWARE
- Ein Multiprozessor-Cluster-System
25 , wobei jetzt speziell auf die Zeichnungen und die darin abgebildeten veranschaulichenden Ausgestaltungen Bezug genommen wird, hat mehrere Knoten26 und eine gemeinsame Cluster-Ressource, wie z. B. einen physikalischen Datenträger28 , der aus mehreren physikalischen Plattenlaufwerken bestehen könnte (1 ). Jeder Knoten26 hat einen Prozessor (Zentraleinheit, CPU), einen physikalischen Speicher, Caches, gemeinsame und private Busschnittstellen und wahlweise dedizierte Geräte. Jeder Knoten arbeitet eine Kopie eines auf UNIX gestützten Betriebssystems, wie z. B. das von der Data General Corporation von Westborn, Massachusetts, USA, vertriebenen Betriebssystem DG/UX 5.4, ab, das auf jeder beliebigen Hardwarekonfiguration fährt, die ein derartiges Betriebssystem unterstützt. Ein Beispiel für eine solche Hardwarekonfiguration ist die von Data General vermarktete AViiON®-Familie. - Cluster-System
25 hat außerdem ein Interconnect36 , das ein dediziertes gemeinsames Cluster-Kommunikationsmittel ist, über das Knoten26 direkt mit allen anderen Knoten im gleichen Cluster sprechen können, und einen gemeinsamen Cluster-E/A-Bus 32, über den alle Knoten alle physikalisch an den gemeinsamen Bus angeschlossenen Geräte, wie z. B. Datenträger 28, gemeinsam nutzen können. In der illustrierten Ausgestaltung ist der gemeinsame Bus32 ein SCSI-Standardbus. - SOFTWARE
- Cluster-System
25 hat eine einzelne Mitgliedschaftsdatenbank34 , die einen dedizierten virtuellen gemeinsamen Cluster-Datenträger hat, der neben einem clusterbewussten Urlader38 auf dem physikalischen Datenträger28 wohnt. Die Mitgliedschaftsdatenbank34 verwaltet beständige Knotenkonfigurationsinformationen40 , die zum Urladen, Ausschalten oder Notausschalten (Panik) eines Knotens26 benötigt werden. Zu derartigen beständigen Informationen gehört die Identifizierung der Anzahl von Knoten, die in dem System konfiguriert sind, sowie Konfigurationsdaten über jeden Knoten, die mit einer Knotenkennnummer indexiert sind. Die Mitgliedschaftsdatenbank34 hat außerdem eine Datenbank für den aktiven Mitgliedschaftszustand42 , die flüchtige Informationen über Knotenzustände enthält. Derartige flüchtige Informationen ändern sich dynamisch, wenn Knoten sich dem Cluster kontrolliert anschließen, das Cluster kontrolliert verlassen oder unkontrolliert aus dem Cluster gedrängt werden. Ein Knoten kann irgendeinen der folgenden Zustände aufweisen: Inaktiv – der Knoten ist nicht konfiguriert oder er ist kein aktives Mitglied des Clusters. - Anschließend – der Knoten ist dabei, sich an ein Cluster anzuschließen, was bedeutet, dass der Knoten andere Knoten über seine Absicht, sich dem Cluster kontrolliert anzuschließen, informiert hat, aber noch nicht alle der registrierten Knoten-Subsysteme im Cluster die Übergänge abgeschlossen haben, um den neuen Knoten kontrolliert aufzunehmen.
- Angeschlossen – der Knoten hat sich dem Cluster völlig angeschlossen und alle registrierten Knotensubsysteme im Cluster akzeptieren den neuen Knoten als ein Mitglied des Clusters und haben ihre Übergänge zum Aufnehmen des neuen Knotens abgeschlossen.
- Ausscheidend – der Knoten ist dabei, den Cluster zu verlassen, was bedeutet, dass der Knoten andere Knoten über seine Absicht, das Cluster kontrolliert zu verlassen, informiert hat; aber noch nicht alle registrierten Knoten-Subsysteme der Knoten im Cluster Übergänge zum kontrollierten Ausschließen des neuen Knotens abgeschlossen haben.
- Zwangsausscheidung – andere Knoten sind dabei, diesen Knoten aus dem Cluster zu drängen. Andere Knoten können einen Knoten hinausdrängen, wenn dieser Knoten nicht richtig funktioniert, z. B. wenn er nicht mit anderen Knoten kommuniziert. Nachdem die anderen Knoten das Bearbeiten der Zwangsausscheidung abgeschlossen haben, was das Ausführen von Recovery-Prozeduren umfasst, markieren die anderen Knoten diesen Knoten als inaktiv. Der hinausgedrängte Knoten reagiert panisch, nachdem er bemerkt hat, dass die anderen Knoten ihn ausgeschlossen haben. Ein Knoten reagiert panisch, indem er weiteres Bearbeiten abbricht, um eine Verfälschung gemeinsamer Cluster-Ressourcen zu vermeiden.
- A. MITGLIEDSCHAFTSMANAGER
- Das Clustersystem
25 hat einen Mitgliedschaftsmanager-Rahmen mit einem Übergangsbenachrichtigungsrahmen44 , der Benachrichtigungen an alle Subsysteme auf Kernel-Ebene und Benutzerebene bereitstellt, die über Clusterübergänge benachrichtigt werden müssen (2 bis15 ). Zweck des Übergangsbenachrichtigungsrahmens44 ist es, clusterbewusste Subsysteme bereitzustellen, eine kohärente Methode zum Bearbeiten von Clusterübergangsinformationen unter den Knoten. Clusterbewusste Subsysteme sind Subsysteme, die bei einem Cluster-Mitgliedschaftsmanager-Subsystem46 eines Knotens registriert sind. In der illustrierten Ausgestaltung hat jeder Knoten26 vier Subsysteme auf Kernel-Ebene, darunter Cluster-Mitgliedschaftsmanager-Subsystem46 , die zusammen den Übergangsbenachrichtigungsrahmen44 , ein Verteilter-Sperrenmanager-(DLM-)Subsystem48 , ein Virtueller-Diskmanager-(VDM-)Subsystem50 und ein Gemeinschaftsdateisystem-(SFS-)Subsystem52 bereitstellen. Jeder Knoten26 hat außerdem wenigstens ein Subsystem auf Benutzerebene, nämlich ein Ereignismanager-Subsystem54 . Derartige Subsysteme46 bis54 sind untereinander in Ebenen voneinander abhängig. In der illustrierten Ausgestaltung ist der Mitgliedschaftsmanager46 das Subsystem niedrigster Ebene und der Ereignismanager54 das Subsystem höchster Ebene. Es könnten aber auch noch andere. höhere Subsysteme bereitgestellt werden. Für die Subsysteme ist eine globale Übergangsrangordnung vorgesehen, wobei niedrigere Subsysteme kleinere Werte und höhere Subsysteme größere Werte erhalten. - Der Übergangsbenachrichtigungsrahmen
44 funktioniert wie folgt. Bevor ein Knoten sich einem Cluster anschließt, registrieren interessierte Subsysteme dieses Knotens ihre Absicht, Benachrichtigungen über Clusterübergänge zu erhalten. Ein registriertes Subsystem muss auch einen Steuerthread liefern, der Warten-auf-Übergang-Benachrichtigungen vom Mitgliedschaftsmanager-Subsystem46 dieses Knotens sperrt. Während kontrollierter Anschlüsse und Zwangsausschlüsse von Knoten koordinieren die Mitgliedschaftsmanager-Subsysteme46 aller Knoten, um die registrierten Subsysteme des Knotens mit Bezug auf das globale Übergangsrangordnungsschema von unten nach oben zu benachrichtigen, wie unten noch ausführlicher illustriert wird. Die Mitgliedschaftsmanager-Subsysteme benachrichtigen also zunächst die rangniedrigsten Subsysteme aller Knoten, gefolgt von den rangmäßig nächsthöheren bis zu den ranghöchsten. Umgekehrt koordinieren während des kontrollierten Ausscheidens von Knoten die Mitgliedschaftsmanager-Subsysteme46 aller Knoten, um die registrierten Subsysteme des Knotens von oben nach unten zu benachrichtigen, wobei sie zunächst die ranghöchsten Subsysteme aller Knoten benachrichtigen, gefolgt von den rangmäßig nächsthöchsten bis zu den rangniedrigsten. Diese Rangordnung hat den Zweck, dass Abhängigkeiten höherer Subsysteme von niedrigeren Subsystemen erfüllt werden. Das heißt, dass ein Knotenanschlussübergang zuerst von einem Subsystem niedrigerer Ebene bearbeitet wird, sodass Subsysteme höherer Ebene versichert sein können, dass die Subsysteme, von denen sie abhängen, nämlich niedrigerere Subsysteme, sich des Anschließens bewusst sind und seine Bearbeitung abgeschlossen haben. Umgekehrt muss ein kontrolliertes Verlassen zuerst von einem Subsystem höherer Ebene bearbeitet werden, sodass die untereren Subsysteme in dem ausscheidenden Knoten während des Ausscheidungsübergangs betriebsfähig bleiben. Ein unkontrolliertes Ausscheiden wird von unten nach oben bearbeitet, um sicherzustellen, dass alle Fehlerbedingungen nach oben fortgepflanzt werden, bevor auf der nächsthöchsten Ebene die Wiederherstellung versucht wird. - Das Mitgliedschaftsmanager-Subsystem jedes, Knotens schreitet mit der Benachrichtigung des der Reihe nach nächsten Subsystems erst dann fort, wenn das Subsystem jedes Knotens, das derzeit an der Reihe ist, seine Beendigung der Bearbeitung für den Übergang bestätigt. Das Mitgliedschaftsmanager-Subsystem jedes Knotens kann aber ein registriertes Subsystem benachrichtigen, um mehrerer Übergänge für verschiedene Knoten gleichzeitig zu bearbeiten. Jeder dieser Übergänge kann anderer Art sein. Dies verbessert die Leistungsfähigkeit in Situationen, in denen viele Knoten gleichzeitig Übergänge durchlaufen, wie z. B. dann, wenn viele Knoten nach einem Stromausfall, der das gesamte Cluster ausgeschaltet hat, urladen. Der Mitgliedschaftsmanager jedes Knotens benachrichtigt aber keine Subsysteme, die für einen bestimmten Übergangsknoten außer Betrieb sind. Als Folge dessen können mehrere Übergänge für verschiedene Knoten zur gleichen Zeit auf verschiedenen Subsystemebenen bearbeitet werden, aber der Mitgliedschaftsmanager-Rahmen des Clusters gewährleistet das richtige Subsystemordnen für jeden Übergangsknoten.
- Für Beispiele der Verwendung von Clustersubsystemen zur Beteiligung an kontrolliertem Anschließen, kontrolliertem Verlassen und unkontrolliertem Zwangsausscheiden unter Verwendung des Übergangsbenachrichtigungsrahmens
44 wird auf die2 bis15 Bezug genommen, die ein Clustersystem illustrieren, das potenziell ein Zwei-Knoten-Cluster hat. Die in den3 bis15 illustrierten Beispiele können auf drei oder mehr Knoten verallgemeinert werden, wobei jeder Knotenübergang sequenziell nacheinander jedes Subsystem an allen Knoten durchläuft. Jeder Mitgliedschaftsmanager würde den gleichen Knotenübergang nicht zum nächsthöheren Subsystem weiterleiten, bis alle Knoten auf der aktuellen Ebene ihren Abschluss der Übergangsbearbeitung für den neuen Knoten bestätigt haben. - In dem in
3 illustrierten Zustand enthält das Cluster keine aktiven Mitglieder. Der Systemverwalter schaltet Knoten N0 ein und beginnt sein Urladen. Knoten N1 bleibt abgeschaltet. Um sich als das erste aktive Mitglied kontrolliert an den Cluster anzuschließen, öffnet Knoten NO die Mitgliedschaftsdatenbank34 des Clusters und ruft seine Konfigurationsinformationen ab. Knoten N0 initialisiert seine Kernel-Subsysteme46 –52 , die sich jeweils für die Übergangsbenachrichtigung registrieren (4 ). Die Subsysteme erzeugen (spawn) einen Thread, der einen Kernelaufruf durchführt, der blockiert, weil zu diesem Zeitpunkt keine Clusterübergänge stattgefunden haben. Das INIT-Subsystem (nicht gezeigt) des Knotens N0 leitet das kontrollierte Anschließen von Knoten N0 durch das höchste derzeit registrierte Subsystem ein. Das Mitgliedschaftsmanager-Subsystem46 von Knoten N0 bildet den Cluster und markiert den aktiven Zustand des Knotens N0 als anschließend. Mitgliedschaftsmanager46 des Knotens NO benachrichtigt sein DLM-Subsystem48 , dass der Knoten NO sich dem Cluster anschließt (5 ). Der Thread des DLM- Subsystems48 des Knotens N0 wird aufgeweckt, bemerkt den Neuanschlusszustand des Knotens NO, gibt die gemeinsame Bearbeitung an einen anderen DLM-Thread ab, und schließt dann sein Anschließen ab. Das DLM-Subsystem des Knotens NO markiert den Zustand des Knotens N0 als angeschlossen und informiert den Mitgliedschaftsmanager46 des Knotens NO, dass DLM seine gemeinsame Bearbeitung für Knoten NO abgeschlossen hat. Der gleiche Vorgang wird für das VDM-Subsystem50 und das SFS-Subsystem52 des Knotens NO wiederholt (6 ). - Nachdem der Knoten N0 sich dem Cluster auf der Kernelebene angeschlossen hat, geht er zum Benutzerraum über (
7a –7c ). Das INIT-Subsystem (nicht gezeigt) des Knotens N0 erzeugt Ereignismanager-Subsystem54 , das einen Thread erzeugt, der sofort zurückkehrt, weil der Ereignismanager54 des Knotens N0 das kontrollierte Anschließen des Knotens N0 noch nicht bearbeitet hat. Nachdem der Ereignismanager54 des Knotens N0 das kontrollierte Anschließen des Knotens NO bearbeitet hat, markiert er den Zustand des Knotens NO als angeschlossen und informiert den Mitgliedschaftsmanager46 des Knotens NO, dass er das kontrollierte Anschließen des Knotens N0 bearbeitet hat. - In
8 schaltet der Administrator den Knoten N1 ein und urlädt ihn, was bewirkt, dass die Knoten N0 und N1 ein kontrolliertes Anschließen des Knotens N1 durchführen. Der Knoten N1 öffnet die Mitgliedschaftsdatenbank34 , ruft seine Konfigurationsinformationen ab und initialisiert seine Kernel-Subsysteme46 –52 , die sich für Übergangsbenachrichtigungen registrieren. Der Mitgliedschaftsmanager von sich anschließenden Knoten muss mit dem Cluster-Hauptknoten verhandeln, um sich dem Cluster anzuschließen. Wenn sich mehrere Knoten in dem Cluster befinden, wird ein Knoten unter Verwendung des Decker-Algorithmus, der in der Technik bekannt ist, zum Hauptknoten. Der Hauptknoten schreibt sein Heartbeat-Signal in einem bestimmten Bereich der Mitgliedschaftsdatenbank34 . Sich anschließende Knoten untersuchen einen derartigen Bereich auf das Heartbeat-Signal, um den Hauptknoten zu identifizieren. Das Mitgliedschaftsmanager-Subsystem46 des Knotens N1 verhandelt mit dem Mitgliedschaftsmanager des Knotens NO, der der Hauptknoten sein muss, weil er der einzige Knoten im Cluster ist, um sich dem Cluster anzuschließen. Die Mitgliedschaftsmanager der Knoten N0 und N1 markieren den Zustand des Knotens N1 als sich dem Cluster anschließend. Die Mitgliedschaftsmanager der Knoten N0 und N1 benachrichtigen ihre jeweiligen DLM-Subsysteme48 , dass Knoten N1 sich dem Cluster anschließt. Beide DLM-Subsysteme werden durch ihre Aufrufe aufgeweckt und beginnen mit der Bearbeitung des kontrollierten Anschließens des Knotens N1. Nachdem beide DLM-Subsysteme in der Bearbeitung des kontrollierten Anschließens des Knotens N1 koordiniert haben, markieren die DLM-Subsysteme den Zustand des Knotens N1 als angeschlossen und senden dem Mitgliedschaftsmanager eine Bestätigung. Nachdem sie die Bestätigungen beider DLM erhalten haben, benachrichtigen die Mitgliedschaftsmanager der Knoten NO und N1 das entsprechende VDM-Subsystem50 , dass der Knoten N1 sich dem Cluster anschließt (9 ). Nachdem beide VDM-Subsysteme das Anschließen des Knotens N1 bearbeitet haben, markieren beide Subsysteme den Zustand des Knotens N1 als angeschlossen und senden jeweils eine Bestätigung dessen an ihren Mitgliedschaftsmanager. - Nachdem sich der Knoten N1 dem Cluster auf der Kernel-Ebene angeschlossen hat, geht der Knoten N1 zum Benutzerraum über, wobei sein INIT-Subsystem (nicht gezeigt) Ereignismanager
54 erzeugt. Der Ereignismanager des Knotens N1 registriert sich bei den Mitgliedschaftsmanagern. Der Ereignismanager des Knotens N1 erzeugt einen Thread, der einen Kernelaufruf durchführt, der sofort zurückgegeben wird, weil der Ereignismanager des Knotens N1 das kontrollierte Anschließen des Knotens N1 bearbeiten muss. Der Ereignismanager des Knotens N0 wacht auf und bearbeitet das kontrollierte Anschließen des Knotens N1. Nachdem beide Ereignismanager54 in der Bearbeitung des kontrollierten Anschließens des Knotens N1 koordiniert haben, markieren sie den Zustand des Knotens N1 als angeschlossen und senden jeweils ihrem Mitgliedschaftsmanager eine Bestätigung des kontrollierten Anschließens. Der Knoten N1 ist wie in10 illustriert angeschlossen. - Es ist möglich, dass ein Knoten ein kontrolliertes Ausscheiden einleitet, während sich der Knoten noch im anschließenden Zustand befindet. Ein sich anschließendes Subsystem setzt die anschließenden Zustände aber nicht direkt in einen ausscheidenden oder einen inaktiven Zustand um. Das sich anschließende Subsystem muss den Angeschlossen-Übergang abschließen und bestätigen. Der Mitgliedschaftsmanager kehrt den anschließenden Zustand nur zwischen Benachrichtigungen an registrierte Subsystemebenen in den ausscheidenden Zustand um.
- Eine Bearbeitung, durch den Übergangsbenachrichtigungsrahmen
44 , eines kontrollierten Ausscheidens eines Knotens, wie sie während eines Herunterfahrens eines Knotens stattfinden würde, wird unter Bezugnahme auf11 und12 illustriert. Der Knoten N0 leitet sein Herunterfahren ein, indem er den entsprechenden Aufruf zum Einleiten eines kontrollierten Ausscheidens durchführt. Die Mitgliedschaftsmanager- Subsysteme der Knoten N0 und N1 markieren den Knoten N0 als ausscheidend. Die Mitgliedschaftsmanager der Knoten NO und N1 wecken beide Ereignismanager54 mit dem Übergang des Knotens N0 auf. Beide Ereignismanager54 notieren den Zustand des Knotens N0 als ausscheidend und beginnen ihre koordinierte Bearbeitung des kontrollierten Ausscheidens des Knotens NO. Wie unten noch ausführlicher beschrieben wird, kann das Bearbeiten des kontrollierten Ausscheidens des Knotens N0 durch beide Ereignismanager ein beträchtliches Maß an Herunterfahren auf Anwendungsebene beinhalten, wonach beide Ereignismanager den Knoten N0 als inaktiv markieren und ihre betreffenden Mitgliedschaftsmanager benachrichtigen. Der Mitgliedschaftsmanager des Knotens N0 deregistriert den Ereignismanager des Knotens N0 automatisch für die Übergangsbenachrichtigung, wodurch der Ereignismanager des Knotens N0 keine weiteren Benachrichtigungen erhält. Als nächstes führt der Mitgliedschaftsmanager der Knoten NO und N1 jeweils die gleiche Iteration mit den SFS-Subsystemen52 beider Knoten, dann mit beiden VDM-Subsystemen50 und dann mit den DLM-Subsystemen48 durch. Schließlich markiert der Mitgliedschaftsmanager beider Knoten jeweils den Knoten N0 als inaktiv, was auch das Ende des kontrollierten Ausscheidens des Knotens N0 ist. Knoten N0 führt die Bearbeitung des Herunterfahrens auf Kernelebene durch und kehrt zur Urladebefehlszeile zurück. - Es ist zu beachten, dass ein Knoten kein kontrolliertes Anschließen durchführen kann, während andere Knoten das kontrollierte Ausscheiden des Knotens bearbeiten. In der Praxis kann diese Situation eintreten, wenn der ausscheidende Knoten abnormal gestorben ist und wieder bootet, bevor andere Knoten die Chance hatten zu bemerken, dass dieser ausscheidende Knoten gestorben ist.
- Sobald die anderen Knoten bemerken, dass der ausscheidende Knoten eigentlich gestorben ist, drängen die anderen Knoten den toten Knoten aus dem Cluster, wobei sie ihre Bearbeitung des kontrollierten Ausscheidens abbrechen. Anschließend akzeptieren die anderen Knoten die Anforderung eines kontrollierten Anschließens des neuen Knotens.
- Ein unkontrolliertes (abruptes) Zwangsausscheiden ist eine abnormale Situation; z. B. wenn ein Knoten nicht mehr fähig ist, mit den anderen Clusterknoten zu kommunizieren. Wenn der hinausgedrängte Knoten bemerkt, dass die anderen Knoten diesen Knoten aus dem Cluster gedrängt haben, reagiert der hinausgedrängte Knoten panisch. Der Übergangsbenachrichtigungsrahmen
44 stellt sicher, dass der hinausgedrängte Knoten keine gemeinsamen Cluster-Resourcen verfälscht. Wenn ein registriertes Subsystem sich mitten in der Bearbeitung eines kontrollierten Anschließens oder Ausscheidens des hinausgedrängten Knotens befindet, könnte der Mitgliedschaftsmanager jedes Knotens das bearbeitende Subsystem erneut benachrichtigen, damit es seine kontrollierte Bearbeitung für den Knoten abbricht und die Bearbeitungswiederherstellung beginnt. - Ein Beispiel eines Zwangsausscheidens wird mit Bezug auf die
13 bis15 illustriert, was damit beginnt, dass der Knoten N1 an das Cluster angeschlossen ist und der Knoten N0 urlädt und sich dem Cluster kontrolliert anschließt. Wenn beispielsweise die Mitgliedsmanager der Knoten N0 und N1 das kontrollierte Anschließen des Knotens N0 aufwärts durch die VDM-Subsysteme50 bearbeitet haben, aber von den SFS-Subsystemen52 noch keine Bestätigung erhalten haben, dass sie das Bearbeiten des kontrollierten Anschließens des Knotens N0 abgeschlossen haben, weil die SFS-Subsysteme der Knoten NO und N1 aufgrund eines Interconnect-Ausfalls an Knoten NO nicht kommunizieren können, wird das kontrollierte Anschließen des Knotens N0 als in einem hängenden Zustand befindlich notiert (13 ). Der Mitgliedschaftsmanager des Knotens N1 bemerkt, dass der Knoten N1 nicht mehr mit dem Knoten N0 kommunizieren kann. Knoten1 drängt Knoten NO aus dem Cluster, indem er den Zustand des Knotens NO als zwangsausscheidend markiert. Der Mitgliedschaftsmanager des Knotens N0 bemerkt, dass der Knoten N1 den Knoten N0 hinausgedrängt hat, und reagiert sofort panisch (14 ). Der Mitgliedschaftsmanager des Knotens N1 leitet die Zwangsausscheidungsbearbeitung ausgehend vom untersten Subsystem und aufwärts weiter bis zum höchsten registrierten Subsystem ein. Das DLM-Subsystem48 des Knotens N1 markiert den Knoten N0 als zwangsausscheidend, bemerkt den abrupten Übergang aus dem angeschlossenen Zustand und beginnt die Recovery-Bearbeitung, wie. in14 illustriert. Nachdem das DLM-Subsystem des Knotens N1 seine Beendigung der Recovery-Bearbeitung für das Zwangsausscheiden des Knotens NO durch Markieren des Zustands des Knotens N0 als inaktiv bestätigt hat, führt der Mitgliedschaftsmanager des Knotens N1 die gleiche Iteration mit Bezug auf das VDM-Subsystem50 durch. - Der Knoten N0 kann sich dem Cluster erst dann wieder kontrolliert anschließen, wenn alle Subsysteme des Knotens N1 ihre Bearbeitung der Zwangsausscheidung des Knotens N0 abgeschlossen haben. Wenn der Mitgliedschaftsmanager des Knotens N1 das SFS-Subsystem
52 des Knotens N1 schließlich eingeholt hat, bricht dieses Subsystem seine Bearbeitung des ursprünglichen kontrollierten Anschließens des Knotens N0 ab und führt die Recovery-Bearbeitung durch gefolgt von einer Bestätigung seiner Beendigung der Zwangsausscheidungsbearbeitung für Knoten N0 durch Markieren des Zustands des Knotens N0 als inaktiv. Der Mitgliedschaftsmanager des Knotens N1 würde die Zwangsausscheidungsbenachrichtigung normalerweise durch das höchste registrierte Subsystem, Ereignismanager54 , weiter iterieren. Weil aber das SFS-Subsystem52 das höchste Subsystem war, das über den Versuch eines kontrollierten Anschließens durch den Knoten N1 benachrichtigt wurde, durchläuft die Zwangsausscheidungsbearbeitung nur das SFS-Subsystem. Nach der Bearbeitung der Zwangsausscheidungsbenachrichtigung durch das höchste zutreffende Subsystem, in diesem Fall das SFS-Subsystem, markiert der Mitgliedschaftsmanager des Knotens N1 den Zustand von Knoten N0 als inaktiv (15 ). - Tabelle 1 zeigt die Typen der Benachrichtigungen, die der Mitgliedschaftsmanager an ein registriertes Subsystem sendet, und die entsprechenden Bestätigungen, deren Erhalt der Mitgliedschaftsmanager von dem registrierten Subsystem erwartet, nachdem das registrierte Subsystem seine Bearbeitung des Übergangs abgeschlossen hat, für einen bestimmten Übergangsknoten. Tabelle 1 führt auch die erneuten Benachrichtigungen auf, die, dieser Mitgliedschaftsmanager an das registrierte Subsystem senden kann, während das registrierte Subsystem noch die ursprüngliche Benachrichtigung für den im Übergang befindlichen Knoten bearbeitet.
- Einige registrierte Subsysteme müssen eventuell eine Zwei- oder Mehrphasen-Commit-Operation für einen der bestimmten Knotenübergänge durchführen. Um ein solches Mehrphasen-Commit bereitzustellen, stellt der Mitgliedschaftsmanager
46 Barrieren-Synchronisation bereit. Jedes registrierte Subsystem kann eine Anzahl von Schranken angeben, die das Subsystem für jeden Knotenübergangstyp wünscht. Die Mitgliedschaftsmanager senden dann Benachrichtigungen, die Barrieren-Synchronisation mit Subsystemebenen aufweisen. Alle Knoten auf einer bestimmten Subsystemebene müssen ihren Abschluss der Übergangsbearbeitung für die bestimmte Schranke bestätigen, bevor der Mitgliedschaftsmanager zu dem Subsystem übergeht, das als nächstes an der Reihe ist. Wenn beispielsweise das DLM-Subsystem während eines Anschlussübergangs zwei „Anschluss"-Schranken verlangt, müssen alle DLM-Subsysteme Anschlusschranke 0 bestätigen, bevor sie über Schranke1 benachrichtigt werden. Nachdem sie Schranke1 bestätigt haben, schreitet der Anschlussübergang zum VDM-Subsystem weiter, das eine andere Schrankenzahl haben kann. Auch müssen sich alle Subsysteme auf einer bestimmten Ebene für jeden Übergangstyp mit der gleichen Schrankenzahl registrieren. - In
1 wird ein Zustandsdiagramm für das Übergangsbenachrichtigungsnetzwerk44 illustriert, um die Benachrichtigungstypen zu veranschaulichen, die ein einzelnes registriertes Subsystem für einen Knotenübergang erhalten kann. Wie in2 beobachtet, kann der Übergang für jeden Übergangstyp durch mehrere Schranken verlaufen. Zur Verdeutlichung wird nur eine Schranke für das Zwangsausscheiden dargestellt. Es sind aber mehrere Schranken erlaubt. Gestrichelte Linien stellen Übergangsbenachrichtigungen dar. Durchgezogene Linien stellen Bestätigungen vom einzelnen Subsystem auf einem einzelnen Knoten oder über alle Knoten dar. - BENACHRICHTIGUNGEN VON EINEM MITGLIEDSCHAFTSMANAGER ÜBER ÜBERGÄNGE FÜR EINEN BESTIMMTEN KNOTEN AN EIN REGISTRIERTES SUBSYSTEM UND ERWARTETE BESTÄTIGUNGEN VON DEM REGISTRIERTEN SUBSYSTEM
- B. EREIGNISMANAGER
- Das Ereignismanager-Subsystem
54 ist ein Benutzerraum-Subsystem, das clusterweite Verfügbarkeit für Client-Dienste bereitstellt. Diese letztere Funktion wird von einem Registrierungs- und Startdienst56 (16 –21 ) durchgeführt, der eine Komponente des Ereignismanager-Subsystems54 (21 ) ist. Das Ereignismanager-Subsystem54 hat einen Ereignismanager-Dämon58 mit mehreren Überwachungen (Watcher)60a bis60g , die bestimmte Bedingungen überwachen. Wenn eine Überwachung ein Problem feststellt, löst das Ereignismanager-Subsystem54 das Problem über Aktionsfunktionen62 . Registrierungs- und Startdienst56 kann als eine Überwachung des Ereignismanagerdämons58 betrachtet werden, führt aber zusätzliche nützliche Funktionen durch, die unten noch ausführlicher beschrieben werden. - Ein Client-Dienst ist jede Rechentätigkeit, einschließlich Benutzeranwendungen, die auf einem Knoten oder auf mehr als einem Knoten in einem Cluster durchgeführt wird. Eine Schwierigkeit besteht darin, zu bestimmen, welcher Knoten bzw. welche Knoten jeden Client-Dienst anfänglich bereitstellen sollte(n). Außerdem muss koordiniert sein, welcher Knoten welche Dienste während eines Ausfallszenarios implementiert. Wenn einzelne Client-Dienste ihre eigenen Mechanismen zum Bestimmen des besten Ortes zum Ausführen und zum Iniitiieren der Wiederherstellung (Revocery), wenn der die Dienste derzeit bereitstellende Knoten das Cluster verlässt, bestimmen sollten, würde der administrativen Verwaltung des Clusters eine schwere Bürde aufgelastet. Registrierungs- und Startdienst
56 verleiht nichtclusterbewussten Anwendungen Clusterbewusstsein, indem er wählt, auf welchem Knoten ein Client-Dienst ausführt, den Client-Dienst bei diesem Knoten registriert und derzeit im Cluster befindliche Knoten benachrichtigt, dass der betreffene Client-Dienst bei diesem Knoten registriert ist. Registrierungs- und Startdienst56 stellt außerdem ein fakultatives Start- oder Ausführungsleistungsmerkmal bereit, das aufgerufen wird, wenn der Dienst an einem bestimmten Knoten registriert wird. Das Start-Leistungsmerkmal kann außerdem zum kontrollierten Übertragen eines Dienstes von einem Knoten auf einen anderen verwendet werden. Das Start-Leistungsmerkmal, das „Aktionsfunktionen" genannt wird, verbessert die clusterweite Verfügbarkeit, indem es die Fähigkeit zum Einleiten, zur Migration und zur Beendigung von Client-Diensten verleiht. Derartige Übertragungen des Client-Dienstes können beispielsweise das Ergebnis von sich dem Cluster anschließenden und ihn verlassenden Knoten sein. Beispiele der Dienste, die prinzipiellen Gebrauch vom Registrierungs- und Startdienst machen, sind beispielsweise Drucken-Subsysteme, fließendes Internetprotokoll (IP), Vernetzungsdienste und Lizenzserver, obwohl auch andere Dienste den Registrierungs- und Startdienst vorteilhaft nutzen können. - 1. Registrierung
- Registrierung ist der Prozess, bei dem ein Knoten oder mehr als ein Knoten in einem Cluster die Verantwortung für einen zuvor definierten Client-Dienst beanspruchen kann/können oder sie ihm/ihnen zugewiesen wird. Sie wird auf clusterweiter atomischer Basis durchgeführt. Eine Registrierung zeigt einen Verantwortungsanspruch an, dass der registrierte Knoten die Verpflichtungen des spezifizierten Client-Dienstes erfüllt. Als Folge der Registrierung oder Deregistrierung werden fakultative Dienststart-, Benachrichtungs- oder Herunterfahrbefehle, „Aktionsfunktionen" genannt, aufgerufen. Auf diese Weise kann die Registrierung den Client-Dienst einleiten oder starten und dem Benutzerdienst Clusterbewusstsein verleihen. Clusterbewusstsein ist ein Ergebnis der Benachrichtigung anderer Knoten in dem Cluster sowie von Knoten, die sich später dem Cluster anschließen, bei Registrierungsabschluss über die Registrierung.
- 2. Wählen
- Die Wahl, welchem Knoten als Teil einer Registrierungsoperation eine bestimmte Verantwortung zugewiesen wird, wird von einem Satz von Wählparametern oder Datenbankelementen
64 gelenkt. Diese Wählparameter können einen Satz Datenbankelemente aufweisen, die angeben, wann, wo und unter welchen Bedingungen ein Dienst registriert werden sollte. Es können aber auch zusätzliche Kriterien in die Wählfunktion eingeschlossen. sein, z. B. die jüngste Leistungsstatistik bestimmter Knoten. Vom Administrator bereitgestellte Prioritätsfaktoren wie folgt können ausgewählt werden: - Zulässige Knoten (Allowable_Nodes) – die Knoten aus dem Cluster, bei denen die Registrierung erlaubt ist. Alle Knoten müssen potenzielle Mitglieder des Clusters sein, obwohl sie nicht hochgefahren sein müssen. Zum Bezeichnen aller potenziellen Knoten des Clusters kann ein einzelnes Stellvertreterzeichen benutzt werden.
- Knotenpräferenzen (Node_Preferences) – Knotenpräferenzen ergeben sich aus der Tatsache, dass nicht alle Knoten alle Client-Dienste gleich gut unterstützen. Knotenpräferenzen können als eine ungeordnete Liste oder als eine geordnete Liste angegeben. werden. Die Auswahl unter ungeordneten Elementen wird von der jüngsten Leistungscharakteristik des Clusters beeinflusst. Geordnete Listen werden angefangen mit dem ranghöchsten Element bearbeitet.
- Unzulässige Knoten (Disallowable_Nodes) – die Knoten aus dem Cluster, bei denen keine Registrierung zulässig ist. Das Hinzufügen eines Knotens zu dem Feld der unzulässigen Knoten eines Client-Dienstes leitet aber nicht automatisch auch eine Übertragung des Dienstes ein.
- Automatische Registrierung (Auto_Register) – wird verwendet, wenn das Cluster anfänglich hochgefahren wird, wobei jeder Benutzer-Client-Dienst potenziell registriert und gestartet werden muss. Das Feld für automatisches Registrieren erlaubt es dem Administrator zu definieren, unter welchen Bedingungen ein Dienst registriert werden sollte.
- Platzierungsrichtlinien (Placement_Policy) – zeigen an, welche Art von Registrierungsphilosophie angewendet wird, nämlich, ob der Client-Dienst auf genau einem Knoten zu registrieren ist oder ob er auf jedem zulässigen Knoten registriert und gestartet werden soll.
- Wie in
18 illustriert, kann ein Client-Dienst entweder von einem automatischen Start66 oder einem externen Start68 gestartet werden. Der Registrierungsund Start-Dienst eines entscheidungstreffenden Knotens wählt unter Verwendung der Wählparameter, wie bereits dargelegt, den besten Knoten an 64 aus. Der entscheidungstreffende Knoten kann jeder beliebige Knoten im Cluster sein. Er wird durch den Besitz einer Dateisperre bestimmt und mit Hilfe einer clusterweiten Semaphore bearbeitet. Wenn Reife (Maturity) auf den Client-Dienst angewendet wird, überträgt der Registrierungs- und Start-Dienst auf einen auf Reife wartenden Zustand70 . Reif e. bezieht sich auf die Reif e des Clusters. Ein Cluster ist reif bezüglich einem bestimmten Client-Dienst, wenn wenigstens ein Knoten aus der Liste der zulässigen Knoten up ist und (a) ein primärer Knoten verfügbar ist, (b) genug Knoten up sind oder (c) genug Zeit verstrichen ist. Sobald das Cluster reif ist (70) oder wenn Reife nicht zutrifft, benachrichtigt (72) der Registrierungs- und Start-Dienst den ausgewählten Knoten, damit er den Dienst startet, und die anderen Knoten, dass der Client-Dienst einem bestimmten Knoten zugewiesen worden ist. Der Client-Dienst wird dann aktiviert oder gestartet (74 ). Mit Ausnahme des unten Beschriebenen (Gruppierung) hat jeder Registrierungs- und Start-Client-Dienst unabhängige Wählfaktoren. - 3. Gruppierung
- Der Registrierungs- und Startdienst
56 erlaubt es Client-Diensten, miteinander in einer als Gruppierung76 bekannten Verbindung assoziiert zu sein (16 und17 ). Der Gruppierungsmechanismus ist eine Beziehung zwischen einem Parent-Client-Dienst78 und einem oder mehreren Child-Client-Diensten80 . Zweck dieser Gruppierungsanordnung ist es, den Administrator dann Verbindungen spezifizieren zu lassen, wenn spezifische Dienste zusammen platziert werden müssen. Das Child (Kind) wird immer dort platziert, wo das Parent (Eltern) platziert ist. Child-Dienste haben keine Wählfaktoren; es werden nur die Wählfaktoren der Parents verwendet. Eine Gruppierung76' kann Child-Dienste80 aufweisen, die Child-Dienste eines anderen Dienstes80' sind, der, wiederum das Child von Parent-Dienst78 ist, wie in17 illustriert, wären alle Child-Dienste (80 und80' ) unter der Platzierung des Parent-Dienstes78 . - Die Registrierung für jedes Child
80 wird ausgesetzt, bis sein Parent-Dienst erfolgreich registriert und sein Startbefehl (start_command), wenn überhaupt, erfolgreich abgeschlossen wurde. Nachdem der Parent-Dienst fertig ist, wird jedes Child bearbeitet. Desgleichen impliziert eine Deregistrierung eines Parent- Dienstes die Deregistrierung der Child-Dienste. Child-Dienste werden zuerst mit Stoppbefehlen (stop_command) deregistriert, die entsprechend aufgerufen werden. Beim Übertragen einer Gruppierung76 werden gruppierte Child-Dienste80 immer zuerst gestoppt und zuletzt gestartet. - 4. Aktionsfunktionen
- Registrierungs- und Startdienst
56 unterstützt veschiedene Aktionen, die als eine Folge von Registrierungstransaktionen stattfinden sollen. Aktionen sind der „Start"-Aspekt des Registrierungs- und Startdienst. Wenn sie mit Gruppierungen76 und Auswahlparametern64 kombiniert sind, sorgen Aktionen dafür, dass viele Client-Dienste sich für clusterweite Verfügbarkeit vollständig vom Registrierungs- und Startdienst abhängen können. Einleiten, Migration und Beendigung können mit dem Registrierungs- und Startdienst56 alle direkt durchgeführt werden. - Der Registrierungs- und Startdienst
56 in der illustrierten Ausgestaltung hat vier Aktionsfunktionen: - Startbefehl (Start_Command) – Die Datenbank wird bei erfolgreicher Registrierung des Client-Dienstes geprüft, um zu bestimmen, ob ein solcher Befehl mit dem Dienst assoziiert ist. Wenn ein solcher Befehl vorliegt, wird der Client-Dienst an dem registrierten Knoten ausgeführt. Die Registrierung ist erst dann vollständig, wenn der Start erfolgreich abgeschlossen wurde. Wenn eine Startoperation erfolglos ist, wird versucht, den Client-Dienst an einem anderen Knoten in der Liste der zulässigen Knoten zu starten.
- Stoppbefehl (Stop_Command) – Die Datenbank wird geprüft, um die Anwesenheit dieses Befehls zu bestimmen, wenn ein Client-Dienst seine Beendigung beabsichtigt. Die Deregistrierung ist erst dann vollständig, wenn der Stoppbefehl endet.
- Benachrichtigungsbefehl (Notify_Command) – Dieser Befehl stellt einen Mechanismus bereit, wodurch andere Knoten darüber informiert werden, dass der Client-Dienst einem bestimmten Knoten zugewiesen worden ist. Wenn ein Client-Dienst erfolgreich registriert ist, wird die Datenbank geprüft, um zu bestimmen, ob dieser Befehl mit dem Dienst assoziiert ist. Ist dies der Fall, wird er an allen Knoten in der Liste der zulässigen Knoten außer dem registrierten Knoten ausgeführt. Wenn ein Knoten in der Liste der zulässigen Knoten sich dem Cluster anschließt, nachdem ein Dienst registriert worden ist, und der Dienst einen Benachrichtigungsbefehl hat, wird der Befehl an dem neuen Knoten eingeleitet. Das schließt Knoten ein, die das Cluster verlassen und sich ihm später wieder anschließen. Wenn ein Startbefehl vorliegt, wird die Benachrichtigung bis zum erfolgreichen Start ausgesetzt.
- Recovery-Befehl (Recovery_Command) – Dieser wird benutzt, wenn ein Knoten das Cluster unkontrolliert verlässt. Für jeden an dem hinausgedrängten Knoten registrierten Dienst wird die Datenbank geprüft, um zu bestimmen, ob mit dem Dienst ein Recovery-Befehl assoziiert ist. Ist dies der Fall, wird er ausgeführt. Der Knoten für den Recovery-Vorgang wird mit Hilfe der Wählparameter
64 bestimmt. Wenn die Wiederherstellung abgeschlossen ist, wird der Dienst deregistriert. Im typischen Fall wird der Dienst dann an einem der überlebenden Knoten registriert und gestartet. - Ein eng mit einer Aktionsfunktion verwandtes Konzept ist das der Übertragung. Die Übertragung eines Dienstes wird durch eine Kombination von zwei Aktionsfunktionen bewerkstelligt. Zunächst wird der Dienst ausgemacht und deregistriert. Zweitens wird er registriert und gestartet. Eine Dienstübertragung kann unter verschiedenen Umständen sehr hilfreich sein. Unter bestimmten Umständen wünscht eventuell der Administrator die Versetzung eines Dienstes. Unter anderen Umständen wird die Übertragungsfunktion zum Übertragen aller Dienste für einen Knoten verwendet, der kontrolliert heruntergefahren wird. Unter noch anderen Umständen kann die Versetzung des Dienstes seiner Art gemäß trivial sein. Weil seine Versetzung keine Auswirkungen hat, kann ein solcher Dienst automatisch übertragen werden, wenn ein bevorzugter Knoten sich dem Cluster anschließt, wenn der Dienst an einem anderen Knoten als einem bevorzugten Knoten platziert ist.
- Beim Übertragen eines Client-Dienstes von einem Knoten auf einen anderen wird von dem übertragenen Knoten ein „Transferabsicht"-Flag gesetzt. Die Wirkung des Transferabsicht-Flags auf die Übergänge des Registrierungs- und Startdienstes
56 ist unter Bezugnahme auf19 zu sehen. Der Registrierungs- und Startdienst56 hat einen Startzustand82 , einen registrierten Zustand84 , einen Stoppzustand86 , einen deregistrierten Zustand88 und einen Wiederherstellungszustand90 . Jeder der Stopp-, Start- und Wiederherstellungszustände wird übersprungen, wenn ihr jeweiliger Befehl nicht existiert. Der Startzustand82 zeigt an, dass der Dienst gerade gestartet wird. Bei erfolgreichem Start schaltet der Dienst in einen registrierten Zustand84 , der anzeigt, dass der Dienst behauptet, an irgendeinem Knoten betriebsfähig zu sein. Der registrierte Dienst transferiert zum Stoppzustand86 , wenn das Transferabsicht-Flag bei einem kontrollierten Verlassen des betriebsfähigen Knotens als Teil der Übertragung zu einem anderen Knoten gesetzt wird. Der registrierte Dienst transferiert als Teil einer externen Deregistrierung oder einer Übertragungsoperation zum Stoppzustand86 . Nach Abschluss des Stoppbefehls geht der Dienst vom Stoppzustand86 in den deregistrierten Zustand88 über, was anzeigt, dass der Dienst derzeit nicht registriert ist und dass derzeit keine Knotenübergänge ablaufen. Ein Dienst, der übertragen wird, geht normalerweise unmittelbar vom deregistrieren Zustand88 in den Startzustand82 über. Der Wiederherstellungszustand90 findet nur statt, wenn ein Knoten das Cluster unkontrolliert verlässt, während der Dienst im registrierten Zustand84 oder im Stoppzustand86 war. Ein ausführlicheres Zustandsübergangsdiagramm ist in20 dargestellt und illustriert verschiedene Zwischenzustände. - Tabelle 2 illustriert ein Beispiel eines Zustandsübergangs in einem Drei-Knoten-Cluster mit Knoten NO, N1 und N2. Das Beispiel basiert darauf, dass Knoten NO und Knoten N1 die zulässigen Knoten sind mit einem Maturity_Count (Reifezahl) gleich 2 und einer Maturity_Time (Reifezeit) gleich 5. Auto Register ist auf automatisch eingestellt. Das Beispiel gilt für einen Einzel-Client-Dienst. Im Beispiel sind anfänglich alle Knoten heruntergefahren. Zum Zeitpunkt t1 bootet der Knoten N2, sodass der Status des Knotens auf einen up-Zustand wechselt. Für den Dienst findet keine Änderung statt, weil Knoten N2 nicht in der Liste der zulässigen Knoten ist. Zum Zeitpunkt t2 wartet der Dienst auf Cluster-Reife und Knoten N0 bootet. Zum Zeitpunkt t3 verstreicht die Reifezeit und der Dienst-Startbefehl wird an Knoten N0 ausgeführt. Der Start wird am Zeitpunkt t4 abgeschlossen und der Dienst wird am Knoten NO registriert. Zum Zeitpunkt t5 bootet Knoten N1. Weil der Dienst bereits registriert ist, findet keine Aktion statt. Wenn aber eine „Benachrichtigungsaktion" definiert ist, würde sie zu diesem Zeitpunkt am Knoten N1 ausgeführt werden. Am Zeitpunkt t6 scheidet der Knoten N2 kontrolliert aus dem Cluster aus, was auch keinen Einfluss auf den Dienst hat. Zum Zeitpunkt t7 beginnt der Knoten N0 ein kontrolliertes Ausscheiden. Dies hat zur Folge, dass der Dienst im Stoppzustand mit gesetzter Transferabsicht ist. Das Stoppen ist zum Zeitpunkt t8 abgeschlossen. Der Dienst wird zum Zeitpunkt t9 auf den Knoten N1 im Startzustand übertragen. Der Dienst wird zum Zeitpunkt t10 an N1 registriert, wenn der Start abgeschlossen wird. Zum Zeitpunkt t11 schließt der Knoten N0 das kontrollierte Ausscheiden ab und wird heruntergefahren. Dies stellt keine Änderung in der Datenbank dar, weil der up/down-Zustand eines Knotens kein in der Datenbank geführter Zustand ist. Am Zeitpunkt t12 beginnt der Knoten N1 ein kontrolliertes Ausscheiden, was den Dienst in einen Stoppzustand versetzt. Wenn Stopp zum Zeitpunkt t13 abgeschlossen ist, wird der Dienst deregistriert und das Transferabsicht-Flag wird gelöscht.
- In einem in Tabelle 3 illustrierten Beispiel wird Knoten N0 als ein bevorzugter Knoten definiert und die übrigen Knoten als zulässig. Maturity_Count ist auf 2 gesetzt. Auto_Register ist auf automatisch gesetzt. Placement_Policy ist auf register_on_one gesetzt. Transfer_cost ist frei. Zu Anfang des Beispiels sind die drei Knoten N0, N1 und N2 im Cluster alle down. An Zeitpunkt t1 bootet der Knoten N0 und der Dienst tritt an Knoten N0 in den Startzustand ein. An Zeitpunkt t2 kommt der Start zum Abschluss und der Dienst wird an Knoten NO registriert. An Zeitpunkt t3 bootet der Knoten N1 und wird benachrichtigt, dass der Dienst an Knoten N0 registriert ist. Zwischen den Zeitpunkten t4 und t, scheidet der Knoten N0 kontrolliert aus dem Cluster aus. Der Dienst wird auf Knoten N1 übertragen und dort registriert. An Zeitpunkt t8 bootet der Knoten N2 und wird benachrichtigt, dass der Dienst an Knoten N1 registriert ist. An Zeitpunkt t9 bootet der Knoten N0 und wird benachrichtigt, dass der Dienst an Knoten
1 registriert ist. An Zeitpunkt t10, kurz nach seinem Booten, bemerkt der Knoten NO, dass freie Übergänge erlaubt sind und dass er gegenüber Knoten N1 bevorzugt wird. Der Knoten N0 leitet automatisch eine Übertragung ein. Der Dienst tritt in den Stoppzustand86 ein und das Stoppen kommt am Zeitpunkt t11 zum Abschluss. An Zeitpunkt t12 tritt der Dienst am Knoten N0 in den Startzustand ein. Der Start kommt am Zeitpunkt t13 zum Abschluss, und der Dienst wird am Knoten N0 registriert. Die Knoten N1 und N2 werden benachrichtigt, dass der Dienst am Knoten N0 registriert ist. - 5. Ereignismanager-Dämon
- Registrierungs- und Startdienst
56 fordert automatisch den Ereignismanager-Dämon58 zum Überwachen auf einen Zustand an, der sich auf einen Client-Dienst bezieht. Der Registrierungs- und Startdienst fordert den Ereignismanager-Dämon zum Aktivieren dieser Ereignisgruppe (Event Group) bei der Registrierung des Dienstes und zum Deaktivieren der Ereignisgruppe in Reaktion auf die Deregistrierung des Dienstes an. Wenn der Ereignismanager-Dämon58 ein Problem feststellt, wird eine Ereignisaktion62 zum Lösen des Problems aufgerufen. - An den Registrierungs- und Startdienst wird keine direkte Kommunikation zurückgesendet.
- Tabelle 4 illustriert die Felder, die mit einem vom Ereignismanager-Dämon
58 überwachten Ereignis assoziiert sind. Zusätzlich zum Ereignisnamensfeld gibt es Felder für IN-Parameter und OUT-Parameter, die das Ereignis definieren, auf dessen Feststellung die zutreffende Ereignisüberwachung eingestellt ist, und die OUT-Parameter werden ausgefüllt, wenn das Ereignis stattfindet. Die Ausgabe wird für die Aktionsfunktion62 verfügbar gemacht, die mit dem betreffenden Ereignis assoziiert ist. Ereignisgruppen (Event_Groups) werden verwendet, um ansonsten unabhängige Ereignisse logisch zu assoziieren, um anzugeben, wann, wo und unter welchen Bedingungen sie zu aktivieren sind. - Im Ereignismanager-Subsystem
54 ist der Ereignismanager-Dämon58 das Steuerzentrum. Alle Überwachungen60a –60g sind über eine Kommunikationsbibliothek mit dem Ereignismanager-Dämon verbunden. Eine der Überwachungen im Ereignismanager-Subsystem54 ist die Mitgliedschaftsmanager-Überwachung60e , die auf die zuvor beschriebene Weise Benachrichtigungen über Knotenübergänge vom Mitgliedschaftsmanager-Subsystem46 erhält und eine. Schnittstelle zum Übergangsbenachrichtigungsrahmen44 bereitstellt. Das Ereignismanager-Subsystem54 sorgt dafür, dass dem Registrierungs- und Startdienst56 derartige Knotenübergänge bewusst sind. - Ein Beispiel einer Anwendung, für die der Registrierungs- und Startdienst
56 besonders zutreffend ist, ist die Bereitstellung eines Server mit fließender Lizenz am Cluster-System. Die lizenzierte Software könnte als ein Dienst eingerichtet werden und auf einer bestimmten Zahl von Knoten im Cluster ausführen dürfen. Der Registrierungs- und Startdienst arbeitet das Startprogramm ab, das die lizenzierte Software auf einem der Knoten aufruft. Wenn dieser Knoten kontrolliert oder unkontrolliert heruntergefahren wird, überträgt der Registrierungs- und Startdienst die lizenzierte Software nach der Wiederherstellung, wenn das Ausscheiden unkontrolliert war, auf einen neuen Knoten. - So ist zu sehen, dass die vorliegende Erfindung einen eng koordinierten Cluster-Mitgliedschaftsmanager-Rahmen bereitstellt, der das Anschließen oder Ausscheiden unter allen Knoten in einem Cluster koordiniert, einschließlich dem Hindurchführen der mehreren Schichten von beteiligten Subsysteme durch die Übergänge. Eines der Subsysteme kann im Benutzerraum sein und führt die Übertragungen von Client-Diensten durch, einschließlich Benutzeranwendungen, die sich aus dem Anschließen von Knoten an das Cluster und dem Ausscheiden von Knoten aus dem Cluster ergeben. Andere Benutzerraumanwendungen können sich während der Laufzeit beim Mitgliedschaftsmanager-Übergangsbenachrichtigungsrahmen registrieren. Somit wird ein robustes System bereitgestellt, das die hohe Gesamtleistung der Multiprozessor-Cluster-Technologie verbessert.
- Die vorliegende Ausgestaltung erleichtert die Verwendung von Multiprozessor-Clustersystemen mit Betriebssystemen, die mehrere Subsysteme haben, die in Schichten angeordnet sind, indem sie alle beteiligten Subsysteme durch Knotenübergänge führt. Außerdem verleiht sie nicht clusterbewussten Client-Diensten, zu denen eine Vielfalt verschiedener Rechenaktivitäten einschließlich Benutzeranwendungen zählen, Clusterbewusstsein. Dies erlaubt es Benutzern, das Clustersystem als eine einzelne Einheit zu behandeln, wobei das Clustersystem dem Client-Dienst clusterweite Verfügbarkeit verleiht, einschließlich der Einleitung des Client-Dienstes an einem bestimmten Knoten, der Migration des Client-Dienstes zwischen Knoten und der Beendigung des Client-Dienstes.
- Änderungen und Modifikationen in den speziell beschriebenen Ausgestaltungen können ohne Abweichen von den Grundsätzen der Erfindung durchgeführt werden, deren Begrenzung nur durch den Umfang der anhängigen Ansprüche vorgesehen ist.
Claims (76)
- Betriebsverfahren für ein Multiprozessorsystem mit mehreren Knoten, einer gemeinsamen, für alle Knoten zugänglichen Ressource und mehreren interdependenten Ebenen von Betriebssystem-Subsystemen auf jedem der genannten Knoten, wobei das Verfahren die folgenden Schritte umfasst: Kombinieren spezieller der genannten Knoten in einem Cluster, der Benutzern des genannten Systems im Wesentlichen als ein vereintes System erscheint, und Benachrichtigen der Ebenen von Subsystemen, die auf gegenwärtig in dem Cluster befindlichen Knoten abgearbeitet werden, über Übergänge von sich dem Cluster anschließenden und es verlassenden Knoten, um eine konsistente Ansicht aktiver Mitgliedschaft in dem Cluster bereitzustellen.
- Verfahren nach Anspruch 1, bei dem die Subsysteme in Ebenen interdependent sind, wobei Subsysteme höherer Ebenen von dem Betrieb von Subsystemen niedrigerer Ebenen abhängig sind.
- Verfahren nach Anspruch 2, das die Benachrichtigung von einem der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über einen Übergang und das Verarbeiten dieser Benachrichtigung an dem genannten einen der genannten Subsysteme, bevor ein weiteres der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über den Übergang benachrichtigt wird, aufweist.
- Verfahren nach Anspruch 3, das das Benachrichtigen von Subsystemen, angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend, über einen Übergang eines sich dem Cluster anschließenden Knotens aufweist.
- Verfahren nach Anspruch 3, das das Benachrichtigen von Subsystemen, angefangen mit Subsystemen höherer Ebene und der Reihe nach durch niedrigere Subsystemebenen fortschreitend; über einen Übergang eines das Cluster kontrolliert verlassenden Knotens aufweist.
- Verfahren nach Anspruch 3, das das Benachrichtigen von Subsystemen, angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend, über einen Übergang eines von anderen Prozessoren aus dem Cluster gedrängten Knotens aufweist.
- Verfahren nach einem der Ansprüche 2 bis 6, bei dem die genannten Subsysteme ein Subsystem höherer Ebene aufweisen, das mit Benutzerprogrammen interagiert.
- Verfahren nach Anspruch 7, bei dem das genannte Subsystem höherer Ebene einen Dienst aufweist, der Benutzerprogramme automatisch und atomisch zu anderen Knoten transferiert, wenn der die Benutzerprogramme ausführende Knoten das Cluster verlässt.
- Verfahren nach einem der Ansprüche 2 bis 8, bei dem die genannten Subsysteme ein Verteilter-Sperrenmanager-Subsystem, ein Virtueller-Diskmanager-Subsystem und ein Gemeinschaftsdatei-Subsystem aufweisen.
- Verfahren nach einem der Ansprüche 1 bis 9, bei dem das genannte Verfahren für einen Übergang eines sich dem Cluster anschließenden Knotens die folgenden Schritte aufweist: a) Registrieren von Subsystemen des sich anschließenden Knotens zum Empfangen von Übergangsbenachrichtigungen, b) Anschließen des Knotens an das Cluster und c) Benachrichtigen registrierter Subsysteme in dem Cluster darüber, dass der sich anschließende Knoten sich dem Cluster angeschlossen hat.
- Verfahren nach einem der Ansprüche 1 bis 10, bei dem das genannte Verfahren für einen Übergang eines von einem anderen Knoten aus dem Cluster gedrängten Knotens die folgenden Schritte aufweist: a) Benachrichtigen registrierter Subsysteme durch den anderen Knoten darüber, dass der eine Knoten aus dem Cluster gedrängt wird, und b) Übertragen registrierter Programme, die auf dem genannten einen Knoten ausgeführt werden, atomisch auf einen anderen Knoten und Wiederherstellen der Programme zum Ausführen auf dem genannten anderen Knoten.
- Verfahren nach einem der Ansprüche 1 bis 11 einschließlich Initiieren von Client-Diensten auf speziellen der genannten Knoten in einem Cluster auf eine Weise, die den Client-Diensten im Wesentlichen als ein vereintes System erscheint, Wählen eines Knotens für jeden Client-Dienst, Registrieren des Client-Dienstes bei diesem Knoten und Benachrichtigen von gegenwärtig in dem Cluster befindlichen Knoten darüber, dass der spezielle Client-Dienst bei dem speziellen Knoten registriert ist, wodurch der spezielle Dienst auf einen anderen Knoten übertragen werden kann, wenn der spezielle Knoten das Cluster verlässt.
- Verfahren nach Anspruch 12, das ferner das Starten eines Client-Dienstes auf einem Knoten gemäß einem in dem Client-Dienst enthaltenen Aktionsparameter in Reaktion auf das Registrieren dieses Client-Dienstes bei diesem Knoten aufweist.
- Verfahren nach Anspruch 13, das ferner das Gruppieren von Client-Diensten als Eltern-Client-Dienst und wenigstens einen Kind-Client-Dienst, das Registrieren gruppierter Client-Dienste bei dem gleichen Knoten und das Starten gruppierter Client-Dienste gemäß einem in dem Eltern-Client-Dienst enthaltenen Aktionsparameter aufweist.
- Verfahren nach Anspruch 12, 13 oder 14, bei dem das genannte Wählen eines Knotens das Bereitstellen einer Datenbank von Wählfaktoren für den Client-Dienst und das Anwenden der genannten Wählfaktoren auf die gegenwärtig in dem Cluster befindlichen Knoten aufweist, wobei die genannten Wählfaktoren Regeln festlegen, die Knoten mit dem Client-Dienst in Bezug setzen.
- Verfahren nach Anspruch 15, bei dem die genannten Wählfaktoren aus der Gruppe ausgewählt werden, die zulässige Knoten, nicht zulässige Knoten und Knotenpräferenzen aufweist.
- Verfahren nach einem der Ansprüche 12 bis 16, das ferner das Benachrichtigen vor sich an das Cluster anschließenden Knoten darüber aufweist, dass der spezielle Client-Dienst bei den speziellen Knoten registriert ist.
- Verfahren nach einem der Ansprüche 12 bis 17, das die Überwachung eines bei einem Knoten registrierten Client-Dienstes unter Verwendung einer Ereignisüberwachung an diesem Knoten aufweist.
- Verfahren nach Anspruch 18, das das Aktivieren der Ereignisüberwachung in Reaktion auf das Registrieren des Client-Dienstes und das Deaktivieren der Ereignisüberwachung in Reaktion auf das Deregistrieren des Client-Dienstes aufweist.
- Verfahren nach einem der Ansprüche 12 bis 19, bei dem die genannten mehreren Subsysteme einen Cluster-Mitgliedschaftsmanager haben, der bestimmt, welche der genannten Knoten gegenwärtig in dem Cluster sind, und bei dem der genannte Cluster-Mitgliedschaftsmanager Benachrichtigung darüber bereitstellt, welche Knoten in dem Cluster sind.
- Verfahren nach Anspruch 20, bei dem das genannte Initiieren von Diensten auf einem speziellen der genannten Knoten von einem anderen der genannten mehreren Subsysteme durchgeführt wird.
- Verfahren nach einem der Ansprüche 1 bis 21, das das Initiieren von Client-Diensten auf speziellen der genannten Knoten in einem Cluster auf eine Weise, die dem Client-Dienst im Wesentlichen als ein vereintes System erscheint, das Registrieren eines Client-Dienstes bei einem der genannten Knoten und das Starten des Client-Dienstes auf diesem Knoten gemäß einem von dem Client- Dienst aufgewiesenen Aktionsparameter in Reaktion auf das Registrieren dieses Benutzer-Dienstes bei diesem Knoten aufweist.
- Verfahren nach Anspruch 22, das das Transferieren des Client-Dienstes zu einem anderen Knoten aufweist, wenn dieser Knoten das Cluster verlässt.
- Verfahren nach Anspruch 23, bei dem das genannte Transferieren das Neustarten des Client-Dienstes auf dem anderen Knoten gemäß dem genannten Aktionsparameter aufweist.
- Multiprozessor-Cluster-System, umfassend: mehrere Knoten (
26 ), eine gemeinsame Ressource (28 ), die für alle Knoten zugänglich ist, ein Cluster-Kommunikationsmedium (36 ) zwischen den genannten Knoten, mehrere interdependente Ebenen von Betriebssystem-Subsystemen (46 –54 ) auf jedem der genannten Knoten, wobei die genannten Subsysteme ein Cluster-Mitgliedschaftsmanager-Subsystem (46 ) zum Benachrichtigen von Subsystemen, die auf gegenwärtig in dem Cluster befindlichen Knoten abgearbeitet werden, über sich dem Cluster anschließende und es verlassende Knoten aufweist, um eine konsistente Ansicht aktiver Mitgliedschaft in dem Cluster bereitzustellen, und ein Registrierungs- und Start-Subsystem (56 ) zum Initiieren von Client-Diensten auf speziellen der genannten Knoten in einem Cluster auf eine Weise, die den Client-Diensten im Wesentlichen als ein vereinter Knoten erscheint, wobei das genannte Registrierungs- und Start-Subsystem einen Knoten für jeden Client-Dienst wählt, den Client-Dienst bei diesem Knoten registriert und gegenwärtig in dem Cluster befindliche Knoten darüber benachrichtigt, dass der spezielle Dienst bei dem speziellen Knoten registriert ist. - Multiprozessor-Cluster-System nach Anspruch 25, bei dem die Subsysteme in Ebenen interdependent sind, wobei Subsysteme höherer Ebenen von dem Betrieb von Subsystemen niedrigerer Ebenen abhängig sind.
- Multiprozessor-Cluster-System nach Anspruch 26, bei dem das genannte Mitgliedschaftsmanager-Subsystem (
46 ) eines der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über einen Übergang benachrichtigt und dieses genannte eine der genannten Subsysteme auf allen Knoten diese Benachrichtigung verarbeitet, bevor das genannte Mitgliedschaftsmanager-Subsystem ein weiteres der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über den Übergang benachrichtigt. - Multiprozessor-Cluster-System nach Anspruch 27, bei dem das genannte Mitgliedschaftsmanager-Subsystem (
46 ) Subsysteme angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend über einen Übergang eines sich dem Cluster anschließenden Knotens benachrichtigt. - Multiprozessor-Cluster-System nach Anspruch 27 oder Anspruch 28, bei dem das genannte Mitgliedschaftsmanager-Subsystem (
46 ) Subsysteme angefangen mit Subsystemen höherer Ebene und der Reihe nach durch niedrigere Subsystemebenen fortschreitend über einen Übergang eines das Cluster kontrolliert verlassenden Knotens benachrichtigt. - Multiprozessor-Cluster-System nach Anspruch 27, 28 oder 29, bei dem das genannte Mitgliedschaftsmanager-Subsystem (
46 ) Subsysteme angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend über einen Übergang eines von anderen Prozessoren aus dem Cluster gedrängten Knotens benachrichtigt. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 30, bei dem das genannte Registrierungs- und Start-Subsystem (
56 ) einen Client-Dienst auf einem Knoten gemäß einem in den Client-Dienst eingeschlossenen Aktionsparameter in Reaktion auf das Registrieren dieses Client-Dienstes bei diesem Knoten startet. - Multiprozessor-Cluster-System nach Anspruch 31, bei dem das genannte Registrierungs- und Start-Subsystem (
56 ) zum Gruppieren von Client-Diensten als einen Eltern-Client-Dienst und wenigstens einen Kind-Client-Dienst ausgeführt ist und bei dem das genannte Registrierungsund Start-Subsystem ferner gruppierte Client-Dienste bei dem gleichen Knoten registriert und gruppierte Client-Dienste gemäß einem in den Eltern-Client-Dienst eingeschlossenen Aktionsparameter startet. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 32, bei dem das genannte Registrierungsund Start-Subsystem (
56 ) eine Datenbank mit Wählfaktoren für den Client-Dienst aufweist und die genannten Wählfaktoren auf die gegenwärtig in dem Cluster befindlichen Knoten anwendet, um den Knoten zum Registrieren eines Client-Dienstes zu wählen, wobei die genannten Wählfaktoren Regeln festlegen, die Knoten mit dem Client-Dienst in Bezug setzen. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 33, bei dem das genannte Registrierungsund Start-Subsystem (
56 ) ferner sich an das Cluster anschließende Knoten darüber benachrichtigt, dass der spezielle Client-Dienst bei dem speziellen Knoten registriert ist. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 34, das ein Ereignismanager-Subsystem (
54 ) zum Feststellen von Clusterfehlern und zum Reagieren auf sie aufweist und bei dem das Registrierungs- und Start-Subsystem (56 ) auf das Ereignismanager-Subsystem reagiert. - Multiprozessor-Cluster-System nach Anspruch 35, bei dem das genannte Ereignismanager-Subsystem (
54 ) eine Ereignisüberwachung (60 ) zum Überwachen eines bei einem Knoten registrierten Client-Dienstes an diesem Knoten aufweist. - Computer-geeignetes Medium, in das Programmcode eingegliedert ist, wobei der genannte Programmcode ein Betriebssystem für ein Multiprozessor-Cluster-System definiert, das mehrere Knoten (
26 ) hat, eine gemeinsame, für alle Prozessoren zugängliche Ressource (28 ) und mehrere interdependente Ebenen von Subsystemen (46 –54 ) aufweist, wobei eines der genannten Subsysteme ein Cluster-Mitgliedschaftsmanager-Subsystem (46 ) zum Kombinieren spezieller der genannten Knoten in einem Cluster ist, das Benutzern des genannten Systems im Wesentlichen als ein vereintes System erscheint, wobei der genannte Cluster-Mitgliedschaftsmanager zum Benachrichtigen der Ebenen von Subsystemen, die auf gegenwärtig in einem Cluster befindlichen Knoten abgearbeitet werden, über Übergänge von sich dem Cluster anschließenden und es verlassenden Knoten ausgeführt ist, um eine konsistente Ansicht aktiver Mitgliedschaft in dem Cluster bereitzustellen. - Computer-geeignetes Medium nach Anspruch 37, wobei das Betriebssystem ferner einen Registrierungs- und Start-Dienst (
56 ) hat zum Initiieren von Client-Diensten an speziellen von Knoten in einem Cluster auf eine Weise, die den Client-Diensten im Wesentlichen als ein vereintes System erscheint, wobei der genannte Registrierungs- und Start-Dienst einen Knoten für jeden Client-Dienst wählt, den Client-Dienst bei diesem Knoten registriert und gegenwärtig in dem Cluster befindliche Knoten darüber benachrichtigt, dass der spezielle Dienst bei dem speziellen Knoten registriert ist. - Betriebsverfahren für ein Multiprozessorsystem mit mehreren Knoten, einer gemeinsamen, für alle Knoten zugänglichen Ressource und mehreren interdependenten Ebenen von Betriebssystem-Subsystemen auf jedem der genannten Knoten, wobei das Verfahren die folgenden Schritte umfasst: Kombinieren spezieller der genannten Knoten in einem Cluster, der Benutzern des genannten Systems im Wesentlichen als ein vereintes System erscheint, und Benachrichtigen der Ebenen von Subsystemen, die auf gegenwärtig in dem Cluster befindlichen Knoten abgearbeitet werden, über Übergänge von sich dem Cluster anschließenden und es verlassenden Knoten, um eine konsistente Ansicht aktiver Mitgliedschaft in dem Cluster bereitzustellen.
- Verfahren nach Anspruch 1, bei dem die Subsysteme in Ebenen interdependent sind, wobei Subsysteme höherer Ebenen von dem Betrieb von Subsystemen niedrigerer Ebenen abhängig sind.
- Verfahren nach Anspruch 2, das die Benachrichtigung von einem der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über einen Übergang und das Verarbeiten dieser Benachrichtigung an dem genannten einen der genannten Subsysteme, bevor ein weiteres der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über den Übergang benachrichtigt wird, aufweist.
- Verfahren nach Anspruch 3, das das Benachrichtigen von Subsystemen, angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend, über einen Übergang eines sich dem Cluster anschließenden Knotens aufweist.
- Verfahren nach Anspruch 3, das das Benachrichtigen von Subsystemen, angefangen mit Subsystemen höherer Ebene und der Reihe. nach durch niedrigere Subsystemebenen fortschreitend, über einen Übergang eines das Cluster kontrolliert verlassenden Knotens aufweist.
- Verfahren nach Anspruch 3, das das Benachrichtigen von Subsystemen, angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend, über einen Übergang eines von anderen Prozessoren aus dem Cluster gedrängten Knotens aufweist.
- Verfahren nach einem der Ansprüche 2 bis 6, bei dem die genannten Subsysteme ein Subsystem höherer Ebene aufweisen, das mit Benutzerprogrammen interagiert.
- Verfahren nach Anspruch 7, bei dem das genannte Subsystem höherer Ebene einen Dienst aufweist, der Benutzerprogramme automatisch und atomisch zu anderen Knoten transferiert, wenn der die Benutzerprogramme ausführende Knoten das Cluster verlässt.
- Verfahren nach einem der Ansprüche 2 bis 8, bei dem die genannten Subsysteme ein Verteilter-Sperrenmanager-Subsystem, ein Virtueller-Diskmanager-Subsystem und ein Gemeinschaftsdatei-Subsystem aufweisen.
- Verfahren nach einem der Ansprüche 1 bis 9, bei dem das genannte Verfahren für einen Übergang eines sich dem Cluster anschließenden Knotens die folgenden Schritte aufweist: a) Registrieren von Subsystemen des sich anschließenden Knotens zum Empfangen von Übergangsbenachrichtigungen, b) Anschließen des Knotens an das Cluster und c) Benachrichtigen registrierter Subsysteme in dem Cluster darüber, dass der sich anschließende Knoten sich dem Cluster angeschlossen hat.
- Verfahren nach einem der Ansprüche 1 bis 10, bei dem das genannte Verfahren für einen Übergang eines von einem anderen Knoten aus dem Cluster gedrängten Knotens die folgenden Schritte aufweist: a) Benachrichtigen registrierter Subsysteme durch den anderen Knoten darüber, dass der eine Knoten aus dem Cluster gedrängt wird, und b) Übertragen registrierter Programme, die auf dem genannten einen Knoten ausgeführt werden, atomisch auf einen anderen Knoten und Wiederherstellen der Programme zum Ausführen auf dem genannten anderen Knoten.
- Verfahren nach einem der Ansprüche 1 bis 11 einschließlich Initiieren von Client-Diensten auf speziellen der genannten Knoten in einem Cluster auf eine Weise, die den Client-Diensten im Wesentlichen als ein vereintes System erscheint, Wählen eines Knotens für jeden Client-Dienst, Registrieren des Client-Dienstes bei diesem Knoten und Benachrichtigen von gegenwärtig in dem Cluster befindlichen Knoten darüber, dass der spezielle Client-Dienst bei dem speziellen Knoten registriert ist, wodurch der spezielle Dienst auf einen anderen Knoten übertragen werden kann, wenn der spezielle Knoten das Cluster verlässt.
- Verfahren nach Anspruch 12, das ferner das Starten eines Client-Dienstes auf einem Knoten gemäß einem in dem Client-Dienst enthaltenen Aktionsparameter in Reaktion auf das Registrieren dieses Client-Dienstes bei diesem Knoten aufweist.
- Verfahren nach Anspruch 13, das ferner das Gruppieren von Client-Diensten als Eltern-Client-Dienst und wenigstens einen Kind-Client-Dienst, das Registrieren gruppierter Client-Dienste bei dem gleichen Knoten und das Starten gruppierter Client-Dienste gemäß einem in dem Eltern-Client-Dienst enthaltenen Aktionsparameter aufweist.
- Verfahren nach Anspruch 12, 13 oder 14, bei dem das genannte Wählen eines Knotens das Bereitstellen einer Datenbank von Wählfaktoren für den Client-Dienst und das Anwenden der genannten Wählfaktoren auf die gegenwärtig in dem Cluster befindlichen Knoten aufweist, wobei die genannten Wählfaktoren Regeln festlegen, die Knoten mit dem Client-Dienst in Bezug setzen.
- Verfahren nach Anspruch 15, bei dem die genannten Wählfaktoren aus der Gruppe ausgewählt werden, die zulässige Knoten, nicht zulässige Knoten und Knotenpräferenzen aufweist.
- Verfahren nach einem der Ansprüche 12 bis 16, das ferner das Benachrichtigen von sich an das Cluster anschließenden Knoten darüber aufweist, dass der spezielle Client-Dienst bei den speziellen Knoten registriert ist.
- Verfahren nach einem der Ansprüche 12 bis 17, das die Überwachung eines bei einem Knoten registrierten Client-Dienstes unter Verwendung einer Ereignisüberwachung an diesem Knoten aufweist.
- Verfahren nach Anspruch 18, das das Aktivieren der Ereignisüberwachung in Reaktion auf das Registrieren des Client-Dienstes und das Deaktivieren der Ereignisüberwachung in Reaktion auf das Deregistrieren des Client-Dienstes aufweist.
- Verfahren nach einem der Ansprüche 12 bis 19, bei dem die genannten mehreren Subsysteme einen Cluster-Mitgliedschaftsmanager haben, der bestimmt, welche der genannten Knoten gegenwärtig in dem Cluster sind, und bei dem der genannte Cluster-Mitgliedschaftsmanager Benachrichtigung darüber bereitstellt, welche Knoten in dem Cluster sind.
- Verfahren nach Anspruch 20, bei dem das genannte Initiieren von Diensten auf einem speziellen der genannten Knoten von einem anderen der genannten mehreren Subsysteme durchgeführt wird.
- Verfahren nach einem der Ansprüche 1 bis 21, das das Initiieren von Client-Diensten auf speziellen der genannten Knoten in einem Cluster auf eine Weise, die dem Client-Dienst im Wesentlichen als ein vereintes System erscheint, das Registrieren eines Client-Dienstes bei einem der genannten Knoten und das Starten des Client-Dienstes auf diesem Knoten gemäß einem von dem Client- Dienst aufgewiesenen Aktionsparameter in Reaktion auf das Registrieren dieses Benutzer-Dienstes bei diesem Knoten aufweist.
- Verfahren nach Anspruch 22, das das Transferieren des Client-Dienstes zu einem anderen Knoten aufweist, wenn dieser Knoten das Cluster verlässt.
- Verfahren nach Anspruch 23, bei dem das genannte Transferieren das Neustarten des Client-Dienstes auf dem anderen Knoten gemäß dem genannten Aktionsparameter aufweist.
- Multiprozessor-Cluster-System, umfassend: mehrere Knoten (
26 ), eine gemeinsame Ressource (28 ), die für alle Knoten zugänglich ist, ein Cluster-Kommunikationsmedium (36 ) zwischen den genannten Knoten, mehrere interdependente Ebenen von Betriebssystem-Subsystemen (46 –54 ) auf jedem der genannten Knoten, wobei die genannten Subsysteme ein Cluster-Mitgliedschaftsmanager-Subsystem (46 ) zum Benachrichten von Subsystemen, die auf gegenwärtig in dem Cluster befindlichen Knoten abgearbeitet werden, über sich dem Cluster anschließende und es verlassende Knoten aufweist, um eine konsistente Ansicht aktiver Mitgliedschaft in dem Cluster bereitzustellen, und ein Registrierungs- und Start-Subsystem (56 ) zum Initiieren von Client-Diensten auf speziellen der genannten Knoten in einem Cluster auf eine Weise, die den Client-Diensten im Wesentlichen als ein vereinter Knoten erscheint, wobei das genannte Registrierungs- und Start-Subsystem einen Knoten für jeden Client-Dienst wählt, den Client-Dienst bei diesem Knoten registriert und gegenwärtig in dem Cluster befindliche Knoten darüber benachrichtigt, dass der spezielle Dienst bei dem speziellen Knoten registriert ist. - Multiprozessor-Cluster-System nach Anspruch 25, bei dem die Subsysteme in Ebenen interdependent sind, wobei Subsysteme höherer Ebenen von dem Betrieb von Subsystemen niedrigerer Ebenen abhängig sind.
- Multiprozessor-Cluster-System nach Anspruch 26, bei dem das genannte Mitgliedschaftsmanager-Subsystem (
46 ) eines der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über einen Übergang benachrichtigt und dieses genannte eine der genannten Subsysteme auf allen Knoten diese Benachrichtigung verarbeitet, bevor das genannte Mitgliedschaftsmanager-Subsystem ein weiteres der genannten Subsysteme auf allen der genannten, gegenwärtig in dem Cluster befindlichen Knoten über den Übergang benachrichtigt. - Multiprozessor-Cluster-System nach Anspruch
27 , bei dem das genannte Mitgliedschaftsmanager-Subsystem (46 ) Subsysteme angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend über einen Übergang eines sich dem Cluster anschließenden Knotens benachrichtigt. - Multiprozessor-Cluster-System nach Anspruch 27 oder Anspruch 28, bei dem das genannte Mitgliedschaftsmanager-Subsystem (
46 ) Subsysteme angefangen mit Subsystemen höherer Ebene und der Reihe nach durch niedrigere Subsystemebenen fortschreitend über einen Übergang eines das Cluster kontrolliert verlassenden Knotens benachrichtigt. - Multiprozessor-Cluster-System nach Anspruch 27, 28 oder 29, bei dem das genannte Mitgliedschaftsmanager-Subsystem (
46 ) Subsysteme angefangen mit Subsystemen niedrigerer Ebene und der Reihe nach durch höhere Subsystemebenen fortschreitend über einen Übergang eines von anderen Prozessoren aus dem Cluster gedrängten Knotens benachrichtigt. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 30, bei dem das genannte Registrierungsund Start-Subsystem (
56 ) einen Client-Dienst auf einem Knoten gemäß einem in den Client-Dienst eingeschlossenen Aktionsparameter in Reaktion auf das Registrieren dieses Client-Dienstes bei diesem Knoten startet. - Multiprozessor-Cluster-System nach Anspruch 31, bei dem das genannte Registrierungs- und Start-Subsystem (
56 ) zum Gruppieren von Client-Diensten als einen Eltern-Client-Dienst und wenigstens einen Kind-Client-Dienst ausgeführt ist und bei dem das genannte Registrierungsund Start-Subsystem ferner gruppierte Client-Dienste bei dem gleichen Knoten registriert und gruppierte Client-Dienste gemäß einem in den Eltern-Client-Dienst eingeschlossenen Aktionsparameter startet. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 32, bei dem das genannte Registrierungsund Start-Subsystem (
56 ) eine Datenbank mit Wählfaktoren für den Client-Dienst aufweist und die genannten Wählfaktoren auf die gegenwärtig in dem Cluster befindlichen Knoten anwendet, um den Knoten zum Registrieren eines Client-Dienstes zu wählen, wobei die genannten Wählfaktoren Regeln festlegen, die Knoten mit dem Client-Dienst in Bezug setzen. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 33, bei dem das genannte Registrierungsund Start-Subsystem (
56 ) ferner sich an das Cluster anschließende Knoten darüber benachrichtigt, dass der spezielle Client-Dienst bei dem speziellen Knoten registriert ist. - Multiprozessor-Cluster-System nach einem der Ansprüche 25 bis 34, das ein Ereignismanager-Subsystem (
54 ) zum Feststellen von Clusterfehlern und zum Reagieren auf sie aufweist und bei dem das Registrierungs- und Start-Subsystem (56 ) auf das Ereignismanager-Subsystem. reagiert. - Multiprozessor-Cluster-System nach Anspruch 35, bei dem das genannte Ereignismanager-Subsystem (
54 ) eine Ereignisüberwachung (60 ) zum Überwachen eines bei einem Knoten registrierten Client-Dienstes an diesem Knoten aufweist. - Computer-geeignetes Medium, in das Programmcode eingegliedert ist, wobei der genannte Programmcode ein Betriebssystem für ein Multiprozessor-Cluster-System definiert, das mehrere Knoten (
26 ) hat, eine gemeinsame, für alle Prozessoren zugängliche Ressource (28 ) und mehrere interdependente Ebenen von Subsystemen (46 –54 ) aufweist, wobei eines der genannten Subsysteme ein Cluster-Mitgliedschaftsmanager-Subsystem (46 ) zum Kombinieren spezieller der genannten Knoten in einem Cluster ist, das Benutzern des genannten Systems im Wesentlichen als ein vereintes System erscheint, wobei der genannte Cluster-Mitgliedschaftsmanager zum Benachrichtigen der Ebenen von Subsystemen, die auf gegenwärtig in einem Cluster befindlichen Knoten abgearbeitet werden, über Übergänge von sich dem Cluster anschließenden und es verlassenden Knoten ausgeführt ist, um eine konsistente Ansicht aktiver Mitgliedschaft in dem Cluster bereitzustellen. - Computer-geeignetes Medium nach Anspruch 37, wobei das Betriebssystem ferner einen Registrierungs- und Start-Dienst (
56 ) hat zum Initiieren von Client-Diensten an speziellen von Knoten in einem Cluster auf eine Weise, die den Client-Diensten im Wesentlichen als ein vereintes System erscheint, wobei der genannte Registrierungs- und Start-Dienst einen Knoten für jeden Client-Dienst wählt, den Client-Dienst bei diesem Knoten registriert und gegenwärtig in dem Cluster befindliche Knoten darüber benachrichtigt, dass der spezielle Dienst bei dem speziellen Knoten registriert ist.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/493,550 US5666486A (en) | 1995-06-23 | 1995-06-23 | Multiprocessor cluster membership manager framework |
US493550 | 1995-06-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69629630D1 DE69629630D1 (de) | 2003-10-02 |
DE69629630T2 true DE69629630T2 (de) | 2004-06-03 |
Family
ID=23960703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69629630T Expired - Fee Related DE69629630T2 (de) | 1995-06-23 | 1996-06-20 | Struktur zur Gruppenzugehörigkeitsverwaltung in einem Mehrfachrechnersystem |
Country Status (6)
Country | Link |
---|---|
US (1) | US5666486A (de) |
EP (1) | EP0750256B1 (de) |
JP (1) | JP3953549B2 (de) |
AU (1) | AU713372B2 (de) |
CA (1) | CA2179473A1 (de) |
DE (1) | DE69629630T2 (de) |
Families Citing this family (143)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5692129B1 (en) * | 1995-07-07 | 1999-08-17 | Novell Inc | Managing application programs in a computer network by using a database of application objects |
US6047312A (en) * | 1995-07-07 | 2000-04-04 | Novell, Inc. | System for replicating and associating file types with application programs among plurality of partitions in a server |
GB9603582D0 (en) | 1996-02-20 | 1996-04-17 | Hewlett Packard Co | Method of accessing service resource items that are for use in a telecommunications system |
US5826028A (en) * | 1996-05-13 | 1998-10-20 | Lockheed Martin Corporation | Initialization of switching networks for use with a scalable coherent interface |
US5884018A (en) * | 1997-01-28 | 1999-03-16 | Tandem Computers Incorporated | Method and apparatus for distributed agreement on processor membership in a multi-processor system |
US6151688A (en) | 1997-02-21 | 2000-11-21 | Novell, Inc. | Resource management in a clustered computer system |
US6003075A (en) * | 1997-07-07 | 1999-12-14 | International Business Machines Corporation | Enqueuing a configuration change in a network cluster and restore a prior configuration in a back up storage in reverse sequence ordered |
US5964838A (en) * | 1997-09-30 | 1999-10-12 | Tandem Computers Incorporated | Method for sequential and consistent startup and/or reload of multiple processor nodes in a multiple node cluster |
US5999712A (en) * | 1997-10-21 | 1999-12-07 | Sun Microsystems, Inc. | Determining cluster membership in a distributed computer system |
US6192483B1 (en) * | 1997-10-21 | 2001-02-20 | Sun Microsystems, Inc. | Data integrity and availability in a distributed computer system |
US6192401B1 (en) * | 1997-10-21 | 2001-02-20 | Sun Microsystems, Inc. | System and method for determining cluster membership in a heterogeneous distributed system |
US6092220A (en) * | 1997-11-17 | 2000-07-18 | International Business Machines Corporation | Method and apparatus for ordered reliable multicast with asymmetric safety in a multiprocessing system |
FR2773239A1 (fr) * | 1997-12-30 | 1999-07-02 | Bull Sa | Configuration d'un systeme informatique multinodal |
US6230183B1 (en) | 1998-03-11 | 2001-05-08 | International Business Machines Corporation | Method and apparatus for controlling the number of servers in a multisystem cluster |
US6243825B1 (en) * | 1998-04-17 | 2001-06-05 | Microsoft Corporation | Method and system for transparently failing over a computer name in a server cluster |
US6449734B1 (en) | 1998-04-17 | 2002-09-10 | Microsoft Corporation | Method and system for discarding locally committed transactions to ensure consistency in a server cluster |
US6360331B2 (en) * | 1998-04-17 | 2002-03-19 | Microsoft Corporation | Method and system for transparently failing over application configuration information in a server cluster |
US6421787B1 (en) | 1998-05-12 | 2002-07-16 | Sun Microsystems, Inc. | Highly available cluster message passing facility |
US6173413B1 (en) * | 1998-05-12 | 2001-01-09 | Sun Microsystems, Inc. | Mechanism for maintaining constant permissions for multiple instances of a device within a cluster |
US6161191A (en) | 1998-05-12 | 2000-12-12 | Sun Microsystems, Inc. | Mechanism for reliable update of virtual disk device mappings without corrupting data |
US6311217B1 (en) * | 1998-06-04 | 2001-10-30 | Compaq Computer Corporation | Method and apparatus for improved cluster administration |
US7929516B2 (en) * | 1998-06-12 | 2011-04-19 | Mci Communications Corporation | Intelligent services network using a switch controller |
US7142650B1 (en) | 1998-06-12 | 2006-11-28 | Mci Communication Corporation | System and method for resource management |
US6195760B1 (en) * | 1998-07-20 | 2001-02-27 | Lucent Technologies Inc | Method and apparatus for providing failure detection and recovery with predetermined degree of replication for distributed applications in a network |
US6347330B1 (en) | 1998-09-04 | 2002-02-12 | International Business Machines Corporation | Dynamic selective distribution of events to server receivers |
US6467050B1 (en) | 1998-09-14 | 2002-10-15 | International Business Machines Corporation | Method and apparatus for managing services within a cluster computer system |
US6393485B1 (en) | 1998-10-27 | 2002-05-21 | International Business Machines Corporation | Method and apparatus for managing clustered computer systems |
US6988123B2 (en) * | 1998-11-06 | 2006-01-17 | Seiko Epson Corporation | Methods and apparatus for remote execution of an application over the internet |
US6636891B1 (en) | 1998-11-06 | 2003-10-21 | Seiko Epson Corporation | Methods and apparatus for controlling an input or output device over the internet |
US6006259A (en) * | 1998-11-20 | 1999-12-21 | Network Alchemy, Inc. | Method and apparatus for an internet protocol (IP) network clustering system |
US6078957A (en) * | 1998-11-20 | 2000-06-20 | Network Alchemy, Inc. | Method and apparatus for a TCP/IP load balancing and failover process in an internet protocol (IP) network clustering system |
US6438705B1 (en) * | 1999-01-29 | 2002-08-20 | International Business Machines Corporation | Method and apparatus for building and managing multi-clustered computer systems |
US7774469B2 (en) | 1999-03-26 | 2010-08-10 | Massa Michael T | Consistent cluster operational data in a server cluster using a quorum of replicas |
US6401120B1 (en) | 1999-03-26 | 2002-06-04 | Microsoft Corporation | Method and system for consistent cluster operational data in a server cluster using a quorum of replicas |
US7020695B1 (en) * | 1999-05-28 | 2006-03-28 | Oracle International Corporation | Using a cluster-wide shared repository to provide the latest consistent definition of the cluster (avoiding the partition-in time problem) |
US6871222B1 (en) * | 1999-05-28 | 2005-03-22 | Oracle International Corporation | Quorumless cluster using disk-based messaging |
US7076783B1 (en) | 1999-05-28 | 2006-07-11 | Oracle International Corporation | Providing figure of merit vote from application executing on a partitioned cluster |
JP3707660B2 (ja) * | 1999-07-15 | 2005-10-19 | シャープ株式会社 | 通信機能を備えた装置およびそのグループ化方法並びにそれに用いられる記録媒体 |
US7463648B1 (en) | 1999-08-23 | 2008-12-09 | Sun Microsystems, Inc. | Approach for allocating resources to an apparatus based on optional resource requirements |
US8032634B1 (en) | 1999-08-23 | 2011-10-04 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on resource requirements |
US6779016B1 (en) | 1999-08-23 | 2004-08-17 | Terraspring, Inc. | Extensible computing system |
US8234650B1 (en) | 1999-08-23 | 2012-07-31 | Oracle America, Inc. | Approach for allocating resources to an apparatus |
US6597956B1 (en) | 1999-08-23 | 2003-07-22 | Terraspring, Inc. | Method and apparatus for controlling an extensible computing system |
US8019870B1 (en) | 1999-08-23 | 2011-09-13 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on alternative resource requirements |
US7703102B1 (en) | 1999-08-23 | 2010-04-20 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on preemptable resource requirements |
US8179809B1 (en) | 1999-08-23 | 2012-05-15 | Oracle America, Inc. | Approach for allocating resources to an apparatus based on suspendable resource requirements |
US7103647B2 (en) | 1999-08-23 | 2006-09-05 | Terraspring, Inc. | Symbolic definition of a computer system |
US6539423B1 (en) * | 1999-09-24 | 2003-03-25 | Sap Aktiengesellschaft | Methods and systems for generating interactive information formatted for a device |
US6931016B1 (en) | 1999-10-13 | 2005-08-16 | Nortel Networks Limited | Virtual private network management system |
US6957254B1 (en) | 1999-10-21 | 2005-10-18 | Sun Microsystems, Inc | Method and apparatus for reaching agreement between nodes in a distributed system |
US6789213B2 (en) * | 2000-01-10 | 2004-09-07 | Sun Microsystems, Inc. | Controlled take over of services by remaining nodes of clustered computing system |
US6714980B1 (en) | 2000-02-11 | 2004-03-30 | Terraspring, Inc. | Backup and restore of data associated with a host in a dynamically changing virtual server farm without involvement of a server that uses an associated storage device |
US7093005B2 (en) | 2000-02-11 | 2006-08-15 | Terraspring, Inc. | Graphical editor for defining and creating a computer system |
US6691244B1 (en) * | 2000-03-14 | 2004-02-10 | Sun Microsystems, Inc. | System and method for comprehensive availability management in a high-availability computer system |
DE10026730A1 (de) * | 2000-05-30 | 2001-12-06 | Bayerische Motoren Werke Ag | Ressourcen-Management-Verfahren für ein verteiltes System von Teilnehmern |
US7487152B1 (en) | 2000-05-31 | 2009-02-03 | International Business Machines Corporation | Method for efficiently locking resources of a global data repository |
US7185076B1 (en) * | 2000-05-31 | 2007-02-27 | International Business Machines Corporation | Method, system and program products for managing a clustered computing environment |
US7502857B2 (en) * | 2000-12-15 | 2009-03-10 | International Business Machines Corporation | Method and system for optimally allocating a network service |
US7631064B1 (en) | 2001-04-13 | 2009-12-08 | Sun Microsystems, Inc. | Method and apparatus for determining interconnections of network devices |
US7640582B2 (en) | 2003-04-16 | 2009-12-29 | Silicon Graphics International | Clustered filesystem for mix of trusted and untrusted nodes |
US20040139125A1 (en) | 2001-06-05 | 2004-07-15 | Roger Strassburg | Snapshot copy of data volume during data access |
US6842869B2 (en) * | 2001-06-08 | 2005-01-11 | International Business Machines Corporation | Method to maintain nonvolatile system information cached in a distributed control network |
US20030149735A1 (en) * | 2001-06-22 | 2003-08-07 | Sun Microsystems, Inc. | Network and method for coordinating high availability system services |
US7389332B1 (en) | 2001-09-07 | 2008-06-17 | Cisco Technology, Inc. | Method and apparatus for supporting communications between nodes operating in a master-slave configuration |
US7277952B2 (en) | 2001-09-28 | 2007-10-02 | Microsoft Corporation | Distributed system resource protection via arbitration and ownership |
US7085830B1 (en) | 2001-10-18 | 2006-08-01 | Network Equipment Technologies, Inc. | System and method to manage inconsistency problems between network management systems and network elements |
US20030088659A1 (en) * | 2001-11-08 | 2003-05-08 | Susarla Hanumantha Rao | System and method for distributed state management |
US7130905B2 (en) * | 2002-01-10 | 2006-10-31 | Sun Microsystems, Inc. | System and method for coordinating access to data for a distributed application |
US7240088B2 (en) * | 2002-01-25 | 2007-07-03 | International Business Machines Corporation | Node self-start in a decentralized cluster |
US20030154202A1 (en) * | 2002-02-12 | 2003-08-14 | Darpan Dinker | Distributed data system with process co-location and out -of -process communication |
US7370329B2 (en) | 2002-03-01 | 2008-05-06 | Sun Microsystems, Inc. | System and method for state saves in a distributed data system |
US7320035B2 (en) * | 2002-03-01 | 2008-01-15 | Sun Microsystems, Inc. | Object mutation determination for incremental state saves |
US7421478B1 (en) | 2002-03-07 | 2008-09-02 | Cisco Technology, Inc. | Method and apparatus for exchanging heartbeat messages and configuration information between nodes operating in a master-slave configuration |
US6938042B2 (en) * | 2002-04-03 | 2005-08-30 | Laplink Software Inc. | Peer-to-peer file sharing |
US7200610B1 (en) | 2002-04-22 | 2007-04-03 | Cisco Technology, Inc. | System and method for configuring fibre-channel devices |
US7188194B1 (en) | 2002-04-22 | 2007-03-06 | Cisco Technology, Inc. | Session-based target/LUN mapping for a storage area network and associated method |
US7165258B1 (en) | 2002-04-22 | 2007-01-16 | Cisco Technology, Inc. | SCSI-based storage area network having a SCSI router that routes traffic between SCSI and IP networks |
US7587465B1 (en) * | 2002-04-22 | 2009-09-08 | Cisco Technology, Inc. | Method and apparatus for configuring nodes as masters or slaves |
US7415535B1 (en) | 2002-04-22 | 2008-08-19 | Cisco Technology, Inc. | Virtual MAC address system and method |
US7433952B1 (en) | 2002-04-22 | 2008-10-07 | Cisco Technology, Inc. | System and method for interconnecting a storage area network |
US7051102B2 (en) * | 2002-04-29 | 2006-05-23 | Microsoft Corporation | Peer-to-peer name resolution protocol (PNRP) security infrastructure and method |
US7024483B2 (en) * | 2002-04-29 | 2006-04-04 | Sun Microsystems, Inc. | System and method for topology manager employing finite state automata for dynamic cluster formation |
US7139925B2 (en) * | 2002-04-29 | 2006-11-21 | Sun Microsystems, Inc. | System and method for dynamic cluster adjustment to node failures in a distributed data system |
US7240098B1 (en) | 2002-05-09 | 2007-07-03 | Cisco Technology, Inc. | System, method, and software for a virtual host bus adapter in a storage-area network |
US8103748B2 (en) * | 2002-05-20 | 2012-01-24 | International Business Machines Corporation | Rule-based method and system for managing heterogenous computer clusters |
AU2003240116A1 (en) | 2002-06-20 | 2004-01-06 | British Telecommunications Public Limited Company | Distributed computer |
WO2004034184A2 (en) * | 2002-08-23 | 2004-04-22 | Exit-Cube, Inc. | Encrypting operating system |
US7239605B2 (en) * | 2002-09-23 | 2007-07-03 | Sun Microsystems, Inc. | Item and method for performing a cluster topology self-healing process in a distributed data system cluster |
US7206836B2 (en) * | 2002-09-23 | 2007-04-17 | Sun Microsystems, Inc. | System and method for reforming a distributed data system cluster after temporary node failures or restarts |
US8005979B2 (en) * | 2002-10-28 | 2011-08-23 | Oracle America, Inc. | System and method for uniquely identifying processes and entities in clusters |
JP4213460B2 (ja) * | 2002-12-16 | 2009-01-21 | 三菱電機株式会社 | 通信装置のグループ化装置、通信装置のグループ化方法及び通信装置のグループ化プログラム |
GB0230331D0 (en) | 2002-12-31 | 2003-02-05 | British Telecomm | Method and apparatus for operating a computer network |
US7543027B1 (en) * | 2003-01-24 | 2009-06-02 | Unisys Corporation | Operator messaging within an environment for operating multiple computing systems |
US7831736B1 (en) | 2003-02-27 | 2010-11-09 | Cisco Technology, Inc. | System and method for supporting VLANs in an iSCSI |
US7295572B1 (en) | 2003-03-26 | 2007-11-13 | Cisco Technology, Inc. | Storage router and method for routing IP datagrams between data path processors using a fibre channel switch |
US7904599B1 (en) | 2003-03-28 | 2011-03-08 | Cisco Technology, Inc. | Synchronization and auditing of zone configuration data in storage-area networks |
US7433300B1 (en) | 2003-03-28 | 2008-10-07 | Cisco Technology, Inc. | Synchronization of configuration data in storage-area networks |
US7526527B1 (en) | 2003-03-31 | 2009-04-28 | Cisco Technology, Inc. | Storage area network interconnect server |
US8001142B2 (en) | 2003-04-02 | 2011-08-16 | Oracle America, Inc. | Distributed data system with incremental data updates |
US7178065B2 (en) * | 2003-04-02 | 2007-02-13 | Sun Microsystems, Inc. | System and method for measuring performance with distributed agents |
US7281050B2 (en) * | 2003-04-08 | 2007-10-09 | Sun Microsystems, Inc. | Distributed token manager with transactional properties |
JP4402370B2 (ja) * | 2003-05-14 | 2010-01-20 | キヤノン株式会社 | サービス提供装置および情報処理方法 |
US7451208B1 (en) | 2003-06-28 | 2008-11-11 | Cisco Technology, Inc. | Systems and methods for network address failover |
US7664847B2 (en) | 2003-08-14 | 2010-02-16 | Oracle International Corporation | Managing workload by service |
US20060064400A1 (en) | 2004-09-21 | 2006-03-23 | Oracle International Corporation, A California Corporation | Methods, systems and software for identifying and managing database work |
US7953860B2 (en) | 2003-08-14 | 2011-05-31 | Oracle International Corporation | Fast reorganization of connections in response to an event in a clustered computing system |
US8365193B2 (en) | 2003-08-14 | 2013-01-29 | Oracle International Corporation | Recoverable asynchronous message driven processing in a multi-node system |
US7747717B2 (en) | 2003-08-14 | 2010-06-29 | Oracle International Corporation | Fast application notification in a clustered computing system |
US7773714B2 (en) | 2003-12-29 | 2010-08-10 | Motorola, Inc. | Method and system for employing adaptive event codes |
US8275865B2 (en) * | 2004-02-05 | 2012-09-25 | International Business Machines Corporation | Methods, systems and computer program products for selecting among alert conditions for resource management systems |
JP4485428B2 (ja) * | 2004-08-02 | 2010-06-23 | 株式会社ソニー・コンピュータエンタテインメント | ネットワークシステム、管理コンピュータ、クラスタ管理方法およびコンピュータプログラム |
EP1785865A4 (de) * | 2004-08-02 | 2008-12-17 | Sony Computer Entertainment Inc | Netzwerksystem, verwaltungscomputer, cluster-verwaltungsverfahren und computerprogramm |
US7779418B2 (en) | 2004-12-30 | 2010-08-17 | Oracle International Corporation | Publisher flow control and bounded guaranteed delivery for message queues |
US7818386B2 (en) | 2004-12-30 | 2010-10-19 | Oracle International Corporation | Repeatable message streams for message queues in distributed systems |
US8219823B2 (en) | 2005-03-04 | 2012-07-10 | Carter Ernst B | System for and method of managing access to a system using combinations of user information |
US7394767B2 (en) * | 2005-03-31 | 2008-07-01 | Motorola, Inc. | Distributed redundancy capacity licensing in a telecommunication network element |
US7817647B2 (en) * | 2005-04-22 | 2010-10-19 | Microsoft Corporation | Flower-petal resolutions for PNRP |
US20070011136A1 (en) * | 2005-07-05 | 2007-01-11 | International Business Machines Corporation | Employing an identifier for an account of one domain in another domain to facilitate access of data on shared storage media |
US7526409B2 (en) | 2005-10-07 | 2009-04-28 | Oracle International Corporation | Automatic performance statistical comparison between two periods |
US8196150B2 (en) | 2005-10-07 | 2012-06-05 | Oracle International Corporation | Event locality using queue services |
US8458725B2 (en) * | 2006-04-10 | 2013-06-04 | Oracle International Corporation | Computer implemented method for removing an event registration within an event notification infrastructure |
US9390118B2 (en) * | 2006-04-19 | 2016-07-12 | Oracle International Corporation | Computer implemented method for transforming an event notification within a database notification infrastructure |
US8370416B2 (en) * | 2006-04-26 | 2013-02-05 | Hewlett-Packard Development Company, L.P. | Compatibility enforcement in clustered computing systems |
US7761413B2 (en) * | 2006-05-10 | 2010-07-20 | Oracle International Corporation | Method of ensuring availability of event notification registrations of a database management system |
US8464275B2 (en) * | 2006-05-10 | 2013-06-11 | Oracle International Corporation | Method of using a plurality of subscriber types in managing a message queue of a database management system |
US7895600B2 (en) | 2006-05-10 | 2011-02-22 | Oracle International Corporation | Method of optimizing propagation of non-persistent messages from a source database management system to a destination database management system |
US8918490B1 (en) * | 2007-07-12 | 2014-12-23 | Oracle America Inc. | Locality and time based dependency relationships in clusters |
EP2210227A2 (de) * | 2007-10-25 | 2010-07-28 | Markport Limited | Modifikation einer dienstablieferungsinfrastruktur in kommunikationsnetzen |
US20090158299A1 (en) * | 2007-10-31 | 2009-06-18 | Carter Ernst B | System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed |
US8996835B2 (en) * | 2008-09-15 | 2015-03-31 | International Business Machines Corporation | Apparatus and method for provisioning storage to a shared file system in a storage area network |
US8238538B2 (en) | 2009-05-28 | 2012-08-07 | Comcast Cable Communications, Llc | Stateful home phone service |
US9165086B2 (en) | 2010-01-20 | 2015-10-20 | Oracle International Corporation | Hybrid binary XML storage model for efficient XML processing |
US8788465B2 (en) | 2010-12-01 | 2014-07-22 | International Business Machines Corporation | Notification of configuration updates in a cluster system |
US9069571B2 (en) | 2010-12-01 | 2015-06-30 | International Business Machines Corporation | Propagation of unique device names in a cluster system |
US8943082B2 (en) | 2010-12-01 | 2015-01-27 | International Business Machines Corporation | Self-assignment of node identifier in a cluster system |
US8904174B2 (en) | 2011-03-22 | 2014-12-02 | International Business Machines Corporation | System, method and computer program product for product license management |
US20120324456A1 (en) * | 2011-06-16 | 2012-12-20 | Microsoft Corporation | Managing nodes in a high-performance computing system using a node registrar |
US9183148B2 (en) | 2013-12-12 | 2015-11-10 | International Business Machines Corporation | Efficient distributed cache consistency |
US9852221B1 (en) * | 2015-03-26 | 2017-12-26 | Amazon Technologies, Inc. | Distributed state manager jury selection |
US10122647B2 (en) | 2016-06-20 | 2018-11-06 | Microsoft Technology Licensing, Llc | Low-redistribution load balancing |
US10540217B2 (en) | 2016-09-16 | 2020-01-21 | Oracle International Corporation | Message cache sizing |
US10474653B2 (en) | 2016-09-30 | 2019-11-12 | Oracle International Corporation | Flexible in-memory column store placement |
US10394677B2 (en) | 2016-10-28 | 2019-08-27 | International Business Machines Corporation | Method to efficiently and reliably process ordered user account events in a cluster |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4849877A (en) * | 1986-12-22 | 1989-07-18 | American Telephone And Telegraph Company | Virtual execution of programs on a multiprocessor system |
US5202971A (en) * | 1987-02-13 | 1993-04-13 | International Business Machines Corporation | System for file and record locking between nodes in a distributed data processing environment maintaining one copy of each file lock |
US4816989A (en) * | 1987-04-15 | 1989-03-28 | Allied-Signal Inc. | Synchronizer for a fault tolerant multiple node processing system |
JPH07111713B2 (ja) * | 1988-02-24 | 1995-11-29 | 富士通株式会社 | 構成変更制御方式 |
EP0472829A3 (en) * | 1990-08-31 | 1993-01-07 | International Business Machines Corporation | Multicomputer complex and distributed shared data memory |
US5287453A (en) * | 1990-09-18 | 1994-02-15 | Bull Hn Information Systems, Inc. | Fast remote file access facility for distributing file access requests in a closely coupled computer system |
JPH04367963A (ja) * | 1991-06-15 | 1992-12-21 | Hitachi Ltd | 共有記憶通信方法 |
JP3309997B2 (ja) * | 1991-09-05 | 2002-07-29 | 株式会社日立製作所 | 複合処理装置 |
-
1995
- 1995-06-23 US US08/493,550 patent/US5666486A/en not_active Expired - Lifetime
-
1996
- 1996-06-18 AU AU56013/96A patent/AU713372B2/en not_active Ceased
- 1996-06-19 CA CA002179473A patent/CA2179473A1/en not_active Abandoned
- 1996-06-20 DE DE69629630T patent/DE69629630T2/de not_active Expired - Fee Related
- 1996-06-20 EP EP96304599A patent/EP0750256B1/de not_active Expired - Lifetime
- 1996-06-24 JP JP16346696A patent/JP3953549B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3953549B2 (ja) | 2007-08-08 |
EP0750256B1 (de) | 2003-08-27 |
EP0750256A2 (de) | 1996-12-27 |
US5666486A (en) | 1997-09-09 |
JPH09171502A (ja) | 1997-06-30 |
AU713372B2 (en) | 1999-12-02 |
AU5601396A (en) | 1997-01-09 |
DE69629630D1 (de) | 2003-10-02 |
CA2179473A1 (en) | 1996-12-24 |
EP0750256A3 (de) | 1998-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69629630T2 (de) | Struktur zur Gruppenzugehörigkeitsverwaltung in einem Mehrfachrechnersystem | |
DE69811148T2 (de) | Mitgliedschaft in einem unzuverlässigen verteilten Rechnersystem | |
DE69715967T2 (de) | Quorummechanismus in einem verteilten Zweiknotenrechnersystem | |
DE69429686T2 (de) | Transaktionsverwaltung in objektorientiertem System | |
DE69805826T2 (de) | Verfahren zum sequentiellen und konsistenten start und/oder nachladen von multiprozessorknoten in einer vielfachknotengruppe | |
DE69131500T2 (de) | Regelgesteuertes Transaktionsverwaltungssystem und -verfahren | |
DE69623229T2 (de) | Bindungsverfahren in einer Transaktion in einer verteilten Datenbank | |
DE102005053727B4 (de) | Verteilte Verriegelung | |
DE69128271T2 (de) | Verfahren und System zur Erhöhung der Betriebsverfügbarkeit eines Systems von Rechnerprogrammen, wirkend in einem verteilten Rechnerssystem | |
DE10123067A1 (de) | Synchrone Vervielfältigung von Transaktionen in einem verteilten System | |
DE60207251T2 (de) | Verfahren zur sicherstellung des betriebs eines gruppierten nachrichtenvergebenden servers während knotenausfällen und netzwerkzuteilungen | |
DE4303062C2 (de) | Verfahren zur Behebung von Systemausfällen in einem verteilten Computersystem und Vorrichtung zur Durchführung des Verfahrens | |
DE69729252T2 (de) | Fernverwaltung von Rechnervorrichtungen | |
EP0635784B1 (de) | Multiprozessorsystem | |
DE69718715T2 (de) | Verfahren zur geschichteter Transaktionsverarbeitung | |
DE60016371T2 (de) | Vorrichtung und verfahren um die übereinstimmung der daten in einer gruppe von einspiegelungseinrichtungen gespeichert zu behalten | |
DE69904190T2 (de) | Verfahren und programm zum verarbeiten der verwaltungsanfragen einer verteilten netzwerkanwendung in einer gruppierten rechnerumgebung | |
DE69923621T2 (de) | Verfahren und Vorrichtung zu korrekten und vollständigen Übertragungen in einem fehlertoleranten verteilten Datenbanksystem | |
DE69730449T2 (de) | Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten | |
DE69332185T2 (de) | Bildung und Aufrechterhaltung von Zugriffsgruppen an der Lan/Wan Schnittstelle | |
DE69726379T2 (de) | Ferninstallation von Software auf einem Rechnergerät | |
EP0346801B1 (de) | Verfahren und Anordnung zur Ausführung eines Programms in einem heterogenen Mehrrechnersystem | |
DE69428972T2 (de) | System und Verfahren für die Eigentumerverwaltung eines freigegebenen Synchronisationsmechanismus | |
DE3752196T2 (de) | Vorrichtung für Datenverarbeitungsverteilung über eine Mehrzahl von Steuerungsorten | |
DE69804099T2 (de) | Initialisierung von unterteilten datenobjekten |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |