Como configurar ESXi free para que las máquinas virtuales se apaguen correctamente frente a un apagado del hypervisor

Intro

Si bien este no es un post especifico sobre seguridad. El contenido nos pareció interesante comentarlo dado que se nos presentó esta situación real y fue difícil conseguir la información.

Nota: Todas las configuraciones indicadas en este post fueron realizadas sobre un hypervisor VMWare ESXi 6.0 free. Es probable que los pasos sean diferentes para otras versiones de hypervisor. Realizo esta aclaración dado que decidí escribir este post al intentar seguir las indicaciones de varios posts para otras versiones (sin tener éxito).

Por cuestiones laborales surgió la necesidad de poder apagar hypervisores ESXi en su versión gratuita.

Escenario:

  • Interrupción de energía
  • UPS alcanzando el umbral de condición crítica
  • Necesidad de apagar los hypervisores.
  • Idealmente también se requería apagar correctamente las máquinas virtuales (en forma previa al apagado del hypervisor).

En este post no está detallado como monitorear el estado de las UPS, cosa a la que probablemente dedique otro post. El objetivo de este post es comentar como configurar un host ESXi y las máquinas virtuales, para que frente a un apagado ordenado, todo suceda “suavemente”.

La documentación de VMWare brinda algunas pistas sobre cómo se podría abordar este tema. [1]

En varios lugares en Internet indican como una opción apropiada el uso de la máquina virtual con vMA. La cuestión es que investigando, ciertas funciones de vMA solo están disponibles para las versiones pagas de hypervisor. En este caso justamente las funciones que necesitaba se encontraban limitadas.

Continué navegando  por Internet y encontré el siguiente script en github: ESXiDown. [2] Sin embargo, referenciado por el propio autor de ese script, llegamos a una solución más simple que es la que vamos a mostrar. [3]

En las siguientes secciones voy a explicar (en forma más o menos detallada) como configurar todo para que los equipos se apaguen correctamente y luego se produzca el apagado del hypervisor.

Pre –requisitos:

  1. El host ESXi debe tener SSH habilitado.

  1. Todas las máquinas virtuales deben tener instaladas las herramientas de VMWare.
  2. Todas las máquinas virtuales deben tener configurada la opción “Detener con el sistema”. Para verificarlo, se puede ingresar al host ESXi “Configuración “ [4]

Para habilitarlo clickear en “propiedades” y asegurarse que la “acción de apagado” sea “apagado de invitado”

La demora al apagar es cuanto tiempo de gracia se le dará la VM para que se apague, cumplido ese lapso se apagara de forma forzada.

Acciones a ejecutar para el apagado

Cumplidos estos pre requisitos, para el apagado se debe ejecutar los siguientes comandos consecutivamente via SSH:

/sbin/shutdown.sh && /sbin/poweroff

La construcción && implica que se debe terminar de ejecutar el primer comando para ejecutar el segundo.

Estos comandos se pueden ejecutar desde otro equipo mediante SSH e incluso integrar estas acciones en un script, que accione sobre los distintos hypervisores.

En mi caso particular cree un script llamado shut.sh (para que no se confunda con el script shutdown.sh existente en ESXi) y fije los permisos del script para que solo pueda ser ejecutado por root.

La única línea del script era la siguiente:

/sbin/shutdown.sh && /sbin/poweroff

Comentarios finales

También es interesante mencionar, que esta misma configuración es válida para apagar el hypervisor desde el cliente vSphere, por lo que es una buena alternativa si tenemos instalaciones ESXi free no administradas por vCenter.

Un comentario final, si las máquinas virtuales a apagar son servidores Windows 2008 o superior, al volver a iniciar las mismas, Windows nos solicitará especificar el motivo por el cual cada máquina se apagó de forma “inesperada”. Sobre este punto seguramente escribiré otro post, con una idea de cómo se podría apagar esos equipos centralizadamente y especificando el motivo.

Referencias:

[1] Luego de bastante búsqueda por Internet, llegue al siguiente artículo de la KB de vmware: KB1014165

[2] https://github.com/sixdimensionalarray/esxidown/

[3] http://www.nojokeit.com/2013/02/shut-down-esxi-51-guest-vms-and-host.html

[4] https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=850

 

1 comentario

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *