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!