Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Kapitel 10 Generische Datendienste

Dieses Kapitel enthält Informationen zum GDS (Generic Data Service, generischer Datendienst) und beschreibt das Verfahren zur Erstellung eines Dienstes, der den GDS verwendet. Sie können diesen Dienst mithilfe von SunPlex Agent Builder oder mithilfe der Standardverwaltungsbefehle von Sun Cluster erstellen.

Dieses Kapitel umfasst die folgenden Themen:

Überblick über den GDS

Der GDS ist ein Mechanismus zur Einrichtung von hoher Verfügbarkeit bzw. Skalierbarkeit für einfache Anwendungen mit oder ohne Netzwerkunterstützung durch Integrierung in das Sun Cluster RGM-Framework (Resource Group Management). Dieser Mechanismus erfordert keine Agentencodierung, wie dies sonst beim Einrichten von hoher Verfügbarkeit bzw. Skalierbarkeit üblich ist.

Der GDS ist ein einzelner, vorkompilierter Datendienst. Der vorkompilierte Datendienst und seine Komponenten, die Implementierungen der Rückmeldemethoden (rt_callbacks (1HA)) und die Ressourcentyp-Registrierungsdatei (rt_reg( 4)) können nicht geändert werden.

Vorkompilierter Ressourcentyp

Der Ressourcentyp des generischen Datendienstes SUNW.gds ist im SUNWscgds-Paket enthalten. Das Dienstprogramm scinstall installiert dieses Paket während der Cluster-Installation (siehe scinstall( 1M) in der Online-Dokumentation). Das SUNWscgds-Paket umfasst die folgenden Dateien:


# pkgchk -v SUNWscgds 

/opt/SUNWscgds 
/opt/SUNWscgds/bin 
/opt/SUNWscgds/bin/gds_monitor_check 
/opt/SUNWscgds/bin/gds_monitor_start 
/opt/SUNWscgds/bin/gds_monitor_stop 
/opt/SUNWscgds/bin/gds_probe 
/opt/SUNWscgds/bin/gds_svc_start 
/opt/SUNWscgds/bin/gds_svc_stop 
/opt/SUNWscgds/bin/gds_update 
/opt/SUNWscgds/bin/gds_validate 
/opt/SUNWscgds/etc 
/opt/SUNWscgds/etc/SUNW.gds

Vorteile und Nachteile der Verwendung des GDS

Der GDS verfügt gegenüber dem in SunPlex Agent Builder erzeugten Quellcodemodell (siehe scdscreate( 1HA) in der Online-Dokumentation) oder gegenüber den Standardverwaltungsbefehlen von Sun Cluster über die folgenden Vorteile:

Obwohl die Verwendung des GDS große Vorteile bietet, ist sein Einsatz in manchen Fällen ungeeignet. In den folgenden Fällen ist der GDS kein geeigneter Mechanismus:

Erstellungsmöglichkeiten für einen Dienst, der den GDS verwendet

Es gibt zwei Möglichkeiten zur Erstellung eines Dienstes, der den GDS verwendet:

GDS und SunPlex Agent Builder

Verwenden Sie SunPlex Agent Builder und wählen Sie "GDS" als Typ für den generierten Quellcode aus. Die Benutzereingabe wird für das Generieren einer Reihe von Skripts verwendet, die Ressourcen für die entsprechende Anwendung konfigurieren.

GDS und die Standardverwaltungsbefehle von Sun Cluster

Bei dieser Methode wird der vorkompilierte Datendienstcode in SUNWscgds verwendet. Sie erfordert jedoch, dass der Systemadministrator zum Erstellen und Konfigurieren der Ressource die Standardverwaltungsbefehle von Sun Cluster verwendet. Informationen hierzu finden Sie unter scrgadm( 1M) und scswitch( 1M) in der Online-Dokumentation.

Auswahl der Methode für die Erstellung eines GDS-basierten Dienstes

