Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

RMAPI-Rückmeldemethoden

Rückmeldemethoden sind die von der API bereitgestellten Schlüsselelemente für eine Ressourcentypimplementierung. Mithilfe der Rückmeldemethoden kann RGM Ressourcen im Cluster steuern, wenn eine Änderung der Cluster-Mitgliedschaft eintritt, wie zum Beispiel ein Knotenstart oder -absturz.


Hinweis –

Die Rückmeldemethoden werden von RGM mit Root-Berechtigungen ausgeführt, weil die Client-Programme HA-Dienste im Cluster-System steuern. Installieren und verwalten Sie diese Methoden mit eingeschränkter Dateieigentümerschaft und eingeschränkten Berechtigungen. Geben Sie ihnen einen eigens privilegierten Eigentümer, wie bin oder root, und erteilen Sie nur Lesezugriff.


Dieser Abschnitt beschreibt Rückmeldemethodenargumente und Beendigungscodes. Die Rückmeldemethoden werden in folgenden Kategorien aufgelistet und beschrieben:


Hinweis –

Dieser Abschnitt enthält zwar kurze Beschreibungen der Rückmeldemethoden und beschreibt den Zeitpunkt, zu dem die Methode aufgerufen wird und welche Auswirkung dies auf die Ressource haben soll. Als maßgebliche Referenz für die Rückmeldemethoden wird jedoch auf die Online-Dokumentation rt_callbacks(1HA) verwiesen.


Methodenargumente

RGM ruft Rückmeldemethoden folgendermaßen auf:


Methode -R Ressourcenname -T Typname -G Gruppenname

Die Methode ist der Pfadname des Programms, das als Start, Stop oder sonstige Rückmeldung registriert ist. Die Rückmeldemethoden eines Ressourcentyps werden in dessen Registrierungsdatei deklariert.

Alle Rückmeldemethodenargumente werden als Werte mit Flags übergeben, wobei -R den Namen der Ressourceninstanz, -T den Ressourcentyp und -G die Gruppe angibt, in der die Ressource konfiguriert wird. Verwenden Sie die Argumente mit Zugriffsfunktionen, um Informationen über die Ressource abzurufen.

Die Validate-Methode wird mit zusätzlichen Argumenten aufgerufen, das heißt mit den Eigenschaftswerten der Ressource und Ressourcengruppe, in denen sie aufgerufen wird.

Weitere Informationen hierzu finden Sie unter scha_calls(3HA).

Beendigungscodes

Für alle Rückmeldemethoden sind die gleichen Beendigungscodes definiert, um die Auswirkung des Methodenaufrufs auf den Ressourcenzustand anzugeben. Eine Beschreibung der Beendigungscodes finden Sie in der Online-Dokumentation unter scha_calls(3HA). Die Beendigungscodes sind:

RGM verwaltet auch außergewöhnliche Fehlschläge der Rückmeldemethodenausführung, wie Zeitüberschreitungen oder Speicherabbilder.

Methodenimplementierungen müssen die Fehlschlaginformationen für jeden Knoten über syslog ausgeben. Wenn die Ausgabe an stdout oder stderr geschrieben wird, ist nicht garantiert, dass sie dem Benutzer zugestellt wird, auch wenn sie aktuell auf der Konsole des lokalen Knotens angezeigt wird.

Steuerungs- und Initialisierungs-Rückmeldemethoden

Die primären Steuerungs- und Initialisierungs-Rückmeldemethoden starten und stoppen eine Ressource. Andere Methoden führen für eine Ressource Initialisierungs- und Beendigungscode aus.

Start

Diese erforderliche Methode wird auf einem Cluster-Knoten aufgerufen, wenn die Ressourcengruppe mit der Ressource auf diesem Knoten online gebracht wird. Die Methode aktiviert die Ressource auf dem Knoten.

Eine Start-Methode darf erst dann beendet werden, wenn die von ihr aktivierte Ressource gestartet wurde und auf dem lokalen Knoten verfügbar ist. Daher muss die Start-Methode vor Beendigung die Ressource abrufen, um festzustellen, ob sie gestartet wurde. Außerdem muss für diese Methode ein ausreichend langer Zeitüberschreitungswert eingestellt werden. Einige Ressourcen, wie zum Beispiel Datenbankdämone, brauchen mehr Zeit zum Starten. Daher benötigt die entsprechende Start-Methode einen höheren Zeitüberschreitungswert.

