GästebuchIhr Eintrag in unser Gästebuch KontaktNehmen Sie Kontakt mit den Autoren auf ArchivAlle Unixwerk- Artikel seit 2003
26. April 2016

HACMP: Cluster-Kommandozeile

Kein anderer administrativer Bereich unter AIX ist wohl so SMIT-lastig wie HACMP. Selbst die erfahrensten AIX-Admins - solche, die sonst alles über die Kommandozeile erledigen - greifen bei der Arbeit mit Clustern auf SMIT zurück. Dies zeigt sich auch in vielen Dokumenten bei unixwerk.

Dennoch lassen sich eine Reihe von Standardaufgaben im Cluster-Betrieb auch mit der Kommandozeile erledigen. Die wichtigsten Kommandos für die PowerHA-Versionen 5 und 6 sind in diesem kleinen Howto zusammengefasst.

 

Inhalt

  1. PowerHA-Version
  2. Programmpfade
  3. Log-Dateien

Dynamische Rekonfiguration (CSPOC)

  1. »cl_«- versus »cli_«-Kommandos
  2. Volume Group erweitern
  3. Volume Group verkleinern
  4. Neues Dateisystem in vorhandener VG anlegen
  5. Dateisystem erweitern
  6. Logical Volume spiegeln
  7. Einen LV-Spiegel entfernen
  8. LV-Spiegel synchronisieren
  9. Logical Volume löschen
  10. Logical Volume verschieben

Resource Group Management

  1. Resource Groups listen
  2. Resource Group schwenken
  3. Resource Group deaktivieren
  4. Resource Group aktivieren

Informationen über den Cluster

  1. Wo liegen die Logfiles?
  2. Wo liegen die Start/Stop-Skripts?
  3. Wie ist eine bestimmte Resource Group konfiguriert?
  4. Die Cluster-IP-Konfiguration

Clusterstatus

  1. Clusterstatus
  2. Abfrage des Clustermanagers
  3. Auf welchem Knoten sind aktive Ressouren?

Neue Befehle ab PowerHA 7.1

  1. Repository Disks listen
  2. HACMP-Netzwerke anzeigen
  3. Informationen über ein bestimmtes Netzwerk anzeigen
  4. Einen Netzwerk-Parameter ändern

 

1. PowerHA-Version

Einen eigentlichen Befehl, um die PowerHA-Version zu ermitteln, gibt es nicht¹. Die Version ergibt sich aus der Versionsnummer des cluster.es.server.rte-Filesets:

# lslpp -Lqc cluster.es.server.rte | cut -d: -f3
6.1.0.3

Der Clustermanager kann ebenfalls nach der Version abgefragt werden:

# lssrc -ls clstrmgrES | egrep '^local node vrmf|^cluster fix level'
local node vrmf is 6103
cluster fix level is "3"


¹ Mit HACMP 6.1 Service Pack 10 wurde nun doch ein eigener Befehl zur Abfrage der PowerHA-Version eingeführt: /usr/es/sbin/cluster/utilities/halevel -s.

 

2. Programmpfade

Die Clusterkommandos werden auf verschlungenen Pfaden erreicht. Es empfiehlt sich daher, die Arbeitsumgebung um folgende Pfade zu erweitern:

# export PATH=$PATH:/usr/es/sbin/cluster:/usr/es/sbin/cluster/utilities:/usr/es/sbin/cluster/sbin:/usr/es/sbin/cluster/cspoc

 

3. Log-Dateien

hacmp.out
liegt meistens entweder unter /tmp oder /var/hacmp/log. cllistlogs  zeigt, wo:

# /usr/es/sbin/cluster/utilities/cllistlogs
/tmp/hacmp.out


cluster.log

/var/hacmp/adm/cluster.log


clcomd.log

/var/hacmp/clcomd/clcomd.log


Weitere Logs unter /var/hacmp/log