Wie in den Verfahren So verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines hoch verfügbaren Dienstes, der GDS verwendet und So verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines skalierbaren Dienstes, der GDS verwendet gezeigt, bedeutet die Ausgabe der geeigneten scrgadm- und scswitch-Befehle erheblichen Schreibaufwand.

Die Verwendung des GDS mit SunPlex Agent Builder vereinfacht den Prozess, da dadurch die Skripts generiert werden, welche die scrgadm- und scswitch-Befehle für Sie ausgeben.

GDS-Ereignisprotokollierung

Der GDS ermöglicht die Protokollierung wichtiger Informationen, die er an die von ihm gestarteten Skripts übergibt. Zu diesen wichtigen Informationen gehören der Status der Start-, Testsignal- und Stopp-Methoden sowie die Eigenschaftsvariablen. Sie können diese Informationen für die Diagnose von Problemen oder Fehlern in Ihren Skripts verwenden oder sie zu anderen Zwecken einsetzen.

Mithilfe der Eigenschaft Log_level, die unter Log_level-Eigenschaft beschrieben ist, können Sie die Stufe oder den Typ der Meldungen festlegen, die der GDS protokollieren soll. Mögliche Einstellungen sind NONE, INFO oder ERR.

GDS-Protokolldateien

Die folgenden beiden GDS-Protokolldateien werden im Verzeichnis /var/cluster/logs/DS/Name_der_Ressourcengruppe/Ressourcenname abgelegt:

Das folgende Beispiel zeigt die Arten von Informationen, die start_stop_log.txt enthält:

10/20/2004 12:38:05 phys-node-1 START-INFO> Start succeeded. [/home/brianx/sc/start_cmd]
10/20/2004 12:42:11 phys-node-1 STOP-INFO> Successfully stopped the application

Das folgende Beispiel zeigt die Arten von Informationen, die probe_log.txt enthält:

10/20/2004 12:38:15 phys-node-1 PROBE-INFO> The GDS monitor (gds_probe) has been started
10/20/2004 12:39:15 phys-node-1 PROBE-INFO> The probe result is 0
10/20/2004 12:40:15 phys-node-1 PROBE-INFO> The probe result is 0
10/20/2004 12:41:15 phys-node-1 PROBE-INFO> The probe result is 0

Erforderliche GDS-Eigenschaften

Wenn Ihre Anwendung keine Netzwerkunterstützung bietet, müssen Sie sowohl die Erweiterungseigenschaft Start_command als auch die Eigenschaft Port_list angeben. Wenn Ihre Anwendung Netzwerkunterstützung bietet, müssen Sie nur die Eigenschaft Port_list angeben.

Start_command-Erweiterungseigenschaft

Der Start-Befehl, den Sie in der Start_command-Erweiterungseigenschaft angeben, startet die Anwendung. Es muss sich um einen UNIX-Befehl mit Argumenten handeln, die direkt an eine Shell zum Starten der Anwendung übergeben werden können.

Port_list-Eigenschaft

Die Port_list-Eigenschaft gibt die Liste der Ports an, die die Anwendung abhört. Die Port_list-Eigenschaft muss im Start-Skript, das von SunPlex Agent Builder erstellt wird, bzw. mit dem scrgadm-Befehl angegeben werden, wenn Sie die Standardverwaltungsbefehle von Sun Cluster verwenden.

Optionale GDS-Eigenschaften

Die folgende Liste enthält optionale GDS-Eigenschaften:

Eigenschaft Network_resources_used

Der Standardwert für diese Eigenschaft ist Null. Diese Eigenschaft muss angegeben werden, wenn die Anwendung an eine oder mehrere spezifische Adressen gebunden werden muss. Wenn diese Eigenschaft ausgelassen oder als Null festgelegt wird, wird angenommen, dass die Anwendung alle Adressen abhören soll.

Vor Erstellen der GDS-Ressource muss bereits eine LogicalHostname- oder SharedAddress-Ressource konfiguriert worden sein. In Sun Cluster Data Services Planning and Administration Guide for Solaris OS finden Sie Informationen zum Konfigurieren einer LogicalHostname- bzw. SharedAddress-Ressource.

Zum Festlegen eines Wertes geben Sie einen oder mehrere Ressourcennamen an. Jeder Ressourcenname kann eine oder mehrere Instanzen von LogicalHostname oder SharedAddress enthalten. Detaillierte Informationen hierzu finden Sie in der Online-Dokumentation unter r_properties (5).

Stop_command-Eigenschaft

Der Stopp-Befehl muss die Anwendung stoppen und erst dann einen Wert zurückgeben, wenn die Anwendung vollständig gestoppt wurde. Dabei muss es sich um einen vollständigen UNIX-Befehl handeln, der direkt an eine Shell zum Stoppen der Anwendung übergeben werden kann.

Wenn die Stop_command-Erweiterungseigenschaft bereitgestellt wird, startet die GDS-Stopp-Methode den Stopp-Befehl mit 80% der Stopp-Zeitüberschreitung. Unabhängig vom Ergebnis der Ausgabe des Stopp-Befehls sendet die GDS-Stopp-Methode SIGKILL mit 15% der Stopp-Zeitüberschreitung. Die restlichen 5% der Zeit werden für Systemverwaltungsaufwand reserviert.

Wenn der Stopp-Befehl ausgelassen wird, versucht der GDS, die Anwendung unter Verwendung des in Stop_signal angegebenen Signals anzuhalten.

Probe_command-Eigenschaft

Der Testsignal-Befehl prüft in regelmäßigen Abständen die Fehlerfreiheit einer bestimmten Anwendung. Es muss sich um einen UNIX-Befehl mit Argumenten handeln, die direkt an eine Shell zum Testen der Anwendung übergeben werden können. Der Testsignal-Befehl gibt einen Beendigungsstatus von 0 zurück, wenn die Anwendung fehlerfrei läuft.

Der Beendigungsstatus des Testsignal-Befehls dient zum Feststellen, wie schwerwiegend der Fehler der Anwendung ist. Dieser Beendigungsstatus, der als Testsignal-Status bezeichnet wird, muss eine Ganzzahl zwischen 0 (Erfolg) und 100 (Totalfehlschlag) sein. Der Testsignal-Status kann auch 201 lauten. Dieser Wert bewirkt, dass für die Anwendung sofort ein Failover durchgeführt wird, es sei denn, Failover_enabled ist auf FALSE eingestellt. Der Testsignal-Status wird innerhalb des GDS-Testalgorithmus verwendet (siehe scds_fm_action(3HA) in der Online-Dokumentation), um zu entscheiden, ob die Anwendung lokal neu gestartet oder ob ein Failover auf einen anderen Knoten ausgeführt werden soll. Wenn der Beendigungsstatus 201 ist, wird für die Anwendung ein sofortiges Failover ausgeführt.

Wenn der Testsignal-Befehl ausgelassen wird, verwendet der GDS ein eigenes einfaches Testsignal, das eine Verbindung zur Anwendung an die aus der Eigenschaft Network_resources_used oder aus der Ausgabe von scds_get_netaddr_list abgeleiteten IP-Adressen herstellt (siehe scds_get_netaddr_list(3HA) in der Online-Dokumentation). Wenn die Verbindung erfolgreich ist, wird sie sofort wieder getrennt. Wenn sowohl die Verbindungsherstellung als auch die Verbindungstrennung erfolgreich verlaufen, wird davon ausgegangen, dass die Anwendung fehlerfrei läuft.


Hinweis –

Das von dem GDS bereitgestellte Testsignal soll lediglich ein einfacher Ersatz für das voll funktionsfähige anwendungsspezifische Testsignal sein.


Start_timeout-Eigenschaft

Diese Eigenschaft gibt die Startzeitüberschreitung für den Start-Befehl an. Weitere Informationen hierzu finden Sie in Start_command-Erweiterungseigenschaft. Der Standardwert für Start_timeout ist 300 Sekunden.