Die Reaktion von RGM auf einen Fehlschlag der Start-Methode hängt von der Einstellung der Failover_mode-Eigenschaft ab.

Die START_TIMEOUT-Eigenschaft in der Ressourcentyp-Registrierungsdatei stellt den Zeitüberschreitungswert für die Start-Methode einer Ressource ein.

Stop

Diese erforderliche Methode wird auf einem Cluster-Knoten aufgerufen, wenn die Ressourcengruppe mit der Ressource auf diesem Knoten offline gebracht wird. Die Methode deaktiviert die Ressource, wenn sie aktiv ist.

Eine Stop-Methode darf erst dann beendet werden, wenn die von ihr gesteuerte Anwendung vollständig gestoppt wurde, alle Aktivitäten eingestellt und alle Dateideskriptoren geschlossen hat. Andernfalls nimmt RGM an, dass die Ressource gestoppt wurde, während sie in Wirklichkeit noch läuft, was zu Datenfehlern führen kann. Der sicherste Weg zum Vermeiden von Datenfehlern besteht darin, alle Prozesse auf dem lokalen Knoten zu stoppen, die mit der Ressource in Zusammenhang stehen.

Die Stop-Methode muss vor der Beendigung die Ressource abrufen, um festzustellen, ob sie gestoppt wurde. Außerdem muss für diese Methode ein ausreichend langer Zeitüberschreitungswert eingestellt werden. Einige Ressourcen, wie zum Beispiel Datenbankdämone, brauchen mehr Zeit zum Stoppen. Daher benötigt die entsprechende Stopp-Methode einen höheren Zeitüberschreitungswert.

Die Reaktion von RGM auf einen Fehlschlag der Stop-Methode hängt von der Einstellung der Failover_mode-Eigenschaft ab (siehe Tabelle A–2).

Die STOP_TIMEOUT-Eigenschaft in der Ressourcentyp-Registrierungsdatei stellt den Zeitüberschreitungswert für die Stop-Methode einer Ressource ein.

Init

Diese optionale Methode wird aufgerufen, um eine einmalige Initialisierung der Ressource auszuführen, wenn diese in einen verwalteten Zustand versetzt wird — entweder weil die Ressourcengruppe, in der sie sich befindet, aus einem nicht verwalteten in einen verwalteten Zustand versetzt wird, oder weil die Ressource in einer bereits verwalteten Ressourcengruppe erstellt wird. Die Methode wird auf den in der Init_nodes-Ressourceneigenschaft festgelegten Knoten aufgerufen.

Fini

Diese optionale Methode wird aufgerufen, um nach der Ressource zu bereinigen, wenn diese in einen unverwalteten Zustand versetzt wird — entweder, weil die Ressourcengruppe, in der sie sich befindet, in einen unverwalteten Zustand versetzt wird, oder weil die Ressource aus einer verwalteten Ressourcengruppe gelöscht wird. Die Methode wird auf den in der Init_nodes-Ressourceneigenschaft festgelegten Knoten aufgerufen.

Boot

Diese Init ähnliche optionale Methode wird aufgerufen, um die Ressource auf Knoten zu initialisieren, die dem Cluster beitreten, nachdem die Ressourcengruppe mit der Ressource bereits unter RGM-Verwaltung gestellt wurde. Die Methode wird auf den in der Init_nodes-Ressourceneigenschaft festgelegten Knoten aufgerufen. Die Boot-Methode wird aufgerufen, wenn der Knoten dem Cluster beitritt bzw. wenn er als Ergebnis eines Starts oder Neustarts erneut beitritt.


Hinweis –

Ein Fehlschlag der Init-, Fini- oder Boot-Methode bewirkt das Generieren einer Fehlermeldung durch die syslog()-Funktion, hat aber ansonsten keine Auswirkungen auf die RGM-Verwaltung der Ressource.


Verwaltungsunterstützungsmethoden

