Esta semana traigo un post de troubleshooting en VMware, he tenido problemas con un ESXi que he conseguido solucionar, ha sido algo sencillo pero a la vez difícil de detectar ya que intervienen diversos factores , por eso quiero compartir con ustedes este post.
Los sintomas que presentaba el ESXi era que al reiniciar tardaba más de una hora, cuando lo normal era unos 5 o 6 minutos. Revisando a nivel de hardware no presentaba ningún problema aparente, pero aun así decidí abrir una incidencia al proveedor del hardware, como siempre lo primero que te dicen es actualizar ultimas versiones de drivers, firmware... una vez realizado esto seguía con el mismo problema.
Cada vez que reiniciaba el ESXi se quedaba, en la carga de módulos en mw_satp_alua loaded successfully, aproximadamente una hora.
Pulsando en Alt +F12 podemos ver mientras arranca nuestro ESXi, que módulos y operaciones realiza durante el inicio, justo allí me dí cuenta de que algo estaba pasando una serie de luns, al comprobar en la cabina de almacenamiento que luns eran, vi que todas pertenecían a unos discos RDM que están presentados a un Cluster de Microsoft (MSCS).
Parece ser que los hosts ESXi usan diferentes técnicas para determinar si un disco RDM esta siendo usado, durante el inicio del host comprueba si todos los dispositivos presentados están disponibles, por lo que si tenemos un cluster de máquinas virtuales con MSCS en otros hosts, éste no puede descubrir la lun, ya que MSCS reserva de forma permanente los dispositivos SCSI que le son presentado, ahí se produce la lentitud ya que intenta descubrir por los diferentes caminos la lun. La solución pasa por marcar esa lun como reservada.
Para comprobar la configuración de la lun usaremos el siguiente comando:
esxcli storage core device list -d naa.6005076802810e2e0800000000000b6
En la imagen anterior vemos como no tenemos asignado la lun como reservada, entonces vamos a marcar las luns que sean usadas por MSCS como reservadas, para solucionar el problema mencionado anteriormente, usaremos el siguiente comando para hacerlo:
esxcli storage core device setconfig -d naa.6005076802810e2e0800000000000b6 --perennially-reserved=true
Tenemos que tener en cuenta que esto debemos hacerlo por cada ESXi y cada lun afectada, una vez hecho esto, si reiniciamos el host tardará lo justo. Si aun no tenéis ningún sistema para automatizar tareas, os recomiendo leer el post que escribí semanas anteriores de cómo automatizar un entorno VMware con Ansible, de esta forma podéis aplicar ésto en cuestión de segundos.
ACTUALIZACIÓN: Podéis consultar el KB 1016106 para más información.