Die Auswirkungen von FC-Ports ohne Link

FC-Ports die nicht verwendet werden und keinen Link haben, sollten deaktiviert werden, da diese die Laufzeit einer Reihe von Kommandos und Operationen (z.B. LPM) deutlich verlängern.

(Hinweis: in einigen Beispielen wird unser LPAR-Tool verwendet, es werden aber auch immer die Kommandos auf der HMC, oder dem Virtual-I/O-Server gezeigt!)

Auf einem unserer Virtual-I/O-Server (ms26-vio1) sind 2 4-Port FC Adapter in Verwendung:

$ lpar lsslot ms26-vio1
DRC_NAME                  DRC_INDEX  IOPOOL  DESCRIPTION
U78D3.001.XXXXXXX-P1-C49  21040015   none    PCIe3 x8 SAS RAID Internal Adapter 6Gb
U78D3.001.XXXXXXX-P1-C7   2103001C   none    PCIe3 4-Port 16Gb FC Adapter
U78D3.001.XXXXXXX-P1-C2   21010021   none    PCIe3 4-Port 16Gb FC Adapter
$
(HMC: lshwres -r io --rsubtype slot -m ms26 --filter lpar_names=ms26-vio1)

Es sind allerdings nur 2 Ports verkabelt:

$ vios lsnports ms26-vio1
NAME  PHYSLOC                     FABRIC  TPORTS  APORTS  SWWPNS  AWWPNS
fcs0  U78D3.001.XXXXXXX-P1-C2-T1  1       64      64      3072    3072
fcs4  U78D3.001.XXXXXXX-P1-C7-T1  1       64      64      3072    3072
$
(VIOS: lsnports)

Beim Arbeiten mit dem Virtual-I/O-Server fällt auf, das einige der Kommandos eine unerwartet lange Laufzeit haben und teilweise für längere Zeit hängen. Im Folgenden sind einige Kommandos angegeben, zusammen mit der benötigten Laufzeit:

(0)padmin@ms26-vio1:/home/padmin> time netstat –cdlistats
…
Error opening device: /dev/fscsi1
errno: 00000045

Error opening device: /dev/fscsi2
errno: 00000045

Error opening device: /dev/fscsi3
errno: 00000045

Error opening device: /dev/fscsi5
errno: 00000045

Error opening device: /dev/fscsi6
errno: 00000045

Error opening device: /dev/fscsi7
errno: 00000045

real    1m13.56s
user    0m0.03s
sys     0m0.10s
(0)padmin@ms26-vio1:/home/padmin>
(0)padmin@ms26-vio1:/home/padmin> time lsnports
name             physloc                        fabric tports aports swwpns  awwpns
fcs0             U78D3.001.XXXXXXX-P1-C2-T1          1     64     64   3072    3072
fcs4             U78D3.001.XXXXXXX-P1-C7-T1          1     64     64   3072    3072

real    0m11.61s
user    0m0.01s
sys     0m0.00s
(0)padmin@ms26-vio1:/home/padmin>
(0)padmin@ms26-vio1:/home/padmin> time fcstat fcs1

Error opening device: /dev/fscsi1
errno: 00000045

real    0m11.31s
user    0m0.01s
sys     0m0.01s
(4)padmin@ms26-vio1:/home/padmin>

Auch LPM-Operationen dauern deutlich länger, da bei der Suche nach passenden FC-Ports für die nötigen NPIV-Mappings alle FC-Ports untersucht werden. Dies kann zu Verzögerungen im Minuten-Bereich führen, bevor die Migration dann letztlich gestartet wird.

Um diese unnötig langen Laufzeiten zu vermeiden, sollten nicht verkabelte FC-Ports nicht aktiviert werden. Das fscsi-Device besitzt das Attribut autoconfig mit den möglichen Werten defined und available. Per Default wird der Wert available verwendet, was dazu führt das der Kernel das Device konfiguriert und aktiviert, auch wenn es keinen Link besitzt, was zu den oben gezeigten Wartezeiten führt. Setzt man das Attribut autoconfig auf defined, dann wird das fscsi-Device nicht aktiviert, es bleibt dann im Zustand defined.

