En Windows Server 2016, Microsoft introdujo una nueva característica de Failover Clustering disponible exclusivamente para el rol Hyper-V. Se trata de Node Fairness, una funcionalidad pensada para mantener balanceada la carga de los nodos del cluster redistribuyendo maquinas virtuales cuando detecta que algún nodo esta sobrecargado. Las maquinas virtuales se mueven a nodos con menor carga mediante migraciones en vivo y por lo tanto sin disrupción de servicios.
El feature viene activo por defecto y ya sea mediante Powershell o la consola de Failover Cluster Manager, puede desactivarse, configurar cuando entrará en acción y ajustar la agresividad de la heuristica que utiliza el cluster para determinar cuando un nodo esta sobrecargado.
Para visualizar el valor por defecto:
AutoBalancerLevel
Hay 3 niveles de agresividad para esta heuristica:
AutoBalancerLevel | Agresividad | Porcentaje de carga del Host |
1 | Baja | 80% |
2 | Media | 70% |
3 | Alta | 60% |
Para visualizar el valor por defecto:
PS C:\Users\Administrador.CONTOSO> Get-Cluster -Name cluster01 | fl autobalancerlevelAutoBalancerLevel : 1
Como puede verse, AutoBalancerLevel esta por defecto establecido en 1, un valor bastante relajado, que indica que si la CPU o memoria llegan al 80% de uso deberá empezar a hacer migraciones en vivo de maquinas virtuales a otros nodos del cluster.
Para ajusta el valor de AutoBalancerLevel con PowerShell:
PS C:\Users\Administrador.CONTOSO> (Get-Cluster).AutoBalancerLevel = 2
AutoBalancerMode
Otro valor configurable es AutoBalancerMode, que determina en que momentos se verificará la carga de trabajo de los nodos, por defecto viene establecido 2, lo cual hace uso de los nuevos nodos agregados al cluster para rebalancear la carga de VMs y también controla cada 30 minutos que ningún nodo este sobrecargado, de forma que si algún nodo del cluster falla y las maquinas virtuales migran a otros nodos, Node Fairness se encargará de corregir la distrubución de carga de VMs en los nodos sobrevivientes.
AutoBalancerMode | Comportamiento |
0 | Deshabilitado |
1 | Balancear solo al agregar nuevos nodos |
2 | Balancear al agregar nodos y cada 30 minutos |
Para cambiar este valor con PowerShell:
PS C:\Users\Administrador.CONTOSO> (Get-Cluster).AutoBalancerMode = 1
Para modificar estos valores desde la consola Failover Cluster Manager, en las propiedades del clúster, modificar las opciones de la pestaña equilibrador:
Salvo excepciones por necesidades específicas, la configuración por defecto es apropiada para la mayoría de los escenarios. Node Fairness respeta las políticas existentes de anti-affinity y possible owners configuradas en el cluster.
Balanceo de VMs en Virtual Machine Manager
En un clúster manejado por VMM, Node Fairness se desactiva automáticamente en favor del feature Dynamic Optimization presente desde Virtual Machine Manager 2012, cuya funcionalidad es equivalente e incluso va un poco mas allá, permitiendo configurar que el balanceo ocurra en schedules establecidos por el administrador.