VIO Server Howto
Inhalt
IOS - Information und Wartung
- Alle ioscli-Befehle listen
- IOS Version
- IOS Fixes einspielen
- IOS Upgrade-Prozedur
- VIO-Server neustarten
Virtualisierter Massespeicher
- Freie Platten listen
- Disk-Mappings anzeigen
- Virtuelle SCSI-Hostadapter erstellen
- Virtuelle SCSI-Hostadapter löschen
- Platten oder LVs einem virtuellen SCSI-Hostadapter hinzufügen
- Platten oder LVs einem virtuellen SCSI-Hostadapter entziehen
Virtualisierter FibreChannel
- Virtuelle FibreChannel-Adapter erstellen
- Virtuelle FibreChannel listen
- NPIV-fähige Ports listen
- Physikalischen FC-Adapter einem Hostadapter zuordnen
- Zuordnung eines physikalischen FC-Adapter zu einem Hostadapter zurücknehmen
Virtuelle Netzwerkadapter
- Shared Ethernet Adapter listen
- Shared Ethernet Adapter erstellen
- SEA Load Sharing Mode einschalten
- Einen SEA Failover manuell einleiten
- SEA-Satus abfragen
- Linkstatus von Netzwerkkarten abfragen
- Lokale IP-Adresse setzen
- Lokale IP-Konfiguration löschen
1. IOS-Befehle unter root ausführen
IBM möchte eigentlich gar nicht, dass Sie als root auf dem VIO-Server arbeiten, dennoch erhalten Sie volle root-Rechte, wenn Sie
oem_setup_env
eingeben, noch nicht einmal ein Passwort wird verlangt.
Zunächst einmal stehen die ioscli-Befehle unter root nicht zur Verfügung. In Wahrheit jedoch sind alle ioscli-Befehle eigentlich nur Argumente zu /usr/ios/cli/ioscli. Dies lässt sich sehr schön sehen, wenn Sie sich die alias-Liste des Benutzers padmin ansehen.
Mit diesem Wissen können Sie alle ioscli-Befehle durch ein vorangestelltes /usr/ios/cli/ioscli auch unter root nutzen. Anstelle von »lsmap -all« können Sie nun
root@vios# /usr/ios/cli/ioscli lsmap -all
eingeben. Mit einem Alias
alias i=/usr/ios/cli/ioscli
reicht sogar einfach
root@vios# i lsmap -all
2. Welches AIX-Kommando steckt eigentlich hinter den ioscli-Befehlen?
Möchten Sie sich zu jedem Befehl, den Sie als Benutzer padmin ausführen, das entsprechende AIX-Kommando anzeigen lassen, können Sie dazu einen besonderen Debug-Mode nutzen:
$ export CLI_DEBUG=33
So sieht z.B. die Ausgabe von lsnports
in diesem Modus aus:
$ lsnports AIX: "/usr/lib/methods/viosmgr -t npiv -f query_fc_ports >/dev/null" name physloc fabric tports aports swwpns awwpns fcs0 U789C.001.DQDH231-P1-C2-T1 1 64 64 2048 2047 fcs1 U789C.001.DQDH231-P1-C2-T2 1 64 62 2048 2043
IOS - Information und Wartung
1. Alle ioscli-Befehle listen
Geben Sie
$ help
ein, um alle verfügbaren Befehle aufzulisten. Die Syntax eines speziellen Befehls lässt sich dann mit
$ help <command>
anzeigen, beispielsweise:
$ help lsmap Usage: lsmap {-vadapter ServerVirtualAdapter | -plc PhysicalLocationCode | -all} [-type BackingDeviceType ... | -net | -npiv ] [-field FieldName ...] [-fmt delimiter] lsmap -ams {-vtd PagingDevice | -all} [-type BackingDeviceType ... ] [-field FieldName ...] [-fmt delimiter] lsmap -clustername ClusterName {-all | -hostname} Displays the mapping between physical and virtual devices. -all Displays mapping for all the server virtual adapter devices. Defaults to VSCSI adapter devices. -clustername Specifies the cluster name. -hostname Specifies the host name. -vadapter Specifies the server virtual adapter device by device name. -plc Specifies the server virtual adapter device by physical location code. -vtd Specifies the (AMS)Active Memory Sharing Paging Device to be displayed. -type Specifies to display virtual devices whose backing device matches the type given. -net Specifies supplied device is a virtual server Ethernet adapter. -npiv Displays NPIV binding information. -ams Displays (AMS)Active Memory Sharing paging space device information. -field Specifies a list of fields to be displayed. -fmt Divides output by a user-specified delimiter.
2. IOS Version
$ ioslevel 2.2.0.10-FP-24
3. IOS Fixes einspielen
Kopieren Sie den IOS-Fixpack in ein geeignetes Verzeichnes, lokal oder auf einem NFS-Server, (z.B. /mnt/iosfixes) und führen Sie dann folgendes Kommando aus:
$ updateios -dev /mnt/iosfixes -accept
4. IOS Upgrade-Prozedur
Es ist dringend anzuraten zunächst die laufende Installation auf 2 freie Platten (hier hdisk2 und hdisk3) zu klonen, damit man bei Problemen oder Fehlern wieder auf die alte Installation zurück gehen kann:
$ oem_setup_env # alt_disk_copy -B -d "hdisk2 hdisk3" # exit
Lesen Sie die Release_Notes. Eventuell muss der Upgrade in mehreren Schritten erfolgen (z.B. erst auf 2.2.2.1 und dann auf 2.2.2.5).
Kopieren Sie dann die IOS-Updates in ein geeignetes Verzeichnes, lokal oder auf einem NFS-Server, (z.B. /updates/2.2.2.5) und führen folgende Kommandos aus:
$ updateios -commit $ updateios -dev /updates/2.2.2.5 -accept -install $ shutdown -restart
5. VIO-Server neustarten
$ shutdown -restart
Virtualisierter Massespeicher
1. Freie Platten listen
$ lspv -free NAME PVID SIZE(megabytes) hdisk24 none 8631 hdisk25 none 8631 hdisk26 none 8631 hdisk27 none 8631
Aber Achtung: Verwenden Sie spzielle Multipath-Treiber von Drittanbietern (etwa die SDD- oder EMC-Treiber), zeigt der obige Befehl alle hdisks als unbenutzt an! Schränken Sie die Ausgabe auf die logischen Platten ein. z.B.:
$ lspv -free | grep vpath
2. Disk-Mappings anzeigen
$ lsmap -all SVSA Physloc Client Partition ID --------------- -------------------------------------------- ------------------ vhost1 U9117.570.65E12FB-V1-C102 0x0000000a VTD vtscsi1 LUN 0x8100000000000000 Backing device hdisk6 Physloc U7879.001.DQDHXYN-P1-C4-T1-W50050763041302AA-L4021400000000000 VTD vtscsi8 LUN 0x8200000000000000 Backing device hdisk14 Physloc U7879.001.DQDHXYN-P1-C4-T1-W50050763041302AA-L4031400100000000
3. Virtuelle SCSI-Hostadapter erstellen
Dies muss im LPAR-Profile des VIO-Servers auf der HMC gemacht werden: Dazu wird ein neuer Virtual SCSI Host-Adapter erstellt, der nur einer LPAR zur Verfügung steht:
Die gleiche Slot-ID wird dann im Profile der Client-LPAR für einen neuen Client-Adapter vergeben:
Diese Schritte können auch dynamisch durchgeführt werden (über die Dynamic Logical Partitioning Option) durchgeführt werden, so dass der VIO-Server nicht gestoppt und vom Profile neu gestartet werden muss. Aber nicht vergessen, die gleichen Adapter dennoch zusätzlich im Profile zu verankern, andernfalls ist die Client-LPAR beim nächsten Reboot des VIO-Servers ihre Platten los!
Bei dynamischem Hinzufügen des Server-Hostadapters muss auf dem VIO-Server der Konfigurationsmanager ausgeführt werden, damit das neue vhost-Device sichtbar wird:
$ cfgdev
4. Virtuelle SCSI-Hostadapter löschen
$ rmdev -dev vhostX [ -recursive ]
Mit der Option »-recursive« löschen Sie auch alle Kinder (hdisks, ...)
Danach sind die Adapter dynamisch und aus dem Profile zu entfernen.
5. Platten oder LVs einem virtuellen SCSI-Hostadapter hinzufügen
Um etwa hdisk22 mit vhost1 zu verbinden, genügt
$ mkvdev -vdev hdisk22 -vadapter vhost1 vtscsi19 available
Der VIO-Server vergibt die nächste freie Nummer (hier: 19) und erstellt das Mappingdevice vtscsi19. Möchte man lieber einen eigenen Namen vergeben, kann die Option »-dev« verwendet werden:
$ mkvdev -vdev hdisk22 -dev vthdisk22_barney -vadapter vhost1 vthdisk22_barney available
Analog würde auch ein LV an eine LPAR gekoppelt:
$ mkvdev -vdev lpar21_lv03 -vadapter vhost1
# oder wenn Sie ein Mappingdevice angeben...
$ mkvdev -vdev lpar21_lv03 -dev vtdisk21_lv03 -vadapter vhost1
vtdisk21_lv03 available
6. Platten oder LVs einem virtuellen SCSI-Hostadapter entziehen
Dazu wird einfach das Mappingdevice gelöscht:
$ rmvdev -vtd vtscsiXX
Virtualisierter FibreChannel
Die NPIV-Technologie wurde mit Version 2.1 des Virtual I/O Severs eingeführt. Die Client LPARs müssen mindestens unter AIX 5.3 TL9, AIX 6.1 TL2 oder AIX 7.1 laufen. Darunter wird NPIV AIX-seitig nicht unterstützt.
1. Virtuelle FibreChannel-Adapter erstellen
Dies muss im LPAR-Profile des VIO-Servers auf der HMC gemacht werden: Dazu wird ein neuer virtueller Server Fibre Channel-Adapter erstellt, der nur einer LPAR zur Verfügung steht.
Die gleiche Slot-ID wird dann im Profile der Client-LPAR für einen neuen Client Fibre Channel--Adapter vergeben.
2. Virtuelle FibreChannel listen
$ lsmap -all -npiv Name Physloc ClntID ClntName ClntOS ------------- ---------------------------------- ------ -------------- ------- vfchost0 U8203.E4A.05A6DD1-V1-C41 3 mylpar6 AIX Status:LOGGED_IN FC name:fcs1 FC loc code:U789C.001.DQDH231-C3-T2 Ports logged in:2 Flags:a<LOGGED_IN,STRIP_MERGE> VFC client name:fcs0 VFC client DRC:U8203.E4A.05A6DD1-V3-C41-T1 Name Physloc ClntID ClntName ClntOS ------------- ---------------------------------- ------ -------------- ------- vfchost1 U8203.E4A.05A6DD1-V1-C43 4 mylpar8 AIX Status:LOGGED_IN FC name:fcs1 FC loc code:U789C.001.DQDH231-C3-T2 Ports logged in:2 Flags:a<LOGGED_IN,STRIP_MERGE> VFC client name:fcs0 VFC client DRC:U8203.E4A.05A6DD1-V4-C43-T1
3. NPIV-fähige Ports listen
NPIV = N_port ID Virtualisierung
$ lsnports name physloc fabric tports aports swwpns awwpns fcs0 U789C.001.DQDH231-P1-C2-T1 1 64 64 2048 2047 fcs1 U789C.001.DQDH231-P1-C2-T2 1 64 62 2048 2043
4. Physikalischen FC-Adapter einem Hostadapter zuordnen
$ vfcmap -vadapter vfchost0 -fcp fcs1
5. Zuordnung eines physikalischen FC-Adapter zu einem Hostadapter zurücknehmen
Dazu gibt es kein eigenes Kommanmdo - hinter -fcp
wird einfach nichts angegeben:
$ vfcmap -vadapter vfchost0 -fcp
Virtuelle Netzwerkadapter
1. Shared Ethernet Adapter listen
$ lsmap -all -net SVEA Physloc ------ -------------------------------------------- ent12 U9117.570.65E12FB-V2-C20-T1 SEA ent13 Backing device ent3 Physloc U7311.D20.651372C-P1-C01-T2
2. Shared Ethernet Adapter erstellen
Zum Erstellen eines Shared Ethernet Adapter (SEA) benötigen Sie:
- einen Netzwerkadapter als Backend: <PHYS>
- einen virtuellen Adapter wie im VIOS-Profile definiert: <VIRT>
- eine interne VLAN-ID: <VLAN>
Möchten Sie die Shared Ethernet Adapter Failover-Option nutzen zusätzlich
- einen zweiten virtuellen Adapter für den Kontrollkanal: <CONT>
Und so erstellen Sie dann den SEA:
# einfach:
$ mkvdev -sea <PHYS> -vadapter <VIRT> -default <VIRT> -defaultid <VLAN># Shared Ethernet Adapter Failover:
$ mkvdev -sea <PHYS> -vadapter <VIRT> -default <VIRT> -defaultid <VLAN> -attr ha_mode=auto ctl_chan=<CONT>
Beispiel: Um einen Shared Ethernet Adapter auf Basis des virtuellen Adapters ent11 mit ent2 als Backend, der VLAN-ID 20 und dem virtuellen Adapter ent13 für den Kontrollkanal zu erstellen, geben Sie den folgenden Befehl ein:
$ mkvdev -sea ent2 -vadapter ent11 -default ent11 -defaultid 20 -attr ha_mode=auto ctl_chan=ent13
3. SEA Load Sharing Mode einschalten
Nacheinander erst auf dem primären, dann auf dem sekundären SEA:
$ chdev -dev <SEA> -attr ha_mode=sharing
4. SEA-Satus abfragen
z.B. für den SEA ent20:
$ entstat -all ent20 | grep '^[ ]*State' State: PRIMARY
Andere mögliche Stati: BACKUP, PRIMARY_SH, BACKUP_SH. Die Stati PRIMARY_SH und BACKUP_SH beziehen sich auf eine Konfiguration im Load Sharing Mode.
5. Einen SEA-Failover manuell einleiten
Auf der aktiven Seite ("State: PRIMARY") für den SEA ent20:
$ chdev -dev ent20 -attr ha_mode=standby
Dadurch wird der SEA auf dem anderen VIO-Server automatisch aktiv. Mit
$ chdev -dev ent20 -attr ha_mode=auto
6. Linkstatus von Netzwerkkarten abfragen
$ netstat -cdlistats | grep -Ei "\(ent|media|link status" ETHERNET STATISTICS (ent3) : Link Status : Up Media Speed Selected: 100 Mbps Full Duplex Media Speed Running: 100 Mbps Full Duplex
7. Lokale IP-Adresse setzen
Eine IP-Adresse 192.168.1.2 für lokalen Zugriff lässt sich mit mktcpip setzen:
$ mktcpip -hostname <HOSTNAME> \ -inetaddr 192.168.1.2 \ -interface en0 -start \ -netmask 255.255.255.0 \ -gateway <GATEWAY>
Der obige Befehl setzt zugleich Hostname und Default-Gateway.
8. Lokale IP-Konfiguration löschen
Möchten Sie die IP-Konfiguration von en0 wieder entfernen, genügt ein
$ rmtcpip -interface en0