# ls -l /var/hacmp/log/*.log /var/hacmp/log/*.debug
-rw-r--r--    1 root     system       492803 Sep 15 15:32 /var/hacmp/log/autoverify.log
-rw-r--r--    1 root     system       124997 Sep 23 11:10 /var/hacmp/log/clinfo.log
-rw-r--r--    1 root     system       482541 Sep 23 11:10 /var/hacmp/log/clstrmgr.debug
-rw-------    1 root     system       288599 Sep 23 09:00 /var/hacmp/log/clutils.log
-rw-r--r--    1 root     system       353016 Sep 15 15:33 /var/hacmp/log/cspoc.log
-rw-r--r--    1 root     system        11500 Sep 15 15:33 /var/hacmp/log/hacmprd_run_rcovcmd.debug


CAA-Cluster

/var/adm/ras/syslog.caa
PowerHA 6.1 basiert noch nicht auf dem CAA-Cluster. Daher sind Informationen aus dieser Datei erst ab PowerHA 7.1 relevant.

 

Dynamische Rekonfiguration (CSPOC)

1. »cl_«- versus »cli_«-Kommandos

Die meisten Kommandos in diesem Abschnitt finden sich unter /usr/es/sbin/cluster/sbin und beginnen mit »cl_« gefolgt vom bekannten AIX LVM-Befehl. Es sei aber angemerkt, dass diese Kommandos von den CSPOC SMIT-Menüs genutzt werden und eigentlich nicht zur direkten Benutzung auf der Shell gedacht sind. Allerdings haben bereits viele AIX-Administratoren die Kommandos mit F6 aus den SMIT-Menüs gefischt und verwenden sie seitdem rege. Sie scheinen also ihre Feuertaufe bestanden zu haben.

Mit HACMP 5.5 SP1 schließlich hat IBM eine "offizielle" Kommandozeilenschnittstelle (CLI) zu CSPOC eingeführt. Diese neuen Kommandos befinden sich unter /usr/es/sbin/cluster/cspoc. Im Gegensatz zu den CSPOC-Befehlen, die SMIT benutzt, beginnen die offiziellen Kommandos mit »cli_« (beachten Sie das zusätzliche i ) gefolgt vom bekannten AIX LVM-Befehl. Eingeführt wurden die offiziellen Kommandos, um es zu ermöglichen, CSPOC-Kommandos in Batch-Skripts außerhalb von SMIT zu benutzen. Daher mögen diese Kommandos die bessere Wahl sein als die »cl_«-Kommandos.

Die folgende Tabelle gibt einen Überblick über die wichtigsten LVM-Befehle und ihre CSPOC-Entsprechungen:

AIX SMIT/CSPOC "offizielles" CLI
(/usr/sbin) (/usr/es/sbin/cluster/sbin) (/usr/es/sbin/cluster/cspoc)
chfs cl_chfs cli_chfs
chlv cl_chlv cli_chlv
chvg cl_chvg cli_chvg
crfs cl_crfs cli_crfs
extendlv cl_extendlv cli_extendlv
extendvg cl_extendvg cli_extendvg
mirrorvg cl_mirrorvg cli_mirrorvg
mklv cl_mklv cli_mklv
mklvcopy cl_mklvcopy cli_mklvcopy
mkvg cl_mkvg cli_mkvg
reducevg cl_reducevg cli_reducevg
rmfs cl_rmfs cli_rmfs
rmlv cl_rmlv cli_rmlv
rmlvcopy cl_rmlvcopy cli_rmlvcopy
syncvg cl_syncvg cli_syncvg
unmirrorvg cl_unmirrorvg cli_unmirrorvg

Die Syntax der Befehle aus einer Zeile der obigen Tabelle ist ähnlich, jedoch nicht identisch. Weiterführende Informationen finden sich im IBM-Redbook ->PowerHA for AIX Cookbook, Kapitel 7.4.6

 

2. Volume Group erweitern

Eine oder mehrere PVs können mit cl_extendvg einer Cluster-VG hinzugefügt werden. Da die PVs (lies: hdisks) nicht unbedingt gleich nummeriert sind auf den verschiedenen Clusterknoten, muss ein Referenzknoten ("-R") angegeben werden.

nodeA# /usr/es/sbin/cluster/sbin/cl_extendvg -cspoc -n'nodeA,nodeB' -R'nodeA' VolumeGroup hdiskA hdiskB hdisk...

 

3. Volume Group verkleinern

nodeA# /usr/es/sbin/cluster/sbin/cl_reducevg -cspoc -n'nodeA,nodeB' -R'nodeA' VolumeGroup hdiskA hdiskB hdisk...

Auch hier muss natürlich ein Referenzknoten angegeben werden.

 

4. Neues Dateisystem in vorhandener VG anlegen

nodeA# /usr/es/sbin/cluster/sbin/cl_mklv -cspoc -n'nodeA,nodeB' -R'nodeA' -y'LVName' -c'2' -t'jfs2' -a'e' -e'x' -u'2' -s's' VolumeGroup LPs hdiskA hdiskB

Es empfiehlt sich, mit dem Schalter '-u' eine Upperbound anzugeben, die der Anzahl der PVs für eine Spiegelkopie entspricht. So werden Fehler vermieden, sollte das Dateisystem einmal erweitert werden.

Alternativ kann auch ein Map-File verwendet werden:

nodeA# /usr/es/sbin/cluster/sbin/cl_mklv -cspoc -n'nodeA,nodeB' -R'nodeA' -y'LVName' -c'2' -t'jfs2' -m MapFile VolumeGroup LPs
nodeA# /usr/es/sbin/cluster/cspoc/cli_chlv -e x -u'2' -s's'  LVName

Das Format des Map-Files ist wie folgt:

 hdiskA:PP1
 hdiskB:PP1
    :
 hdiskC:PP2
 hdiskD:PP2

Im Map-File werden erst die Mappings für Spiegelkopie 1 und dann die Mappings für Spiegelkopie 2 angegeben. Deshalb aufpassen bei der Anzahl der LPs im Kommando!

Das Dateisystem wird dann mit cl_crfs auf dem soeben erstellten LV angelegt, also etwa

nodeA# /usr/es/sbin/cluster/sbin/cl_crfs -cspoc -n'nodeA,nodeB' -v jfs2 -d'LVName' -m'/mountpoint' -p'rw' -a agblksize='4096' -a'logname=INLINE'

Das Dateisystem wird automatisch mit "mount = false" angelegt und auf dem richtigen Clusterknoten eingehängt.

 

5. Dateisystem erweitern

Ist auf den vorhandenen Platten noch genügend Platz, Superstrictness und Upperbound korrekt gesetzt, kann dies einfach mit AIX-Bordmitteln geschehen, also etwa

nodeA# chfs -a size=512G /mountpoint

Müssen der VG zunächst neue Platten hinzugefügt werden (->1. Volume Group erweitern), benutzt man am besten ein Map-File, damit die Spiegelkopien korrekt verteilt werden:

nodeA# /usr/es/sbin/cluster/sbin/cl_extendlv -R'NODE' -u'8' -m'MapFile' LVName LPs
nodeA# chfs -a size=512G /mountpoint

Die Upperbound muss an die neue Anzahl von PVs angepasst werden. Das Format des Map-Files ist dasselbe wie im Falle eines neuen Dateisystems - allerdings darf es nur die zusätzlichen PPs beinhalten. Gegebenenfalls muss vorher die maximale Zahl von LPs für dieses LV erhöht werden:

nodeA# /usr/es/sbin/cluster/sbin/cl_chlv -x'2048' LVName

 

6. Logical Volume spiegeln

# /usr/es/sbin/cluster/sbin/cl_mklvcopy -R'NODE' -e'x' -u'1' -s's' LVNAME 2 hdiskA hdiskB hdisk...

Da die hdisk-Nummerierung nicht unbedingt auf allen Clusterknoten identisch ist, muss zwingend ein Referenzknoten angegeben werden. Superstrictness und Upperbound müssen nur gesetzt werden, wenn sie nicht schon korrekt sind.

Möchte man genau kontrollieren wohin der Spiegel gehen soll, kann auch ein Mapfile¹ angegeben werden:

# /usr/es/sbin/cluster/sbin/cl_mklvcopy -m'/root/LVNAME.map' LVNAME 2

