Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Steuern einer Anwendung

Rückmeldemethoden ermöglichen RGM, die zugrunde liegende Ressource zu steuern (d.h. die Anwendung), sobald die Knoten dem Cluster beitreten oder ihn verlassen.

Starten und Stoppen einer Ressource

Für die Implementierung eines Ressourcentyps sind mindestens eine Start- und eine Stop-Methode erforderlich. RGM ruft die Methodenprogramme eines Ressourcentyps zu den richtigen Zeiten und auf den richtigen Knoten auf, um die Ressourcengruppen offline und online zu bringen. Nach dem Absturz eines Cluster-Knotens verschiebt RGM z.B. Ressourcengruppen, die von diesem Knoten verarbeitet werden, 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 die Ressourcentypen, für die ein langer Initialisierungszeitraum benötigt wird, ausreichend lange Zeitüberschreitungswerte für die Start-Methoden festgelegt sind. Um ausreichende Zeitüberschreitungswerte sicherzustellen, legen Sie in der RTR-Datei die Standard- und Mindestwerte für die Start_timeout-Eigenschaft fest.

Eine Stop-Methode muss für Situationen implementiert werden, in denen RGM eine Ressourcengruppe offline nimmt. Angenommen, eine Ressourcengruppe wird z.B. an Knoten 1 offline genommen und an Knoten 2 erneut online gebracht. Wenn die Ressourcengruppe offline genommen wird, ruft RGM die Stop-Methode für die Ressourcen in der Gruppe auf, um die gesamte Aktivität an Knoten 1 zu stoppen. Nachdem die Stop-Methoden für alle Ressourcen an Knoten 1 vollständig ausgeführt wurden, bringt RGM die Ressourcengruppe auf Knoten 2 erneut 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 am lokalen Knoten, die sich auf die Ressource beziehen. Für Ressourcentypen, für die eine lange Zeit zum Herunterfahren benötigt wird, sollten ausreichend lange Zeitüberschreitungswerte für die Stop-Methoden festgelegt sein. Legen Sie die Stop_timeout-Eigenschaft in der RTR-Datei fest.

Ein Fehler oder eine Zeitüberschreitung einer Stop-Methode führt dazu, dass die Ressourcengruppe einen Fehlerstatus erhält und der Cluster-Administrator eingreifen muss. 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.

Verwendung von 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 sollten. Sie müssen sowohl mit dem Client-Server-Netzwerkprotokoll des Clients als auch des Datendienstes vertraut sein, um zu entscheiden, welche Methoden die richtigen sind.

Für Dienste, die Netzwerkadressressourcen verwenden, ist es eventuell erforderlich, dass Start- oder Stop-Schritte in einer bestimmten Reihenfolge entsprechend der logischen Hostnamen-Adresskonfiguration unternommen werden. 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. Die Reihenfolge ist Folgende, wenn RGM eine Ressourcengruppe online bringt:

  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.

Wenn Sie eine Entscheidung treffen möchten, ob Sie die Start-, Stop-, Prenet_start- oder Postnet_stop-Methoden verwenden möchten, sollten Sie zunächst an die Serverseite denken. 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.

Zum Starten oder Stoppen eines Datendienstes müssen Sie eventuell die Verwaltungsdienstprogramme oder Bibliotheken des Datendienstes ausführen. 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 in diesem Szenario 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. Wenn Sie den Datendienst auf diese Weise starten, wird sichergestellt, dass der Datendienst sofort auf Client-Andorderungen reagieren kann, sobald die Netzwerkadresse als aktiv konfiguriert wurde. Die Wahrscheinlichkeit, dass die Clients die Wiederholversuche stoppen, ist so geringer. 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 ausgeführt. Der TCP- oder UDP-Dienstport oder seine RPC-Programmnummer scheint folglich immer den Clients im Netzwerk zur Verfügung zu stehen, außer in den Fällen, in denen die Netzwerkadresse ebenfalls nicht reagiert.


Hinweis –

Wenn Sie im Cluster einen RPC-Dienst installieren, darf der Dienst folgende Programmnummern nicht verwenden: 100141, 100142 und 100248. Diese Nummern sind den Sun Cluster-Dämonen rgmd_receptionist, fed und pmfd vorbehalten. Wenn der von Ihnen installierte RPC-Dienst eine dieser Programmnummern verwendet, müssen Sie die Programmnummer dieses RPC-Dienstes ändern.


Bei der Entscheidung, die Start- und Stop-Methoden bzw. die Prenet_start- und Postnet_stop-Methoden oder beide zu verwenden, müssen die Anforderungen und das Verhalten von Server und Client berücksichtigt werden.

Init-, Fini- und Boot-Methoden

Mithifle von drei optionalen Methoden, Init, Fini und Boot kann RGM Initialisierungs- und Beendigungscode für eine Ressource ausführen.

RGM führt die Init-Methode aus, um eine einmalige Initialisierung der Ressource durchzuführen, wenn die Ressource als Ergebnis einer der folgenden Bedingungen verwaltet wird:

RGM führt die Fini-Methode aus, um nach der Ressource eine Bereinigung durchzuführen, wenn die Ressource als Ergebnis einer der folgenden Bedingungen nicht verwaltet wird:

Die Bereinigung muss idempotent sein. Das heißt, wenn die Bereinigung bereits ausgeführt wurde, wird Fini erfolgreich beendet.

RGM führt die Boot-Methode auf Knoten aus, die dem Cluster gerade erst beigetreten sind, d.h., die Knoten wurden gerade erst gestartet oder neu gestartet.

Die Boot-Methode führt in der Regel die gleiche Initialisierung wie Init aus. Diese Initialisierung muss idempotent sein, d.h. wenn die Ressource auf dem lokalen Knoten bereits initialisiert wurde, werden Boot und Init erfolgreich beendet.