Im folgenden Beispiel wird gezeigt, wie man das Device fscsi1 umkonfiguriert:

$ vios chdev ms26-vio1 fscsi1 autoconfig=defined
$
(VIOS: chdev -dev fscsi1 -attr autoconfig=defined)
$
$ vios rmdev ms26-vio1 fscsi1
$
(VIOS: rmdev -dev fscsi1 –ucfg)
$
$ vios lsdev ms26-vio1 fscsi1
NAME    STATUS   PHYSLOC                     PARENT  DESCRIPTION
fscsi1  Defined  U78D3.001.XXXXXXX-P1-C2-T2  fcs1    FC SCSI I/O Controller Protocol Device
$
(VIOS: lsdev -dev fscsi1)
$
$  vios lsattr ms26-vio1 fscsi1
ATTRIBUTE     VALUE      DESCRIPTION                            USER_SETTABLE
attach        none       How this adapter is CONNECTED          False
autoconfig    defined    Configuration State                    True
dyntrk        yes        Dynamic Tracking of FC Devices         True+
fc_err_recov  fast_fail  FC Fabric Event Error RECOVERY Policy  True+
scsi_id       Adapter    SCSI ID                                False
sw_fc_class   3          FC Class for Fabric                    True
$
(VIOS: lsdev -dev fscsi1 –attr)
$

Durch das Attribut autoconfig=defined bleibt das fscsi-Device auch bei einem Lauf des cfgmgr auf defined!

Wiederholt man die Laufzeit-Messung der Kommandos oben, sieht man das die Laufzeit der Kommandos sich schon meßbar verbessert hat:

(0)padmin@ms26-vio1:/home/padmin> time netstat –cdlistats
…
Error opening device: /dev/fscsi1
errno: 00000005

Error opening device: /dev/fscsi2
errno: 00000045

Error opening device: /dev/fscsi3
errno: 00000045

Error opening device: /dev/fscsi5
errno: 00000045

Error opening device: /dev/fscsi6
errno: 00000045

Error opening device: /dev/fscsi7
errno: 00000045

real    1m1.02s
user    0m0.04s
sys     0m0.10s
(0)padmin@ms26-vio1:/home/padmin>
(0)padmin@ms26-vio1:/home/padmin> time lsnports
name             physloc                        fabric tports aports swwpns  awwpns
fcs0             U78D3.001.XXXXXXX-P1-C2-T1          1     64     64   3072    3072
fcs4             U78D3.001.XXXXXXX-P1-C7-T1          1     64     64   3072    3072

real    0m9.70s
user    0m0.00s
sys     0m0.01s
(0)padmin@ms26-vio1:/home/padmin>
(0)padmin@ms26-vio1:/home/padmin> time fcstat fcs1

Error opening device: /dev/fscsi1
errno: 00000005

real    0m0.00s
user    0m0.02s
sys     0m0.00s
(4)padmin@ms26-vio1:/home/padmin>

Die Laufzeit des netstat-Kommandos hat sich um 12 Sekunden verkürzt, das Komnando lsnports war ca 2 Sekunden schneller.

Wir setzen das autoconfig Attribut jetzt auch bei allen anderen unbenutzten FC-Ports auf defined:

$ for fscsi in fscsi2 fscsi3 fscsi5 fscsi6 fscsi7
> do
> vios chdev ms26-vio1 $fscsi autoconfig=defined
> vios rmdev ms26-vio1 $fscsi
> done
$

Jetzt wiederholen wir die Laufzeit-Messung der Kommandos erneut:

(0)padmin@ms26-vio1:/home/padmin> time netstat –cdlistats
…
Error opening device: /dev/fscsi1
errno: 00000005

Error opening device: /dev/fscsi2
errno: 00000005

Error opening device: /dev/fscsi3
errno: 00000005

Error opening device: /dev/fscsi5
errno: 00000005

Error opening device: /dev/fscsi6
errno: 00000005

Error opening device: /dev/fscsi7
errno: 00000005