Verwaltungsaktionen an Ressourcen umfassen das Einstellen und Ändern von Ressourceneigenschaften. Die Validate- und Update-Rückmeldemethoden ermöglichen es einer Ressourcentypimplementierung, diese Verwaltungsaktionen zu nutzen.

Validate

Diese optionale Methode wird aufgerufen, wenn eine Ressource erstellt wird und wenn eine Verwaltungsaktion die Eigenschaften der Ressource bzw. ihrer Ressourcengruppe aktualisiert. Die Methode wird auf denjenigen Clustern aufgerufen, die von der Init_nodes-Eigenschaft des Ressourcentyps angegeben werden. Validate wird aufgerufen, bevor die Erstellung bzw. Aktualisierung angewendet wird. Ein Fehlerbeendigungscode der Methode auf einem Knoten führt zum Abbruch der Erstellung bzw. Aktualisierung.

Validate wird nur dann aufgerufen, wenn Ressourcen- bzw. Ressourcengruppeneigenschaften über eine Verwaltungsaktion geändert werden, und nicht, wenn RGM Eigenschaften einstellt oder wenn ein Monitor die Ressourceneigenschaften Status und Status_msg einstellt.

Update

Diese optionale Methode wird aufgerufen, um eine laufende Ressource über die Änderung ihrer Eigenschaften zu benachrichtigen. Update wird aufgerufen, nachdem eine Verwaltungsaktion erfolgreich die Eigenschaften einer Ressource bzw. deren Gruppe eingestellt hat. Die Methode wird auf denjenigen Knoten aufgerufen, auf denen die Ressource online ist. Die Methode verwendet die API-Zugriffsfunktionen zum Lesen der Eigenschaftswerte, die eine aktive Ressource betreffen könnten, und zum dementsprechenden Anpassen der laufenden Ressource.

Ein Fehlschlag der Update-Methode bewirkt das Generieren einer Fehlermeldung durch die syslog()-Funktion, hat aber ansonsten keine Auswirkungen auf die RGM-Verwaltung der Ressource.

Netzwerkbezogene Rückmeldemethoden

Für Dienste, die Netzwerkadressressourcen verwenden, muss das Starten und Stoppen möglicherweise in einer bestimmten Reihenfolge stattfinden, die in Bezug zur Netzwerkadresskonfiguration steht. Die folgenden optionalen Rückmeldemethoden, Prenet_start und Postnet_stop, ermöglichen es einer Ressourcentypimplementierung, besondere Start- und Schließfunktionen auszuführen, bevor und nachdem eine entsprechende Netzwerkadresse konfiguriert bzw. dekonfiguriert wird.

Prenet_start

Diese optionale Methode wird aufgerufen, um besondere Startaktionen auszuführen, bevor die Netzwerkadressen in derselben Ressourcengruppe konfiguriert werden.

Postnet_stop

Diese optionale Methode wird aufgerufen, um besondere Schließaktionen auszuführen, bevor die Netzwerkadressen in derselben Ressourcengruppe als inaktiv konfiguriert werden.

Monitorsteuerungs-Rückmeldemethoden

Eine Ressourcentypimplementierung kann optional ein Programm enthalten, das die Leistung einer Ressource überwacht, über deren Status berichtet oder bei Ressourcenversagen Aktionen ausführt. Die Monitor_start-, Monitor_stop- und Monitor_check-Methoden unterstützen die Implementierung eines Ressourcen-Monitors in einer Ressourcentypimplementierung.

Monitor_start

Diese optionale Methode wird aufgerufen, um einen Monitor für die Ressource zu starten, nachdem die Ressource gestartet wurde.

Monitor_stop

Diese optionale Methode wird aufgerufen, um einen Ressourcen-Monitor zu stoppen, bevor die Ressource gestoppt wird.

Monitor_check

Diese optionale Methode wird aufgerufen, um die Zuverlässigkeit eines Knotens zu beurteilen, bevor eine Ressourcengruppe auf den Knoten verschoben wird. Die Monitor_check-Methode muss so implementiert werden, dass sie keine Konflikte mit anderen, gleichzeitig laufenden Methoden bewirkt.