miércoles, 9 de marzo de 2011

VMware vSphere: Trabajar con LUN Masking

Hola a todos, en el presente articulo hablaremos de LUN Masking a nivel de VMware (VMKernel).

Enmascarar los Paths o Caminos, permite evitar que los hosts ESX/ESXi accedan a dispositivos de almacenamientos o LUNs, o evitar que utilizan Paths especificos. Cuando se aplica LUN Masking, se crean reglas que asignan el plug-in MASK_PATH en el Path especificado.

Una razon para aplicar LUN Masking, es proteger una o más LUNs en el caso de que se quiera reinstalar un host con booteo desde la SAN. Cuando se utiliza Boot desde la SAN, LUN Masking permite configurar el host para que este vea solo la LUN que le corresponde, y evitar de esta forma que se corrompa una LUN de otro host, o un Datastore de Maquinas Virtuales.

Por otro lado, como buena practica, se recomienda que se aplique LUN Masking cuando se quiera quitar una LUN desde uno o más hosts ESX/ESXi. Esto antes de quitar la LUN a nivel de Storage.

En vSphere, la configuración de LUN Masking no es posible realizarla a traves del vSphere Client. Esta configuración debe llevarse a cabo desde la Service Console, vCLI o a traves de la vMA.

Aplicar LUN Masking

A continuación detallare el proceso de aplicación de LUN Masking en un host ESX/ESXi

En primer lugar debemos determinar cuales son los Paths o caminos que está utilizando la LUN para llegar al Storage.

Los Paths en VMware tienen el siguiente formato:
  • vmhba37:C1:T7:L0
Donde:
  • C: Canal o Channel
  • T: Destino o Target
  • L: LUN
Esto podemos realizarlo a traves de vSphere Client o por linea de comandos
En vSphere Client nos dirigimos a la pestaña "Configuration" del host, e ingresamos a la sección Storage Adapters.
Seleccionamos el adaptador iSCSI (en nuestro caso el adaptador por Software).
En la sección inferior, en la división de Paths, buscamos las rutas que ocupa la LUN que queremos enmascarar.
En nuestro caso, aplicaremos LUN Masking en la LUN VMFS-EQL-ISOS, la cual tiene 2 rutas según lo que aparece en la lista de Paths.
  • vmhba37:C1:T7:L0
  • vmhba37:C0:T7:L0


Del mismo modo, utilizando CLI debemos ejecutar los siguientes comandos:
# vmkfstools --queryfs /vmfs/volumes/NombreLUN
Con lo que obtemos el ID de la LUN.
# esxcfg-mpath --list-paths --device LUN_ID
Con lo que obtenemos los Paths utilizados por la LUN.
Teniendo ya los Paths, podemos proseguir creando las reglas Claimrule para enmascarar cada uno de ellos.
En primer lugar listamos las reglas existentes para saber que numero de regla podemos utilizar.
# esxcli corestorage claimrule list
El numero de la regla puede ir de la 101 a la 200.

Proseguimos creando las reglas necesarias, requiriendose una regla por Path a enmascarar.
En nuestro caso tenemos 2 Paths, por lo que crearemos 2 reglas:
esxcli corestorage claimrule add -P MASK_PATH -r 120 -t location -A vmhba37 -C 0 -T 7 -L 0

esxcli corestorage claimrule add -P MASK_PATH -r 121 -t location -A vmhba33 -C 1 -T 7 -L 0
Como vimos anteriormente,
  • C: Canal o Channel
  • T: Destino o Target
  • L: LUN
  • A: Adaptador
Cargamos las reglas que recién creamos y verificamos que efectivamente ya se muestran en la lista de reglas.
# esxcli corestorage claimrule load
# esxcli corestorage claimrule list

Las reglas deben aparecer como clase File y Runtime (cada una).

A continuación debemos de-registrar (unclaim) el Path, y ejecutar las reglas.
# esxcli corestorage claiming unclaim -t location -A vmhba37 -C 0 -T 7 -L 0
# esxcli corestorage claiming unclaim -t location -A vmhba37 -C 0 -T 7 -L 0
# esxcli corestorage claimrule run
El comando de Unclaim se debe realizar por cada regla creada (1 por Path).
Con estos pasos, la LUN ya no debiera ser visibile para el host.
En vSphere Client nos dirigimos a la pestaña "Configuration" del host, e ingresamos a la sección Storage Adapters.
Aqui vemos que ya solo tenemos 9 Devices (LUNs), con lo que confirmamos que el Masking se ha aplicado correctamente.

En ocasiones, las rutas aparecen como "Dead" antes de desaparecer completamente, lo cual ocurre con un Rescan.

Si ingresamos por linea de comandos a la ruta /vmfs/volumes, podemos ver que la LUN enmascarada ya no aparece.
Con eso se concluye el proceso de LUN Masking.

Deshacer LUN Masking

A continuación detallare el proceso para deshacer una configuración de LUN Masking en un host ESX/ESXi, y que una LUN sea nuevamente visible.
En primer lugar listamos las reglas existentes para saber el numero de las reglas que actualmente enmascaran la LUN.
# esxcli corestorage claimrule list
En este caso, son las reglas 120 y 121.
A continuación debemos eliminar las reglas necesarias.
# esxcli corestorage claimrule delete -r 120
# esxcli corestorage claimrule delete -r 121.
Si listamos las reglas podemos ver ahora que las reglas solo aparecen como clase "Runtime".
A continuación cargamos las reglas.
Podemos ver ahora que las reglas clase Runtime han desaparecido definitivamente.
A continuación debemos registrar el Path, y ejecutar las reglas.
# esxcli corestorage claiming unclaim -t location -A vmhba37 -C 0 -T 7 -L 0
# esxcli corestorage claiming unclaim -t location -A vmhba37 -C 0 -T 7 -L 0
# esxcli corestorage claimrule run
El comando de Unclaim se debe realizar por cada regla creada (1 por Path).
Con estos pasos, la LUN ya debiera ser visibile nuevamente para el host.
En vSphere Client nos dirigimos a la pestaña "Configuration" del host, e ingresamos a la sección Storage Adapters.
Aqui vemos que tenemos nuevamente 10 Devices (LUNs), con lo que confirmamos que el Masking se ha quitado correctamente.
Vemos también que el Datastore figura nuevamente en la lista de Datastores del host.
Si ingresamos por linea de comandos a la ruta /vmfs/volumes, podemos ver que la LUN aparece nuevamente
Con eso se concluye el proceso de deshacer LUN Masking.

Espero que les sea de utilidad, y no duden en consultar si tienen alguna pregunta.
Saludos!!!

0 comentarios:

Publicar un comentario