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 erstellen diesen Dienst, indem Sie entweder SunPlex Agent Builder oder die Sun Cluster-Verwaltungsbefehle verwenden.

Dieses Kapitel behandelt die folgenden Themen:

Konzepte für den generischen Datendienst

Der GDS ist ein Mechanismus, um einfache Anwendungen mit und ohne Netzwerkunterstützung hoch verfügbar oder skalierbar zu machen, indem sie auf das Sun Cluster-RGM-Framework aufgesetzt werden (Resource Group Management, Ressourcengruppenverwaltung). Bei diesem Mechanismus müssen Sie keinen Datendienst kodieren, was in der Regel erforderlich ist, wenn Sie eine Anwendung hoch verfügbar oder skalierbar machen möchten.

Der GDS ist ein einzelner, vorkompilierter Datendienst. Sie können den vorkompilierten Datendienst und seine Komponenten, die Rückmeldemethodenimplementierung (rt_callbacks) und die Ressourcentyp-Registrierungsdatei (rt_reg) nicht ändern.

In diesem Abschnitt werden die folgenden Themen behandelt:

Vorkompilierter Ressourcentyp

Der Ressourcentyp des generischen Datendienstes SUNW.gds ist im Lieferumfang des SUNWscgds-Pakets enthalten. Dieses Paket wird während der Cluster-Installation vom Dienstprogramm scinstall installiert. Weitere Informationen finden Sie in der Online-Dokumentation zu scinstall(1M). 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

Die Verwendung des GDS hat gegenüber Agent Builder-Quellcode (siehe Online-Dokumentation zu scdscreate(1HA)) oder Sun Cluster-Verwaltungsbefehlen folgende Vorteile :

Obwohl die Verwendung des GDS viele Vorteile hat, ist der GDS für folgende Fälle nicht der richtige Mechanismus:

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

Es gibt zwei Möglichkeiten zum Erstellen eines Dienstes, der den GDS verwendet:

GDS und Agent Builder

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

GDS und Sun Cluster-Verwaltungsbefehle

Bei dieser Methode wird der vorkompilierte Datendienstcode in SUNWscgds verwendet. Der Cluster-Administrator muss jedoch die Sun Cluster-Verwaltungsbefehle zum Erstellen und Konfigurieren der Ressource verwenden. Weitere Informationen finden Sie in der Online-Dokumentation zu scrgadm(1M) und scswitch(1M).

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

Es ist ein erheblicher Eingabeaufwand erforderlich, um die richtigen scrgadm- und scswitch-Befehle auszuführen. Weitere Informationen finden Sie in den Abschnitten So verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines hoch verfügbaren Dienstes, der den GDS verwendet. und So verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines Scalable-Dienstes, der den GDS verwendet..

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

GDS-Ereignisprotokollierung

Mit dem GDS können Sie die relevanten Informationen protokollieren, die vom GDS an die vom GDS gestarteten Skripts übergeben werden. Diese Informationen umfassen den 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 Skripten verwenden oder sie für andere Zwecke anwenden.

Sie verwenden die Log_level-Eigenschaft, die unter Log_level-Eigenschaft beschrieben wird, um die Stufe oder den Typ der Meldungen festzulegen, die vom GDS protokolliert werden sollen. Sie können NONE, INFO oder ERRangeben.

GDS-Protokolldateien

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

Folgendes Beispiel zeigt die Arten von Informationen, die in start_stop_log.txt enthalten sind:

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

Folgendes Beispiel zeigt die Arten von Informationen, die in probe_log.txt enthalten sind:

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

Erforderliche GDS-Eigenschaften

Wenn Ihre Anwendung Netzwerkunterstützung bietet, müssen Sie sowohl die Erweiterungseigenschaft Start_command und Port_list angeben. Wenn Ihre Anwendung keine Netzwerkunterstützung bietet, müssen Sie lediglich die Erweiterungseigenschaft Start_command angeben.

Start_command-Erweiterungseigenschaft

Der start-Befehl, den Sie in der Erweiterungseigenschaft Start_command angeben, startet die Anwendung. Dabei muss es sich um einen UNIX-Befehl zusammen mit den entsprechenden Argumenten handeln, die direkt an eine Shell übergeben werden können, um die Anwendung zu starten.

Port_list-Eigenschaft

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

Optionale GDS-Eigenschaften

