7.4.3. Zuordnen eines physikalischen FC-Ports (Mapping)

Unter AIX wird für den Gerätenamen eines virtuellen FC Client-Adapter der Standard-Name für FC-Adapter fcs verwendet. Nach dem Hinzufügen eines virtuellen FC Client-Adapters zu einer LPAR wird das zugehörige neue Gerät nicht automatisch vom Betriebssystem erkannt.

aix22 # lscfg -l fcs*
  fcs0             U9009.22A.679F95F-V5-C10-T1  Virtual Fibre Channel Client Adapter
  fcs1             U9009.22A.679F95F-V5-C20-T1  Virtual Fibre Channel Client Adapter
aix22 #

Die Ausgabe zeigt, daß nur die beiden virtuellen FC Client-Adapter in Slot 10 und 20 dem Betriebssystem bekannt sind. Der oben angelegte Adapter in Slot 11 ist dem Betriebssystem noch nicht bekannt.

Nach dem Hinzufügen eines virtuellen FC Client-Adapters in einer Client-LPAR, muß das Betriebssystem der Client-LPAR den neuen Client-Adapter erst erkennen. Im Falle von AIX als Betriebssystem muß dazu der Config-Manager cfgmgr gestartet werden:

aix22 # cfgmgr -v
cfgmgr is running in phase 2
----------------

----------------
Attempting to configure device 'fcs2'
Time: 0 LEDS: 0x2701
Invoking /usr/lib/methods/cfg_vfc -l fcs2
Number of running methods: 5
----------------

----------------
Attempting to configure device 'fscsi2'
Time: 1 LEDS: 0x2700
Invoking /usr/lib/methods/cfgefscsi -l fscsi2
Number of running methods: 1
----------------
Completed method for: fscsi2, Elapsed time = 19
Return code = 61
*** no stdout ****
*** no stderr ****
Method error (/usr/lib/methods/cfgefscsi -l fscsi2 ):
        0514-061 Cannot find a child device.
----------------

aix22 #

Die Ausgabe zeigt das der Adapter fcs2 erkannt wurde. Allerdings meldet das zugehörige Protokoll-Gerät fscsi2 den Fehler „0514-061 Cannot find a child device.“. Dies liegt daran, daß zwar der virtuelle FC Client- und virtuelle FC Server-Adapter angelegt wurden, aber der virtuelle FC Server-Adapter noch keinem physikalischen FC-Port zugeordnet wurde. Es fehlt damit die Anbindung an eine FC-Fabric, wie Bild 7.13 zeigt.

The mapping to a physical FC port is missing for the LPAR aix22.
Bild 7.13: Für die LPAR aix22 fehlt das Mapping auf einen physikalischen FC-Port.

Bei der linken LPAR besitzt der virtuelle FC Client-Adapter fcs0 (blau) über den zugehörigen virtuellen FC Server-Adapter eine Anbindung an den physikalischen FC-Port fcs0 auf dem Virtual-I/O-Server und damit eine Anbindung an eine FC-Fabric. Diese Zuordnung muß für den neuen virtuellen FC Server-Adapter (rot) erst noch gemacht werden.

Die bestehenden Zuordnungen (Mappings) auf einem Virtual-I/O-Server können mit dem Kommando „vios lsnpiv“ (list NPIV mappings) angezeigt werden:

$ vios lsnpiv ms03-vio1
NAME      SLOT  FC    FCLABEL  CLIENT        CLNTOS  VFCCLIENT  VFCSLOT  STATUS       PORTS
vfchost2  C5    fcs0  Fabric1  aix22(5)   AIX     fcs0       C10      LOGGED_IN      7
vfchost3  C125  fcs0  Fabric1  aixsap01(9)   AIX     fcs0       C10      LOGGED_IN      7
vfchost4  C181  fcs0  Fabric1  aixdbp02(11)  AIX     fcs0       C10      LOGGED_IN      5
vfchost5  C182  fcs0  Fabric1  aixdbi02(13)  AIX     fcs0       C10      LOGGED_IN      5
vfchost6  C38   -     -        -(5)    -       -          -        NOT_LOGGED_IN  0
$

Die Spalte NAME ganz links gibt den Gerätenamen des virtuellen FC Server-Adapters auf dem Virtual-I/O-Server an. Die Bezeichnung vfchost (virtual FC host) deutet eindeutig darauf hin, daß es sich um einen virtuellen FC Server (Host) Adapter handelt. Als nächstes wird die virtuelle Slot Nummer des virtuellen FC Server Adapters auf dem Virtual-I/O-Server in der Spalte SLOT gezeigt. Falls der Server (Host) Adapter einem physikalischen Port zugewiesen wurde, wird der physikalische FC-Port in der Spalte FC genannt, andernfalls wird ein „„ ausgegeben. Als zusätzliche Information wird das label-Attribut des physikalischen FC-Ports in der Spalte FCLABEL ausgegeben. Danach folgen Informationen über die Client-LPAR (Name und LPAR-ID), sowie das Betriebssystem des Clients und der Gerätename des zugehörigen virtuellen FC Client-Adapter und die zugehörige virtuelle Slot-Nummer auf der Client-LPAR. Als letztes wird der Status des virtuellen FC Server Adapter und falls in die Fabric eingelogged (STATUS= LOGGED_IN), wird die Anzahl der sichtbaren FC-Ports ausgegeben. Einer der sichtbaren FC-Ports ist immer der virtuelle FC Server Adapter selbst, die weiteren sichtbaren FC-Ports sind in der Regel FC-Ports des verwendeten Storage. Ein Storage-Port kann mehr als eine Disk (LUN) zur Verfügung stellen, daher liefert die Anzahl der sichtbaren Storage-Ports keinen Hinweis darauf wieviele LUNs dem Client zugewiesen wurden.

