Una de las preocupaciones que se tienen al administrar vSphere DRS es no tener recursos disponibles para iniciar nuevas maquinas virtuales en caso de fallas de uno o mas host. Pero que pasa si los recursos del cluster DSR son suficientes, pero aun así no se logra encender una nueva maquina virtual con el mensaje de error:
DRS cannot find a host to power on or migrate the virtual Machine / Insufficient resources
Ahora bien, ¿como es posible que teniendo recursos suficientes no se logra encender una VM con apenas 8GB de RAM y 2.2Ghz de CPU que no representa ni el 1% de los recursos de computo libres del cluster DRS?
Después de hacer ciertas búsquedas en documentación y en varias blogs de otros colegas encontré que a partir de vSphere 5.1 el equipo de desarrollo para HA y DRS incluyo un parámetro avanzado el cual posibilita la función de limitar la cantidad máxima de maquinas virtuales que un host ESXi puede tener cuando DRS esta habilitado.
Si bien sabemos que DRS no es y nunca sera un balanceador de cantidad maquinas virtuales de manera equitativa; con esto quiero decir que podemos encontrar host con 60 VMs, otro con 20 y otro con 30 en el mismo cluster lo que es totalmente normal y esperado ya que DRS se enfoca en satisfacer la demanda de recursos de computo de esas VMs y que el rendimiento de la maquinas sea el adecuado y no en mantener la misma cantidad de VMs en cada host como muchos creen.
Lo que si se puede lograr es minimizar el impacto en caso de fallas en un host que tenga muchas mas VMs que otro, por ejemplo uno con 60VMs como se menciono antes. Esto se hace limitando la cantidad de VMs por host con el parámetro avanzado LimitVMsPerESXHost.
Revisando la configuración del cluster DRS en mi escenario me di cuenta que este parámetro avanzado estaba configurado con el valor 50, haciendo que se limitaran un máximo de 50 VMs por cada host del cluster, siendo este el motivo por el cual la VM no encendía con el error “DRS cannot find a host to power on or migrate the virtual Machine / Insufficient resources” que en realidad no era falta de recursos de computo, sino mas bien la restricción que VMs por ESXi ya que todos tenían ya acaparados los 50 espacios para maquinas virtuales.
Una vez se modifico el valor a 60, la VM se logro encender sin ningún problema.
Nota Importante:
Si no existe un requerimiento especifico para limitar la cantidad de VMs por host, no utilicen este parámetro. Teniendo esta función habilitada; DRS no va a realizar migraciones a un host que haya alcanzado el limite especificado o evitar que nuevas VMs sean encendidas y en algunos casos afectar el rendimiento de las maquinas al limitar el mecanismo de balanceo de recursos nativo de DRS.