Optionale GDS-Eigenschaften sind u.a. systemdefinierte Eigenschaften und Erweiterungseigenschaften. Bei den systemdefinierten Eigenschaften handelt es sich um einen von Sun Cluster bereitgestellten Standardsatz von Eigenschaften. Eigenschaften, die in der RTR-Datei definiert sind, werden als Erweiterungseigenschaften bezeichnet. Im Folgenden erhalten Sie eine Liste optionaler 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 Erstellung der GDS-Ressource muss bereits eine LogicalHostname- oder SharedAddress-Ressource konfiguriert worden sein. Im Sun Cluster Data Services Planning and Administration Guide for Solaris OS finden Sie Informationen zum Konfigurieren einer LogicalHostname- oder SharedAddress-Ressource.

Zum Festlegen eines Wertes geben Sie einen oder mehrere Ressourcennamen an. Jeder Ressourcenname kann einen oder mehrere LogicalHostname bzw. eine oder mehrere SharedAddress-Ressourcen enthalten. Weitere Informationen finden Sie in der Online-Dokumentation zu r_properties(5).

Stop_command-Eigenschaft

Der Stopp-Befehl muss die Anwendung beenden und wird nur zurückgegeben, nachdem die Anwendung vollständig beendet wurde. Bei diesem Befehl muss es sich um einen vollständigen UNIX-Befehl handeln, der direkt an die Shell übergeben werden kann, um die Anwendung zu beenden.

Wenn die Stop_command-Erweiterungseigenschaft angegeben ist, startet Stopp-Methode des GDS den Stop-Befehl mit 80 Prozent der Stopp-Zeitüberschreitung. Unabhängig vom Ergebnis der Ausgabe des Stopp-Befehls sendet die Stopp-Methode des GDS 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 mit dem unter Stop_signal angegebenen Signal zu stoppen.

Probe_command-Eigenschaft

Der Testsignal-Befehl prüft den Zustand einer bestimmten Anwendung in regelmäßigen Zeitabständen. Dabei muss es sich um einen UNIX-Befehl zusammen mit den entsprechenden Argumenten handeln, der zum Testen der Anwendung direkt an eine Shell übergeben werden kann. Der Testsignal-Befehl wird mit einem Beendigungsstatus von 0 ausgegeben, wenn die Anwendung ordnungsgemäß ausgeführt wird.

Der Beendigungsstatus des Testsignal-Befehls wird verwendet, um den Schweregrad des Anwendungsfehlers zu ermitteln. Dieser Beendigungsstatus, der als Testsignal-Status bezeichnet wird, muss eine Ganzzahl zwischen 0 (Erfolg) und 100 (Totalfehlschlag) sein. Beim Testsignal-Status kann es sich auch um einen besonderen Wert von 201 handeln, der zu einem unmittelbaren Anwendungs-Failover führt, wenn Failover_enabled nicht auf FALSE gesetzt ist. Der GDS-Testsignal-Algorithmus verwendet den Testsignal-Status, um zu ermitteln, ob die Anwendung lokal neu gestartet werden soll oder ob ein Failover erfolgen soll. Weitere Informationen finden Sie in der Online-Dokumentation zu scds_fm_action(3HA). 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. Dieses Testsignal stellt eine Verbindung mit der Anwendung an dem Satz von IP-Adressen her, der von der Network_resources_used-Eigenschaft oder von der Ausgabe der scds_get_netaddr_list()-Funktion abgeleitet wird. Weitere Informationen finden Sie in der Online-Dokumentation zu scds_get_netaddr_list(3HA). Wenn die Verbindung erfolgreich ist, wird die Verbindung sofort getrennt. Wenn sowohl die Verbindung als auch die Verbindungstrennung erfolgreich sind, sollte die Anwendung ordnungsgemäß ausgeführt werden.


Hinweis –

Das Testsignal des GDS ist nur ein einfacher Ersatz für das anwendungsspezifische Testsignal mit vollem Funktionsumfang.


Start_timeout-Eigenschaft

Diese Eigenschaft legt die Start-Zeitüberschreitung für den Start-Befehl fest. Weitere Informationen finden Sie im Abschnitt 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 finden Sie im Abschnitt Stop_command-Eigenschaft. Der Standardwert für Stop_timeout ist 300 Sekunden.

Probe_timeout-Eigenschaft

