Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Kapitel 1 Überblick über die Ressourcenverwaltung

Dieses Handbuch liefert Richtlinien zur Erstellung eines Ressourcentyps für eine Softwareanwendung, wie Oracle®, Sun JavaTM System Web Server (früher Sun ONE Web Server) oder DNS. Insofern ist es für Ressourcentypentwickler konzipiert.

Dieses Kapitel enthält eine Übersicht über die Konzepte, die Sie zum Entwickeln eines Datendienstes kennen sollten. Dieses Kapitel behandelt die folgenden Themen:


Hinweis –

In diesem Buch werden die Begriffe Ressourcentyp und Datendienst synonym verwendet. Der Begriff Agent, der in diesem Handbuch nur selten verwendet wird, ist identisch mit den Begriffen Ressourcentyp und Datendienst.


Sun Cluster-Anwendungsumgebung

Mit dem Sun Cluster-System können Anwendungen als hoch verfügbare und skalierbare Ressourcen ausgeführt und verwaltet werden. Der Ressourcengruppen-Manager (RGM) bietet den geeigneten Mechanismus für eine hohe Verfügbarkeit und Skalierbarkeit. Folgende Elemente bilden die Programmierschnittstelle für Folgendes:

Die folgende Abbildung stellt die Beziehung dieser Elemente zueinander dar.

Abbildung 1–1 Programmierarchitektur der Sun Cluster-Anwendungsumgebung

Diagramm, das die Beziehung zwischen den Rückmeldemethoden, RMAPI, Process Monitor Facility (PMF) und DSDL darstellt

SunPlex Agent Builder, das in Kapitel 9, SunPlex Agent Builder beschrieben wird, ist ein Tool im Sun Cluster-Paket, mit dem der Prozess zum Erstellen eines Datendienstes automatisiert wird. Agent Builder generiert einen Datendienstcode in C (unter Verwendung der DSDL-Funktionen zum Schreiben der Rückmeldemethoden) oder in der Korn-Shell-Befehlssprache (ksh) (unter Verwendung der API-Befehle zum Schreiben von Rückmeldemethoden).

RGM führt an jedem Cluster-Knoten einen Dämon aus und startet und stoppt die Ressourcen an den ausgewählten Knoten entsprechend der vorkonfigurierten Richtlinien automatisch. RGM sorgt im Falle eines Knotenfehlers oder Neustarts für eine hohe Verfügbarkeit, indem die Ressourcen am betroffenenen Knoten angehalten und an einem anderen Knoten gestartet werden. RGM startet und stoppt auch ressourcenspezifische Monitore automatisch. Diese Monitore entdecken Ressourcenfehler und leiten fehlerhafte Ressourcen an andere Knoten weiter oder überwachen andere Aspekte der Ressourcenleistung.

RGM unterstützt sowohl Failover-Ressourcen, die jeweils nur an einem Knoten online sein können, als auch skalierbare Ressourcen, die an mehreren Knoten gleichzeitig online sein können.

Ressourcengruppen-Manager-Modell

In diesem Abschnitt werden einige grundlegende Begriffe beschrieben und RGM und seine Schnittstellen detailliert erläutert.

RGM verarbeitet drei Haupttypen von zueinander in Beziehung stehenden Objekten: Ressourcentypen, Ressourcen und Ressourcengruppen. Eine Möglichkeit zur Einführung dieser Objekte besteht in folgendem Beispiel.

Sie implementieren einen Ressourcentyp, ha-oracle, mit dem eine bereits vorhandene Oracle DBMS-Anwendung hoch verfügbar wird. Ein Endbenutzer definiert separate Datenbanken für das Marketing, Engineering und Finanzwesen, wovon jede den Ressourcentyp ha-oracle aufweist. Der Cluster-Administrator legt diese Ressourcen in separaten Ressourcengruppen ab, sodass sie auf unterschiedlichen Knoten ausgeführt werden können und jeweils unabhängig voneinander ein Failover stattfinden kann. Zur Implementierung eines hoch verfügbaren Kalenderservers, für den eine Oracle-Datenbank erforderlich ist, erstellen Sie einen zweiten Ressourcentyp, ha-calendar. Der Cluster-Administrator legt die Ressource für den Finanzkalender in derselben Ressourcengruppe wie die Finanzdatenbankressource ab, so dass beide Ressourcen auf demselben Knoten laufen und gemeinsam Failover ausführen.

Ressourcentypen

Ein Ressourcentyp besteht aus Folgendem:

RGM verwendet Ressourcentypeigenschaften für die Verwaltung von Ressourcen eines bestimmten Typs.


Hinweis –

Zusätzlich zu einer Softwareanwendung kann ein Ressourcentyp andere Systemressourcen darstellen, zum Beispiel Netzwerkadressen.


Sie geben die Eigenschaften für den Ressourcentyp an und legen Eigenschaftswerte in einer RTR-Datei (Resource Type Registration, Ressourcentypregistrierung) fest. Die RTR-Datei folgt dem Format, das im Abschnitt Einstellen der Ressourcen- und Ressourcentypeigenschaften und in der Online-Dokumentation zu rt_reg(4) beschrieben wird. Eine Beschreibung einer RTR-Beispieldatei finden Sie auch im Abschnitt Definieren der Ressourcentyp-Registrierungsdatei.

Der Abschnitt Ressourcentypeigenschaften enthält eine Liste mit Ressourcentypeigenschaften.

Der Cluster-Administrator installiert und registriert die Ressourcentypimplementierung und die zugrunde liegende Anwendung auf einem Cluster. Das Registrierungsverfahren übernimmt die Informationen aus der RTR-Datei in die Cluster-Konfiguration. Im Sun Cluster Data Services Planning and Administration Guide for Solaris OS wird das Verfahren für das Registrieren eines Datendienstes beschrieben.

Ressourcen

Eine Ressource erbt die Eigenschaften und Werte ihres Ressourcentyps. Außerdem können Sie Ressourceneigenschaften in der RTR-Datei deklarieren. Der Abschnitt Ressourceneigenschaften enthält eine Liste mit Ressourceneigenschaften.

Der Cluster-Administrator kann die Werte bestimmter Eigenschaften je nach ihrer Definition in der RTR-Datei ändern. Eigenschaftsdefinitionen können zum Beispiel einen Bereich von zulässigen Werten angeben. Eigenschaftsdefinitionen können auch festlegen, wann die Eigenschaft optimiert werden kann: niemals, immer, zum Zeitpunkt der Erstellung (wenn die Ressource dem Cluster hinzugefügt wird) oder bei Deaktivierung der Ressource. Mithilfe dieser Spezifikationen kann der Cluster-Administrator die Eigenschaften mithilfe von Verwaltungsbefehlen ändern.

Der Cluster-Administrator kann viele Ressourcen desselben Typs erstellen, wobei jede Ressource einen eigenen Namen und einen eigenen Satz mit Eigenschaftswerten besitzt , sodass mehr als eine Instanz der zugrunde liegenden Anwendung im Cluster ausgeführt werden kann. Für jede Instanz ist ein einmaliger Name innerhalb des Clusters erforderlich.

Ressourcengruppen

Jede Ressource muss in einer Ressourcengruppe konfiguriert werden. RGM bringt alle Ressourcen in einer Gruppe gemeinsam auf demselben Knoten online bzw. offline. Wenn RGM eine Ressourcengruppe online oder offline bringt, werden Rückmeldemethoden für die einzelnen Ressourcen in der Gruppe ausgeführt.

Die Knoten, an denen eine Ressourcengruppe derzeit online ist, heißen Primärknoten. Eine Ressourcengruppe wird von jedem ihrer Primärknoten unterstützt. Jede Ressourcengruppe weist eine verknüpfte Nodelist-Eigenschaft auf, die alle potenziellen Primärknoten oder Master der Ressourcengruppe identifiziert. Der Cluster-Administrator legt die Nodelist-Eigenschaft fest.

Einer Ressourcengruppe ist auch ein Satz Eigenschaften zugewiesen. Diese Eigenschaften umfassen Konfigurationseigenschaften, die vom Cluster-Administrator eingestellt werden, sowie dynamische Eigenschaften, die RGM einstellt und die den aktiven Zustand der Ressourcengruppe wiedergeben.

RGM definiert zwei Arten von Ressourcengruppen: Failover und skalierbar. Eine Failover-Ressourcengruppe kann nur jeweils auf einem Knoten online sein, während eine Scalable-Ressourcengruppe auf mehreren Knoten gleichzeitig online sein kann. RGM stellt einen Satz Eigenschaften bereit, um die Erstellung der einzelnen Ressourcengruppentypen zu unterstützen. Weitere Informationen über diese Eigenschaften finden Sie in den Abschnitten Übertragen eines Datendienstes auf einen Cluster und Implementieren von Rückmeldemethoden.

Der Abschnitt Ressourcengruppeneigenschaften enthält eine Liste mit Ressourcengruppeneigenschaften.

