Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Kapitel 6 DSDL

Dieses Kapitel bietet einen Überblick über die Anwendungsprogrammierschnittstellen, aus denen sich die DSDL (Data Service Development Library, Datendienst-Entwicklungsbibliothek) zusammensetzt. Die DSDL ist in der libdsdev.so-Bibliothek implementiert und im Sun Cluster-Paket enthalten.

Dieses Kapitel behandelt die folgenden Themen:

Überblick über die DSDL

Die DSDL-API befindet sich auf einer Ebene über der RMAPI. Sie übersteuert die RMAPI jedoch nicht, sondern kapselt sie ein und erweitert die RMAPI-Funktionalität. Die DSDL vereinfacht die Datendienstentwicklung, indem sie vorentwickelte Lösungen für bestimmte Sun Cluster-Integrationsfragen bereitstellt. Damit können Sie einen Großteil der für die Entwicklung erforderlichen Zeit für Fragen der Hochverfügbarkeit und Skalierbarkeit Ihrer Anwendung aufwenden, ohne sich lange mit der Integration der Start-, Schließ- und Monitor-Verfahren für die Anwendung mit Sun Cluster aufzuhalten.

Verwalten von Konfigurationseigenschaften

Alle Rückmeldemethoden benötigen Zugriff auf die Konfigurationseigenschaften. Die DSDL unterstützt den Zugriff auf die Eigenschaften folgendermaßen:

Die scds_initialize-Funktion, die zu Beginn jeder Rückmeldemethode aufgerufen werden muss, führt folgende Aktionen aus:


Hinweis –

Für die Validate-Methode analysiert scds_initialize die Eigenschaftswerte, die an die Befehlszeile übergeben werden. Damit ersparen Sie sich das Schreiben einer Analysefunktion für Validate.


Die scds_initialize-Funktion initialisiert auch die Protokollierumgebung und validiert die Testsignaleinstellungen des Fehler-Monitors.

Die DSDL stellt Funktionssätze zum Abrufen von Ressourcen-, Ressourcentyp- und Ressourcengruppeneigenschaften sowie von häufig verwendeten Erweiterungseigenschaften bereit. Diese Funktionen wenden folgende Konventionen für den standardmäßigen Zugriff auf Eigenschaften an:

Starten und Stoppen eines Datendienstes

Eine Start-Methode hat die Aufgabe, die erforderlichen Aktionen zum Starten eines Datendienstes auf einem Cluster-Knoten auszuführen. In der Regel umfasst dieser Vorgang das Abrufen der Ressourceneigenschaften, Suchen der anwendungsspezifischen ausführbaren Dateien und Konfigurationsdateien sowie das Starten der Anwendung über die entsprechenden Befehlszeilenargumente.

Die scds_initialize-Funktion ruft die Ressourcenkonfiguration ab. Die Start-Methode kann die bereitgestellten Eigenschaftsfunktionen zum Abrufen der Werte spezifischer Eigenschaften wie Confdir_list verwenden, welche die Konfigurationsverzeichnisse und -dateien für die zu startende Anwendung identifizieren.

Eine Start-Methode kann scds_pmf_start aufrufen, um eine Anwendung unter Steuerung durch PMF (Process Monitor Facility) zu starten. Mit PMF können Sie die Überwachungsebene angeben, die auf den Prozess angewendet werden soll. Außerdem ermöglicht PMF den Neustart des Prozesses, falls er fehlschlagen sollte. Ein Beispiel für eine mit der DSDL implementierte Start-Methode finden Sie unter xfnts_start-Methode.

Eine Stop-Methode muss idempotent sein, um mit Erfolg zu enden, auch wenn sie auf einem Knoten aufgerufen wird, auf dem die Anwendung nicht läuft. Wenn die Stop-Methode fehlschlägt, wird die zu stoppende Ressource in den STOP_FAILED-Zustand versetzt, was zu einem harten Neustart des Clusters führen kann.

Um einen STOP_FAILED-Zustand der Ressource zu vermeiden, muss die Stop-Methode die Ressource unbedingt stoppen. Die scds_pmf_stop-Funktion unternimmt in Phasen unterteilte Ressourcenstoppversuche. Sie versucht zunächst, die Ressource mit dem SIGTERM-Signal zu stoppen. Wenn dies nicht erfolgreich ist, wird ein SIGKILL-Signal verwendet. Weitere Details finden Sie unter scds_pmf_stop(3HA) .

