HMC: Welche Netzwerk-Interfaces haben einen Link

Die HMC erlaubt über das Kommando „lshmc -n“ die Ausgabe der Netzwerk-Interface Konfiguration. Allerdings kann der Ausgabe nicht entnommen werden, ob ein Netzwerk-Interface aktuell einen Link hat oder nicht. Dies lässt sich aber relativ leicht über das sysfs Dateisystem, gemountet unter /sys, feststellen. Zunächst kann mit dem folgenden Kommando ermittelt werden, welche Netzwerk-Interfaces die HMC besitzt:

hscroot@hmc02:~> ls -1d /sys/class/net/eth*
/sys/class/net/eth0
/sys/class/net/eth1
/sys/class/net/eth2
/sys/class/net/eth3
/sys/class/net/eth4
/sys/class/net/eth5
hscroot@hmc02:~>

(Ausgabe stammt von einer 7063-CR2.)

Der Link-Status ist in der Datei operstate festgehalten und kann mit einem simplen cat Kommando ausgegeben werden:

hscroot@hmc02:~> cat /sys/class/net/eth*/operstate
up
up
down
down
down
down
hscroot@hmc02:~>

In dem gezeigten Beispiel-Fall besitzen damit die beiden ersten Netzwerk-Interfaces (eth0 und eth1) den Link-Status up.

Die aktuelle Geschwindigkeit lässt sich durch Ausgabe der Datei speed anzeigen:

hscroot@hmc02:~> cat /sys/class/net/eth*/speed
1000
1000
-1
-1
-1
-1
hscroot@hmc02:~>

Es gibt eine Reihe von weiteren Dateien für jedes Netzwerk-Interfaces mit weiteren Informationen.

IBM PowerVM: Einer LPAR einen virtuellen Ethernet Adapter hinzufügen

Der LPAR aix01 soll mit IBM PowerVM ein virtueller Ethernet Adapter hinzugefügt werden. Die Daten im Einzelnen:

    • HMC: hmc01
    • Managed system: ms25
    • LPAR: aix01
    • Profil: standard
    • virtuelle Slot-Nummer: 4
    • Port-VLAN-ID: 900
    • virtueller Ethernet Switch: ETHERNET0(default)
    • weitere VLANs: keine

Das Kommando auf der zugehörigen HMC hmc01 ist:

hscroot@hmc01:~> chhwres -m ms25 -r virtualio --rsubtype eth -o a -p aix01 -s 2 -a 'ieee_virtual_eth=0,port_vlan_id=900'
hscroot@hmc01:~>

Wird das aktuell verwendete Profil der LPAR nicht automatisch synchronisiert, dann sollte der zusätzliche virtuelle Ethernet Adapter auch dem Profil hinzugefügt werden:

hscroot@hmc01:~> chsyscfg -r prof -m ms25 -i 'lpar_name=aix01,name=standard,"virtual_eth_adapters+=""4/0/900///0"""'
hscroot@hmc01:~>

Mit unserem LPAR-Tool sieht das zu verwendende Kommando so aus:

$ lpar addeth aix01 4 900
$

Das aktuelle Profil wird automatisch angepasst.

Ausführliche Informationen zum LPAR-Tool und virtuellen Ethernet Adaptern finden sich hier: Virtual Ethernet

NTP-Konfiguration auf HMC mit LPAR-Tool

NTP-Konfiguration HMC

Den aktuellen Status von NTP auf einer HMC kann man sich dann mittels „hmc lsntp“ anzeigen lassen:

$ hmc lsntp
NAME   XNTP     XNTPSTATUS    XNTPSERVER
hmc01  disable  -             -
hmc02  enable   synchronized  192.168.189.77,192.168.189.78
hmc03  enable   synchronized  192.168.189.77,192.168.189.78
$

Über das Kommando „hmc addntpserver“ kann der NTP-Konfiguration einer HMC ein weiterer NTP-Server hinzugefügt werden:

$ hmc addntpserver hmc01 192.168.189.77
$ hmc addntpserver hmc01 192.168.189.78
$

Eine Kontrolle mit „hmc lsntp“ zeigt, das nun zwei NTP-Server konfiguriert sind, NTP aber nach wie vor nicht aktiviert ist:

$ hmc lsntp hmc01
NAME   XNTP     XNTPSTATUS  XNTPSERVER
hmc01  disable  -           192.168.189.77,192.168.189.78
$

NTP kann nun mit dem Kommando „hmc enablentp“ aktiviert werden:

$ hmc enablentp hmc01
$

Die erste Synchronisierung kann eine Weile dauern:

$ hmc lsntp hmc01
NAME   XNTP    XNTPSTATUS      XNTPSERVER
hmc01  enable  unsynchronized  192.168.189.77,192.168.189.78
$

Die Zeit auf der HMC ist unmittelbar nach dem Aktivieren von NTP noch nicht synchronisiert (XNTPSTATUS: unsynchronized).

Einen detaillierten Status für jeden NTP-Server bekommt man durch Verwendung der Option „-a“ (all NTP-Servers):

$ hmc lsntp –a hmc01
NAME    SERVER         STATE          POLL_FREQ_SECONDS  SECONDS_SINCE_LAST_POLL
hmc01  192.168.189.77  not connected  64                 0
hmc01  192.168.189.78  not connected  64                 0
$

Sobald eine Synchronisierung mit einem der NTP-Server erreicht ist, ist der Gesamt-Status synchronized:

$ hmc lsntp -a hmc01
NAME   SERVER          STATE         POLL_FREQ_SECONDS  SECONDS_SINCE_LAST_POLL
hmc01  192.168.189.77  synchronized  64                 40
hmc01  192.168.189.78  available     64                 35
$

Eine ausführlichere Beschreibung findet sich hier: NTP-Konfiguration auf der HMC

Das LPAR-Tool kann zum Testen hier heruntergeladen werden: Download

LPAR-Tool 1.7.0.1 ist ab sofort verfügbar

Ab sofort ist die Version 1.7.0.1 des LPAR-Tools in unserem Download-Bereich verfügbar.

Die neue Version unterstützt unter anderem die folgenden neuen Features:

    • Installation von IFixes und Updates auf der HMC (hmc help updhmc)
    • System-Firmware Updates (und mehr) von Managed Systems (ms help updatelic)
    • Anzeigen von FLRT Daten mit Online Abfrage bei IBM (hmc help flrt, ms help flrt, lpar help flrt)
    • Konfiguration von NTP auf HMCs (hmc help ntp)

Es stehen Versionen für Linux, AIX und Macos zur Verfügung.

Alle Versionen beinhalten eine Test-Lizenz mit einer Gültigkeit bis 30.09.2022.

Also Downloaden, Installieren und dann Ausprobieren!

HSCF0180E Operation failed for

Beim Versuch die System Firmware eines Managed Systems über die HMC Command Line zu aktualisieren, sind wir auf die folgende Fehlermeldung gestoßen:

hmc01:~> updlic -o a -t all -l latest -m ms26 -r sftp -h X.X.X.X -u XXXXXXXX --passwd XXXXXXXX -d /firmware/system/01VL940_071_027
HSCF0180E Operation failed for ms26 (9009-22A*XXXXXXX).
Could not unpack the firmware update package.
Check the health and available disk space of the file system.
hmc01:~>

Die angezeigte Fehlermeldung legte nahe den verfügbaren Platz in den HMC Dateisystemen zu überprüfen:

hmc01:~> lshmcfs
filesystem=/var,filesystem_size=7935,filesystem_avail=4955,temp_files_start_time=11/22/2018 12:59:00,temp_files_size=2011
filesystem=/dump,filesystem_size=60347,filesystem_avail=55935,temp_files_start_time=02/15/2021 10:21:00,temp_files_size=0
filesystem=/extra,filesystem_size=20030,filesystem_avail=15939,temp_files_start_time=none,temp_files_size=0
filesystem=/,filesystem_size=15615,filesystem_avail=4369,temp_files_start_time=02/15/2021 06:05:00,temp_files_size=4
hmc01:~>

Eigentlich sollte der verfügbare Platz ausreichend sein, aber um ganz sicher zu gehen, haben wir bei den temporären Dateien etwas aufgeräumt:

hmc01:~> chhmcfs -o f -d 5
hmc01:~>

Das Kommando updlic zeigte sich aber dadurch unbeeindruckt und lieferte die gleiche Fehlermeldung.

Auch das Entfernen einiger alter Firmware Versionen aus der lokalen Disk Repository der HMC brachte keinen Erfolg:

hmc01:~> updlic -o p --ecnumber 01AL740
hmc01:~> updlic -o p --ecnumber 01AL770
hmc01:~> updlic -o p --ecnumber 01AM740
hmc01:~>

Die Fehlermeldung war nach wie vor die gleiche. Offensichtlich hatte das Problem, entgegen dem Hinweis aus der Fehlermeldung, nichts mit dem verfügbaren Platz auf der HMC zu tun!

Daraufhin haben wir uns die heruntergeladene Firmware noch einmal genauer angeschaut. Die Firmware hatten wir als ISO-Datei H75557812_01VL940_071_027.iso von der IBM Website heruntergeladen und dann mit dem Kommando loopmount auf unserem NIM-Server gemountet:

aixnim:/root> loopmount -i /tmp/H75557812_01VL940_071_027.iso -o "-o ro -V cdrfs" -m /mnt
aixnim:/root> ls -l /mnt
total 528296
-rw-r--r--    1 102010979 213            1860 Feb 04 09:08 01VL940071_special_instructs.xml.special.note.xml
-rw-r-----    1 102010979 210            7290 Feb 04 09:08 01VL940_071_027.dd.xml
-rw-r--r--    1 102010979 213           95687 Feb 04 09:07 01VL940_071_027.html
-rw-r-----    1 102010979 210            2971 Feb 04 09:08 01VL940_071_027.pd.sdd
-rw-r-----    1 102010979 210           67338 Feb 04 09:08 01VL940_071_027.readme.txt
-rw-r-----    1 102010979 210       134969022 Feb 04 09:08 01VL940_071_027.rpm
-rw-r-----    1 102010979 210       135328848 Feb 04 09:08 01VL940_071_027.tar.gz
-rw-r-----    1 102010979 210            9442 Feb 04 09:08 01VL940_071_027.xml
aixnim:/root>

Was uns beim Kopieren der Dateien nicht aufgefallen war, waren die fehlenden Lese-Berechtigungen bei other für die meisten Dateien.

Nachdem wir für alle Dateien Leseberechtigungen vergeben hatten, war der nächste Update-Versuch erfolgreich:

hmc01:~> updlic -o a -t all -l latest -m ms26 -r sftp -h X.X.X.X -u XXXXXX --passwd XXXXXXXX -d /firmware/system/01VL940_071_027 
HSCF0179W Operation was partially successful for ms26 (9009-22A*XXXXXXX).
The following deferred fixes are present in the fix pack.  Deferred fixes will be activated after the next IPL of the system.
An immediate IPL is not required, unless you want to activate one of the fixes below now.
..
hmc01:~>

LPAR-Tool: welche LPARs haben keine RMC-Verbindung

Status und Konfiguration von LPARs sind regelmäßig benötigte Informationen bei der Administration von LPARs. Mit dem LPAR-Tool lassen sich Informationen wie Status, RMC-Status, Anzahl Cores, Größe RAM, OS-Version und andere Daten, sehr leicht und schnell ermitteln, auch bei hunderten oder tausenden von LPARs. Welche LPARs keine RMC-Verbindung haben, wird in einem der Beispiele gezeigt.

Alle folgenden Beispiele wurden auf einer Umgebung mit 10 HMCs, 50 Managed Systems und etwas über 500 LPARs durchgeführt. Zur Orientierung wie lange das LPAR-Tool benötigt, wurden jeweils die Laufzeiten der Kommandos mit time gemessen und angegeben.

Die Namen der LPARs wurden in den gezeigten Ausgaben manuell abgeändert und durch generische Namen lparXX und aixYY ersetzt.

Zunächst einmal der Status einer einzelnen LPAR:

$ time lpar status aix01
NAME   LPAR_ID  LPAR_ENV   STATE     PROFILE    SYNC  RMC       PROCS  PROC_UNITS  MEM     OS_VERSION
aix01  27       aixlinux   Running   standard   0     active    1      0.1         8192    AIX 7.1 7100-04-02-1614

real    0m0.210s
user    0m0.011s
sys     0m0.013s
$

Natürlich kann man auch mehrere LPARs angeben. Möchte man den Status aller LPARs (in unserem Falle etwas über 500 LPARs) wissen, läßt man einfach das Argument weg:

$ time lpar status
NAME    LPAR_ID  LPAR_ENV   STATE     PROFILE      SYNC  RMC       PROCS  PROC_UNITS  MEM     OS_VERSION
aix01   27       aixlinux   Running   standard     0     active    1      0.1         8192    AIX 7.1 7100-04-02-1614
aix02   1        aixlinux   Running   standard     -     -         1      -           8320    Unknown
...
lpar01  6        aixlinux   Running   standard     0     active    1      0.4         20480   AIX 7.1 7100-04-05-1720

real	0m18.933s
user	0m3.819s
sys	0m3.789s
$

Hierbei werden im Hintergrund vom LPAR-Tool mehr als 150 Kommandos (lshwres und lssyscfg) auf den HMCs abgesetzt!

Die Ausgabe soll jetzt eingeschränkt werden auf LPARs die gerade aktiv sind (state=Running). Hierzu gibt es die Option „-s„, mit der Kriterien für Attribute angegeben werden können, die erfüllt sein müssen. Nur LPARs die diese Kriterien erfüllen, werden ausgegeben:

$ time lpar status -s state=Running
NAME     LPAR_ID  LPAR_ENV   STATE    PROFILE    SYNC  RMC       PROCS  PROC_UNITS  MEM     OS_VERSION
aix01    27       aixlinux   Running  standard   0     active    1      0.1         8192    AIX 7.1 7100-04-02-1614
aix02    1        aixlinux   Running  standard   -     -         1      -           8320    Unknown
...
lpar01   6        aixlinux   Running  standard   0     active    1      0.4         20480   AIX 7.1 7100-04-05-1720

real	0m17.998s
user	0m3.692s
sys	0m3.647s
$

Wir wollen jetzt wissen, auf welchen dieser LPARs RMC nicht funktioniert/nicht aktiv ist. Die Option „-s“ erlaubt es beliebig viele Kriterien zu kombinieren. Es müssen dann alle angegebenen Kriterien erfüllt sein (logischen UND). Der RMC-Zustand findet sich im Attribut rmc_state:

$ time lpar status -s state=Running,rmc_state!=active
NAME     LPAR_ID  LPAR_ENV   STATE    PROFILE    SYNC  RMC       PROCS  PROC_UNITS  MEM     OS_VERSION
aix02    1        aixlinux   Running  standard   -     -         1      -           8320    Unknown
aix03    2        aixlinux   Running  standard   -     -         1      -           8320    Unknown
...
lpar07   4        aixlinux   Running  standard   0     none      1      1.0         4352    Unknown

real	0m19.057s
user	0m3.550s
sys	0m3.512s
$

Als weiteres Beispiel wollen wir wissen auf welchen LPARs AIX 7.1 TL5 installiert ist. Im Attribut os_version findet sich die OS-Version. Mit dem ‚~‚ Operator kann gegen einen regulären Ausdruck verglichen werden (ähnlich wie beim Kommando grep). Wir verwenden den regulären Ausdruck 7100-05:

$ time lpar status -s os_version~7100-05
NAME     LPAR_ID  LPAR_ENV  STATE    PROFILE    SYNC  RMC       PROCS  PROC_UNITS  MEM     OS_VERSION
aix14    14       aixlinux  Running  standard   0     active    2      0.2         16384   AIX 7.1 7100-05-02-1810
aix16    24       aixlinux  Running  standard   0     active    2      0.2         16384   AIX 7.1 7100-05-03-1846
...
lpar10   10       aixlinux  Running  standard   0     active    3      0.3         32768   AIX 7.1 7100-05-02-1810

real	0m18.212s
user	0m3.726s
sys	0m3.676s
$

Bisher haben wir immer das Default Ausgabeformat verwendet. Jetzt würden wir gerne alle Systeme auflisten, die noch unter AIX 6.1 laufen. Aber dieses Mal soll nur der LPAR-Name und die OS-Version ausgegeben werden. Hierfür gibt es die Option „-F„, mit der die gewünschten Ausgabe-Felder angegeben werden können:

$ time lpar status -s os_version~6100 -F name:os_version
aix39:AIX 6.1 6100-07-04-1216
aix46:AIX 6.1 6100-07-04-1216
...
lpar35:AIX 6.1 6100-09-05-1524

real	0m18.041s
user	0m3.619s
sys	0m3.699s
$

Wer lieber JSON-Output hat, kann dies ganz einfach mit der Option „-j“ erreichen, hier das gleiche Beispiel mit JSON-Ausgabe:

$ time lpar status -s os_version~6100 -F name:os_version -j
{
	"name": "aix39",
	"os_version": "AIX 6.1 6100-07-04-1216"
}
{
	"name": "aix46",
	"os_version": "AIX 6.1 6100-07-04-1216"
}
...
{
	"name": "lpar35",
	"os_version": "AIX 6.1 6100-09-05-1524"
}

real	0m21.247s
user	0m3.670s
sys	0m3.720s
$

Natürlich kann man nicht alle Attribut-Namen auswendig wissen! Das ist aber auch gar nicht notwendig, da man sich alle Attribut-Namen einfach anzeigen lassen kann. Man verwendet die Option „-f“ (Stanza-Format) und gibt eine beliebige LPAR an:

$ lpar status -f lpar19
lpar19:
	curr_lpar_proc_compat_mode = POWER7
	curr_mem = 8192
	curr_proc_mode = shared
	curr_proc_units = 0.3
	curr_procs = 2
	name = lpar19
	os_version = AIX 6.1 6100-09-05-1524
...
$

Über die Optionen „-h“ und „-m“ können die LPARs noch in Abhängigkeit von zugehöriger HMC und/oder Managed System ausgewählt werden.

Status aller LPARs mit zugehöriger HMC hmc01:

$ lpar -h hmc01 status

Status aller LPARs deren zugehörige HMC den Typ 7042-CR6 hat:

$ lpar -h 7042-CR6 status

Status aller LPARs deren zugehörige HMC den Typ 7042-CR6 hat und deren Name mit lpar beginnt:

$ lpar -h 7042-CR6 status lpar*

Status aller LPARs auf dem Managed System ms13:

$ lpar -m ms13 status

Status aller LPARs deren Managed System eine S922 ist:

$ lpar -m 9009-22A status

Die vorgestellten Auswahl- und Ausgabemöglichkeiten gelten für alle Ausgabe-Kommandos des LPAR-Tools (außer dem Kommando vios).

Das LPAR-Tool kann in unserem Download-Bereich heruntergeladen werden: https://powercampus.de/download

Das LPAR-Tool beinhaltet eine Test-Lizenz mit einer Gültigkeit bis zum 31. Oktober.

Wussten Sie, das die HMC Status und Konfigurationsänderungen für etwa 2 Monate speichert?

Status und Konfigurationsänderungen von LPARs und Managed Systems werden auf den HMCs für ca 2 Monate gespeichert. Damit lässt sich nachträglich ohne Probleme herausfinden, wann z.B. ein Managed System heruntergefahren wurde, wann ein Service Prozessor Failover stattfand, oder wann der Speicher einer LPAR erweitert wurde, zumindest wenn das Ereignis nicht länger als 2 Monate zurück liegt.

Die Statusänderungen eines Managed Systems lassen sich mit dem Kommando „lslparutil -r sys -m <managed-system> -s h –startyear 1970 –filter event_types=state_change“ auflisten, oder alternativ mit dem LPAR-Tool Kommando „ms history <managed-system>„.

