Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Einstellen der Ressourcen- und Ressourcentypeigenschaften

Sun Cluster stellt einen Satz Ressourcentypeigenschaften und Ressourceneigenschaften bereit, die zum Definieren der statischen Konfiguration eines Datendienstes verwendet werden. Ressourcentypeigenschaften geben den Typ der Ressource, deren Version, die API-Version, usw., sowie die Pfade zu jeder der Rückmeldemethoden an. Tabelle A–1 listet alle Ressourcentypeigenschaften auf.

Ressourceneigenschaften wie Failover_mode, Thorough_probe_interval und Methodenzeitüberschreitungen definieren ebenfalls die statische Konfiguration der Ressource. Dynamische Ressourceneigenschaften wie Resource_state und Status geben den Zustand einer verwalteten Ressource wieder. Tabelle A–2 beschreibt die Ressourceneigenschaften.

Der Ressourcentyp und die Ressourceneigenschaften werden in der Ressourcentyp-Registrierungsdatei (RTR-Datei) deklariert. Diese Datei ist eine grundlegende Komponente eines Datendienstes. Die RTR-Datei definiert die anfängliche Konfiguration des Datendienstes zu dem Zeitpunkt, zu dem der Cluster-Administrator den Datendienst bei Sun Cluster registriert.

Sie sollten Agent Builder zum Generieren der RTR-Datei für Ihren Datendienst verwenden, da Agent Builder den Satz Eigenschaften deklariert, der für jeden Datendienst nützlich und erforderlich ist. Es müssen zum Beispiel bestimmte Eigenschaften wie Resource_type in der RTR-Datei deklariert werden; andernfalls schlägt die Registrierung des Datendienstes fehl. Andere Eigenschaften sind zwar nicht erforderlich, stehen aber dem Systemadministrator nur dann zur Verfügung, wenn Sie sie in der RTR-Datei deklarieren. Einige Eigenschaften sind immer verfügbar, unabhängig davon, ob Sie sie deklarieren oder nicht, da sie von RGM definiert und mit einem Standardwert versehen werden. Um diese komplexen Fragen zu umgehen, können Sie einfach Agent Builder einsetzen, um die Generierung einer geeigneten RTR-Datei sicherzustellen. Später können Sie die RTR-Datei bearbeiten und bei Bedarf bestimmte Werte ändern.

Im letzten Teil dieses Abschnitts werden Sie durch eine von Agent Builder erstellte Beispiel-RTR-Datei geführt.

Deklarieren von Ressourcentypeigenschaften

Der Cluster-Administrator kann die von Ihnen in der RTR-Datei deklarierten Ressourcentypeigenschaften nicht konfigurieren. Sie werden Bestandteil der permanenten Ressourcentypkonfiguration.


Hinweis –

Eine Ressourcentypeigenschaft, Installed_nodes, kann vom Systemadministrator konfiguriert werden. Sie kann sogar nur von einem Systemadministrator konfiguriert und nicht in der RTR-Datei deklariert werden.


Die Syntax für Ressourcentypdeklarationen lautet:


Eigenschaftsname = Wert;

Hinweis –

RGM unterscheidet bei Eigenschaftsnamen nicht zwischen Groß- und Kleinschreibung. Die Konvention für Eigenschaften in von Sun gelieferten RTR-Dateien, mit Ausnahme der Methodennamen, ist Großschreibung des ersten Buchstabens und Kleinschreibung der restlichen Buchstaben des Namens. Methodennamen werden — ebenso wie Eigenschaftsattribute — ganz in Großbuchstaben geschrieben.


Es folgen die Ressourcentypdeklarationen in der RTR-Datei für einen Beispieldatendienst (smpl):

# Sun Cluster-Datendienst-Builder Vorlagenversion 1.0
# Registrierungsinformationen und Ressourcen für smpl
#
#HINWEIS: Schlüsselwörter unterscheiden Groß- und Kleinschreibung nicht;
#Sie können also nach Belieben groß oder klein schreiben.
#
Resource_type = "smpl";
Vendor_id = SUNW;
RT_description = "Beispieldienst auf Sun Cluster";

RT_version ="1.0";
API_version = 2;
Failover = TRUE;

Init_nodes = RG_PRIMARIES;

RT_basedir=/opt/SUNWsmpl/bin;

Start           =    smpl_svc_start;
Stop            =    smpl_svc_stop;

Validate        =    smpl_validate;
Update          =    smpl_update;

Monitor_start   =    smpl_monitor_start;
Monitor_stop    =    smpl_monitor_stop;
Monitor_check   =    smpl_monitor_check;