Diese Eigenschaft legt den Zeitüberschreitungswert für den Testsignalbefehl fest. Weitere Informationen finden Sie im Abschnitt Probe_command-Eigenschaft. Der Standardwert für Probe_timeout ist 30 Sekunden.

Child_mon_level-Eigenschaft


Hinweis –

Wenn Sie mit Sun Cluster-Verwaltungsbefehlen arbeiten, können Sie die Child_mon_level-Eigenschaft verwenden. Wenn Sie mit Agent Builder arbeiten, können Sie diese Eigenschaft nicht verwenden.


Mit dieser Eigenschaft können die Prozesse gesteuert werden, die von Process Monitor Facility (PMF) überwacht werden. Diese Eigenschaft gibt die Ebene an, bis zu der die untergeordneten Prozesse überwacht werden. Diese Eigenschaft hat dieselbe Wirkung wie das -C-Argument für den pmfadm-Befehl. Weitere Informationen finden Sie in der Online-Dokumentation zu pmfadm(1M).

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

Failover_enabled-Eigenschaft

Diese boolesche Erweiterungseigenschaft steuert das Failover-Verhalten der Ressource. Wenn diese Erweiterungseigenschaft auf TRUE gesetzt ist, findet ein Anwendungs-Failover statt, sobald die Anzahl der Neustarts den Wert für Retry_count innerhalb der unter Retry_interval angegebenen Anzahl Sekunden überschreitet.

Wenn diese Eigenschaft auf FALSE gesetzt ist, startet die Anwendung nicht neu bzw. führt keinen Failover an einen anderen Knoten aus, wenn die Anzahl der Neustarts den Wert von Retry_count innerhalb der unter Retry_interval angegebenen Anzahl Sekunden überschreitet.

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

Stop_signal-Eigenschaft

Der GDS verwendet den Wert dieser Ganzzahl-Erweiterungseigenschaft, um das Signal zu ermitteln, das zum Stoppen der Anwendung mit der PMF verwendet wird. Eine Liste der Ganzzahlwerte, die Sie angeben können, finden Sie in der Online-Dokumentation zu signal(3HEAD). Der Standardwert lautet 15 (SIGTERM ).

Log_level-Eigenschaft

Diese Eigenschaft gibt die Stufe oder den Typ der Diagnosemeldungen an, die vom GDS protokolliert werden. Für diese Eigenschaft können Sie NONE, INFO oder ERR angeben. Wenn Sie NONE angeben, werden vom GDS keine Diagnosemeldungen protokolliert. Wenn Sie INFO angeben, werden lediglich Informationsmeldungen protokolliert. Wenn Sie ERR festlegen, werden lediglich Fehlermeldungen protokolliert. Der GDS protokolliert standardmäßig keine Diagnosemeldungen (NONE).

Erstellen eines Dienstes, der den GDS verwendet, mit Agent Builder

Mit Agent Builder können Sie den Dienst erstellen, der den GDS verwendet. Agent Builder wird detailliert in Kapitel 9, SunPlex Agent Builder, beschrieben.

Erstellen und Konfigurieren von GDS-basierten Skripts

ProcedureStarten von Agent Builder und Erstellen von Skripts

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

  2. Starten von Agent Builder.


    # /usr/cluster/bin/scdsbuilder
    
  3. Der Bildschirm "Create" von 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 –

    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 von Solaris OS arbeiten, darf die Kombination aus Herstellername und Anwendungsname keinesfalls länger als neun Zeichen sein. Diese Kombination wird als Name des Skriptpakets verwendet.


  6. Wechseln Sie in das Arbeitsverzeichnis.

    Sie können das Dropdown-Menü "Browse" verwenden, um das Verzeichnis auszuwählen, anstatt den Pfad einzugeben.

  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 der Standardwert ist.

  8. Wählen Sie "GDS" aus.

  9. (Optional) Ändern Sie gegebenenfalls den angezeigten Standardwert der RT-Version.


    Hinweis –

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


  10. Klicken Sie auf "Create".

    Agent Builder erstellt die Skripts. Die Ergebnisse werden im Bereich "Output Log" angezeigt.

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

    Beachten Sie, dass die Schaltfläche "Create" abgeblendet ist. Nun können Sie die Skripts konfigurieren.

  11. Klicken Sie auf "Weiter".

    Der Bildschirm "Configure" wird angezeigt.

    Dialogfeld, das den Bildschirm "Configure" zeigt

ProcedureSo konfigurieren Sie die Skripts

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

