Es de conocimiento general que la administración de VMware vSAN se realiza por medio del vCenter Server, pero existen situaciones donde no es posible acceder a la GUI del vCenter Server por diferentes motivos:
En la actualidad muchos clientes corren soluciones críticas en VMware vSAN y por tanto no se pueden dar el lujo de desconocer el estado de salud de dicha plataforma. En ese orden de ideas, hay una buena noticia y es que VMware vSAN es completamente funcional si el vCenter server se encuentra fuera de línea, ya que la administración de la vSAN se realiza por medio de la interfaces de comando de los ESXi´s.
Con vista en lo anterior, el objetivo de este manual es compartir la forma de realizar la validación del estado de salud de la vSAN, por medio de la línea de comandos.
Paso 1: Conectarse a un ESXi por SSH con credenciales de root.
En este paso, es importante habilitar previamente el servicio SSH en el ESXi, lo cual se hace desde la pestaña Configure>Services, luego seleccionamos SSH y damos clic en la parte superior en START.
En la siguiente imagen se detalla el paso a paso:
Paso 2: Luego de conectarnos al ESXi, validamos el estado de salud de la vSAN ejecutando el siguiente comando:
esxcli vsan health cluster list
Este comando es similar al Skyline Health que se corre desde el vCenter Server y nos permite conocer cómo se encuentra la vSAN en los siguientes niveles:
En términos generales, cuando la vSAN se encuentra sana, todos los valores deben estar en green exactamente como se muestra en la siguiente imagen:
Paso 2: Luego de conectarnos al ESXi, validamos el estado de salud de la vSAN ejecutando el siguiente comando:
esxcli vsan health cluster list
Este comando es similar al Skyline Health que se corre desde el vCenter Server y nos permite conocer cómo se encuentra la vSAN en los siguientes niveles:
En términos generales, cuando la vSAN se encuentra sana, todos los valores deben estar en green exactamente como se muestra en la siguiente imagen:
Paso 3: Revisar el estado de salud de los objetos vSAN, lo cual nos permite conocer cómo se encuentran y si hay objetos inaccesibles. Para ello ejecutamos el siguiente comando:
esxcli vsan debug object health summary get
Es importante resaltar que todos los valores de la salida del comando deben estar en cero. En la siguiente imagen se muestra un ejemplo real, donde se aprecia que hay cero objetos inaccesibles, lo cual indica que a nivel de objetos la vSAN se encuentra sana:
Paso 4: Revisar la comunicación con los otros miembros de la vSAN. Este paso es de gran importancia, porque nos permite identificar si se presentan fallas en la comunicación con algún ESXi. El comando a ejecutar es el siguiente:
esxcli network ip neighbor list
La salida del comando nos debe listar todas las Mac Address de los vmknic de cada ESXi y el tipo debe ser Dynamic.
En la siguiente imagen se muestra un ejemplo:
Es importante aclarar que si en la columna Mac Address sale Incomplete y en Type sale Invalid, eso quiere decir que ese host tiene problemas de comunicación.
Paso 5: Comprobar comunicación con el vmk de vSAN. Este paso nos sirve para validar cómo se encuentra la comunicación a nivel del vmk designado de forma exclusiva para vSAN. Para ello es importante conocer previamente cuál es el vmk designado para vSAN. El comando a correr es el siguiente:
esxcli network ip neighbor list -i vmk2 (vmk de vsan)
La salida de este comando nos debe arrojar la IP, la Mac Address, el Vmknic y el type para cada uno de los ESXi´s que hacen parte del clúster de vSAN.
En la siguiente ilustración se muestra un ejemplo:
Paso 6: Comprobar comunicación con un miembro específico de la vSAN. Este paso nos sirve para validar la comunicación con un miembro en particular de la vSAN y cada uno de sus vmk. Es decir, podemos revisar el vmk1, el vmk2, el vmk3 y los otros que tenga dicho ESXi. El comando a ejecutar es el siguiente:
vmkping -I vmk2 XXdestinoXX -s -d
Donde la opción -d es para utilizar el bit Dont´t Fragmente en IPV4.
La opción -s es para indicar el tamaño del MTU utilizado en ESXi.
En la siguiente imagen se puede observar la salida de dicho comando (se aclara que se está revisando la comunicación por medio del vmk1):
Ejemplo con vSAN particionada
A continuación, se detalla un escenario en el que la VMware vSAN se encuentra particionada.
Paso 1: Luego de ingresar por SSH al host, ejecutamos el comando
esxcli vsan health cluster list y encontramos que a nivel general se presenta un problema de networking, y el clúster se particionó.
En la siguiente imagen se puede observar el detalle de la falla reportada:
esxcli vsan health cluster list
El comando anterior nos indica que el clúster está particionado, entonces continuamos haciendo throubleshooting y ejecutamos el siguiente comando:
esxcli vsan health cluster get -t “vSAN cluster partition”
El comando anterior nos permite identificar cuales hosts se encuentran particionados, es decir que no tienen comunicación a nivel de vSAN.
En la siguiente ilustración se aprecia que el host cuya IP es 172.20.10.53 se encuentra particionado, es decir, aislado de los demás miembros de la vSAN por fallas de red:
Paso 2: Luego ejecutamos el comando esxcli vsan debug object health summary get
y obtenemos que hay 8 objetos inaccesibles lo que indica que NO se puede tener acceso a los mismos que se encuentran en el datastore de vSAN.
En la siguiente imagen se detalla el mensaje:
Paso 3: Revisar la comunicación con los otros miembros de la vSAN ejecutando el siguiente comando esxcli network ip neighbor list y encontramos que hay un host con problemas de comunicación.
En la siguiente imagen se detallan los errores:
En conclusión, conocer cómo revisar el estado de salud de VMware vSAN por medio de la línea de comando es de gran importancia porque nos ayuda a identificar en tiempo real como se encuentra dicha plataforma y además es de gran utilidad cuando se presentan fallas con el vCenter Server.