Tipp –

Als ersten Eintrag in der RTR-Datei müssen Sie die Resource_type-Eigenschaft deklarieren. Andernfalls schlägt die Registrierung des Ressourcentyps fehl.


Der erste Satz Ressourcentypdeklarationen liefert grundlegende Informationen über den Ressourcentyp, wie folgt:

Resource_type und Vendor_id

Geben dem Ressourcentyp einen Namen. Sie können den Ressourcentypnamen entweder durch die Resource_type-Eigenschaft alleine angeben (smpl) oder Vendor_id als Präfix mit “.” zur Abtrennung vom Ressourcentyp verwenden (SUNW.smpl), wie im Beispiel gezeigt. Wenn Sie Vendor_id verwenden, nehmen Sie das Börsensymbol für das Unternehmen, das den Ressourcentyp definiert. Der Ressourcentypname muss im Cluster einmalig sein.


Hinweis –

Als Konvention wird der Ressourcentypname (Resource_typeVendor_id) als Paketname verwendet. Paketnamen sind auf neun Zeichen beschränkt, so dass Sie die Gesamtzahl der Zeichen in diesen beiden Eigenschaften auf neun oder weniger Zeichen beschränken sollten, auch wenn RGM diese Beschränkung nicht erzwingt. Agent Builder generiert jedoch den Paketnamen explizit anhand des Ressourcentypnamens, so dass er die Beschränkung auf neun Zeichen erzwingt.


Rt_version

Identifiziert die Version des Beispieldatendienstes.

API_version

Identifiziert die API-Version. So gibt API_version = 2 zum Beispiel an, dass der Datendienst unter Sun Cluster, Version 3.0, ausgeführt wird.

Failover = TRUE

Gibt an, dass der Datendienst nicht in einer Ressourcengruppe laufen kann, die auf mehreren Knoten gleichzeitig online sein kann. Damit wird also ein Failover-Datendienst angegeben. Weitere Informationen finden Sie unter Übertragen eines Datendienstes auf einen Cluster.

Start, Stop, Validate, usw.

Geben die Pfade zu den entsprechenden Rückmeldemethodenprogrammen an, die von RGM aufgerufen werden. Diese Pfade sind relativ zu dem Verzeichnis, das durch RT_basedir angegeben wird.

Die restlichen Ressourcentypdeklarationen geben folgende Konfigurationsinformationen an:

Init_nodes = RG_PRIMARIES

Gibt an, dass RGM die Methoden Init, Boot, Fini und Validate nur auf Knoten aufruft, die als Master des Datendienstes eingesetzt werden können. Die in RG_PRIMARIES angegebenen Knoten sind eine Untermenge aller Knoten, auf denen der Datendienst installiert ist. Setzen Sie den Wert auf RT_INSTALLED_NODES, um anzugeben, dass RGM diese Methoden auf allen Knoten aufruft, auf denen der Datendienst installiert ist.

RT_basedir

Zeigt auf /opt/SUNWsample/bin als Verzeichnispfad zu vollständigen relativen Pfaden, wie den Rückmeldemethodepfaden.

Start, Stop, Validate, usw.

Geben die Pfade zu den entsprechenden Rückmeldemethodenprogrammen an, die von RGM aufgerufen werden. Diese Pfade sind relativ zu dem Verzeichnis, das durch RT_basedir angegeben wird.

Deklarieren von Ressourceneigenschaften

Genau wie die Ressourcentypeigenschaften werden auch die Ressourceneigenschaften in der RTR-Datei deklariert. Als Konvention folgen die Ressourceneigenschaftsdeklarationen in der RTR-Datei auf die Ressourcentypdeklarationen. Die Syntax für Ressourcendeklarationen ist ein Satz von Attributwertepaaren, die zwischen geschweiften Klammern stehen:


{
    Attribut = Wert;
    Attribut = Wert;
             .
             .
             .
    Attribut = Wert;
}

Für von Sun Cluster bereitgestellte Ressourceneigenschaften (so genannte systemdefinierte Eigenschaften) können Sie bestimmte Attribute in der RTR-Datei ändern. So stellt Sun Cluster zum Beispiel Methoden-Zeitüberschreitungseigenschaften für jede Rückmeldemethode bereit und gibt Standardwerte an. In der RTR-Datei können Sie andere Standardwerte festlegen.

Sie können in der RTR-Datei auch neue Ressourceneigenschaften definieren, so genannte Erweiterungseigenschaften, indem Sie einen Satz der von Sun Cluster bereitgestellten Eigenschaftsattribute verwenden. Tabelle A–4 listet die Attribute für das Ändern und Definieren von Ressourceneigenschaften auf. Erweiterungseigenschaftsdeklarationen folgen in der RTR-Datei auf die Deklarationen der systemdefinierten Eigenschaften.

