Beschreibung
Automatische Inbetriebnahme eines Clustersystems nach einem heilbaren Fehler
Die Erfindung betrifft ein Verfahren zur Inbetriebnahme eines Clusters nach einem Fehler, bestehend aus mehreren Knoten, bei denen im Fehlerfall jeweils ein Knoten die Jobs eines weiteren Knotens (12) übernimmt.
Die Erfindung liegt auf dem Gebiet der Hochverfügbarkeitssysteme, und insbesondere darin, einen automatischen Übergang in einen fehlerfreien Betriebszustand des Clusters nach einem Hochlauf eines defekten Knotens zu gewährleisten.
Grundsätzlich gibt es verschiedenste Fehlerquellen, die dazu führen, daß eine Maschine oder ein System von Rechnern neu gestartet werden muß, da sich der Fehler als so hartnäckig erweist, daß dies die einzige Möglichkeit darstellt, ihn zu beheben. Ein solcher Reset eines Systems setzt üblicherweise den Einsatz von manuellen Befehlen voraus. Berücksichtigt man die Zeit, die benötigt wird, ein System manuell, insbesondere durch interaktive Eingaben zu starten, so wird deutlich, daß dies bei Systemen die eine hohe Verfügbarkeit erfordern, nicht tragbar ist.
Deshalb gab es bisher Bestrebungen, einen Restart eines Systems zu automatisieren. So zeigt die US 5708776 ein Verfahren zur automatischen Wiederherstellung des Zustandes vor dem
Fehler für Netzwerk Anwendungen. Dazu werden eine erste und eine zweite Reboot Partition zur Verfügung gestellt. Erweist sich das Booten von der ersten Reboot Partition als nicht erfolgreich, wird das System von der zweiten Partition geboo- tet. Ein Überwachungsprozessor führt die Software für das automatische Recovery aus, nach dem ein Fehler in einer Betriebssystem-Software oder einer Applikationssoftware ent-
deckt worden ist. Diese Druckschrift enthält jedoch keine Hinweise auf die Inbetriebnahme eines Clustersystems nach einem Reboot. Ein Cluster wieder in Betrieb zu nehmen bedeutet, wesentlich mehr und komplexere Interdependenzen der einzelnen Knoten zu berücksichtigen, was im allgemeinen durch einen Cluster Controller gesteuert wird.
Für Systeme, die eine maximale Verfügbarkeit voraussetzen, wie beispielsweise Carrier-Grade-Systeme auf dem Gebiet der Telekommunikation oder Systeme im Kranken- oder Finanzwesen, sind hochverfügbare Rechnerarchitekturen eingeführt worden, die eine maximale Ausfallsicherheit gewährleisten sollen. Die auszuführenden Tasks sollen dabei rund um die Uhr und ohne Unterbrechung ausgeführt werden können.
Dazu werden insbesondere Clustersysteme eingesetzt. Unter diesem Begriff sind Systeme verschiedener Art zusammengefaßt, bei denen mehrere, jeweils autonome Maschinen mit redundanten Ressourcen vernetzt sind und von einem Cluster-Controller in ihrem Einsatz gesteuert werden.
Man unterscheidet zwischen Aktiv-Passiv und Aktiv-Aktiv Clusterarchitekturen. Bei den aktiv-passiven Clustern, sind - virtuell - jeweils Paare von Maschinen bzw. Servern gebildet, wobei ein Server aktiv ist und den jeweiligen Dienst anbietet oder die jeweilige Software ausführt. Findet dabei kein Fehler statt, so läuft der andere Server grundsätzlich im Stand- By- oder Passiv-Modus. Erst wenn ein Fehler bei dem aktiven Server bemerkt wird, übernimmt dieser dessen Jobs. Der passi- ve Server läuft dabei ohne Aufgabe im Stand-By-Betrieb und springt im Fehlerfall möglichst schnell ein.
Bei Aktiv-Aktiv-Clustern übernimmt jeder Server innerhalb des Clusters eine Aufgabe und beide arbeiten parallel aktiv. Je nach Systemkonfiguration übernimmt im Fehlerfall der intakte Server alle Aufgaben des defekten Servers. Mit dem Aktiv- Aktiv-Konzept kann eine bessere Lastverteilung als bei der Aktiv-Passiv-Architektur erzielt werden.
Unabhängig von der jeweiligen Architektur übernimmt bei Clustersystemen ein noch funktionsfähiger Server im Fehlerfall die Jobs des defekten Servers. Dieser Vorgang wird als Fail-Over bezeichnet.
Neben der Rechnerhardware muß für hochverfügbare Systeme auch noch das externe Speichersystem an das Clustersystem angepaßt sein. Beispielsweise können Daten redundant auf verteilten Speichern abgelegt werden, um die Sicherheit des Systems zu erhöhen. So verwendet das sogenannte RAID-1-System (Redundant Array of Inexpensive Disks") ein Redundanzkonzept, das auf einer Spiegelung von Datensätzen basiert.
Wesentlich bei allen Clustersystemen ist, daß sie auf einer "intelligenten" Steuerung, Koordination und Kommunikation zwischen den einzelnen Clusterrechnern basieren. Es muß beispielsweise festgelegt sein, welche Übergabeprotokolle Verwendung finden, wie die einzelnen aufzuteilenden Prozesse miteinander kommunizieren oder nach welchen Kriterien das Fail-Over gesteuert wird. Ein wesentlicher Punkt ist ferner, daß die Integrität des Clusters erhalten bleibt. So muß gewährleistet sein, daß auch nach einem Reboot des Systems konsistente Datensätze auf allen Knoten vorhanden sind.
Tritt bei einem Clustersystem nun ein zwar behebbarer aber dennoch so schwerwiegender Fehler auf, daß ein Knoten neu gebootet werden muß, so war es bisher nach dem Reboot des Knotens erforderlich, den Cluster durch manuelle Eingabe von Befehlen in Betrieb zu nehmen.
Die JP 14 87 04 A2 zeigt in diesem Zusammenhang ein Verfahren zur Aufrechterhaltung des Betriebs eines Clusters, bei dem ein Fehler in einem Speicherbereich des Clusters erkannt worden ist. Dabei informiert ein Systemcontroller, der auf jedem Knoten eingerichtet ist über einen Fehler und leitet diese Fehlermeldung an eine zentrale Stelle weiter, damit verhindert werden kann, daß dieser fehlerhafte Knoten zu einer
Downtime des Clusters führt. Es wird allerdings kein Hinweis darauf gegeben, wie ein Cluster nach einem Reboot aufgrund von unterschiedlichsten Fehlern wieder automatisch in Betrieb genommen werden kann. Auch hier ist eine manuelle Inbetrieb- nähme des Clusters nach einem Reboot erforderlich.
Dieses manuelle Vorgehen ist jedoch bei Hochverfügbarkeis- clustern aufgrund der dadurch erhöhten Ausfallzeiten nicht vertretbar.
Die vorliegende Erfindung hat sich deshalb zur Aufgabe gestellt ein Verfahren zur Verfügung zu stellen, das eine automatische, zeitoptimierte Inbetriebnahme eines Clustersystems, insbesondere eines Stand-By-Clusters, ermöglicht, nachdem ein Reboot eines defekten Knotens aufgrund eines heilbaren Fehlers erfolgte.
Diese Aufgabe wird durch das eingangs erläuterte Verfahren mit folgenden Schritten gelöst: - Bestimmung von mindestens einer ersten und einer zweiten Fehlerklasse,
- Analyse des Fehlers, der zu einem Reboot des ersten Knotens führte
- Klassifikation des Fehlers in eine der Fehlerklassen - automatische Inbetriebnahme des Clusters mit den Knoten, falls der Fehler in die erste Fehlerklasse klassifiziert worden ist.
Die Lösung der Aufgabe gemäß Hauptanspruch besteht insbeson- dere darin, daß der Cluster nach einem heilbaren Fehler in einem Knoten des Clusters, der zu einem Reboot geführt hat, selbständig und automatisch in seinen Betriebszustand zurückkehren kann.
In einer bevorzugten Ausführungsform der Erfindung wird das Verfahren mit einem EWSD-System realisiert, an das ein SUN- Cluster angebunden wird. EWSD (Elektronisches Wählsystem, di-
gital) ist ein öffentliches, digitales Vermittlungssystem, bei dem bereits über 200 Mio. Ports in verschiedenen Staaten eingerichtet worden sind.
In diesem Ausführungsbeispiel wird ein geographisch entfernt eingerichtetes Telefonnetz mit einer zentralen Überwachungseinrichtung auf Fehler überwacht. Liegt ein behebbarer Fehler vor, der beispielsweise durch einen Software Fehler oder durch eine Unterbrechung der Stromversorgung ausgelöst worden ist (diese Fehler werden als temporäre Fehler eingestuft, die sich durch ein automatisiertes Verfahren wieder beheben lassen sollten) , dann kann das Telefonnetz erfindungsgemäß von zentraler Stelle - ohne manuelles Eingreifen vor Ort - wieder in Betrieb genommen werden.
Durch die automatisierte Inbetriebnahme eines Clustersystems nach einem Reboot ergeben sich insbesondere auf dem Gebiet der Applikationen für Netzbetreiber und Dienstleistungsanbieter wesentlich verbesserte Ausfallzeiten der eingesetzten Software.
In den bevorzugten Ausführungsformen der Erfindung wird das Verfahren für eine automatische Inbetriebnahme eines SUN- Clustersystem 2.x eingesetzt.
Eine besonders vorteilhafte Ausführungsform der Erfindung bezieht sich auf ein aktiv-passiv Clustersystem, das beispielsweise aus einem oder mehreren Paaren von Servern besteht, wobei ein Server eine bestimmte Aufgabe ausführt, die ihm zuge- ordnet ist. Die andere Maschine befindet sich im Stand-By-
Modus. Erst wenn die erste Maschine meldet, daß Probleme auftreten, übernimmt die zweite Maschine die Jobs der ersten. Die jeweils aktiven Server müssen deshalb fortlaufend überwacht werden. Der aktive Server könnte beispielsweise auf- grund eines Hardwarefehlers, einer Blockierung des Betriebssystems oder aufgrund einer Netzspannungsunterbrechung komplett ausfallen.
Um die Verfügbarkeit zu erhöhen und andere Systemparameter vorteilhaft zu beeinflussen werden vielfach auch Aktiv-Aktiv- Cluster eingesetzt. Eine alternative Ausführungsform des er- findungsgemäßen Verfahrens ist in der Anwendung auf derartige Architekturen zu sehen.
In einer weiteren vorteilhaften Ausführungsform der Erfindung wird als Betriebssystem Umgebung "Solaris" verwendet.
Die Erfindung ist insbesondere darin zu sehen, daß eine automatische und vor allem dynamische Generierung einer Inbetriebnahmestrategie für den Cluster erfolgt - abhängig von der Analyse des vorausgegangenen Fehlers, der zu dem Reset des Servers geführt hat -.
Andere vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den Unteransprüchen.
Weitere Vorteile der Erfindung und besondere Ausführungsformen mit deren Merkmalen sind in der nachfolgenden detaillierten Figurenbeschreibung dargestellt. Darin zeigt:
Fig. 1 eine schematische Darstellung eines Clustersystems und
Fig. 2 ein Flußdiagramm für eine Durchführung des Zu- standswechsels gemäß einer bevorzugten Ausführungsform der Erfindung.
Nachfolgend wird unter Bezugnahme auf Figur 1 eine übliche Clusterarchitektur - wie sie im Stand der Technik bekannt ist - dargestellt. In einer bevorzugten Ausführungsform der Erfindung ist das Verfahren für ein Cluster 10 realisiert, das hochverfügbare Anwendungen unterstützt. Es ist insbesondere ein Aktiv-Stand- By-Cluster . Diese umfassen üblicherweise ein Paar von Ser-
vern, die hier auch Knoten genannt werden. Es wird ein erster Knoten 12 als primärer Server definiert, dem bestimmte Jobs zugewiesen sind. Ein zweiter Knoten 14 wird als Stand-By- Server festgelegt. In diesem Ausführungsbeispiel weist der erste Knoten 12 eine Fehler auf und wird deshalb auch als defekter Knoten bezeichnet, während der zweite Knoten 14 der intakte Knoten ist. Es liegt natürlich ebenso im Rahmen der Erfindung, daß der zweite Knoten 14 ausfällt und als defekter Knoten berücksichtigt wird. Der zweite Knoten 14 dient dazu, im Fehlerfall, das heißt bei Ausfall des primären Servers (des ersten bzw. defekten Knotens 12) dessen Jobs zu übernehmen und dann nicht mehr als Stand-By-Server sondern als neuer primärer Server zu fungieren. Durch diese Architektur kann die "Down-Time" des Systems minimiert werden.
Für die Erkennung eines Fehlerzustandes und die Steuerung des Übernahmeprozesses gibt es unterschiedlichste sogenannte Fai- lover-Konzepte . Beispielsweise muß die auszuführende Software, die generell nur auf einer dafür vorgesehenen Maschine laufen soll, hier auch auf allen anderen Knoten lauffähig sein, damit diese im Fehlerfall ein fehlerfreies Failover gewährleisten können.
Selbstverständlich ist das Verfahren ebenso auf Systeme anwendbar, die komplexere Architekturen aufweisen.
Die beiden Knoten 12, 14 sind über eine Hochgeschwindigkeitsschnittstelle miteinander gekoppelt, was durch die Verbin- dungslinien zwischen den beiden Servern 12, 14 in Fig. 1 gekennzeichnet ist.
Mit Hilfe des erfindungsgemäßen Verfahrens können die geplanten und ungeplanten Downtimes des Systems weiter minimiert werden, indem der Cluster 10 nach einem schwerwiegenden Fehler einer Reboot-Operation unterzogen wird und daraufhin bzw. währenddessen automatisch wieder in Betrieb genommen wird.
Im Hinblick auf das in Figur 2 dargestellte Flow-Chart sollen nachfolgend die erfindungsgemäßen Schritte beschrieben werden. Das Verfahren setzt in den Fällen ein, in denen das Clustersystem aufgrund eines Software Fehlers oder aufgrund eines zentralen Spannungsausfalls nochmals hochgefahren werden muß.
Um zwischen diesen und weiteren Fehlerklassen bzw. Fallgrup- pen zu unterscheiden, wird ein sogenannter Power-On-
Erkennungsmechanismus eingesetzt. Hierzu werden der erste und zweite Knoten 12 und 14 einer Analyse unterzogen, die insbesondere die Lebenszeit beider Knoten ausliest und in der weiteren Verarbeitung berücksichtigt. Die sogenannte Uptime des ersten Knotens 12 wird dabei mit der Uptime des zweiten Knotens 14 verglichen. Stimmen beide Zeiten bis auf einen vorbestimmten Toleranzwert (der die Abweichungstoleranz festlegt) überein, dann kann daraus indirekt geschlossen werden, daß es sich um einen zentralen Ξpannungsausfall gehandelt haben muß, aufgrund dessen das System einem Reboot unterzogen worden ist. Der Toleranzwert ist durch die Eingabe eines Schwellenwertes bestimmbar. Dieser kann System- und anwendungsabhängig variieren. Wird andernfalls beispielsweise erfaßt, daß der erste Knoten 12 bereits mehrere Tage lebt, während der zweite Knoten 14 nur im Bereich von Minuten aktiv war, dann kann es sich nicht um eine zentrale Unterbrechung der Spannungsversorgung gehandelt haben.
Wird bei dem Power-On-Mechanismus festgestellt, daß die je- weiligen Uptimes signifikant voneinander abweichen, so kann indirekt auf einen anderen Fehler (z.B. Hardware-Fehler, Software Fehler, Spannungsausfall eines einzelnen Knotens) rückgeschlossen werden. In diesem Fall wird die automatische koordinierte Aufnahme beider Knoten in den Cluster 10 ange- stoßen. Bei der anschließenden Inbetriebnahme des Cluster- systems 10 kann dadurch der fehlerfreie Zustand auf allen Clusterknoten 12, 14 aktiviert werden.
Für die generelle Steuerung des Verfahrens können vor dem jeweiligen Ablauf des Inbetriebnahmeverfahrens Fehlerklassen 16 festgelegt werden, die durch die Angabe bestimmter Parameter definiert werden. Dieser erste Verfahrensschritt kann unabhängig von dem Clusterbetrieb erfolgen und diesem vorgeschaltet sein; dies soll durch die gepunktet dargestellte Linie in Fig. 2 angedeutet werden. Die restlichen Verfahrensschritte erfolgen während des Clusterbetriebes bzw. während eines Feh- lers im Clusterbetrieb.
In dem nachfolgend beschriebenen Ausführungsbeispiel werden zwei Fehlerklassen 16 bestimmt.
Eine erste Fehlerklasse 16-1 umfaßt die Fälle, in denen das Verfahren zur Inbetriebnahme des Clusters automatisch angestoßen werden soll.
Eine zweite Fehlerklasse 16-2 umfaßt die Fälle, in denen eine weitere Analyse des Fehlers erfolgen soll und das Verfahren manuell fortgeführt wird. Die erste Fehlerklasse 16-1 wird durch die Parameter definiert "Software Fehler" und/oder
"zentraler Spannungsausfall". Das heisst, daß das System automatisch den Zustand des Systems bzw. die Ursache für den Reboot aufgrund des Fehlers analysiert, indem insbesondere die Uptimes der Knoten 12, 14 und das Ergebnis einer Software Fehlererkennung untersucht werden.
Ist das Ergebnis, daß ein Software Fehler oder eine Spannungsunterbrechung vorgelegen haben muß, so wird der Fehler in die erste Fehlerklasse 16-1 eingeordnet. Hier wird angenommen, daß es sich um einen nur vorübergehenden Fehler han- delt, der durch ein Reboot und eine Wiederaufnahme des fehlerhaften Knotens in den Cluster behoben werden kann. Deshalb kann in diesen Fällen eine automatisierte Inbetriebnahme erfolgen. In allen anderen Fällen wird der Fehler in die zweite Fehler- klasse 16-2 eingestuft. Hier wird angenommen, daß es sich um einen schweren Fehler handelt, der durch ein Reboot nicht beseitigt werden kann. Hierunter sind beispielsweise die Fälle
eines Hardware Fehlers oder eines schwerwiegenden kombinierten Hard- und Softwarefehlers subsumiert.
Mit der Bestimmung der Fehlerklassen 16 durch den Administra- tor kann dynamisch eingestellt werden, in welchen Fällen der Cluster 10 automatisch in Betrieb genommen werden soll und in welchen Fällen nicht. Vorteilhafterweise kann damit der Ablauf der Inbetriebnahme des Clusters 10 nach einem Fehler dynamisch an das jeweilige System angepaßt werden, indem bei- spielsweise bestimmte Fehler einer speziellen Fehlerklasse zugeordnet werden, die eine gesonderte Inbetriebnahme erfordert, da bei einem automatischen wiederholten Einbinden des fehlerhaften Knotens in den Cluster 10 Folgefehler entstehen würden.
Die zweite Fehlerklasse 16-2 kann alternativ Fälle umfassen, in denen zwar auch eine automatische aber zeitlich verzögerte Inbetriebnahme erfolgen soll, um beispielsweise noch weitere Fehleranalysen durchführen zu können. Es kann aber für die zweite Fehlerklasse 16-2 auch festgelegt werden, daß in diesen Fällen immer eine manuelle Inbetriebnahme erfolgen muß.
In beiden Fällen der ersten Fehlerklasse 16-1 ("temporärer Software Fehler" oder "zentraler Spannungsausfall") werden nach dem Reboot die beiden Knoten 12, 14 koordiniert in den Cluster 10 eingebracht.
Durch die fehlerklassengesteuerte Vorgehensweise ist eine dynamische Inbetriebnahme des Clusters (10) abhängig vom je- weils aktuellen Fehlerzustand möglich.
Vorteilhafterweise können bei dem hier vorgestellten Inbetriebnahmekonzept das Bootprogramm bzw. Bootblockprogramm und das Inbetriebnahmeverfahren ineinander verschachtelt sein. Das heißt, daß das Booten nicht notwendigerweise komplett abgeschlossen sein muß, bevor einzelne Schritte der Clusterin- betriebnahme angesteuert werden.
Die Solaris Betriebssystem Umgebung eignet sich sehr gut für die Anwendung bei hochverfügbaren Clustersystemen, da es eine effiziente Kommunikation mit der darunterliegenden Hardwareschicht ermöglicht und weiterhin Überwachungsfunktionen un- terstützt und ist deshalb Bestandteil der bevorzugten Ausführungsform des erfindungsgemäßen Systems.
Ein Solaris 2.x-System kann in verschiedenen sogenannten Run- leveln gebootet werden. Der Runlevel gibt den Betriebsmodus des Rechners an und definiert den Zustand und die von ihm zur Verfügung gestellten Dienste. Es wird hier insbesondere zwischen acht Runleveln unterschieden. Im Runlevel 0 (auch Monitor Mode genannt) läuft noch kein UNIX, währen im Runlevel 1 der UNIX-Kernel schon aktiviert ist. Das Runlevel 3 (auch Multi User Mode genannt) beschreibt den Zustand, in dem die
Maschine bereits über die volle Funktionalität verfügt und in dem bereits alle Filesysteme gemountet sind und die Netzwerkprozesse laufen.
Vorteilhafterweise können mit Hilfe des erfindungsgemäßen
Verfahrens beide Clusterknoten bereits synchronisiert und automatisch in Betrieb genommen werden nachdem das Runlevel 3 erreicht wurde.
Zur deutlichen Zeitoptimierung des Verfahrens trägt vor allem der Umstand bei, daß durch die Zuordnung in die jeweiligen Fehlerklassen 16 automatisch die Fälle erkannt werden können, bei denen eine automatische Wiederinbetriebnahme des Clusters möglich ist. Damit kann die Downtime des Systems signifikant reduziert werden, da in allen vorher als nicht-kritisch definierten Fällen eine sofortige Wiederinbetriebnahme erfolgt. Bislang mußte auch in den nicht-kritischen Fällen manuell in Betrieb genommen werden, was eine wesentlich längere Ausfallzeit des Systems nach sich zog.
Bei der Inbetriebnahme des Clusters 10 werden insbesondere folgende Schritte ausgeführt:
Nachdem der erste Knoten 12 in den Cluster 10 aufgenommen worden ist (beispielsweise durch das Kommando "scadmin startcluster") muß überprüft werden, ob dieser Schritt auch erfolgreich ausgeführt werden konnte (beispielsweise mit dem Kommando "hastat") . Anschließend muß der zweite Knoten 14 mit einem anderen Kommando in den Cluster 10 aufgenommen werden (beispielsweise mit dem Kommando "scadmin startnode"), um daraufhin diesen Schritt wiederum auf Fehlerfreiheit zu überprüfen (Kommando "hastat"). Nach dem erfolgreichen Einbinden beider Knoten 12, 14 in den Cluster 10 kann letzterer gestartet werden. Dabei müssen die Dienste bzw. Applikationen registriert werden, die unter die Steuerung des Clustercontrol- lers fallen sollen.
Die einzelnen Server bzw. Knoten 12, 14 des Clusters 10 stehen vorzugsweise über eine sogenannte private-link-Verbindung miteinander in Datenaustausch. Diese Verbindung ist deshalb redundant ausgelegt, um Ausfälle der Knoten 12, 14 kontrollieren zu können.
In einer alternativen, ebenfalls in Fig. 2 dargestellten Ausführungsform der Erfindung ist das Verfahren erweitert, indem bei einem der Fehlerklasse 16-2 zugeordnetem Fehler, bei dem also kein sofortiger automatischer Inbetriebnahmezyklus ange- stoßen werden soll, weitere Analysen erfolgen. Durch die automatische Erfassung weitere Parameter, die Rückschlüsse auf die Art des Fehlers erlauben, kann zu einem späteren Zeitpunkt gegebenenfalls doch eine automatische Inbetriebnahme sinnvoll sein oder das Verfahren wird andernfalls beendet.