Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Starten und Stoppen einer Ressource

Für die Implementierung eines Ressourcentyps sind mindestens eine Start-Methode und eine Stop-Methode erforderlich. RGM ruft die Methodenprogramme eines Ressourcentyps zu geeigneten Zeiten und auf den entsprechenden Knoten auf, um Ressourcengruppen offline bzw. online zu bringen. Nach dem Absturz eines Cluster-Knotens verschiebt RGM zum Beispiel alle von diesem Knoten unterstützten Ressourcengruppen auf einen neuen Knoten. Es muss eine Start-Methode implementiert werden, damit RGM die Möglichkeit hat, jede Ressource auf dem noch laufenden Host-Knoten neu zu starten.

Eine Start-Methode darf nichts zurückgeben, bis die Ressource auf dem lokalen Knoten gestartet wurde und verfügbar ist. Vergewissern Sie sich, dass für Ressourcentypen, deren Initialisierung lange dauert, ausreichend lange Zeitüberschreitungswerte in den Start-Methoden eingestellt sind (stellen Sie die Standard- und Mindestwerte für die Start_timeout-Eigenschaft in der Ressourcentyp-Registrierungsdatei ein).

Eine Stop-Methode muss für Situationen implementiert werden, in denen RGM eine Ressourcengruppe offline nimmt. Angenommen, eine Ressource wird auf Knoten1 offline genommen und auf Knoten2 wieder online gebracht. Während die Ressourcengruppe offline genommen wird, ruft RGM die Stop-Methode für die Ressourcen in der Gruppe auf, um alle Aktivitäten auf Knoten1 zu stoppen. Nach Beenden der Stop-Methoden für alle Ressourcen auf Knoten1 bringt RGM die Ressourcengruppe auf Knoten2 wieder online.

Eine Stop-Methode darf nichts zurückgeben, bis die Ressource ihre Aktivität auf dem lokalen Knoten vollständig eingestellt hat und ganz heruntergefahren wurde. Die sicherste Implementierung einer Stop-Methode beendet alle Prozesse auf dem lokalen Knoten, die mit der Ressource in Beziehung stehen. Für Ressourcentypen, deren Herunterfahren lange dauert, müssen ausreichend lange Zeitüberschreitungswerte in den entsprechenden Stop-Methoden eingestellt werden. Stellen Sie die Stop_timeout-Eigenschaft in der Ressourcentyp-Registrierungsdatei ein.

Ein Fehlschlagen bzw. die Zeitüberschreitung einer Stop-Methode führt dazu, dass die Ressourcengruppe in einen Fehlerzustand gerät, der einen Bedienereingriff erforderlich macht. Um diesen Zustand zu vermeiden, müssen die Implementierungen der Stop- und Monitor_stop-Methoden eine Wiederherstellung unter allen möglichen Fehlerbedingungen versuchen. Idealerweise sollten diese Methoden mit dem Fehlerstatus 0 (Erfolg) beendet werden, nachdem jegliche Aktivität der Ressource und deren Monitor auf dem lokalen Knoten erfolgreich gestoppt wurde.

Bestimmen der zu verwendenden Start- und Stop-Methoden

Dieser Abschnitt enthält einige Tipps dazu, wann die Start- und Stop-Methoden bzw. die Prenet_start- und Postnet_stop-Methoden verwendet werden sollen. Voraussetzung zur Entscheidung für die richtigen Methoden sind sehr gute Kenntnisse sowohl des Clients als auch des Client/Server-Netzwerkprotokolls des Datendienstes.

Für Dienste, die Netzwerkadressressourcen verwenden, muss das Starten und Stoppen möglicherweise in einer bestimmten Reihenfolge stattfinden, die in Bezug zur logischen Hostname-Adresskonfiguration steht. Die optionalen Rückmeldemethoden Prenet_start und Postnet_stop ermöglichen es einer Ressourcentypimplementierung, besondere Aktionen beim Herauf- bzw. Herunterfahren auszuführen, bevor und nachdem Netzwerkadressen in derselben Ressourcengruppe als aktiv bzw. inaktiv konfiguriert werden.

Vor dem Aufruf der Prenet_start-Methode des Datendienstes ruft RGM Methoden zur Anmeldung der Netzwerkadressen auf (die sie aber nicht als aktiv konfigurieren). Nach dem Aufruf der Postnet_stop-Methoden des Datendienstes ruft RGM die Methoden auf, die Netzwerkadressen abmelden. RGM bringt eine Ressourcengruppe in dieser Reihenfolge online:

  1. Anmelden der Netzwerkadressen.

  2. Aufrufen der Prenet_start-Methode des Datendienstes (falls vorhanden).

  3. Aktiv-Konfigurieren der Netzwerkadressen.

  4. Aufrufen der Start-Methode des Datendienstes (falls vorhanden).