real    0m0.81s
user    0m0.03s
sys     0m0.10s
(0)padmin@ms26-vio1:/home/padmin>
(0)padmin@ms26-vio1:/home/padmin> time lsnports         
name             physloc                        fabric tports aports swwpns  awwpns
fcs0             U78D3.001.XXXXXXX-P1-C2-T1          1     64     64   3072    3072
fcs4             U78D3.001.XXXXXXX-P1-C7-T1          1     64     64   3072    3072

real    0m0.00s
user    0m0.01s
sys     0m0.01s
(0)padmin@ms26-vio1:/home/padmin> time fcstat fcs1       

Error opening device: /dev/fscsi1
errno: 00000005

real    0m0.04s
user    0m0.00s
sys     0m0.00s
(4)padmin@ms26-vio1:/home/padmin>

Das Kommando netstat benötigt nun weniger als 1 Sekunde, das Kommando lsnports nur noch 0.1 Sekunden.

Es lohnt sich also das autoconfig Attribut für nicht-benutzte FC-Ports auf defined zu setzen!

 

HSCLB505 The partition cannot use hardware-accelerated encryption

Beim Verschieben einer LPAR mit LPM auf eine ältere Hardware kann der folgende Fehler auftreten:

HSCLB505 The partition cannot use hardware-accelerated encryption on the destination managed system because the destination managed system does not support hardware-accelerated encryption.

Dies bedeutet das Hardware-beschleunigte Verschlüsselung für die LPAR aktiviert ist, jedoch auf dem Ziel Managed System
nicht unterstützt ist.

Die Hardware-beschleunigte Verschlüsselung lässt sich mit dem LPAR-Tool ganz leicht ausschalten:

$ lpar -d chmem lpar01 hardware_mem_encryption=0
$

Ohne LPAR-Tool geht das natürlich auch, z.B. von der HMC-Kommandozeile:

chhwres -m ms01 -r mem -o s -p lpar01 -a 'hardware_mem_encryption=0'

Danach sollte die Validierung und Verschiebung mittels LPM funktionieren.

HSCLB504 The migrating partition cannot use hardware-accelerated Active Memory Expansion

Beim Verschieben einer LPAR mit LPM auf eine ältere Hardware kann der folgende Fehler auftreten:

HSCLB504 The migrating partition cannot use hardware-accelerated Active Memory Expansion on the destination managed system because the destination managed system does not support hardware-accelerated Active Memory Expansion.

Dies bedeutet das Hardware-beschleunigte aktive Memory Erweiterung (AME) für die LPAR aktiviert ist, jedoch auf dem Ziel
Managed System nicht unterstützt ist .

Die Hardware-beschleunigte aktive Memory Erweiterun lässt s ich mit dem LPAR-Tool ganz leicht ausschalten:

$ lpar -d chmem lpar01 hardware_mem_expansion=0
$

Ohne LPAR-Tool geht das natürlich auch, z.B. von der HMC-Kommandozeile:

chhwres -m ms01 -r mem -o s -p lpar01 -a 'hardware_mem_expansion=0'

Danach sollte die Validierung und Verschiebung mittels LPM funktionieren.

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.

LPAR-Tool in Aktion: Examples

Das LPAR-Tool kann HMCs, Managed Systems, LPARs und Virtual-I/O-Server über die Kommandozeile administrieren. Die aktuelle Version des LPAR-Tools (aktuell: 1.4.0.2), kann von unserer Download-Seite https://powercampus.de/download heruntergeladen werden. Eine Test-Lizenz, gültig bis 31. Oktober, ist enthalten. In diesem Beitrag sollen einige einfache, aber nützliche Anwendungen des LPAR-Tools gezeigt werden.

Eine häufig auftretende Frage in größeren Umgebungen (mehrere HMCs, viele Managed Systems) ist: wo befindet sich eine bestimmte LPAR. Mit dem LPAR-Tool kann diese Frage leicht beantwortet werden, hierfür gibt es das Kommando „lpar show„:

$ lpar show lpar02
NAME    ID  SERIAL     LPAR_ENV  MS    HMCS
lpar02  39  123456789  aixlinux  ms21  hmc01,hmc02
$

