7.5.3. Entfernen eines VSCSI-Mappings

Das Mapping zwischen Backing-Device und vhost-Adapter kann jederzeit wieder aufgehoben werden. Gibt es auf der Client-LPAR keinen Pfad über einen anderen Adapter, ist ein Zugriff auf das Gerät dann nicht mehr möglich.

Die Client-LPARs hat die folgenden VSCSI-Mappings auf dem Virtual-I/O-Server:

$ vios lsvscsi ms03-vio2  vhost0
VTD      STATUS     BACKING  BDPHYSLOC  MIRRORED  LUN
vtscsi0  Available  hdisk3   -          N/A       0x8100000000000000
vtscsi1  Available  hdisk4   -          N/A       0x8200000000000000
$

Das Mapping für das Backing-Device hdisk3 soll auf dem Virtual-I/O-Server ms03-vio2 entfernt werden. Die zugehörige Client-LPAR zum virtuellen SCSI-Server Adapter lässt sich mit „vios lsvscsi“ leicht ermitteln:

$ vios lsvscsi ms03-vio2
SVSA    SLOT  CLIENT     LUNS
vhost0  C33   aix22(5)  2
vhost1  C34   aixsap01(9)  7
vhost2  C35   aixdbp02(11)  21
vhost3  C36   aixdbi02(13)  13
$

Die zugehörige Client-LPAR ist aix22 (LPAR-ID 5) und der Adapter vhost0 ist im virtuellen Slot 33 des Virtual-I/O-Servers. Der zugehörige virtuelle SCSI-Client Adapter lässt sich dann der Ausgabe von „lpar lsvslot“ entnehmen:

$ lpar lsvslot aix22
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
5     No   eth            1      PVID=100 VLANS= ETHERNET0 1DC8DB485D1E
10    No   fc/client      1      remote: ms03-vio1(1)/5 c05076030aba0002,c05076030aba0003
11    No   scsi/client    1      remote: ms03-vio1(1)/33
20    No   fc/client      1      remote: ms03-vio2(2)/4 c05076030aba0000,c05076030aba0001
21    No   scsi/client    1      remote: ms03-vio2(2)/33
$

Der virtuelle SCSI-Client Adapter in Slot 21 der Client-LPAR aix22 ist mit dem virtuellen SCSI-Server Adapter in Slot 33 des Virtual-I/O-Servers ms03-vio2 verbunden. Anhand der Slot-Nummer lässt sich das zugehörige vscsi-Gerät in der Client-LPAR identifizieren:

aix22 # lscfg -l vscsi\*
  vscsi0           U9009.22A.8991971-V5-C11-T1  Virtual SCSI Client Adapter
  vscsi1           U9009.22A.8991971-V5-C21-T1  Virtual SCSI Client Adapter
aix22 #

Das zu entfernende Mapping geht also über den virtuellen SCSI-Client Adapter vscsi1 der LPAR, der Physical Location Code enthält die Slot-Nummer 21: V5-C21-T1.

Als nächstes muß die zu hdisk3 auf dem Virtual-I/O-Server gehörende Platte auf der Client-LPAR ermittelt werden. Das virtuelle Target-Device vtscsi0 des Virtual-I/O-Servers besitzt die LUN-ID 0x8100000000000000. Die dazu gehörende hdisk lässt sich mittels lscfg herausfinden:

aix22 # lscfg -l hdisk\* |grep 81
  hdisk9      U9009.22A.8991971-V5-C11-T1-L8100000000000000         Virtual SCSI Disk Drive
aix22 #

Es ist die hdisk9 der Client-LPAR. Wir überprüfen ob diese Pfade über andere Adapter besitzt:

aix22 # lspath -l hdisk9
Enabled hdisk9 vscsi0
Enabled hdisk9 vscsi1
aix22 #

Neben dem Pfad über den Adapter vscsi1 hat die Platte noch einen weiteren aktiven (Enabled) Pfad über den Adapter vscsi0. Damit die Client-LPAR den Pfad über den Adapter vscsi1 nicht mehr verwendet (dieser wird ja durch das Entfernen des Mappings nicht mehr funktionieren), löschen wir den Pfad über den Adapter vscsi1:

aix22 # rmpath -dl hdisk9 -p vscsi1
path Deleted
aix22 #

Sämtliches I/O zu hdisk9 geht jetzt ausschließlich über den Adapter vscsi0!

Jetzt kann als Letztes das Mapping der hdisk3 zum Adapter vhost0 auf dem Virtual-I/O-Server entfernt werden:

$ vios unmap ms03-vio2 vtscsi0
$

(Anstelle des virtuellen Target-Devices vtscsi0 kann auch das Backing-Device hdisk3 angegeben werden.)

Besitzt die Platte in der Client-LPAR für welche auf einem Virtual-I/O-Server das Mapping entfernt werden soll keine Pfade über andere Adapter, muß ein anderes Vorgehen gewählt werden. Um dieses zu zeigen, entfernen wir auch das zweite Mapping für die hdisk9 der Client-LPAR aix22. Nachdem oben einer der beiden Pfade entfernt wurde, hat die LPAR nur noch einen aktiven Pfad:

aix22 # lspath -l hdisk9
Enabled hdisk9 vscsi0
aix22 #

Der letzte Pfad einer hdisk lässt sich nicht mit rmpath entfernen:

aix22 # rmpath -dl hdisk9 -p vscsi0
Method error (/etc/methods/ucfgdevice):
        0514-076 Cannot perform the requested function because the specified
                 paths include all paths for the device.
 
aix22 #

Die Platte muß in diesem komplett aus dem Betriebssystem entfernt werden. Das geht natürlich nur, wenn sie nicht in Benutzung ist. In unserem Beispiel ist die Platte nicht in Benutzung:

aix22 # lspv | grep hdisk9
hdisk9          00dead00beef000e                    None                       
aix22 #

Die hdisk9 gehört zu keiner Volume Group, sie kann also ohne Probleme aus dem Betriebssystem entfernt werden:

aix22 # rmdev -dl hdisk9
hdisk9 deleted
aix22 #

Anschließend kann das Mapping (jetzt auf ms03-vio1) entfernt werden:

$ vios unmap ms03-vio1 vtscsi0
$