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. Ressourcentypeigenschaften 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. Ressourceneigenschaften 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 Data Services Builder template version 1.0
# Registration information and resources for smpl
#
#NOTE: Keywords are case insensitive, i.e., you can use
#any capitalization style you prefer.
#
Resource_type = "smpl";
Vendor_id = SUNW;
RT_description = "Sample Service on 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 von 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. Ressourceneigenschaftsattribute 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:

...

# Resource property declarations appear as a list of bracketed
# entries after the resource type declarations. The property 
# name declaration must be the first attribute after the open
# curly bracket of a resource property entry.
#
# Set minimum and default for method timeouts.
{
        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 für jede 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. Ressourceneigenschaftsattribute enthält eine 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;
}

# The number of retries to be done within a certain period before concluding 
# that the application cannot be successfully started on this node.
{
        PROPERTY = Retry_Count;
        MAX=10;
        DEFAULT=2;
        TUNABLE = ANYTIME; 
}

# Set Retry_Interval as a multiple of 60 since it is converted from seconds
# to minutes, rounding up. For example, a value of 50 (seconds)
# is converted to 1 minute. Use this property to time the number of 
# retries (Retry_Count).
{
        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 logischer Hostnamen- bzw. gemeinsam genutzter Adressressourcen, die vom Datendienst verwendet werden. 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.

# Extension Properties
#

# The cluster administrator must set the value of this property to point to the 
# directory that contains the configuration files used by the application. 
# For this application, smpl, specify the path of the configuration file on 
# PXFS (typically named.conf).
{
        PROPERTY = Confdir_list;
        EXTENSION;
        STRINGARRAY;
        TUNABLE = AT_CREATION;
        DESCRIPTION = "The Configuration Directory Path(s)";
}

# The following two properties control restart of the fault monitor.
{
        PROPERTY = Monitor_retry_count;
        EXTENSION;
        INT;
        DEFAULT = 4;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Number of PMF restarts allowed for fault monitor.";
}
{
        PROPERTY = Monitor_retry_interval;
        EXTENSION;
        INT;
        DEFAULT = 2;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time window (minutes) for fault monitor restarts.";
}
# Time out value in seconds for the probe.
{
        PROPERTY = Probe_timeout;
        EXTENSION;
        INT;
        DEFAULT = 120;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time out value for the probe (seconds)";
}

# Child process monitoring level for PMF (-C option of pmfadm).
# Default of -1 means to not use the -C option of pmfadm.
# A value of 0 or greater indicates the desired level of child-process.
# monitoring.
{
        PROPERTY = Child_mon_level;
        EXTENSION;
        INT;
        DEFAULT = -1;
        TUNABLE = ANYTIME;
        DESCRIPTION = “Child monitoring level for PMF";
}
# User added code -- BEGIN VVVVVVVVVVVV
# User added 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.