Stop_timeout-Eigenschaft

Diese Eigenschaft gibt die Stopp-Zeitüberschreitung für den Stopp-Befehl an. Weitere Informationen hierzu finden Sie in Stop_command-Eigenschaft. Der Standardwert für Stop_timeout ist 300 Sekunden.

Probe_timeout-Eigenschaft

Diese Eigenschaft gibt den Zeitüberschreitungswert für den Testsignal-Befehl an. Weitere Informationen hierzu finden Sie in Probe_command-Eigenschaft. Der Standardwert für Probe_timeout ist 30 Sekunden.

Eigenschaft Child_mon_level


Hinweis –

Bei Verwendung der Standardverwaltungsbefehle von Sun Cluster können Sie diese Option verwenden. Bei Verwendung von SunPlex Agent Builder kann diese Option jedoch nicht eingesetzt werden.


Diese Eigenschaft ermöglicht die Steuerung der Prozesse, die mittels PMF (Process Monitor Facility) überwacht werden. Sie hält die Ebene fest, bis zu der die verzweigten untergeordneten Prozesse überwacht werden. Diese Eigenschaft hat dieselbe Wirkung wie das -C-Argument für den pmfadm-Befehl. Informationen hierzu finden Sie in der Online-Dokumentation unter pmfadm(1M).

Wenn diese Eigenschaft ausgelassen bzw. der Standardwert auf -1 gesetzt wird, hat dies die gleiche Wirkung wie das Auslassen der Option -C für den pmfadm-Befehl. Das bedeutet, dass alle untergeordneten Prozesse und deren Folgeprozesse überwacht werden.

Failover_enabled-Eigenschaft

Diese boolesche Erweiterungseigenschaft steuert das Failover-Verhalten der Ressource. Wenn die Erweiterungseigenschaft auf true eingestellt wird, wird für die Anwendung ein Failover ausgeführt, wenn die Anzahl der Neustarts den Wert von retry_count innerhalb der Anzahl Sekunden aus retry_interval überschreitet.

Wenn diese Eigenschaft auf false eingestellt ist, startet die Anwendung nicht neu bzw. führt ein Failover auf einem anderen Knoten aus, wenn die Anzahl der Neustarts den Wert von retry_count innerhalb der Anzahl Sekunden aus retry_interval übersteigt.

Diese Eigenschaft kann verwendet werden, um zu verhindern, dass die Anwendungsressource ein Failover der Ressourcengruppe einleitet. Der Standardwert für diese Eigenschaft ist true.

Stop_signal-Eigenschaft

Der GDS verwendet den Wert dieser Ganzzahl-Erweiterungseigenschaft, um das Signal zu bestimmen, das für das Stoppen der Anwendung über PMF verwendet wird. Eine Liste der Ganzzahlwerte, die angegeben werden können, finden Sie in der Online-Dokumentation unter signal( 3HEAD). Der Standardwert ist 15 ( SIGTERM).

Log_level-Eigenschaft

Diese Eigenschaft gibt die Stufe, den Typ oder die Diagnosemeldungen an, die vom GDS protokolliert werden. Mögliche Werte für diese Eigenschaft sind NONE, INFO oder ERR. Wenn Sie NONE angeben, werden vom GDS keine Diagnosemeldungen protokolliert. Bei Angabe von INFO werden nur informative Meldungen protokolliert. Und wenn Sie ERR angeben, werden nur Fehlermeldungen protokolliert. Der GDS protokolliert standardmäßig keine Diagnosemeldungen (NONE).

Verwenden von SunPlex Agent Builder zum Erstellen eines Dienstes, der GDS verwendet

Sie können SunPlex Agent Builder zur Erstellung des Dienstes einsetzen, der den GDS verwendet. SunPlex Agent Builder wird in Kapitel 9, SunPlex Agent Builder genauer beschrieben.

Erstellen und Konfigurieren der Skripts

