jueves, 21 de abril de 2011

VMware HA y Slot Size

En varias ocasiones nos hemos encontrado con el siguiente mensaje al momento de querer encender una Virtual Machine en un Cluster HA de VMware.




Al investigar un poco más nos enteramos de que el mensaje se debe a que nuestro Cluster no tiene slots disponibles para encender más maquinas virtuales.  En algunos casos esto no parece tener lógica, considerando que los hosts del cluster pueden estar con muchos recursos disponible, y aun así no se nos permite encender más maquinas virtuales.

Aquí es donde entra lo que se llama el Slot Size, o tamaño del Slot. 

Slot Size
Vayamos por parte:
Un Slot es la representación lógica de los recursos de CPU y Memoria, que satisfacen los requerimientos para cualquier maquina virtual encendida en el cluster.

En otras palabras, el Slot Size es básicamente el peor escenario de reservas de CPU y Memoria en un Cluster.

Para calcular el Slot Size, VMware realiza los siguientes cálculos:



      HA calcula el Slot Size de la CPU, según la mayor reserva de CPU entre todas las máquinas virtuales del Cluster.  Si no hay reservas, el valor por defecto para el Slot Size es de 256Mhz.

      HA calcula el Slot Size de la Memoria con la mayor reserva de memoria entre todas las maquinas virtuales del Cluster ,más el valor de "Memory Overhead".  Si no hay reservas, se utiliza el valor de "Memory Overhead".

Calcular la Capacidad Actual de Failover
Una vez hecho este calculo, tendremos el Slot Size del Cluster, respecto a los recursos de memoria y CPU.  El siguiente paso es descubrir el numero máximo de Slots que un cluster puede contener.  Para esto se realizan los siguientes cálculos:



      Se divide el total de recursos disponibles de CPU del cada Host, por el Slot Size de CPU calculado anteriormente.  Con esto se obtiene el numero máximo de Slots que el Host puede contener, respecto a los recursos de CPU.  Ejemplo, con un total de 12Ghz disponibles en un Host, y un Slot Size de 1Ghz, el numero máximo de Slots de CPU en dicho Host, será de 12. Repetimos este calculo en cada uno de los Hosts existentes en el Cluster, sumando el resultado obtenido en cada uno.  Por ejemplo, si el Cluster tiene 4 hosts identicos en recursos disponibles, el numero máximo de Slots de CPU en el Cluster será de 48.

      Se divide el total de recursos disponibles de Memoria de cada Host, por el Slot Size de Memoria calculado anteriormente.  Con esto se obtiene el numero máximo de Slots que el Host puede contener, respecto a los recursos de Memoria. Ejemplo, con un total de 25GB disponibles en un Host, y un Slot Size de 4GB el numero máximo de Slots de Memoria en el host, será de 6.  Repetimos este calculo en cada uno de los Hosts existentes en el Cluster, sumando el resultado obtenido en cada uno.  Por ejemplo, si el Cluster tiene 4 hosts identicos en recursos disponibles, el numero máximo de Slots de Memoria en el Cluster será de 24.





      De los resultados obtenidos anteriormente, el numero menor será considerado finalmente como el numero máximo de Slots que un Cluster puede contener.  Según el ejemplo anterior, el numero máximo de Slots que el Cluster puede contener, es de 24.



Nota: Es importante destacar que los recursos disponibles de cada host deben ser obtenidos a través de vSphere Client conectándonos directamente a los hosts, y no a a vCenter Server.  Esto es necesario para poder calcular en forma más precisa el numero de Slots disponibles en el Cluster.  Por ejemplo, en la imagen a continuación vemos que la cantidad disponible de memoria es de poco más de 25GB, a pesar de que el host cuenta con 32GB de memoria.




Sin embargo, si nos conectamos directamente al vCenter Server, veremos que a pesar de que cada host muestra sus 32GB de memoria, la memoria disponible no cuadra con los cálculos hechos anteriormente.  Es por esto que VMware recomienda realizar el calculo de numero de Slots, host por host, y no directamente con los datos mostrados en el Cluster.







El calculo de Slot Size puede reducir el radio de consolidación en un Cluster VMware, por lo que se debe tener especial cuidado a la hora de configurar reservas de CPU y/o Memoria en un Cluster HA.


