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. Die Ressourcentypeigenschaften geben den Ressourcentyp an, seine Version, die Version der API sowie die Pfade der einzelnen Rückmeldemethoden. Der Abschnitt Ressourcentypeigenschaften enthält eine Liste mit Ressourcentypeigenschaften.

Die Ressourceneigenschaften, wie z.B. Failover_mode, Thorough_probe_interval und die Methoden-Zeitlimits definieren auch die statische Konfiguration der Ressource. Die dynamischen Ressourceneigenschaften, wie z.B. Resource_state und Status spiegeln den aktiven Zustand der verwalteten Ressource wider. Im Abschnitt Ressourceneigenschaften werden die Ressourceneigenschaften beschrieben.

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.

Verwenden Sie Agent Builder, um die RTR-Datei für Ihren Datendienst zu generieren, weil Agent Builder den Satz Eigenschaften deklariert, die für einen Datendienst nützlich und erforderlich sind. Bestimmte Eigenschaften, wie Resource_type müssen z.B. in der RTR-Datei deklariert sein. Andernfalls schlägt die Registrierung des Datendienstes fehl. Andere Eigenschaften, die zwar nicht erforderlich sind, stehen einem Cluster-Administrator nur zur Verfügung, wenn sie in der RTR-Datei deklariert sind. Einige Eigenschaften stehen zur Verfügung, ob Sie diese nun deklarieren oder nicht, weil sie von RGM definiert werden und Standardwerte bieten. Um diese Stufe der Komplexität zu vermeiden, können Sie mit Agent Builder die Generierung einer richtigen RTR-Datei sicherstellen. Später können Sie die RTR-Datei bearbeiten, um gegebenenfalls bestimmte Werte zu ändern.

Die restlichen Informationen in diesem Abschnitt stellen eine RTR-Beispieldatei dar, die von Agent Builder erstellt wurde.

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 –

Lediglich ein Cluster-Administrator kann die Ressourcentypeigenschaft Installed_nodes deklarieren. Sie können Installed_nodes nicht in der RTR-Datei deklarieren.


Die Syntax der Ressourcentypdeklarationen lautet wie folgt:

Eigenschaftsname = Wert;

Hinweis –

Die Eigenschaftsnamen der Ressourcengruppen, Ressourcen und Ressourcentypen unterliegen nicht der Groß-/Kleinschreibung. Bei der Eingabe von Eigenschaftsnamen können Sie jede beliebige Kombination aus Groß- und Kleinbuchstaben verwenden.


Es folgen 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.

Resource_type und Vendor_id

Geben dem Ressourcentyp einen Namen. Sie können den Ressourcentypnamen mit der Resource_type-Eigenschaft allein (smpl ) oder mit der Vendor_id-Eigenschaft als Präfix mit einem “.” verwenden, durch das es vom Ressourcentyp (SUNW.smpl) getrennt wird, wie im Beispiel dargestellt. Verwenden Sie als Vendor_id das Börsensymbol des Unternehmens, das den Ressourcentyp definiert. Der Ressourcentypname muss im Cluster einmalig sein.


Hinweis –

Per Konvention wird der Ressourcentypname (HerstellerIDAnwendungsname) als Paketname verwendet. Wenn Sie das Betriebssystem Solaris 9 verwenden, darf die Kombination aus Herstellername und Anwendungsname neun Zeichen überschreiten. Wenn Sie jedoch mit einer früheren Version des Betriebssystems Solaris arbeiten, darf die Kombination aus Hersteller-ID und Anwendungsname neun Zeichen nicht überschreiten, obwohl RGM diesen Grenzwert nicht erzwingt.

Agent Builder generiert andererseits in allen Fällen den Paketnamen aus dem Ressourcentypnamen, damit der Grenzwert von neun Zeichen erzwungen wird.


RT_description

Beschreibt den Ressourcentyp kurz.

RT_version

Identifiziert die Version des Beispieldatendienstes.

API_version

Identifiziert die API-Version. API_version = 2 gibt z.B. an, dass der Datendienst mit jeder beliebigen Version von Sun Cluster ausgeführt werden kann, beginnend bei Sun Cluster 3.0. API_version = 5 gibt an, dass der Datendienst für jede beliebige Version von Sun Cluster beginnend mit 3.1 9/04 installiert werden kann. API_version = 5 gibt jedoch auch an, dass der Datendienst mit keiner Version von Sun Cluster installiert werden kann, die vor 3.1 9/04 herausgegeben wurde. Diese Eigenschaft wird unter dem Eintrag API_version im Abschnitt Ressourcentypeigenschaften detailliert beschrieben.

Failover = TRUE

Gibt an, dass der Datendienst nicht in einer Ressourcengruppe ausgeführt werden kann, die an mehreren Knoten gleichzeitig online sein kann. Mit anderen Worten, diese Deklaration gibt einen Failover-Datendienst an. Diese Eigenschaft wird unter dem Eintrag Failover im Abschnitt Ressourcentypeigenschaften detailliert beschrieben.

Start, Stop und Validate

Geben die Pfade der entsprechenden Rückmeldemethodenprogramme an, die von RGM aufgerufen werden. Diese Pfade sind relativ zu dem von RT_basedir angegebenen Verzeichnis.

Die verbleibenden Ressourcentypdeklarationen liefern Konfigurationsinformationen.

Init_nodes = RG_PRIMARIES