linux $ ms history ms04
TIME                  PRIMARY_STATE         DETAILED_STATE
03/14/2019 08:45:13   Started               None
03/14/2019 08:36:52   Not Available         Unknown
02/17/2019 01:51:55   Started               None
02/17/2019 01:44:00   Not Available         Unknown
02/12/2019 09:32:57   Started               None
02/12/2019 09:28:02   Started               Service Processor Failover
02/12/2019 09:27:07   Started               None
02/12/2019 09:24:42   Standby               None
02/12/2019 09:21:25   Starting              None
02/12/2019 09:22:59   Stopped               None
02/12/2019 09:21:58   Not Available         Unknown
02/12/2019 09:09:45   Stopped               None
02/12/2019 09:07:53   Stopping              None
linux $

Konfigurationsänderungen (Prozessor, Memory) eines Managed Systems lassen sich mit „lslparutil -r sys -m <managed-system> -s h –startyear 1970 –filter event_types=config_change“ anzeigen, oder alternativ wieder mit dem LPAR-Tool:

linux $ ms history -c ms02
                                PROCUNIS              MEMORY
TIME                  CONFIGURABLE  AVAILABLE  CONFIGURABLE  AVAILABLE  FIRMWARE
04/16/2019 12:15:51      20.0          5.05       1048576       249344     25856
04/11/2019 11:17:39      20.0          5.25       1048576       253696     25600
04/02/2019 13:24:35      20.0          4.85       1048576       249344     25856
03/29/2019 14:29:14      20.0          5.25       1048576       253696     25600
03/15/2019 15:37:08      20.0          4.85       1048576       249344     25856
03/15/2019 11:36:57      20.0          4.95       1048576       249344     25856
...
linux $

Die gleichen Informationen kann man sich auch für LPARs anzeigen lassen.

Die letzten Statusänderungen einer LPAR können mit „lpar history <lpar>“ aufgelistet werden:

linux $ lpar history lpar02
TIME                  PRIMARY_STATE         DETAILED_STATE
04/17/2019 05:42:43   Started               None
04/17/2019 05:41:24   Waiting For Input     Open Firmware
04/16/2019 12:01:54   Started               None
04/16/2019 12:01:29   Stopped               None
02/15/2019 11:30:48   Stopped               None
02/01/2019 12:23:34   Not Available         Unknown
02/01/2019 12:22:50   Relocating            None
...

Dies entspricht dem Kommando „lslparutil -r lpar -m ms03 -s h –startyear 1970 –filter event_types=state_change,lpar_names=lpar02“ auf der HMC Kommandozeile.

Aus der Ausgabe ist ersichtlich, dass die LPAR mit LPM verschoben wurde, gestoppt wurde und neu gestartet wurde und sich im Open Firmware-Modus befunden hat.

Und zuletzt kann man sich natürlich auch die letzten Konfigurationsänderungen einer LPAR anschauen, das Kommando auf der HMC CLI ist „lslparutil -r lpar -m ms03 -s h –startyear 1970 –filter event_types=config_change,lpar_names=lpar02„. Die Ausgabe des LPAR-Tools ist etwas übersichtlicher:

linux $ lpar history -c lpar02
TIME                  PROC_MODE  PROCS  PROCUNITS  SHARING  UNCAP_WEIGHT  PROCPOOL         MEM_MODE  MEM
04/23/2019 18:49:43   shared    1      0.7        uncap    10          DefaultPool      ded       4096
04/23/2019 18:49:17   shared    1      0.7        uncap    5           DefaultPool      ded       4096
04/23/2019 18:48:44   shared    1      0.3        uncap    5           DefaultPool      ded       4096
04/09/2019 08:04:25   shared    1      0.3        uncap    5           DefaultPool      ded       3072
03/14/2019 12:37:32   shared    1      0.1        uncap    5           DefaultPool      ded       3072
02/26/2019 09:34:28   shared    1      0.1        uncap    5           DefaultPool      ded       3072
02/20/2019 06:51:57   shared    1      0.3        uncap    5           DefaultPool      ded       3072
01/31/2019 08:12:58   shared    1      0.3        uncap    5           DefaultPool      ded       3072
..

Anhand der Ausgabe kann man sehen, dass die Anzahl der Processing Units mehrmals geändert wurde, das uncapped_weight geändert wurde und der Speicher erweitert wurde.

Änderungen der letzten beiden Monate stehen also jederzeit abrufbereit zur Verfügung!