Ressourcengruppen-Manager

Ressourcengruppen-Manager (RGM) wird als Dämon, rgmd, implementiert, der an jedem Mitgliedsknoten eines Clusters ausgeführt wird. Alle rgmd-Prozesse kommunizieren miteinander und werden als einzelne Cluster-weite Funktion verwendet.

RGM unterstützt folgende Funktionen:

Wenn RGM Konfigurationsänderungen aktiviert, koordiniert das Programm seine Aktionen auf allen Mitgliedsknoten des Clusters. Diese Aktivität wird als Rekonfiguration bezeichnet.Um eine Zustandsänderung bei einer einzelnen Ressource vorzunehmen, ruft RGM eine für den Ressourcentyp spezifische Rückmeldemethode auf.

Rückmeldemethoden

Das Sun Cluster-Framework verwendet einen Rückmeldemechanismus, der die Kommunikation zwischen einem Datendienst und RGM bietet. Das Framework definiert einen Satz Rückmeldemethoden, u.a. ihre Argumente und Rückgabewerte, sowie die Umstände, unter denen die einzelnen Methoden von RGM aufgerufen werden.

Sie erstellen einen Datendienst, indem Sie einen Satz einzelner Rückmeldemethoden kodieren und jede Methode als Steuerungsprogramm implementieren, die von RGM aufgerufen werden kann. Das heißt, der Datendienst besteht nicht aus einer einfachen ausführbaren Datei, sondern aus mehreren ausführbaren Skripten (ksh) oder Binärdateien (C), die vom RGM direkt aufgerufen werden können.

Rückmeldemethoden werden mit RGM über die RTR-Datei registriert. In der RTR-Datei identifizieren Sie das Programm für jede Methode, die Sie für den Datendienst implementiert haben. Wenn ein Cluster-Administrator den Datendienst auf einem Cluster registriert, liest RGM die RTR-Datei, die die Identität von Rückmeldeprogrammen und andere Informationen liefert.

Die einzigen erforderlichen Rückmeldemethoden für einen Ressourcentyp sind eine Startmethode ( Start oder Prenet_start) und eine Stopp-Methode (Stop oder Postnet_stop).

Die Rückmeldemethoden lassen sich in folgende Kategorien zusammenfassen:

Weitere Informationen zu den Rückmeldemethoden finden Sie in Kapitel 3, Ressourcenverwaltungs-API-Referenz und in der Online-Dokumentation zu rt_callbacks(1HA). Weitere Informationen zu den Rückmeldemethoden in Beispieldatendiensten finden Sie in Kapitel 5, Beispieldatendienst und Kapitel 8, Beispielressourcentyp-Implementierung mit DSDL .

Programmierschnittstellen

Zum Schreiben von Datendienstcode bietet die Ressourcenverwaltungsarchitektur eine Basis-API, eine Bibliothek auf übergeordneter Ebene, die auf die Basis-API aufsetzt, sowie SunPlex Agent Builder, ein Tool, mit dem ein Datendienst automatisch anhand Ihrer Eingabe generiert wird.

Ressourcenverwaltungs-API

Die Ressourcenverwaltungs-API (RMAPI, Ressource Management API) bietet einen Satz von Funktionen, mit dem ein Datendienst auf Informationen über die Ressourcentypen, die Ressourcen und Ressourcengruppen im System zugreifen kann, um einen lokalen Neustart oder Failover anzufordern und den Ressourcenstatus festzulegen. Sie rufen diese Funtionen über die libscha.so-Bibliothek auf. Die RMAPI stellt diese Rückmeldemethoden sowohl in Form von Shell-Befehlen als auch in Form von C-Funktionen bereit. Weitere Informationen zu den RMAPI-Funktionen finden Sie in der Online-Dokumentation zu scha_calls(3HA) und in Kapitel 3, Ressourcenverwaltungs-API-Referenz. Beispiele zur Verwendung dieser Funktionen in Beispieldatendienst-Rückmeldemethoden finden Sie in Kapitel 5, Beispieldatendienst.

Data Service Development Library

Auf die RMAPI aufgesetzt ist die Data Service Development Library (DSDL), die ein integriertes Framework auf höherer Ebene bietet, während das zugrunde liegende Methodenrückmeldemodell des RGM beibehalten wird. Die libdsdev.so-Bibliothek enthält die DSDL-Funktionen. Die DSDL bringt mehrere Funktionen der Datendienstentwicklung zusammen, u.a. folgende:

Für die meisten Anwendungen bietet die DSDL den größten Teil der Funktionen, die für das Erstellen eines Datendienstes erforderlich sind. Beachten Sie jedoch, dass die DSDL die API auf niedriger Ebene nicht ersetzt, sondern einkapselt und erweitert. Viele DSDL-Funktionen rufen die libscha.so-Funktionen auf. Auf ähnliche Weise können Sie libscha.so-Funktionen aufrufen, wenn Sie die DSDL zum Kodieren des größten Teils des Datendienstes verwenden.

Weitere Informationen zur DSDL finden Sie in Kapitel 6, Data Service Development Library und in der Online-Dokumentation zu scha_calls(3HA).

SunPlex Agent Builder

Agent Builder ist ein Tool, das die Erstellung eines Datendienstes automatisiert. Der Benutzer gibt grundlegende Informationen über die Zielanwendung und den zu erstellenden Datendienst ein. Agent Builder generiert einen Datendienst, der Quell- und ausführbaren Code (C oder Korn-Shell), eine benutzerdefinierte RTR-Datei sowie ein Solaris-Paket enthält.

Für die meisten Anwendungen können Sie Agent Builder zum Generieren eines vollständigen Datendienstes einsetzen. Anschließend sind nur noch kleinere manuelle Änderungen erforderlich. Anwendungen mit komplizierteren Anforderungen, wie zum Beispiel Validierungsprüfungen für zusätzliche Eigenschaften, stellen möglicherweise Ansprüche, denen Agent Builder nicht gerecht werden kann. Selbst in diesen Fällen können Sie Agent Builder jedoch zum Generieren des größten Teils des Codes verwenden und dann den Rest manuell kodieren. Auf jeden Fall können Sie Agent Builder zum Generieren des Solaris-Pakets verwenden.

Verwaltungsschnittstelle von Ressourcengruppen-Manager

Sun Cluster bietet sowohl eine grafische Benutzeroberfläche (GUI) als auch einen Befehlssatz zur Verwaltung eines Clusters.

SunPlex-Manager

SunPlex-Manager ist ein webbasiertes Tool, mit dem Sie folgende Aufgaben durchführen können:

Anweisungen zur Verwendung von SunPlex-Manager für die Installation von Cluster-Software finden Sie im Sun Cluster Handbuch Softwareinstallation für Solaris OS. SunPlex-Manager stellt für die meisten einmaligen Verwaltungsaufgaben Online-Hilfe bereit.

scsetup-Dienstprogramm

Sie können die meisten Sun Cluster-Verwaltungsaufgaben interaktiv mit dem scsetup(1M)-Dienstprogramm durchführen.

Sie können die folgenden Sun Cluster-Elemente mit dem scsetup-Dienstprogramm verwalten:

Sie können auch die folgenden Operationen mit dem scsetupDienstprogramm ausführen:

Verwaltungsbefehle

Die Sun Cluster-Befehle zur Verwaltung von RGM-Objekten lauten scrgadm, scswitch und scstat -g.

Mit dem Befehl scrgadm können Sie einen Ressourcentyp, eine Ressourcengrpupe und die Ressourcenobjekte, die vom RGM verwendet werden, anzeigen, erstellen, konfigurieren und löschen. Dieser Befehl ist Teil der Verwaltungsschnittstelle für den Cluster, soll jedoch nicht im selben Programmierkontext wie die Anwendungsschnittstelle verwendet werden, die im restlichen Kapitel beschrieben wird. scrgadm ist jedoch das Tool für den Aufbau der Cluster-Konfiguration, in der die API arbeitet. Ein Verständnis der Verwaltungsschnittstelle stellt den Kontext für das Verstehen der Anwendungsschnittstelle bereit. Weitere Informationen über die Verwaltungsaufgaben, die Sie mit dem Befehl durchführen können, finden Sie in der Online-Dokumentation zu scrgadm(1M).

Mit dem Befehlscswitch werden die Ressourcengruppen an bestimmten Knoten online und offline geschaltet. Mit diesem Befehl wird eine Ressource bzw. ihr Monitor auch aktiviert oder deaktiviert. Weitere Informationen zu den Verwaltungsaufgaben, die mit diesem Befehl ausgeführt werden können, finden Sie in der Online-Dokumentation zu scswitch(1M).

Der Befehl scstat -g zeigt den aktuellen dynamischen Zustand aller Ressourcengruppen und Ressourcen an. In der Online-Dokumentation zu scstat(1M) finden Sie weitere Informationen zu den Verwaltungsaufgaben, die mit diesem Befehl ausgeführt werden können.