Mayor detalle lo pueden ver en la vSphere Availability Guide, a partir de la pagina 16.

HA y Slot Size 
Volvamos entonces a la configuración de HA.

Digamos que tenemos un Cluster VMware con 5 nodos ESXi con las siguientes características:
    Nodo1: 16Ghz de CPU y 16GB de RAM
    Nodo2: 16Ghz de CPU y 16GB de RAM
    Nodo3: 16Ghz de CPU y 16GB de RAM
    Nodo4: 16Ghz de CPU y 32GB de RAM
    Nodo5: 16Ghz de CPU y 48GB de RAM

El Slot Size de CPU es de 1Ghz y el Slot Size de Memoria es de 2GB

Con esta configuración, el numero máximo de Slots que puede contener el Cluster es de 64, considerando que el Slot Size de Memoria es el más restrictivo.

Si configuramos nuestro Cluster HA para que pueda tolerar la caída de uno de los hosts, HA saca al host con mayor capacidad de Slots de la ecuación, en este caso el Nodo5, considerando con esto, como peor escenario la caída del host con más recursos disponibles.  De esta forma, el numero máximo de Slots que el Cluster puede contener, se reduce solo a 40.



Si por otra parte, configuramos nuestro Cluster HA para que pueda tolerar la caída de dos de los hosts, HA saca entonces a los dos Hosts con mayores recursos de la ecuación.  De esta forma, el numero máximo de Slots que el Cluster puede contener, se reduce solo a 24.


Como pueden ver, y según lo que ya habíamos mencionado anteriormente, la configuración de HA puede llevar a radios de consolidación muy restrictivos.  Es posible configurar HA para que permita encender más maquinas virtuales, aún cuando no queden Slots disponibles (Allow VMs to be powered on even if they violeta availability constraints), sin embargo no se recomienda esta configuración, ya que ante la caída de uno o más hosts del Cluster, se puede producir contención de recursos de CPU y/o Memoria.

De todas maneras, si se tiene solo una maquina virtual con una reservación de recursos, es posible realizar algunas configuraciones avanzadas, con el fin de reducir el Slot Size que será utilizado por HA:
    das.slotCpuInMHz
    das.slotMemInMB.

Estas configuraciones avanzadas permitirán especificar limites más bajos para el Slot Size.  Por ejemplo, cuando una máquina virtual tiene una reservación de 8GB de memoria, estas configuraciones pueden ser usadas para definir un limite de solo 1GB, evitando de esta manera un Slot Size extremadamente conservador y por ende desperdiciar recursos.

Por otro lado, si el parámetro das.slotMemInMB se encuentra configurado a 2048MB, y la menor reservación de memoria es las maquinas virtuales del Cluster es de solo 500MB, entonces el Slot Size para la memoria será de 500MB + el Overhead.


De todas maneras, se debe evitar el uso de estas configuraciones avanzadas que reducen el Slot Size, ya que eventualmente puede producir un downtime mayor.

3 comentarios:

Hola

tengo claro como se calcula el tamaño del slot size pero en la gran mayoria de veces ese calculo no cuadra o no es igual al mostrado en Vcenter, adicionalmente el vcenter nos dice los slot size usados y los disponibles pero ese calculo no se como lo hace por que nunca es igual de los diposnobles menos lo usados, que paso con el resto de slot size? en que los usa el cluster? me podrias dar una mano al respecto?

Hola que tal,

Acabo de modificar el post para una mejor comprensión. Basicamente el calculo hay que realizarlo viendo los recursos disponibles que aparecen al conectarse a cada host directamente, y no a traves de vCenter Server, ya que esto nos da un resultado erroneo.

Respecto a tu segunda consulta, voy a realizar algunas pruebas para verificar lo que comentas.

Saludos!

OK. Gracias por tu informacion espero me sigas ayudando a oslucionar esta duda, tengo otra pregunta, en los manuales de VMware HA y DRS hablan del nuemro de host fallidos en las politicas de admission control y el maximo soportado asi se tenga mas de 4 host en el cluster es de 4, me podrias explicar al respecto?

gracias por tu ayuda y te felicito site!!

Publicar un comentario