Neben dem Namen, der LPAR-ID und der Seriennummer wird auch das Managed System, hier ms21, und die zugehörigen HMCs, hier hmc01 und hmc02, gezeigt. Es können auch mehrere LPARs und/oder Wildcards angegeben werden:

$ lpar show lpar02 lpar01
...
$ lpar show lpar*
...
$

Wird kein Argument angegeben, werden alle LPARs aufgelistet.

 

Eine weitere Frage, die sich häufig stellt, ist der Status der LPAR oder LPARs. Auch dies läßt sich leicht beantworten, dieses Mal mit dem Kommando „lpar status„:

$ lpar status lpar02
NAME    LPAR_ID  LPAR_ENV  STATE    PROFILE   SYNC  RMC     PROCS  PROC_UNITS  MEM   OS_VERSION
lpar02  39       aixlinux  Running  standard  0     active  1      0.7         7168  AIX 7.2 7200-03-02-1846
$

Die LPAR lpar02 ist im Zustand Running, das verwendete Profil heißt standard, die RMC-Verbindung ist active und die LPAR läuft unter AIX 7.2 (TL3 SP2). Die LPAR besitzt 1 Prozessor Core, mit 0.7 Processor Units und 7 GB RAM. Die Spalte SYNC gibt an ob die aktuelle Konfiguration mit dem Profil synchronisiert wird (Attribut sync_curr_profile).

Natürlich lassen sich auch hier mehrere LPARs oder auch alle LPARs angeben.

Möchte man sehen, was das LPAR-Tool im Hintergrund macht, kann man bei den meisten Kommandos die Option „-v“ für verbose-only angeben. Es werden dann die HMC-Kommandos aufgelistet, es werden aber keine Änderungen auf der HMC durchgeführt. Hier die HMC-Kommandos die für die Status-Ausgabe abgesetzt werden:

$ lpar status -v lpar02
hmc01: lssyscfg -r lpar -m ms21
hmc01: lshwres -r mem -m ms21 --level lpar
hmc01: lshwres -r proc -m ms21 --level lpar
$

 

Als nächstes soll das Hinzufügen von zusätzlichem RAM gezeigt werden. Wir starten mit dem Status der LPAR:

$ lpar status lpar02
NAME    LPAR_ID  LPAR_ENV  STATE    PROFILE   SYNC  RMC     PROCS  PROC_UNITS  MEM   OS_VERSION
lpar02  39       aixlinux  Running  standard  0     active  1      0.7         7168  AIX 7.2 7200-03-02-1846
$

Die LPAR läuft und RMC ist aktiv, eine DLPAR-Operation sollte also möglich sein. Wir schauen zunächst nach, ob die maximal mögliche Speichergröße schon verwendet wird:

$ lpar lsmem lpar02
            MEMORY         MEMORY         HUGE_PAGES 
LPAR_NAME  MODE  AME  MIN   CURR  MAX   MIN  CURR  MAX
lpar02     ded   0.0  2048  7168  8192  0    0     0
$

Aktuell verwendet die LPAR 7 GB, maximal möglich sind 8 GB. Eine Erweiterung um 1 GB (1024 MB) sollte also möglich sein. Wir führen die Erweiterung durch, das notwendig Kommando ist „lpar addmem„:

$ lpar addmem lpar02 1024
$

Wir überprüfen den Erfolg, indem wir das Kommando „lpar lsmem“ noch einmal starten:

$ lpar lsmem lpar02
           MEMORY         MEMORY         HUGE_PAGES 
LPAR_NAME  MODE  AME  MIN   CURR  MAX   MIN  CURR  MAX
lpar02     ded   0.0  2048  8192  8192  0    0     0
$

(Übrigens: falls die aktuelle Konfiguration nicht mit dem aktuellen Profil synchronisiert wird, Attribut sync_curr_profile, dann aktualisiert das LPAR-Tool auch das Profil!)

 

Virtuelle Adapter lassen sich mittels „lpar lsvslot“ auflisten:

$ lpar lsvslot lpar02
SLOT  REQ  ADAPTER_TYPE   STATE  DATA
0     Yes  serial/server  1      remote: (any)/any connect_status=unavailable hmc=1
1     Yes  serial/server  1      remote: (any)/any connect_status=unavailable hmc=1
2     No   eth            1      PVID=123 VLANS= ETHERNET0 XXXXXXXXXXXX
6     No   vnic           -      PVID=1234 VLANS=none XXXXXXXXXXXX failover sriov/ms21-vio1/1/3/0/2700c003/2.0/2.0/20/100.0/100.0,sriov/ms21-vio2/2/1/0/27004004/2.0/2.0/10/100.0/100.0
10    No   fc/client      1      remote: ms21-vio1(1)/47 c050760XXXXX0016,c050760XXXXX0017
20    No   fc/client      1      remote: ms21-vio2(2)/25 c050760XXXXX0018,c050760XXXXX0019
21    No   scsi/client    1      remote: ms21-vio2(2)/20
$

Das Beispiel zeigt neben virtuellen FC- und SCSI-Adaptern auch einen vNIC Adapter in Slot 6.

 

Als letztes zeigen wir noch das Starten einer Konsole für eine LPAR:

$ lpar console lpar02

Open in progress 

 Open Completed.

…

AIX Version 7

Copyright IBM Corporation, 1982, 2018.

Console login:

…

Die Konsole kann mit „~.“ beendet werden.

 

Natürlich kann das LPAR-Tool noch viel mehr.

Fortsetzung folgt.

 

LPAR-Tool 1.4.0.1 verfügbar (inklusive Testlizenz)!

Im Download-Bereich steht ab sofort die Version 1.4.0.1 unseres LPAR-Tools mit einer gültigen Test-Lizenz bis 31.10.2019 zum Download bereit. Die Lizenz ist in den Binaries direkt enthalten, es muss also kein Lizenz-Key eingetragen werden. Die enthaltene Test-Lizenz erlaubt die Benutzung des LPAR-Tools für bis zu 10 HMCs, 100 Managed Systems und 1000 LPARs.

LPAR-Tool mit Test-Lizenz bis 15.09.2019

Im Download-Bereich steht ab sofort die Version 1.3.0.2 unseres LPAR-Tools mit einer gültigen Test-Lizenz bis 15.09.2019 zum Download bereit. Die Lizenz ist in den Binaries direkt enthalten, es muss also kein Lizenz-Key eingetragen werden. Die enthaltene Test-Lizenz erlaubt die Benutzung des LPAR-Tools für bis zu 10 HMCs, 100 Managed Systems und 1000 LPARs.

Resourcen von nicht aktivierten LPARs und Memory Affinity

Wird eine LPAR heruntergefahren, werden nicht automatisch die Resourcen, wie Prozessoren, Speicher und I/O-Slots, der LPAR freigegeben. Die Resourcen bleiben weiterhin der LPAR zugeordnet und werden dann beim nächsten Aktivieren (mit der aktuellen Konfiguration) wiederverwendet. Im ersten Teil des Beitrags Resourcen von nicht aktivierten LPARs hatten wir uns dies schon angeschaut.

(Hinweis: In den Beispiel-Ausgaben benutzen wir die Version 1.4 des LPAR-Tools, zeigen aber in allen Fällen die unterliegenden Kommandos auf der HMC Kommandozeile. Man kann also alles auch ohne die Verwendung des LPAR-Tools ausprobieren.)

Die Beispiel LPAR lpar1 wurde heruntergefahren, belegt aber aktuell immer noch 100 GB Speicher:

linux $ lpar status lpar1
NAME   LPAR_ID  LPAR_ENV  STATE          PROFILE   SYNC  RMC       PROCS  PROC_UNITS  MEM     OS_VERSION
lpar1  39       aixlinux  Not Activated  standard  0     inactive  1      0.2         102400  Unknown
linux $

Auf der zugehörigen HMC hmc01 wurden die folgenden Kommandos für die Ausgabe oben ausgeführt:

hmc01: lssyscfg -r lpar -m ms09 --filter lpar_names=lpar1
hmc01: lshwres -r mem -m ms09 --level lpar --filter lpar_names=lpar1
hmc01: lshwres -r proc -m ms09 --level lpar --filter lpar_names=lpar1