So starten Sie SunPlex Agent Builder und erstellen Sie die Skripts
  1. Nehmen Sie Superuser-Status oder eine entsprechende administrative Rolle an.

  2. Starten Sie SunPlex Agent Builder.


    # /usr/cluster/bin/scdsbuilder
    
  3. Der Bildschirm "Create" von SunPlex Agent Builder wird angezeigt.

    Dialogfeld mit dem Titel "SunPlex Agent Builder", das den Bildschirm "Create" von Agent Builder anzeigt
  4. Geben Sie den Herstellernamen ein.

  5. Geben Sie den Anwendungsnamen ein.


    Hinweis –

    Die Kombination aus Herstellernamen und Anwendungsnamen darf neun Zeichen nicht überschreiten. Sie dient als Name für das Paket der Skripts.


  6. Gehen Sie zum Arbeitsverzeichnis.

    Anstatt den Pfad einzugeben, können Sie das Verzeichnis auch über das Pulldown-Menü "Browse" auswählen.

  7. Wählen Sie aus, ob der Datendienst "Scalable" oder "Failover" ist.

    Sie müssen "Network Aware" nicht auswählen, da die Netzwerkunterstützung bei Erstellung des GDS standardmäßig aktiviert ist.

  8. Wählen Sie "GDS" aus.

  9. (Optional) Ändern Sie die RT-Version vom angezeigten Standardwert in einen anderen Wert.


    Hinweis –

    Im Feld "RT Version" dürfen die folgenden Zeichen nicht verwendet werden: Leerzeichen, Tabulator, Schrägstrich (/), umgekehrter Schrägstrich (\), Sternchen (*), Fragezeichen (?), Komma (,), Strichpunkt (;), linke eckige Klammer ([) oder rechte eckige Klammer (]).


  10. Klicken Sie auf "Fertig stellen".

    Agent Builder erstellt die Skripts. Das Ergebnis der Erstellung des Dienstes wird im Fenster "Output Log" angezeigt.

    Dialogfeld, das den Bildschirm "Create" nach Eingabe von Informationen anzeigt

    "Create" ist abgeblendet dargestellt. Nun können Sie die Skripts konfigurieren.

  11. Klicken Sie auf "Next".

    Der Bildschirm "Configuration" wird angezeigt.

So konfigurieren Sie die Skripts