Der neu angelegte virtuelle FC Server-Adapter ist vfchost6 (Slot C38). Der Ausgabe kann man leicht entnehmen das diesem noch kein physikalischer FC-Port zugeordnet wurde.

Die Zuordnung eines physikalischen FC-Ports für einen virtuellen FC Server-Adapter erfolgt mit Hilfe des Kommandos „vios vfcmap“ (map virtual FC adapter):

$ vios vfcmap ms03-vio1 vfchost6 fcs0
vfchost6 mapped to fcs0
$

Dabei wird nach dem Virtual-I/O-Server (auf dem das Mapping durchgeführt werden soll) das vfchost-Gerät und der physikalische FC-Port angegeben. Beim Mapping loggt sich der virtuelle FC Server-Adapter sofort in die Fabric ein:

$ vios lsnpiv ms03-vio1
NAME      SLOT  FC    FCLABEL  CLIENT        CLNTOS  VFCCLIENT  VFCSLOT  STATUS       PORTS
vfchost2  C5    fcs0  Fabric1  aix22(5)   AIX     fcs0       C10      LOGGED_IN      7
vfchost3  C125  fcs0  Fabric1  aixsap01(9)   AIX     fcs0       C10      LOGGED_IN      7
vfchost4  C181  fcs0  Fabric1  aixdbp02(11)  AIX     fcs0       C10      LOGGED_IN      5
vfchost5  C182  fcs0  Fabric1  aixdbi02(13)  AIX     fcs0       C10      LOGGED_IN      5
vfchost6  C38   fcs0  Fabric1  aix22(5)   AIX     fcs2       C11      LOGGED_IN      1
$

Anstelle des vfchost-Geräts erlaubt das Kommando „vios vfcmap“ auch die Slot-Nummer des virtuellen FC Server-Adapters anzugeben:

$ vios vfcmap ms03-vio1 38 fcs0
vfchost6 mapped to fcs0
$

Anhand der Slot-Nummer 38 (es kann auch C38 angegeben werden) wird das zugehörige vfchost-Gerät gesucht und dann beim Mapping verwendet.

Anstelle des physikalischen FC-Ports kann auch das label-Attribut verwendet werden. Damit lässt sich beim Mapping auch direkt die gewünschte Fabric angeben, ohne das man den Gerätenamen des physikalischen FC-Ports kennen muß:

$ vios vfcmap ms03-vio1 vfchost6 Fabric1
vfchost6 mapped to fcs0
$

Haben mehrere FC-Ports das gleiche Label, dann wird der erste FC-Port verwendet!

Sowohl beim vfchost-Gerät, als auch beim physikalischen FC-Port, kann auch der Physical Location Code des Gerätes angegeben werden. Der physikalische FC-Port fcs0 hat beispielsweise den Location Code U78AA.001.VYRGU0Q-P1-C5-T1. Anstelle des Gerätenamens fcs0 kann daher auch U78AA.001.VYRGU0Q-P1-C5-T1 angegeben werden. Dies ist natürlich keine übermäßige Vereinfachung. Aber es ist nicht erforderlich den kompletten Location Code anzugeben, es reicht einen eindeutigen Suffix des Location Codes anzugeben, wobei der Suffix immer nach einem Punkt „.“ oder Bindestrich „„ anfangen muß. Die folgenden Suffixe sind auf dem Beispiel-System eindeutig:

U78AA.001.VYRGU0Q-P1-C5-T1
001.VYRGU0Q-P1-C5-T1
VYRGU0Q-P1-C5-T1
P1-C5-T1
C5-T1

Damit könnte das Mapping auch wie folgt durchgeführt werden:

$ vios vfcmap ms03-vio1 C38 C5-T1
vfchost6 mapped to fcs0
$

Dabei wurde das vfchost-Gerät über die Slot-Nummer C38 angegeben und der physikalische FC-Port über den eindeutigen Suffix C5-T1. Das Resultat ist das gleiche wie in allen anderen Beispielen oben: vfchost6 wird auf fcs0 gemappt.

Der Suffix T1 ist hingegen nicht eindeutig, man bekommt beim Mapping eine entsprechende Fehlermeldung:

$ vios vfcmap ms03-vio1 vfchost6 T1
ERROR: more than one matching fcs adapter
did you mean: fcs0 , U78AA.001.VYRGU0Q-P1-C5-T1 (label: Fabric1)
did you mean: fcs4 , U78AA.001.VYRGU0Q-P1-C1-C1-T1 (label: Fabric1)

USAGE:
   vios [-h ] [-m ] vfcmap [-v] ||[/{|}] ||

Zusammen mit der Fehlermeldung werden alle Physical Location Codes angezeigt, für die T1 ein Suffix ist.