Gibt an, dass RGM die Init-, Boot-, Fini- und Validate-Methoden nur auf Knoten aufruft, die den Datendienst bearbeiten können. Die mit 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 und Validate

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

Deklarieren von Ressourceneigenschaften

Wie im Falle von Ressourcentypeigenschaften deklarieren Sie Ressourceneigenschaften in der RTR-Datei. 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:

{
    attribute = value;
    attribute = value;
             .
             .
             .
    attribute = value;
}

Für Ressourceneigenschaften, die von Sun Cluster bereitgestellt werden und die als systemdefinierte Eigenschaften bezeichnet werden, können Sie bestimmte Attribute in der RTR-Datei ändern. Sun Cluster bietet z.B. Standardwerte für die Methodenzeitlimit-Eigenschaften der einzelnen Rückmeldemethoden. In der RTR-Datei können Sie andere Standardwerte festlegen.

Sie können in der RTR-Datei auch neue Ressourceneigenschaften definieren, die als Erweiterungseigenschaften bezeichnet werden, indem Sie einen Satz Eigenschaftsattribute von Sun Cluster verwenden. Im Abschnitt Ressourceneigenschaftsattribute werden die Attribute zum Ändern und Definieren von Ressourceneigenschaften aufgelistet. Erweiterungseigenschaftsdeklarationen folgen in der RTR-Datei auf die Deklarationen der systemdefinierten Eigenschaften.

Der erste Satz systemdefinierter Ressourceneigenschaften legt die Zeitüberschreitungswerte für die Rückmeldemethoden fest.

...

# 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 von Grenzwerten konfigurieren, die von den Eigenschaftswerten in der RTR-Datei definiert werden. So beträgt zum Beispiel der Standardwert für jedes Methoden-Zeitlimit im Beispiel 300 Sekunden. Der Cluster-Administrator kann den Wert ändern. Der zulässige Mindestwert, angegeben durch das MIN-Attribut, beträgt jedoch 60 Sekunden. Der Abschnitt 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 = ANYTIME;
        DEFAULT = ;
}

Diese Ressourceneigenschaftsdeklarationen umfassen u.a. das TUNABLE-Attribut. Dieses Attribut beschränkt die Gelegenheiten, zu denen der Cluster-Administrator den Wert der Eigenschaft, mit dem dieses Attribut verknüpft ist, ändern kann. Der Wert AT_CREATION bedeutet z.B., dass der Cluster-Administrator den Wert nur bei Erstellung der Ressource festlegen und ihn zu einem späteren Zeitpunkt nicht mehr ändern kann.

Für die meisten dieser Eigenschaften können Sie die Standardwerte so übernehmen, wie sie von Agent Builder generiert wurden, es sei denn, es liegt ein besonderer Grund vor, sie zu ändern. Informationen über diese Eigenschaften folgen. Weitere Informationen erhalten Sie im Abschnitt Ressourceneigenschaften oder in der Online-Dokumentation zu r_properties(5).

Failover_mode

Gibt an, ob RGM die Ressourcengruppe umleiten oder den Knoten im Falle eines Scheiterns einer Start- oder Stop-Methode abbrechen soll.

Thorough_probe_interval, Retry_count und Retry_interval

Wird im Fehler-Monitor verwendet. Tunable entspricht Anytime, sodass ein Cluster-Administrator sie anpassen kann, wenn der Fehler-Monitor nicht optimal funktioniert.

Network_resources_used

Eine Liste mit logischen Hostnamen oder gemeinsam genutzten Adressressourcen, die vom Datendienst verwendet werden. Agent Builder deklariert diese Eigenschaft so, dass ein Cluster-Administrator bei der Konfiguration des Datendienstes eine Liste mit Ressourcen angeben kann, falls vorhanden.

Scalable

Ist auf FALSE eingestellt, um anzugeben, dass diese Ressource die Cluster-Netzwerkoption (gemeinsam genutzte Adresse) nicht verwendet. Wenn Sie diese Eigenschaft auf FALSE setzen, muss die Ressourcentypeigenschaft Failover auf TRUE eingestellt sein, um einen Failover-Dienst anzugeben. Weitere Informationen über die Verwendung dieser Eigenschaft finden Sie im Abschnitt Übertragen eines Datendienstes auf einen Cluster und Implementieren von Rückmeldemethoden.

Load_balancing_policy und Load_balancing_weights

Deklariert diese Eigenschaften automatisch. Diese Eigenschaften finden jedoch bei einem Failover-Ressourcentyp keine Verwendung.

Port_list

Eine Liste mit Portnummern, die der Server abhört. Agent Builder deklariert diese Eigenschaft so, dass ein Cluster-Administrator bei der Konfiguration des Datendienstes eine Liste mit Ports angeben kann, falls vorhanden.

Deklarieren von Erweiterungseigenschaften

Erweiterungseigenschaften stehen am Ende der RTR-Beispieldatei.

# 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 die folgenden 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 Cluster-Administrator kann den Ort dieses Verzeichnisses bei der Konfiguration des Datendienstes angeben.

Monitor_retry_count, Monitor_retry_interval und Probe_timeout

Steuert die Neustarts des Fehler-Monitors, nicht den Server-Dämon.

Child_mon_level

Legt die Stufe der Überwachung fest, die von PMF ausgeführt werden soll. Weitere Informationen finden Sie in der Online-Dokumentation unter pmfadm(1M).

Sie können weitere Erweiterungseigenschaften in dem Bereich erstellen, der von den User added code-Kommentaren begrenzt ist.