Wenn RGM eine Ressourcengruppe offline nimmt, wird in umgekehrter Reihenfolge verfahren:

  1. Aufrufen der Stop-Methode des Datendienstes (falls vorhanden).

  2. Inaktiv-Konfigurieren der Netzwerkadressen.

  3. Aufrufen der Postnet_stop-Methode des Datendienstes (falls vorhanden).

  4. Abmelden der Netzwerkadressen.

Bei der Entscheidung darüber, ob Start-, Stop-, Prenet_start- oder Postnet_stop-Methoden verwendet werden sollten, muss zunächst die Serverseite betrachtet werden. Beim Online-bringen einer Ressourcengruppe, die sowohl Datendienst-Anwendungsressourcen als auch Netzwerkadressressourcen enthält, ruft RGM Methoden auf, um die Netzwerkadressen als aktiv zu konfigurieren, bevor er die Start-Methoden der Datendienstressourcen aufruft. Wenn also für einen Datendienst Netzwerkadressen zum Startzeitpunkt als aktiv konfiguriert werden müssen, verwenden Sie die Start-Methode zum Starten des Datendienstes.

Ebenso ruft RGM beim Offline-nehmen einer Ressourcengruppe, die sowohl Datendienstressourcen als auch Netzwerkadressressourcen enthält, Methoden zum Inaktiv-Konfigurieren der Netzwerkadressen auf, nachdem die Stop-Methoden der Datendienstressource aufgerufen wurden. Wenn also für einen Datendienst zum Stoppzeitpunkt Netzwerkadressen als inaktiv konfiguriert werden müssen, verwenden Sie die Stop-Methode zum Stoppen des Datendienstes.

Wenn Sie zum Beispiel einen Datendienst starten oder stoppen möchten, müssen Sie möglicherweise die Verwaltungsdienstprogramme oder Bibliotheken des Datendienstes aufrufen. Manchmal verfügt der Datendienst über Verwaltungsdienstprogramme bzw. -bibliotheken, die eine Client/Server-Netzwerkschnittstelle für die Verwaltung verwenden. Dabei ruft ein Verwaltungsdienstprogramm den Server-Dämon auf, so dass möglicherweise die Netzwerkadresse aktiv sein muss, damit das Verwaltungsprogramm oder die Bibliothek verwendet werden können. Verwenden Sie unter diesen Umständen die Start- und Stop-Methoden.

Wenn beim Starten und Stoppen des Datendienstes die Netzwerkadressen als inaktiv konfiguriert sein müssen, verwenden Sie die Prenet_start- und Postnet_stop-Methoden zum Starten und Stoppen des Datendienstes. Überprüfen Sie, ob die Client-Software unterschiedlich antwortet, je nachdem, ob zuerst die Netzwerkadresse oder der Datendienst nach einer Cluster-Rekonfiguration online gebracht werden (entweder scha_control() mit dem Argument SCHA_GIVEOVER oder ein Switchover mit scswitch). Die Client-Implementierung führt möglicherweise nur sehr wenige Wiederholversuche aus und stellt diese bald ein, wenn sie feststellt, dass der Datendienst-Port nicht verfügbar ist.

Wenn der Datendienst nicht erfordert, dass die Netzwerkadresse beim Starten als aktiv konfiguriert ist, starten Sie ihn vor der Aktiv-Konfigurierung der Netzwerkschnittstelle. So wird sichergestellt, dass der Datendienst sofort auf Client-Anforderungen reagieren kann, sobald die Netzwerkadresse als aktiv konfiguriert ist. Somit ist es weniger wahrscheinlich, dass die Clients ihre Wiederholversuche einstellen. Unter diesen Umständen sollten Sie die Prenet_start-Methode anstelle der Start-Methode zum Starten des Datendienstes verwenden.

Wenn Sie die Postnet_stop-Methode verwenden, ist die Datendienstressource zu dem Zeitpunkt noch aktiv, an dem die Netzwerkadresse bereits als inaktiv konfiguriert wurde. Erst wenn die Netzwerkadresse als inaktiv konfiguriert wurde, wird die Postnet_stop-Methode aufgerufen. Daher wird das TCP bzw. der UDP-Dienst-Port oder dessen RPC-Programmnummer den Clients im Netzwerk immer als verfügbar angezeigt, außer wenn die Netzwerkadresse ebenfalls nicht antwortet.

Bei der Entscheidung darüber, ob die Start- und Stop-Methoden oder die Prenet_start- und Postnet_stop-Methoden bzw. beide zusammen verwendet werden sollten, müssen die Anforderungen und das Verhalten von Server und Client in Betracht gezogen werden.