Der erste Satz systemdefinierter Ressourceneigenschaften gibt die Zeitüberschreitungswerte für die Rückmeldemethoden an:

...

# Ressourceneigenschaftsdeklarationen folgen als Liste von
# Einträgen in Klammern auf die Ressourcentypdeklarationen.
# Die Eigenschaftsnamensdeklaration muss das erste Attribut
# nach der geöffneten geschweiften Klammer eines
# Ressourceneigenschaftseintrags sein.
#
# Mindest- und Standardwerte für Methoden-Zeitüberschreitungen einstellen.
{
        PROPERTY = Start_timeout;
        MIN=60;
        DEFAULT=300;
}

{
        PROPERTY = Stop_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Validate_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Update_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Start_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Stop_timeout;
        MIN=60;
        DEFAULT=300;
{
        PROPERTY = Monitor_Check_timeout;
        MIN=60;
        DEFAULT=300;
}

Der Name der Eigenschaft (PROPERTY = Wert) muss das erste Attribut in jeder Ressourceneigenschaftsdeklaration sein. Sie können Ressourceneigenschaften innerhalb der von den Eigenschaftsattributen definierten Grenzwerten in der RTR-Datei konfigurieren. So beträgt zum Beispiel der Standardwert für jede Methoden-Zeitüberschreitung im Beispiel 300 Sekunden. Der Verwalter kann diesen Wert ändern. Der im MIN-Attribut angegebene zulässige Mindestwert ist jedoch 60 Sekunden. In Tabelle A–4 erhalten Sie eine vollständige Liste der Ressourceneigenschaftsattribute.

Der nächste Satz Ressourceneigenschaften definiert Eigenschaften, die im Datendienst bestimmten Zwecken dienen.

{
        PROPERTY = Failover_mode;
        DEFAULT=SOFT;
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Thorough_Probe_Interval;
        MIN=1;
        MAX=3600;
        DEFAULT=60;
        TUNABLE = ANYTIME;
}

# Die Anzahl der Wiederholungen, die innerhalb eines bestimmten Zeitraums
# auszuführen sind, bevor geschlossen wird, dass die Anwendung auf diesem
# Knoten nicht erfolgreich gestartet werden kann.
{
        PROPERTY = Retry_Count;
        MAX=10;
        DEFAULT=2;
        TUNABLE = ANYTIME;
}

# Stellen Sie für Retry_Interval ein Vielfaches von 60 ein, da der Wert von
# Sekunden in Minuten konvertiert wird und aufrundet. So wird zum Beispiel ein Wert
# von 50 (Sekunden) in 1 Minute konvertiert. Verwenden Sie diese Eigenschaft,
# um die Zeit für die Anzahl Wiederholungen (Retry_Count) einzustellen.
{
        PROPERTY = Retry_Interval;
        MAX=3600;
        DEFAULT=300;
        TUNABLE = ANYTIME;
}

{
        PROPERTY = Network_resources_used;
        TUNABLE = WHEN_DISABLED;
        DEFAULT = "";
}
{
        PROPERTY = Scalable;
        DEFAULT = FALSE;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_policy;
        DEFAULT = LB_WEIGHTED;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_weights;
        DEFAULT = "";
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Port_list;
        TUNABLE = AT_CREATION;
        DEFAULT = ;
}

Diese Ressourceneigenschaftsdeklarationen fügen das TUNABLE-Attribut hinzu, das die Zeitpunkte einschränkt, zu denen der Systemadministrator die Werte ändern kann. AT_CREATION bedeutet, dass der Administrator den Wert nur bei Erstellung der Ressource angeben, ihn aber später nicht mehr ändern kann.

Für die meisten dieser Eigenschaften können Sie die von Agent Builder generierten Standardwerte akzeptieren, wenn kein besonderer Grund für eine Änderung vorliegt. Informationen zu diesen Eigenschaften finden Sie im Folgenden. Weiterführende Informationen sind unter Ressourceneigenschaften und der Online-Dokumentation unter r_properties(5) enthalten.

Failover_mode

Gibt an, ob RGM die Ressourcengruppe verschieben oder den Knoten abbrechen soll, wenn eine Start- oder Stop-Methode fehlschlägt.

Thorough_probe_interval, Retry_count, Retry_interval

Wird im Fehler-Monitor verwendet. Tunable entspricht Anytime, so dass ein Systemverwalter sie anpassen kann, wenn der Fehler-Monitor nicht optimal funktioniert.

Network_resources_used

Eine Liste der vom Datendienst verwendeten logischen Hostnamen bzw. gemeinsam genutzten Adressressourcen. Agent Builder deklariert diese Eigenschaft, so dass ein Systemverwalter beim Konfigurieren des Datendienstes eine Liste der Ressourcen (falls vorhanden) angeben kann.

Scalable

Wird auf FALSE eingestellt, um anzugeben, dass diese Ressource nicht die Cluster-Netzwerkfunktion (gemeinsam genutzte Adresse) verwendet. Diese Einstellung stimmt mit derjenigen der Failover-Ressourcentypeigenschaft überein, die auf TRUE eingestellt ist, um einen Failover-Dienst anzugeben. Weitere Informationen zur Verwendung dieser Eigenschaft finden Sie unter Übertragen eines Datendienstes auf einen Cluster und Implementieren von Rückmeldemethoden.

Load_balancing_policy, Load_balancing_weights

Erklärt diese Eigenschaften automatisch. Sie haben jedoch in einem Failover-Ressourcentyp keinen Verwendungszweck.

Port_list

Eine Liste mit Portnummern, die der Server abhört. Agent Builder deklariert diese Eigenschaft, so dass ein Systemverwalter beim Konfigurieren des Datendienstes eine Port-Liste angeben kann.

Deklarieren von Erweiterungseigenschaften

Am Ende der RTR-Beispieldatei befinden sich Erweiterungseigenschaften, wie in der folgenden Auflistung gezeigt.

# Erweiterungseigenschaften
#

# Der Cluster-Verwalter muss den Wert dieser Eigenschaft so einstellen,
# dass sie auf das Verzeichnis mit den von der Anwendung verwendeten
# Konfigurationsdateien zeigt. Für diese Anwendung, smpl, wird der Pfad der
# Konfigurationsdatei auf PXFS (in der Regel named.conf) angegeben.
{
        PROPERTY = Confdir_list;
        EXTENSION;
        STRINGARRAY;
        TUNABLE = AT_CREATION;
        DESCRIPTION = "Pfad(e) zum Konfigurationsverzeichnis";
}

# Die folgenden beiden Eigenschaften steuern den Neustart des Fehler-Monitors.
{
        PROPERTY = Monitor_retry_count;
        EXTENSION;
        INT;
        DEFAULT = 4;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Anzahl der laut Fehler-Monitor zulässigen PMF-Neustarts.";
}
{
        PROPERTY = Monitor_retry_interval;
        EXTENSION;
        INT;
        DEFAULT = 2;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Zeitfenster (Minuten) für Neustarts des Fehler-Monitors.";
}
# Zeitüberschreitungswert in Sekunden für das Testsignal.
{
        PROPERTY = Probe_timeout;
        EXTENSION;
        INT;
        DEFAULT = 120;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Zeitüberschreitungswert für Testsignal (Sekunden)";
}

# Untergeordnete Überwachungsebene für PMF (Option -C von pmfadm).
# Der Standardwert -1 bedeutet, dass die Option -C von pmfadm nicht verwendet
# werden soll.
# Ein Wert von 0 oder höher gibt die gewünschte Ebene für die Überwachung des
# untergeordneten Prozesses an.
{
        PROPERTY = Child_mon_level;
        EXTENSION;
        INT;
        DEFAULT = -1;
        TUNABLE = ANYTIME;
        DESCRIPTION = “ Untergeordnete Überwachungsebene für PMF";
}
# Vom Benutzer hinzugefügter Code -- BEGIN VVVVVVVVVVVV
# Vom Benutzer hinzugefügter Code -- END   ^^^^^^^^^^^^

Agent Builder erstellt einige Erweiterungseigenschaften, die für die meisten Datendienste nützlich sind:

Confdir_list

Gibt den Pfad zum Anwendungskonfigurationsverzeichnis an. Diese Informationen sind für viele Anwendungen nützlich. Der Systemverwalter kann beim Konfigurieren des Datendienstes den Pfad zu diesem Verzeichnis bereitstellen.

Monitor_retry_count, Monitor_retry_interval, Probe_timeout

Steuert die Neustarts des Fehler-Monitors selbst, nicht diejenigen des Server-Dämons.

Child_mon_level

Stellt die Ebene der von PMF ausgeführten Überwachung ein. Weitere Informationen finden Sie unter pmfadm(1M).

Sie können in dem Bereich, der durch die Kommentare Vom Benutzer hinzugefügter Code eingegrenzt ist, weitere Erweiterungseigenschaften erstellen.