Petite astuce sur une problématique connue par tous les administrateurs Solaris utilisants des baies du types CLX et VNX (baie clariion chez EMC) avec le gestionnaire de multipath natif de Solaris MPxIO.
En simplifiant grandement, lors de la première attribution de Lun(s) sur le serveur Solaris, le mécanisme de la baie utilise un type de lun spécifique appelé LUNZ. Il s'agit ni plus ni moins d'une lun d'administration qui à l'image des Gatekeeper sous DMX ne s'intégre pas à la configuration MPxIO du serveur (je ne détaille pas ici les raisons). Une fois l'attribution des luns effectuée sur le serveur, cette LUNZ est substituée par une lun classique. Mais voilà le probléme, la configuration MPxIO n'est plus correct. En effet la Lun qui reprend la position de la LUNZ n'est pas sous contrôle MPxIO. Le plus simple est de rebooter le serveur en mode reconfiguration mais en production ce n'est pas toujours possible.
Voilà donc la solution de ce petit problème que j'ai plaisir à répéter un peu trop souvent à mes collégues :)
# luxadm probe | more
No Network Array enclosures found in /dev/es
Found Fibre Channel device(s):
Node WWN:50060160b9a01d49 Device Type:Disk device
Logical Path:/dev/rdsk/c2t5006016839A01D49d0s2
Logical Path:/dev/rdsk/c2t5006016039A01D49d0s2
Logical Path:/dev/rdsk/c3t5006016A39A01D49d0s2
Logical Path:/dev/rdsk/c3t5006016239A01D49d0s2
Node WWN:50060160bb205594 Device Type:Disk device
Logical Path:/dev/rdsk/c4t60060160FB112900A477E76B20CADF11d0s2
Node WWN:50060160bb205594 Device Type:Disk device
Logical Path:/dev/rdsk/c4t60060160FB112900C041CD7320CADF11d0s2
Node WWN:50060160bb205594 Device Type:Disk device
Logical Path:/dev/rdsk/c4t60060160FB112900C241CD7320CADF11d0s2
Node WWN:50060160bb205594 Device Type:Disk device
Logical Path:/dev/rdsk/c4t60060160FB112900C441CD7320CADF11d0s2
Node WWN:50060160bb205594 Device Type:Disk device
...
La LUNZ prenant la première position, on nomme fréquemment ce dysfonctionnement de problème entre LUNZ et LUN0.
# fcinfo hba-port
HBA Port WWN: 10000000c99920a4
OS Device Name: /dev/cfg/c3
Manufacturer: Emulex
Model: LPe12000-S
Firmware Version: 1.11a5 (U3D1.11A5)
FCode/BIOS Version: Boot:5.03a4 Fcode:3.10a3
Serial Number: 0999BT0-10380003HU
Driver Name: emlxs
Driver Version: 2.50o (2010.01.08.09.45)
Type: N-port
State: online
Supported Speeds: 2Gb 4Gb 8Gb
Current Speed: 4Gb
Node WWN: 20000000c99920a4
HBA Port WWN: 10000000c9991aae
OS Device Name: /dev/cfg/c2
Manufacturer: Emulex
Model: LPe12000-S
Firmware Version: 1.11a5 (U3D1.11A5)
FCode/BIOS Version: Boot:5.03a4 Fcode:3.10a3
Serial Number: 0999BT0-10380003EC
Driver Name: emlxs
Driver Version: 2.50o (2010.01.08.09.45)
Type: N-port
State: online
Supported Speeds: 2Gb 4Gb 8Gb
Current Speed: 4Gb
Node WWN: 20000000c9991aae
# fcinfo remote-port -p 10000000c99920a4 -s
Remote Port WWN: 5006016a39a01d49
Active FC4 Types: SCSI
SCSI Target: yes
Node WWN: 50060160b9a01d49
LUN: 0
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c3t5006016A39A01D49d0s2
LUN: 1
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c4t600601600C421C00E0BF020FE0A5DF11d0s2
LUN: 2
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c4t600601600C421C00B827016B604BDE11d0s2
LUN: 3
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c4t600601600C421C00347A5E80604BDE11d0s2
...
Il suffit simplement de déconfigurer tous les paths de cette Lun et de la redécouvrir. Attention tout de même qu'aucune ressource utilise l'in des paths de cette Lun, par exemple : des datas, dans la configuration d'un gestionnaire de volumes, un agent type Navisphere, etc.
# luxadm -e offline /dev/rdsk/c2t5006016839A01D49d0s2
devctl: I/O error
# vxdisk -e list | grep -i 5006016039A01D49d0
c2t5006016039A01D49d0s2 auto:sliced - - online c2t5006016039A01D49d0s2
# vxdisk rm c2t5006016039A01D49d0s2
# luxadm -e offline /dev/rdsk/c2t5006016839A01D49d0s2
# luxadm -e offline /dev/rdsk/c2t5006016039A01D49d0s2
# luxadm -e offline /dev/rdsk/c3t5006016A39A01D49d0s2
# luxadm -e offline /dev/rdsk/c3t5006016239A01D49d0s2
# cfgadm -al
...
c2 fc-fabric connected configured unknown
c2::5006016039a01d49 disk connected configured unusable
c2::500601603b205594 disk connected configured unknown
c2::500601603b206f30 disk connected configured unknown
c2::5006016230603a09 disk connected configured unknown
c2::5006016839a01d49 disk connected configured unusable
c2::500601683b205594 disk connected configured unknown
c2::500601683b206f30 disk connected configured unknown
c2::5006016a30603a09 disk connected configured unknown
c3 fc-fabric connected configured unknown
c3::5006016130603a09 disk connected configured unknown
c3::5006016239a01d49 disk connected configured unusable
c3::500601623b205594 disk connected configured unknown
c3::500601623b206f30 disk connected configured unknown
c3::5006016930603a09 disk connected configured unknown
c3::5006016a39a01d49 disk connected configured unusable
c3::5006016a3b205594 disk connected configured unknown
c3::5006016a3b206f30 disk connected configured unknown
...
# cfgadm -o unusable_FCP_dev -c unconfigure c2::5006016039a01d49
# cfgadm -o unusable_FCP_dev -c unconfigure c2::5006016839a01d49
# cfgadm -o unusable_FCP_dev -c unconfigure c3::5006016239a01d49
# cfgadm -o unusable_FCP_dev -c unconfigure c3::5006016a39a01d49
La déconfiguration de cette Lun par ces quatres paths est terminée. Il suffit donc de la réintégrer au serveur.
# cfgadm -c configure c2::5006016039a01d49
# cfgadm -c configure c2::5006016839a01d49
# cfgadm -c configure c3::5006016239a01d49
# cfgadm -c configure c3::5006016a39a01d49
# devfsadm -Cv
devfsadm[25244]: verbose: removing file: /dev/rdsk/c2t5006016839A01D49d0s3
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016239A01D49d0s6
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016A39A01D49d0s5
devfsadm[25244]: verbose: removing file: /dev/rdsk/c2t5006016039A01D49d0s2
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016A39A01D49d0s2
devfsadm[25244]: verbose: removing file: /dev/rdsk/c2t5006016039A01D49d0s5
devfsadm[25244]: verbose: removing file: /dev/rdsk/c3t5006016239A01D49d0s1
...
Une petite vérification simpose toujours.
# fcinfo remote-port -p 10000000c99920a4 -s
Remote Port WWN: 5006016a39a01d49
Active FC4 Types: SCSI
SCSI Target: yes
Node WWN: 50060160b9a01d49
LUN: 0
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
LUN: 1
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c4t600601600C421C00E0BF020FE0A5DF11d0s2
LUN: 2
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c4t600601600C421C00B827016B604BDE11d0s2
LUN: 3
Vendor: DGC
Product: RAID 5
OS Device Name: /dev/rdsk/c4t600601600C421C00347A5E80604BDE11d0s2
...
# luxadm disp /dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
DEVICE PROPERTIES for disk: /dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
Vendor: DGC
Product ID: RAID 5
Revision: 0326
Serial Num: CK200070200964
Unformatted capacity: 34818.750 MBytes
Read Cache: Enabled
Minimum prefetch: 0x0
Maximum prefetch: 0x0
Device Type: Disk device
Path(s):
/dev/rdsk/c4t600601600C421C00CA9ECD0544A5DF11d0s2
/devices/scsi_vhci/ssd@g600601600c421c00ca9ecd0544a5df11:c,raw
Controller /devices/pci@1,700000/SUNW,emlxs@0/fp@0,0
Device Address 5006016039a01d49,0
Host controller port WWN 10000000c9991aae
Class secondary
State ONLINE
Controller /devices/pci@1,700000/SUNW,emlxs@0/fp@0,0
Device Address 5006016839a01d49,0
Host controller port WWN 10000000c9991aae
Class primary
State ONLINE
Controller /devices/pci@11,700000/SUNW,emlxs@0/fp@0,0
Device Address 5006016239a01d49,0
Host controller port WWN 10000000c99920a4
Class secondary
State ONLINE
Controller /devices/pci@11,700000/SUNW,emlxs@0/fp@0,0
Device Address 5006016a39a01d49,0
Host controller port WWN 10000000c99920a4
Class primary
State ONLINE
Et voilà rien de plus facile. Quelques commandes dans un autre bien précis pour corriger un dysfonctionnement de MPxIO avec ce type de baie. Juste une dernière précision, si vous retirez cette Lun (en position 0), lors d'un prochain ajout il est possible que vous retombiez sur ce cas de figure. Mais bon vous avez l'astuce maintenant.