Unverständlicherweise kann hier kein Referenzknoten angegeben werden! Deshalb muss das Mapfile vom Knoten stammen, auf dem der Befehl abgesetzt wird. Am besten arbeitet man also auf der aktiven Seite.


¹ Wie man ein Mapfile anlegt, steht z.B. in unserem AIX FAQ.

 

7. Einen LV-Spiegel entfernen

# /usr/es/sbin/cluster/sbin/cl_rmlvcopy -R'NODE' LVName 1 hdiskA hdiskB hdisk...

Auch hier ist die Angabe eines Referenzknotens zwingend.

 

8. LV-Spiegel synchronisieren

Alle Spiegel einer Volume Group können mit dem Kommando

# /usr/es/sbin/cluster/cspoc/cli_syncvg -P 4 -v VGNAME

synchronisiert werden. Mit dem optionalen Schalter »-P 4« erreicht man, dass 4 LPs parallel synchronisiert werden.

 

9. Logical Volume löschen

# /usr/es/sbin/cluster/sbin/cl_rmlv 'LVName'

Das LV muss vorher geschlossen werden bzw. das entsprechende Dateisystem muss vorher abgehängt werden.

 

10. Logical Volume verschieben

In der Tabelle der ->Cluster-LVM-Befehle  fehlt ein Kommando: migratepv. Wie lässt sich dennoch ein LV von einem PV zu einem anderen verschieben, während alle Cluster-Ressourcen online bleiben?

  1. Eine weitere Spiegelkopie auf der Zielplatte anlegen
    /usr/es/sbin/cluster/sbin/cl_mklvcopy -R'NODE' -u'1' -s's' LV 3 Ziel-PV
  2. Spiegel synchronisieren
     /usr/es/sbin/cluster/cspoc/cli_syncvg -P 4 -v VG
  3. Spiegelkopie von der Quellplatte entfernen
    /usr/es/sbin/cluster/sbin/cl_rmlvcopy -R'NODE' LV 2 Quell-PV
  4. Schritte 1 -3 für die zweite Spiegelkopie wiederholen


¹ Hier wird angenommen, dass das LV nur auf einem PV/Spiegel liegt. Ist dies nicht der Fall, muss der Parameter zum Schalter -u erhöht werden.
² Der Schalter '-P 4' zu cli_syncvg  bewirkt, dass 4 PPs parallel synchronisiert werden. Je nach Systemauslastung kann der Wert angepasst werden. Gültige Werte liegen zwischen 1 und 32.

 

Resource Group Management

1. Resource Group listen

# /usr/es/sbin/cluster/utilities/cllsgrp
RG1
RG2

 

2. Resource Group schwenken

# /usr/es/sbin/cluster/utilities/clRGmove -g RG -n NODE -m

Man kann auch mehrere Resource Groups auf einmal schwenken:

# /usr/es/sbin/cluster/utilities/clRGmove -g "RG1,RG2,RG3" -n NODE -m

 

3. Resource Group deaktivieren

# /usr/es/sbin/cluster/utilities/clRGmove -g RG -n NODE -d

Mehrere Resource Groups werden mit Kommas aneinander gehängt: -g "RG1,RG2,RG3"

 

4. Resource Group aktivieren

# /usr/es/sbin/cluster/utilities/clRGmove -g RG -n NODE -u

Mehrere Resource Groups werden mit Kommas aneinander gehängt: -g "RG1,RG2,RG3"

 

Informationen über den Cluster

1. Wo liegen die Logfiles?

# /usr/es/sbin/cluster/utilities/cllistlogs
/var/hacmp/log/hacmp.out
/var/hacmp/log/hacmp.out.1
/var/hacmp/log/hacmp.out.2

 

2. Wo liegen die Start/Stop-Skripts?

# /usr/es/sbin/cluster/utilities/cllsserv
AppSrv1     /etc/cluster/start_appsrv1     /etc/cluster/stop_appsrv1
AppSrv2     /etc/cluster/start_appsrv2     /etc/cluster/stop_appsrv2

 