Wie die Ausgabe zeigt, hat die LPAR lpar1 noch ihre Resourcen (Prozessoren, Memory, I/O-Adapter) alloziert.

Um zu verstehen warum beim Deaktivieren einer LPAR die Resourcen nicht frei gegeben werden, muss man sich den „Memory Affinity Score“ anschauen:

linux $ lpar lsmemopt lpar1
             LPAR_SCORE  
LPAR_NAME  CURR  PREDICTED
lpar1      100   0
linux $

HMC Kommandozeile:

hmc01: lsmemopt -m ms09 -r lpar -o currscore –filter lpar_names=lpar1

Der Memory Affinity Score beschreibt wie nahe sich Prozessoren und Memory sind, je näher, desto besser ist der Durchsatz auf den Speicher.  Das Kommando oben gibt mit einem Wert zwischen 1 und 100 an, wie groß die Affinität zwischen Prozessoren und LPARs ist. Unsere LPAR lpar1 hat aktuell einen Wert von 100, das heißt die bestmögliche Affinität von Speicher und Prozessoren. Würden beim Deaktivieren einer LPAR die Resourcen freigegeben, dann würde die LPAR erst einmal diesen Memory Affinity Score verlieren. Beim nächsten Aktivieren der LPAR hängt es dann von dem dann verfügbaren Speicher und Prozessoren ab wie gut die Memory Affinität dann ist. Wir geben einmal die Resourcen frei:

linux $ lpar -d rmprocs lpar1 1
linux $

HMC Kommandozeile:

hmc01: chhwres -m ms09 -r proc  -o r -p lpar1 --procs 1

Es wird nun kein Score mehr angegeben, da der LPAR keine Resourcen mehr zugeordnet sind:

linux $ lpar lsmemopt lpar1
             LPAR_SCORE  
LPAR_NAME  CURR  PREDICTED
lpar1      none  none
linux $

HMC Kommandozeile:

hmc01: lsmemopt -m ms09 -r lpar -o currscore –filter lpar_names=lpar1

Nun lassen wir die Resourcen neu zuweisen und Schauen welchen Einfluß dies auf die Memory Affinität hat:

linux $ lpar applyprof lpar1 standard
linux $

HMC Kommandozeile:

hmc01: chsyscfg -r lpar -m ms09 -o apply -p lpar1 -n standard

Wir ermitteln erneut den Memory Affinity Score:

linux $ lpar lsmemopt lpar1
             LPAR_SCORE  
LPAR_NAME  CURR  PREDICTED
lpar1      53    0
linux $

HMC Kommandozeile:

hmc01: lsmemopt -m ms09 -r lpar -o currscore –filter lpar_names=lpar1

Der Score ist jetzt nur noch bei 53, die Performance der LPAR ist damit schlechter geworden. Ob und wie stark sich dies dann auch bemerkbar macht, hängt dann letztlich von den Applikationen auf der LPAR ab.

Das die Resourcen beim Deaktivieren einer LPAR nicht freigegeben werden, garantiert also beim nächsten Aktivieren (mit der aktuellen Konfiguration) das die Memory Affinität gleich bleibt und damit die Performance die Gleiche sein sollte.

Gibt man die Resourcen einer LPAR frei (manuell oder automatisch), dann muß man sich im Klaren sein das dies Auswirkungen auf die LPAR hat, wenn sie später wieder aktiviert wird, da dann die Resourcen neu zugewiesen werden und sich ein schlechterer (möglicherweise aber auch ein besserer) Memory Affinity Score ergeben kann.

Umgekehrt kann man vor dem Aktivieren einer neuen LPAR aber auch durch Freigeben von Resourcen dafür sorgen das es eine gute Chance für einen hohen Memory Affinity Score für die neue LPAR gibt.

(Hinweis: die Resource Verteilung kann zur Laufzeit mit Hilfe des Dynamic Plattform Optimizers DPO geändert und verbessert werden. DPO wird ab POWER8 unterstützt.)