Nach Erstellung der Skripts müssen Sie den neuen Dienst konfigurieren.

  1. Geben Sie den Speicherort des Start-Befehls ein oder klicken Sie auf "Browse", um nach dem Start-Befehl zu suchen.

    Sie können auch Eigenschaftsvariablen festlegen. Eine Beschreibung der Eigenschaftsvariablen finden Sie unter Eigenschaftsvariablen.

  2. (Optional) Geben Sie den Stopp-Befehl ein oder klicken Sie auf "Browse", um den Stopp-Befehl zu suchen.

    Sie können auch Eigenschaftsvariablen festlegen. Eine Beschreibung der Eigenschaftsvariablen finden Sie unter Eigenschaftsvariablen.

  3. (Optional) Geben Sie den Testsignal-Befehl ein oder klicken Sie auf "Browse", um den Testsignal-Befehl zu suchen.

    Sie können auch Eigenschaftsvariablen festlegen. Eine Beschreibung der Eigenschaftsvariablen finden Sie unter Eigenschaftsvariablen.

  4. (Optional) Geben Sie die Zeitüberschreitungswerte für die Start-, Stopp- und Testsignal-Befehle an.

  5. Klicken Sie auf "Configure".

    Agent Builder beginnt mit dem Konfigurieren der Skripts.


    Hinweis –

    Agent Builder verkettet den Herstellernamen und den Anwendungsnamen zur Erstellung des Paketnamens.


    Ein Paket für Skripts wird erstellt und im folgenden Verzeichnis abgelegt:


    Arbeitsverzeichnis/HerstellernameAnwendung/pkg
    

    Zum Beispiel: /export/wdir/NETapp/pkg

  6. Melden Sie sich als Superbenutzer an und installieren Sie das fertige Paket auf allen Knoten des Clusters.


    # cd /export/wdir/NETapp/pkg
    # pkgadd -d . NETapp
    

  7. Die folgenden Dateien werden von pkgadd installiert:


    /opt/NETapp
    /opt/NETapp/README.app
    /opt/NETapp/man
    /opt/NETapp/man/man1m
    /opt/NETapp/man/man1m/removeapp.1m
    /opt/NETapp/man/man1m/startapp.1m
    /opt/NETapp/man/man1m/stopapp.1m
    /opt/NETapp/man/man1m/app_config.1m
    /opt/NETapp/util
    /opt/NETapp/util/removeapp
    /opt/NETapp/util/startapp
    /opt/NETapp/util/stopapp
    /opt/NETapp/util/app_config


    Hinweis –

    Die Online-Dokumentation und Skriptnamen entsprechen dem zuvor eingegebenen Anwendungsnamen, mit vorangestelltem Skriptnamen (zum Beispiel startapp).


    Zum Anzeigen der Online-Dokumentation müssen Sie den Pfad zu dieser Dokumentation angeben. Zum Anzeigen der Online-Dokumentationsseite startapp(1M) beispielsweise geben Sie Folgendes ein:


    # man -M /opt/NETapp/man startapp
    
  8. Konfigurieren Sie die Ressourcen auf einem Knoten des Clusters, und starten Sie die Anwendung.


    # /opt/NETapp/util/startapp -h logischer_Hostname -p Port-_und_Protokollliste 
    

    Die Argumente für das startapp-Skript sind je nach Ressourcentyp unterschiedlich: Failover oder Scalable. Prüfen Sie die angepasste Online-Dokumentation oder führen Sie das startapp-Skript ohne Argumente aus, um eine Syntaxanweisung anzuzeigen.


    # /opt/NETapp/util/startapp
     Der Ressourcenname von LogicalHostname bzw. SharedAddress muss
     angegeben werden. 
    Für Failover-Dienste: 
     Syntax: startapp -h logischer_Hostname 
              -p Port-_und_Protokollliste 
              [-n IPIM-Gruppe/Adapterliste] 
     Für Scalable-Dienste: 
     Syntax: startapp -h gemeinsam_genutzer_Adressname 
              -p Port-_und_Protokollliste 
              [-l Lastausgleichsverfahren]  
              [-n IPMP-Gruppe/Adapterliste] 
              [-w Lastausgleichsgewichtung]

Ausgabe von SunPlex Agent Builder

SunPlex Agent Builder generiert basierend auf Ihren Eingaben während der Paketerstellung drei Skripts und eine Konfigurationsdatei. Die Konfigurationsdatei gibt die Namen der Ressourcengruppe und des Ressourcentyps an.

Die Skripts sind:

Diese Skripts haben dieselbe Schnittstelle und das gleiche Verhalten wie die Dienstprogrammskripts, die von SunPlex Agent Builder für nicht-GDS-basierte Agenten generiert werden. Die Skripts werden in einem Solaris-Paket zusammengestellt, das auf mehreren Clustern wiederverwendet werden kann.

Sie können die Konfigurationsdatei anpassen, um eigene Namen für die Ressourcengruppen oder andere Parameter anzugeben, die normalerweise über den scrgadm-Befehl eingegeben werden. Wenn Sie die Skripts nicht anpassen, stellt SunPlex Agent Builder Standardwerte für die scrgadm-Parameter bereit.

Verwenden der Standardverwaltungsbefehle von Sun Cluster zum Erstellen eines Dienstes, der GDS verwendet

In diesem Abschnitt wird beschrieben, wie Parameter für den GDS eingegeben werden. Zur Verwendung und Verwaltung des GDS werden die bestehenden Sun Cluster-Verwaltungsbefehle wie scrgadm und scswitch eingesetzt.

Es ist nicht erforderlich, die in diesem Abschnitt aufgeführten Verwaltungsbefehle auf niedriger Ebene einzugeben, wenn die Skripts angemessene Funktionalität bereitstellen. Sie können jedoch die Verwaltungsbefehle auf niedriger Ebene eingeben, wenn eine feinere Steuerung der GDS-basierten Ressource erforderlich ist. Diese Befehle werden von den Skripts ausgeführt.

So verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines hoch verfügbaren Dienstes, der GDS verwendet
  1. Nehmen Sie Superuser-Status oder eine entsprechende administrative Rolle an.

  2. Registrieren Sie den Ressourcentyp SUNW.gds.


    # scrgadm -a -t SUNW.gds
    
  3. Erstellen Sie die Ressourcengruppe, welche die LogicalHostname -Ressource und den Failover-Dienst selbst enthält.


    # scrgadm -a -g haapp_rg
    
  4. Erstellen Sie die Ressource für die LogicalHostname-Ressource.


    # scrgadm -a -L -g haapp_rs -l hhead
    
  5. Erstellen Sie die Ressource für den Failover-Dienst selbst.


    # scrgadm -a -j haapp_rs -g haapp_rg -t SUNW.gds \
             -y Scalable=false -y Start_timeout=120 \
             -y Stop_timeout=120 -x Probe_timeout=120 \
             -y Port_list="2222/tcp" \
             -x Start_command="/export/ha/appctl/start" \
             -x Stop_command="/export/ha/appctl/stop" \    
             -x Probe_command="/export/app/bin/probe" \
             -x Child_mon_level=0 -y Network_resources_used=hhead \
             -x Failover_enabled=true -x Stop_signal=9
    
  6. Bringen Sie die Ressourcengruppe haapp_rg online.


    # scswitch -Z -g haapp_rg
    
So verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines skalierbaren Dienstes, der GDS verwendet
  1. Nehmen Sie Superuser-Status oder eine entsprechende administrative Rolle an.

  2. Registrieren Sie den Ressourcentyp SUNW.gds.


    # scrgadm -a -t SUNW.gds
    
  3. Erstellen Sie die Ressourcengruppe für die SharedAddress-Ressource.


    # scrgadm -a -g sa_rg
    

  4. Erstellen Sie die SharedAddress-Ressource auf sa_rg.


    # scrgadm -a -S -g sa_rg -l hhead
    
  5. Erstellen Sie die Ressourcengruppe für den Scalable-Dienst.


    # scrgadm -a -g app_rg -y Maximum_primaries=2 \
          -y Desired_primaries=2 -y RG_dependencies=sa_rg
    
  6. Erstellen Sie die Ressourcengruppe für den Scalable-Dienst selbst.


    # scrgadm -a -j app_rs -g app_rg -t SUNW.gds \
           -y Scalable=true -y Start_timeout=120 \ 
           -y Stop_timeout=120 -x Probe_timeout=120 \
           -y Port_list="2222/tcp" \
           -x Start_command="/export/app/bin/start" \
           -x Stop_command="/export/app/bin/stop" \
           -x Probe_command="/export/app/bin/probe" \
           -x Child_mon_level=0 -y Network_resource_used=hhead \
           -x Failover_enabled=true -x Stop_signal=9 
    
  7. Bringen Sie die Ressourcengruppe, welche die Netzwerkressourcen enthält, online.


     # scswitch -Z -g sa_rg
    
  8. Bingen Sie die Ressourcengruppe app_rg online.


    # scswitch -Z -g app_rg
    

Befehlszeilenschnittstelle für SunPlex Agent Builder

SunPlex Agent Builder verfügt auch über eine Befehlszeilenschnittstelle, welche dieselbe Funktionalität bietet wie die grafische Benutzeroberfläche. Diese Schnittstelle besteht aus den Befehlen scdscreate und scdsconfig. Informationen hierzu finden Sie in der Online-Dokumentation unter scdscreate (1HA) und scdsconfig(1HA).