Implementieren eines Fehler-Monitors

Die DSDL vereinfacht das Implementieren eines Fehler-Monitors erheblich, indem sie ein vordefiniertes Modell bereitstellt. Eine Monitor_start-Methode startet den Fehler-Monitor unter PMF-Steuerung, wenn die Ressource auf einem Knoten gestartet wird. Der Fehler-Monitor läuft in einer Schleife, solange die Ressource auf dem Knoten ausgeführt wird. Die Logik auf hoher Ebene eines DSDL-Fehler-Monitors ist Folgende:

Zugreifen auf Netzwerkadressinformationen

Die DSDL stellt praktische Funktionen bereit, mit denen Netzwerkadressinformationen für Ressourcen und Ressourcengruppen zurückgegeben werden können. So ruft zum Beispiel scds_get_netaddr_list die Netzwerkadressressourcen ab, die von einer Ressource verwendet werden. Dadurch wird es dem Fehler-Monitor ermöglicht, die Anwendung zu testen.

Die DSDL enthält auch einen Satz Funktionen für die TCP-basierte Überwachung. In der Regel stellen diese Funktionen eine einfache Socketverbindung mit einem Dienst her, lesen und schreiben Daten bezüglich des Dienstes und trennen dann die Verbindung zum Dienst. Das Testsignalergebnis kann an die DSDL-Funktion scds_fm_action gesendet werden, um über die auszuführende Aktion zu entscheiden.

Ein Beispiel für TCP-basierte Fehlerüberwachung finden Sie unter xfnts_validate-Methode.

Beheben von Fehlern bei der Ressourcentypimplementierung

Die DSDL verfügt über integrierte Funktionen, mit denen Sie Datendienstfehler beheben können.

Das DSDL-Dienstprogramm scds_syslog_debug() bietet einen grundlegenden Rahmen, in dem der Ressourcentypimplementierung Fehlerbehebungsanweisungen hinzugefügt werden können. Die Fehlerbehebungs-Ebene (eine Zahl zwischen 1 und 9) kann pro Ressourcentypimplementierung und Cluster-Knoten dynamisch eingerichtet werden. Eine Datei mit dem Namen /var/cluster/rgm/rt/RT-Name/loglevel, die lediglich eine ganze Zahl zwischen 1 und 9 enthält, wird von allen Ressourcentyp-Rückmeldemethoden gelesen. Die DSDL-Routine scds_initialize() liest diese Datei und stellt die Fehlerbehebungsebene intern auf die angegebene Ebene ein. Die Standard-Fehlerbehebungsebene ist 0 und gibt an, dass der Datendienst keine Fehlerbehebungsmeldungen protokolliert.

Die Funktion scds_syslog_debug() verwendet die Rückgabe der Funktion scha_cluster_getlogfacility() mit einem Vorrang von LOG_DEBUG. Diese Fehlerbehebungsmeldungen können in /etc/syslog.conf konfiguriert werden.

Manche Fehlerbehebungsmeldungen können in Informationsmeldungen für den regulären Betrieb des Ressourcentyps umgewandelt werden (zum Beispiel mit dem Vorrang LOG_INFO). Dafür wird das Dienstprogramm scds_syslog verwendet. In der DSDL-Beispielanwendung in Kapitel 8 können Sie sehen, dass sehr viele scds_syslog_debug- und scds_syslog-Funktionen eingesetzt werden.

Aktivieren von hoch verfügbaren lokalen Dateisystemen

Der Ressourcentyp HAStoragePlus kann eingesetzt werden, um ein lokales Dateisystem in einer Sun Cluster-Umgebung hoch verfügbar zu machen. Die Partitionen des lokalen Dateisystems müssen sich auf globalen Plattengruppen befinden. Affinitäts-Switchover müssen aktiviert sein, und die Sun Cluster-Umgebung muss für Failover konfiguriert sein. Mit diesen Einstellungen kann der Benutzer jedes Dateisystem auf Multihostplatten für jeden Host verfügbar machen, der direkt mit den Multihostplatten verbunden ist. Für einige E/A-intensive Datendienste wird die Verwendung eines hoch verfügbaren lokalen Dateisystems dringend empfohlen. Unter “Enabling Highly Available Local File Systems” in Sun Cluster Data Services Planning and Administration Guide for Solaris OS finden Sie Informationen zum Konfigurieren des HAStoragePlus-Ressourcentyps.