MPxIO de Solaris: como eliminar una LUN del sistema





Cuando se tiene configurado MPxIO y se desea eliminar una LUN del sistema, hay que tener presente que si la LUN no es eliminada del Traffic Manager (MPxIO), después pueden ocurrir cosas raras (personalmente, he presentado nuevas LUN y parecen ser idénticas a la eliminada, tamaños distintos, etc) que sólo se solucionan rebooteando el servidor (lo cual no es la idea).



El proceso de eliminar una LUN del sistema es simple, pero debe realizarse en orden. Básicamente, para eliminar una(s) LUN(s) del sistema se debe hacer lo siguiente:



1) Desmontar todos los filesystem que dependen de la(s) LUN(s) a eliminar (sacar de vfstab, etc)



2) Deportar diskgroup al que pertenece(n) la(s) LUN(s) o eliminar los volúmenes correspondientes (en el caso de VERITAS Volume Manager). Si es Solstice Disk Suite (o Solaris Volume Manager) eliminar los metadevices correspondientes.



3) Despresentar las LUNs desde el Storage (o desconectar discos en el caso de que sea una caja de discos sin inteligencia). La idea es que bajo MPxIO los discos queden en la condición unusable (esto se ve con el comando cfgadm -al -o show_FCP_dev en Solaris 8 y con cfgadm -al -o show_SCSI_LUN en Solaris 10, aunque el primer caso a mi me ha funcionado tanto en Solaris 8 como 10).



4) cfgadm no permite eliminar una única LUN del sistema, cuando el Storage conectado no es Sun (por lo menos eso me ha pasado con los StorageWorks HP EVA8000). Por esta razón, los discos se dejan en la condición unusable, para después poder eliminarlos con el siguiente comando (se debe hacer por cada PORT del Controlador del Storage por donde se ve el disco, de acuerdo a la salida del cfgadm -al -o show_FCP_dev):

cfgadm .c unconfigure -o unusable_FCP_dev DEVICE, donde DEVICE corresponde a cada puerto del controlador.



EJEMPLO

En este ejemplo, se tiene un servidor SunFire v880/Solaris 8/2 x HBA Sun/HP StorageWorks EVA8000/MPxIO/VERITAS Volume Manager 4.0.



En este punto ya se desmontaron filesystem, se sacaron de Volume Manager y se despresentaron las LUN desde el Storage.



Con el comando cfgadm -al -o show_FCP_dev debemos ver los discos en Condicion unusable:



# cfgadm -al -o show_FCP_dev

Ap_Id Type Receptacle Occupant Condition

c1 fc-private connected configured unknown

c1::21000004cf16426e,0 disk connected configured unknown

c1::21000004cf9b566c,0 disk connected configured unknown

c1::21000004cf9b6102,0 disk connected configured unknown

c1::21000004cf9b6107,0 disk connected configured unknown

c1::21000004cf9b6120,0 disk connected configured unknown

c1::21000004cfb47161,0 disk connected configured unknown

c1::508002000019f829 ESI connected configured unknown

c10 fc-fabric connected configured unknown

c10::50001fe150020dd9,0 array-ctrl connected unconfigured unknown

c10::50001fe150020dd9,1 disk connected configured unknown

c10::50001fe150020dd9,2 disk connected configured unknown

c10::50001fe150020dd9,3 disk connected configured unknown

c10::50001fe150020dd9,4 unavailable connected configured unusable

c10::50001fe150020ddb,0 array-ctrl connected unconfigured unknown

c10::50001fe150020ddb,1 disk connected configured unknown

c10::50001fe150020ddb,2 disk connected configured unknown

c10::50001fe150020ddb,3 disk connected configured unknown

c10::50001fe150020ddb,4 unavailable connected configured unusable

c10::50001fe150020ddd,0 array-ctrl connected unconfigured unknown

c10::50001fe150020ddd,1 disk connected configured unknown

c10::50001fe150020ddd,2 disk connected configured unknown

c10::50001fe150020ddd,3 disk connected configured unknown

c10::50001fe150020ddd,4 unavailable connected configured unusable

c10::50001fe150020ddf,0 array-ctrl connected unconfigured unknown

c10::50001fe150020ddf,1 disk connected configured unknown

c10::50001fe150020ddf,2 disk connected configured unknown

c10::50001fe150020ddf,3 disk connected configured unknown

c10::50001fe150020ddf,4 unavailable connected configured unusable

c11 fc-fabric connected configured unknown

c11::50001fe150020dd8,0 array-ctrl connected unconfigured unknown

c11::50001fe150020dd8,1 disk connected configured unknown

c11::50001fe150020dd8,2 disk connected configured unknown

c11::50001fe150020dd8,3 disk connected configured unknown

c11::50001fe150020dd8,4 unavailable connected configured unusable

c11::50001fe150020dda,0 array-ctrl connected unconfigured unknown

c11::50001fe150020dda,1 disk connected configured unknown

c11::50001fe150020dda,2 disk connected configured unknown

c11::50001fe150020dda,3 disk connected configured unknown

c11::50001fe150020dda,4 unavailable connected configured unusable

c11::50001fe150020ddc,0 array-ctrl connected unconfigured unknown

c11::50001fe150020ddc,1 disk connected configured unknown

c11::50001fe150020ddc,2 disk connected configured unknown

c11::50001fe150020ddc,3 disk connected configured unknown

c11::50001fe150020ddc,4 unavailable connected configured unusable

c11::50001fe150020dde,0 array-ctrl connected unconfigured unknown

c11::50001fe150020dde,1 disk connected configured unknown

c11::50001fe150020dde,2 disk connected configured unknown

c11::50001fe150020dde,3 disk connected configured unknown

c11::50001fe150020dde,4 unavailable connected configured unusable



Para explicar un poco la salida del comando anterior, tenemos lo siguiente:

- Este servidor tiene 3 controladoras de Fibra, que son c1 (controladora de discos internos de fibra), c10 y c11 (las 2 tarjetas HBA conectadas al EVA8000)

- El Storage EVA8K tiene 2 controladores y cada controlador tiene 4 Puertos. Esto implica que cada LUN la veré por 8 PATH distintos (2 Controllers * 4 Ports = 8 PATH).

- Por cada HBA se ve un controlador (los 4 PORTS de un controlador). Debajo de cada Puerto (array-ctrl) aparecen las LUN que están presentadas al servidor (el número de la LUN es el que está después de la ",").



En este caso, se ha despresentado una LUN, la LUN 4. Se puede apreciar que en todos los Puertos aparece la LUN ",4" en Condicion unusable. Hay que eliminarla una por una (8 veces) de cada Puerto. En el comando para eliminar, se debe poner el WWPN de cada Puerto (todo el chorizo hasta antes de la ","). De esta manera, el cfgadm va a eliminar todas los dispositivos que estén en estado unusable del Controlador indicado.



Para hacer todo en un sólo paso y poder automatizar el proceso de eliminación, hice un "script" que hace todo (pero todo lo que tiene que ver con MPxIO, no desmonta ni deporta grupos de discos):



cfgadm -al -o show_FCP_dev | grep unusable | awk '{print $1}' | while read t; do device=`echo $t | cut -d"," -f1`; cfgadm -c unconfigure -o unusable_FCP_dev $device; done

0 Response to MPxIO de Solaris: como eliminar una LUN del sistema

Publicar un comentario