Schritte
  1. Geben Sie den Ablageort des Start-Befehls ein oder klicken Sie auf "Browse", um den Startbefehl zu suchen.

    Sie können auch Eigenschaftsvariablen festlegen. Die Eigenschaftsvariablen werden im Abschnitt Verwenden von Eigenschaftsvariablen beschrieben.

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

    Sie können auch Eigenschaftsvariablen festlegen. Die Eigenschaftsvariablen werden im Abschnitt Verwenden von Eigenschaftsvariablen beschrieben.

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

    Sie können auch Eigenschaftsvariablen festlegen. Die Eigenschaftsvariablen werden im Abschnitt Verwenden von Eigenschaftsvariablen beschrieben.

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

  5. Klicken Sie auf "Configure".

    Agent Builder konfiguriert die Skripts.


    Hinweis –

    Agent Builder kombiniert den Hersteller- und Anwendungsnamen, um damit den Paketnamen zu erstellen.


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

    Arbeitsverz/Herstellername-Anwendung/pkg
    

    Zum Beispiel: /export/wdir/NETapp/pkg

  6. Melden Sie sich an jedem Knoten des Clusters als Superuser an oder übernehmen Sie eine entsprechende Rolle.

  7. Installieren Sie auf jedem Knoten im Cluster das vollständige Paket.

    • Geben Sie für Solaris 10 OS in einer Zonenumgebung als globaler Administrator in der globalen Zone folgenden Befehl ein:


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

      Das von Ihnen angegebene Paket wird zur globalen Zone hinzugefügt, vorausgesetzt, der Inhalt des Pakets wirkt sich nicht auf einen Bereich der globalen Zone aus, die mit einer nicht-globalen Zone gemeinsam genutzt wird.

      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
    • Für jede andere Version von Solaris OS oder Solaris 10 OS in einer Umgebung ohne Zonen geben Sie folgenden Befehl ein:


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

      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-Dokumentationsseiten und Skriptnamen entsprechen dem Anwendungsnamen, den Sie zuvor im Bildschirm "Create" eingegeben haben, wobei der Skriptname (zum Beispiel startapp) vorangestellt wird.


  8. Konfigurieren Sie die Ressourcen auf einem Knoten des Clusters, und starten Sie die Anwendung.


    # /opt/NETapp/util/startapp -h logicalhostname -p port-and-protocol-list
    

    Die Argumente für das startapp-Skript sind je nach Ressourcentyp unterschiedlich: Failover oder Scalable.


    Hinweis –

    Um die Befehlszeile zu ermitteln, die Sie eingeben müssen, schlagen Sie in der Online-Dokumentation nach oder führen Sie das Skript startapp ohne Argumente aus, um eine Benutzeranweisung anzuzeigen.

    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
    

    Zum Anzeigen einer Benutzeranweisung geben Sie Folgendes ein:


    # /opt/NETapp/util/startapp
     The resource name of LogicalHostname or SharedAddress must be
     specified. For failover services:
     Usage: startapp -h logicalhostname
              -p port-and-protocol-list
              [-n ipmpgroup-adapter-list]
     For scalable services:
     Usage: startapp -h shared-address-name
              -p port-and-protocol-list
              [-l load-balancing-policy]
              [-n ipmpgroup/adapter-list]
              [-w load-balancing-weights]

Ausgabe von Agent Builder

Agent Builder generiert drei Skripts und eine Konfigurationsdatei basierend auf der Eingabe, die Sie beim Erstellen des Pakets machen. Die Konfigurationsdatei gibt die Namen der Ressourcengruppe und des Ressourcentyps an.

Die Skripts sind Folgende:

Diese Skripts weisen dieselbe Oberfläche und dasselbe Verhalten auf wie die Dienstprogrammskripts, die von Agent Builder für nicht-GDS-basierte Datendienste generiert werden. Die Skripts sind in einem Solaris-Paket zusammengestellt, das Sie auf mehreren Clustern wieder verwenden können.

Sie können die Konfigurationsdatei individuell anpassen, um eigene Namen für Ressourcengruppen oder andere Argumente anzugeben, die normalerweise als Argumente für den scrgadm-Befehl angegeben werden. Wenn Sie die Skripts nicht individuell anpassen, liefert Agent Builder Standardwerte für die scrgadm-Argumente.

Verwenden der Sun Cluster-Verwaltungsbefehle zum Erstellen eines Dienstes, der den GDS verwendet