3. Wie ist eine bestimmte Resource Group konfiguriert?

# /usr/es/sbin/cluster/utilities/clshowres -g RG

Will man die Konfiguration aller Resource Groups sehen, kann das Kommando ohne Parameter aufgerufen werden:

# /usr/es/sbin/cluster/utilities/clshowres

 

4. Die Cluster-IP-Konfiguration

# /usr/es/sbin/cluster/utilities/cllsif

 

Clusterstatus

1. Clusterstatus

Am bekanntesten ist wohl der Cluster-Monitor clstat:

# /usr/es/sbin/cluster/clstat -a

Der Schalter "-a" steht übrigens nicht für "all" wie man meinen könnte sondern für ASCII. Ist eine DISPLAY-Variable gesetzt, öffnet clstat ohne diesen Schalter nämlich ein X-Fenster mit grünen bzw. roten Bereichen je nach Status UP oder DOWN.

Die Informationen, die clstat liefert, bekommt man auch mit

# /usr/es/sbin/cluster/utilities/cldump

Beide Befehle benötigen snmp und den Cluster-Dämon clinfoES. Möchte man etwas über den Cluster erfahren, wenn diese beiden Dienste nicht laufen, hilft eine

 

2. Abfrage des Clustermanagers

# lssrc -ls clstrmgrES
Current state: ST_STABLE
sccsid = "@(#)36    1.135.1.101 src/43haes/usr/sbin/cluster/hacmprd/main.C, hacmp.pe, 53haes_r610 11/16/10 06:18:14"
i_local_nodeid 0, i_local_siteid -1, my_handle 1
ml_idx[1]=0     ml_idx[2]=1    
There are 0 events on the Ibcast queue
There are 0 events on the RM Ibcast queue
CLversion: 11
local node vrmf is 6103
cluster fix level is "3"
The following timer(s) are currently active:
Current DNP values
DNP Values for NodeId - 1  NodeName - barney
    PgSpFree = 16743822  PvPctBusy = 3  PctTotalTimeIdle = 90.121875
DNP Values for NodeId - 2  NodeName - betty
    PgSpFree = 16746872  PvPctBusy = 0  PctTotalTimeIdle = 97.221894

Die wichtigsten Informationen sind rot markiert.

 

3. Auf welchem Knoten sind aktive Ressouren?

# /usr/es/sbin/cluster/utilities/clRGinfo
-----------------------------------------------------------------------------
Group Name     Group State                  Node           
-----------------------------------------------------------------------------
RES_GRP_01     ONLINE                       barney      
               OFFLINE                      betty       

RES_GRP_02     ONLINE                       betty        
               OFFLINE                      barney        

 

Neue Befehle ab PowerHA 7.1

Mit PowerHA 7.1 hat IBM den Schwenk auf den CAA-Cluster gemacht. Damit ist auch ein neues Kommando  »clmgr« gekommen. Mit diesem Kommando können Informationen des zugrundeliegenden CAA-Clusters¹ angezeigt ("query") oder auch verändert ("modify") werden.

1. Repository Disks listen

# /usr/es/sbin/cluster/utilities/clmgr query cluster | grep REPOSITORIES
REPOSITORIES="hdisk11 (00f8cbdcbaab7db6), hdisk10 (00f8cbdcbaab7e99)"

 

2. HACMP-Netzwerke anzeigen

# /usr/es/sbin/cluster/utilities/clmgr query networks
net_ether_01
net_ether_02

 

3. Informationen über ein bestimmtes Netzwerk anzeigen

(hier über das Netzwerk  net_ether_01 aus der Ausgabe oben)

# /usr/es/sbin/cluster/utilities/clmgr query network net_ether_01

 

4. Einen Netzwerk-Parameter ändern

Hier wird der Parameter RESOURCE_DIST_PREF auf NOALI gesetzt ( -> Reihenfolge der IP Aliase auf einem Interface)

# /usr/es/sbin/cluster/utilities/clmgr modify network net_ether_01 RESOURCE_DIST_PREF=NOALI


¹ CAA = Cluster Aware AIX