So erstellen Sie einen Dienst, der GDS verwendet, mit der Befehlszeilenversion von Agent Builder

In diesem Abschnitt wird beschrieben, wie Sie die unter Verwenden von SunPlex Agent Builder zum Erstellen eines Dienstes, der GDS verwendet gezeigten Schritte mithilfe der Befehlszeilenschnittstelle ausführen können.

  1. Nehmen Sie Superuser-Status oder eine entsprechende administrative Rolle an.

  2. Erstellen Sie den Dienst.

    Geben Sie für einen Failover-Dienst folgenden Befehl ein:


    # scdscreate -g -V NET -T app -d /export/Arbeitsverzeichnis
    

    Geben Sie für einen Scalable-Dienst folgenden Befehl ein:


    # scdscreate -g -s -V NET -T app -d /export/Arbeitsverzeichnis
    

    Hinweis –

    Der Parameter -d ist optional. Wenn Sie diesen Parameter nicht angeben, wird das aktuelle Verzeichnis zum Arbeitsverzeichnis.


  3. Konfigurieren Sie den Dienst.


    # scdsconfig -s "/export/app/bin/start" -t "/export/app/bin/stop" \
    -m "/export/app/bin/probe" -d /export/Arbeitsverzeichnis
    

    Sie können auch Eigenschaftsvariablen festlegen. Eine Beschreibung der Eigenschaftsvariablen finden Sie unter Eigenschaftsvariablen.


    Hinweis –

    Nur der start-Befehl ist erforderlich. Alle anderen Parameter sind optional.


  4. Installieren Sie das fertige Paket auf allen Knoten des Clusters.


    # cd /export/wdir/NETapp/pkg
    # pkgadd -d . NETapp
    

  5. Die folgenden Dateien werden von pkgadd installiert:


    /opt/NETapp
    /opt/NETapp/README.app
    /opt/NETapp/man
    /opt/NETapp/man/man1m
    /opt/NETapp/man/man1m/removeapp.1m
    /opt/NETapp/man/man1m/startapp.1m
    /opt/NETapp/man/man1m/stopapp.1m
    /opt/NETapp/man/man1m/app_config.1m
    /opt/NETapp/util
    /opt/NETapp/util/removeapp
    /opt/NETapp/util/startapp
    /opt/NETapp/util/stopapp
    /opt/NETapp/util/app_config


    Hinweis –

    Die Online-Dokumentation und Skriptnamen entsprechen dem zuvor eingegebenen Anwendungsnamen, mit vorangestelltem Skriptnamen (zum Beispiel startapp).


    Zum Anzeigen der Online-Dokumentation müssen Sie den Pfad zu dieser Dokumentation angeben. Zum Anzeigen der Online-Dokumentationsseite startapp(1M) beispielsweise geben Sie Folgendes ein:


    # man -M /opt/NETapp/man startapp
    
  6. Konfigurieren Sie die Ressourcen auf einem Knoten des Clusters, und starten Sie die Anwendung.


    # /opt/NETapp/util/startapp -h logischer_Hostname -p Port-_und_Protokollliste 
    

    Die Argumente für das startapp-Skript sind je nach Ressourcentyp unterschiedlich: Failover oder Scalable. Prüfen Sie die angepasste Online-Dokumentation oder führen Sie das startapp-Skript ohne Argumente aus, um eine Syntaxanweisung anzuzeigen.


    # /opt/NETapp/util/startapp
     Der Ressourcenname von LogicalHostname bzw. SharedAddress muss
     angegeben werden. 
     Für Failover-Dienste: 
     Syntax: startapp -h logischer_Hostname 
              -p Port-_und_Protokollliste 
              [-n IPIM-Gruppe/Adapterliste] 
     Für Scalable-Dienste: 
     Syntax: startapp -h gemeinsam_genutzer_Adressname 
              -p Port-_und_Protokollliste 
              [-l Lastausgleichsverfahren]  
              [-n IPMP-Gruppe/Adapterliste] 
              [-w Lastausgleichsgewichtung]