In diesem Abschnitt wird beschrieben, wie Argumente für den GDS eingegeben werden. Sie verwenden die bereits vorhandenen Sun Cluster-Verwaltungsbefehle, z.B. scrgadm und scswitch, um den GDS zu verwalten.

Wenn die Skripts genügend Funktionen bieten, müssen Sie die Verwaltungsbefehle niedrigerer Ebene nicht verwenden, die in diesem Abschnitt beschrieben werden. Sie können jedoch die Verwaltungsbefehle niedrigerer Ebene verwenden, wenn Sie die GDS-basierte Ressource genauer steuern möchten. Diese Befehle werden von den Skripts ausgeführt.

ProcedureSo verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines hoch verfügbaren Dienstes, der den GDS verwendet.

Schritte
  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
    

ProcedureSo verwenden Sie Sun Cluster-Verwaltungsbefehle zum Erstellen eines Scalable-Dienstes, der den GDS verwendet.

Schritte
  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 Ressource für den Scalable-Dienst.


    # 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 Agent Builder

Agent Builder bietet eine Befehlszeilenschnittstelle, die dieselben Funktionen wie die GUI bietet. Diese Schnittstelle besteht aus den Befehlen scdscreate und scdsconfig. Weitere Informationen finden Sie in der Online-Dokumentation zu scdscreate(1HA) und scdsconfig(1HA).

ProcedureSo verwenden Sie die Befehlszeilenversion von Agent Builder zum Erstellen eines Dienstes, der den GDS verwendet.

In diesem Abschnitt wird beschrieben, wie die Befehlszeilenschnittstelle zum Durchführen derselben Schritte verwendet wird, die unter Erstellen eines Dienstes, der den GDS verwendet, mit Agent Builder beschrieben werden.

Schritte
  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/wdir
      
    • Geben Sie für einen Scalable-Dienst folgenden Befehl ein:


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

    Hinweis –

    Das Argument -d ist optional. Wenn Sie dieses Argument 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/wdir
    

    Sie können auch Eigenschaftsvariablen festlegen. Die Eigenschaftsvariablen werden im Abschnitt Verwenden von Eigenschaftsvariablen beschrieben.


    Hinweis –

    Nur der start-Befehl ist erforderlich. Alle anderen Optionen und Argumente sind optional.


  4. Installieren Sie auf jedem Knoten im Cluster das vollständige Paket.

    • Geben Sie für Solaris 10 OS in einer Zonenumgebung als globaler Administrator in der globalen Zone den folgenden Befehl ein:


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

      Das von Ihnen angegebene Paket wird zur globalen Zone hinzugefügt, vorausgesetzt, der Inhalt des Pakets wirkt sich nicht auf einen Bereich der globalen Zone aus, die mit einer nicht-globalen Zone gemeinsam genutzt wird.

      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
    • Für jede andere Version von Solaris OS oder Solaris 10 OS in einer Umgebung ohne Zonen geben Sie folgenden Befehl ein:


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

      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-Dokumentationsseiten und Skriptnamen entsprechen dem Anwendungsnamen, den Sie zuvor im Bildschirm "Create" eingegeben haben, wobei der Skriptname (zum Beispiel startapp) vorangestellt wird.


  5. Konfigurieren Sie die Ressourcen auf einem Knoten des Clusters, und starten Sie die Anwendung.


    # /opt/NETapp/util/startapp -h logicalhostname -p port-and-protocol-list
    

    Die Argumente für das startapp-Skript sind je nach Ressourcentyp unterschiedlich: Failover oder Scalable.


    Hinweis –

    Um die Befehlszeile zu ermitteln, die Sie eingeben müssen, schlagen Sie in der Online-Dokumentation nach oder führen Sie das Skript startapp ohne Argumente aus, um eine Benutzeranweisung anzuzeigen.

    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
    

    Zum Anzeigen einer Benutzeranweisung geben Sie Folgendes ein:


    # /opt/NETapp/util/startapp
     The resource name of LogicalHostname or SharedAddress must be specified.
     For failover services:
     Usage: startapp -h logicalhostname
              -p port-and-protocol-list
              [-n ipmpgroup/adapter-list]
     For scalable services:
     Usage: startapp -h shared-address-name
              -p port-and-protocol-list
              [-l load-balancing-policy]
              [-n ipmpgroup/adapter-list]
              [-w load-balancing-weights]