vSphere App HA deepdive

Que tal gente, el día de hoy vamos a hablar sobre una tecnología que a mis ojos parece tener bastante potencial, claramente estaremos hablando de una versión 1.0 del producto por lo que debemos comprender que muchas cosas iran siendo agregadas conforme el tiempo pase. Esta vez voy a hablarles de vSphere App High Availability, tecnología de VMware que fue liberada a con vSphere 5.5, como lo podemos notar en su nombre es alta disponibilidad para nuestras aplicaciones vamos a darle un vistazo:

¿Que es vSphere App HA?

Todos conocemos (¿O eso creo?) vSphere HA, que nos permite brindar alta disponibilidad a nivel de VM protegiéndola contra caídas de infraestructura… a grandes rasgos realiza un reinicio de las VMs fallidas en un servidor que se haya caído o tenga problemas. ¿Pero que pasa con las aplicaciones?, digamos que tenemos un servidor ESXi funcional, la VM con el servicio esta siendo ejecutada sin ningún problema, pero dentro de esta vm en el sistema operativo guest la aplicación/servicio esta caído, en este caso HA nunca reiniciaría la VM debido a que esto no forma parte de su “responsabilidad” aquí es donde entra vSphere App HA, que en conjunto con Hyperic nos brinda la capacidad monitorear los servicios que están dentro de una VM para poder definir políticas que nos permitan ejecutar acciones correctivas para mantener la disponibilidad del servicio o aplicación que tenga dicha VM.

El poder de este producto es brindado por hyperic, para poder tener monitoreo dentro de nuestras VMs necesitamos instalar el agente de Hyperic en cada VM que tenga servicios soportados que queramos protejer con App HA. En el laboratorio de Hispavirt podemos ver como tengo el appliance virtual de Hyperic para este fin:

HypericOVA En este servidor de Hyperic iremos agregando todos los agentes para que se puedan monitorear los servicios que existen en dichas VMs.

App HA interactua con vSphere y Hyperic a través de un plugin de NGC (Next Generation Client) o el vSphere Web Client, que nos permite apuntar a un servidor de hyperic para registrar el servicio (existen algunos pasos que debemos de realizar en hyperic para tener las alarmas de vCenter funcionando esto lo pueden encontrar aquí) este plugin lo brinda el appliance virtual de App HA:

hypericconfvcenter

Una vez lista la configuración podemos comenzar a crear políticas para proteger los servicios que son descubiertos por el agente de Hyperic en nuestras VMs, para esta versión se tiene una lista definida de servicios soportados donde podemos encontrar los siguientes:

  • Apache Tomcat 6 y 7
  • IIS 6, 7 y 8
  • MS SQL 2005, 2008, 2008 R2 y 2012
  • Sharepoint 2007 y 2010
  • SpringSource tc Runtime 6 y 7

En el laboratorio me di a la tarea de crear una VM con Windows 2008R2 y IIS7, donde instale y configuré el agente de Hyperic para que esta fuera registrada en el inventario:

instalacionhypericUna vez instalado debemos verificar que es presentado en el “auto discovery” de hyperic y lo agregamos a nuestros recursos:

autodiscoveryiishypericCuando ya tenemos lista la VM dentro de Hyperic podemos comenzar con la creación de políticas, para que estas sean asignadas a dichas VM y así proteger el servicio o aplicación que este ejecutándose dentro de ella, para motivos de la demostración seleccione las siguientes opciones para un servicio de IIS7:

RemediacionAppHA Que son las opciones de “remediación” ofrecidas en el caso que el servicio de la VM se encuentre abajo. Podemos notar que tenemos la principal función que es “reiniciar” el servicio, donde definimos cuanto tiempo le toma iniciar a este servicio, en este caso puse 2 minutos aunque claro que esto debe de ir de la mano de lo que se tarde en su ambiente, después seleccione la opción de “Restart the VM in the event that the service is unstable” que nos permite dictarle a App HA que si no es capaz de levantar el servicio en repetidas ocasiones durante una ventana de tiempo definida (en este caso 2 veces en 10 minutos) que proceda a reiniciar la VM ya que puede ser un problema mas complicado a nivel del sistema operativo y un reinicio ayude a resolverlo.

Aquí pueden ver que mi política quedo creada y lista para ser asignada a la VM que tiene IIS7:

politicadefinidaAppHADespués debemos asignar esta política a la VM que será protegida con AppHA, para esto vamos a nuestro vSphere Web Client y seleccionamos nuestro vCenter Server, donde veremos una pestaña llamada “Monitor” y dentro de esta pestaña tendremos una nueva sección agregada por App HA “Application Availability” donde podremos agregar nuestra política:

políticaAppHAaplicada

Una vez aplicada la política si tenemos una caída del servicio App HA nos dará un aviso en el “status” y tomará cartas en el asunto para poder levantarlo, también podemos notar que se envía una alarma de vCenter Server:

iis7abajoAppHaComo podemos ver la configuración, creación de políticas y el como trabaja App HA es bastante amigable, en mi caso no me tarde mas de 15 minutos en dejar lista la configuración de vCenter y Hyperic (de hecho me tarde mas tiempo en descargar los appliances de App HA y Hyperic). En esta versión tenemos la capacidad de proteger servicios con un mecanismo sencillo, claramente como lo dice su nombre se trata de “alta disponibilidad” a diferencia de una tolerancia a fallos que nos podría dar un servicio de cluster a nivel de la aplicación, pero para muchos casos de uso esta alta disponibilidad funciona cubre las necesidades o los SLAs definidos.

¿Que necesito para poder tener App HA?

Como han visto a lo largo del articulo necesitamos de algunos componentes “extra” de lo que viene siendo vSphere (ESXi y vCenter) que son:

  • Hyperic
  • App HA (appliance virtual)

En el caso de Hyperic podemos optar por el appliance virtual que ya incluye el servidor y la base de datos como parte de un vApp, para poder cubrir el máximo de agentes que están soportados por App HA que son 400,necesitaríamos una configuración “medium” para el servidor de Hyperic (4vCPUs y 8GB de RAM) mientras que para la base de datos necesitaríamos una configuración “medium” (4vCPUs y 6GB RAM), como podemos ver para Hyperic estaríamos hablando de una cantidad de recursos de alrededor de 14GB en RAM y 8vCPUs, esto sin considerar que tengamos mas de 500 agentes a monitorear lo cual no podría ser cubierto por un “conjunto” de vCenter + Hyperic + App HA (la relación es 1:1:1).

En el caso del appliance de App HA los requerimientos son bastante bajos, 2 vCPUs, 4GB RAM, 20GB en disco y 1Gbps en red. Con respecto a la plataforma que estará monitoreando vSphere App HA trabaja con Hyperic 5.7+, ESXi 5.5 y vCenter 5.5.

Una duda que he encontrado (que yo mismo tuve en su momento) fue el hecho de el licenciamiento de Hyperic, si consideramos que estaremos monitoreando varias instancias de sistema operativo podríamos pensar que necesitaríamos una licencia para cada uno de estos en lo que a Hyperic se refiere, pero esto no es correcto, con el simple hecho de importar el appliance virtual de Hyperic y contar con vSphere Ent+ tenemos todo cubierto, si… sin necesidad de licenciamiento de Hyperic.

 

 

 

Leave a Reply