Node Fairness: Automatischer Lastausgleich zwischen Cluster-Knoten in Hyper-V 2016

    Hyper-V Node FairnessWindows Server 2016 kann virtu­elle Maschinen bei un­gleicher Aus­lastung der Knoten im Hyper-V-Cluster auto­matisch live mig­rieren, um die vor­han­denen Ressourcen besser zu nutzen. Ähnliche Features bieten System Center Virtual Machine Manager mit DO und VMware vSphere mit DRS.

    VM Load Balancing (Node Fairness) im Hyper-V Failover-Cluster soll einem möglichen Ungleich­gewicht entgegen­wirken und dem Administrator automatische Unterstützung bieten, damit vorhandene Ressourcen effizienter genutzt werden. Bekannt ist dieser Automatismus aus dem Virtual Machine Manager (VMM) unter dem Namen Dynamic Optimization (Dynamische Optimierung).

    Ein Anlass für eine solche Optimierung wäre beispielsweise, wenn bei manueller Wartung eines Hyper-V-Knotens dieser durch Live Migration der VMs freigeräumt wird, jedoch bei Wieder­verfügbarkeit des Hosts die VMs nicht ökonomisch verteilt würden. Dann wären anschließend einige Hyper-V-Hosts stark beansprucht, andere hingegen eventuell zu gering.

    Beim Hinzufügen eines neuen Cluster-Knotens verschiebt Node Fairness VMs auf den freien Host.

    Node Fairness von Server 2016 steht in Konkurrenz zu DO in VMM, da eine Aktivierung von Dynamischer Optimierung in SCVMM die Node Fairness abschaltet. Kommt der Virtual Machine Manager zum Einsatz, hat dieses Tool die oberste Priorität im Umgang mit hochver­fügbaren Maschinen. Die dynamische Optimierung lässt sich noch granularer in Bezug auf die Schwellenwerte einstellen.

    Wie arbeitet VM Load Balancing?

    Das Feature berücksichtigt im aktivierten Zustand die aktuelle RAM- und CPU-Auslastung des Hosts. Bei der CPU wird ein durch­schnittlicher Wert über einen Zeitraum von 5 Minuten ermittelt. Liegen die Werte für RAM oder CPU über einem bestimmten Schwellenwert, werden die virtuellen Maschinen auf einen Knoten mit weniger Auslastung live migriert. Entsprechend muss die Live Migration grundsätzlich aktiviert sein.

    Bei ständig aktiviertem Load Balancing unterliegt der Verbund alle 30 Minuten einer Neubewertung, um bei einer Knotenüber­lastung oder Unterforderung durch erneute Live Migration einen Lastenausgleich herbeizuführen.

    Aktivierung im Failovercluster-Manager oder mit PowerShell

    Das Balancing ist standardmäßig aktiviert und man erreicht die Konfiguration im Failovercluster-Manager über Clustername => rechte Maustaste => Eigenschaften und die Registerkarte Balancer (Ausgleichsmodul).

    Über die Eigenschaften des Clusters gelangt man in die Einstellungen für Node Fairness.

    Hier besteht die Möglichkeit, Node Fairness generell zu aktivieren oder zu deaktivieren und festzulegen, wann ein Lasten­ausgleich stattfinden soll. Der Radio-Button lässt in der GUI zwei Optionen zu:

    Das Feature ist standardmäßig aktiviert

    Zum einen wird ein Ausgleich beim Neuhinzufügen eines Knotens herbeigeführt und zum anderen beobachtet das Feature alle 30 Minuten die Lage, um bei unausge­glichenem Verhältnis zu reagieren. Der Standardwert liegt hier beim ständigen Beurteilen der Situation (Always load balance). In der PowerShell-Konsole lassen die Werte wie folgt manipulieren:

    (Get-Cluster).AutoBalancerMode = <Wert>

    AutoBalancerMode setzen mit PowerShell

    AutoBalancerMode <Wert>Verhalten
    0 Disabled
    1 Load balance bei Knotenbeitritt
    2 (default) Load balance bei Knotenbeitritt und alle 30 Minuten

    Drei konfigurierbare Schwellenwerte über PowerShell

    Bestimmte Schwellenwerte, die auf den CPU- und RAM-Beurteilungen basieren, lassen sich mit PowerShell über das AutoBalancerLevel konfigurieren. Wie sensibel der Verbund auf Werte reagiert, lässt sich dann mit der Aggressiveness (Aggressivität) bestimmen. Der Standardwert liegt hier bei 1, wonach der Ausgleich mit geringer Aggressivität erst bei größer 80-prozentiger Last auf dem Hyper-V Knoten passiert.

    AutoBalancerLevel <Wert>AggressivitätVerhalten
    1 (default) gering Verschieben, wenn der Host > 80% unter Last steht
    2 mittel Verschieben, wenn der Host > 70% unter Last steht
    3 hoch Ein Durchschnittswert über alle Knoten wird gebildet. Der Ausgleich passiert, wenn ein Knoten mehr als 5% ausgelastet ist.

     

    Mit PowerShell lässt sich auch dieser Wert ausgeben und verändern:

    (Get-Cluster).AutoBalancerLevel = <Wert>

    AutoBalancerLevel abfragen mit PowerShell

    Auch der Befehl

    Get-Cluster | select *

    zum Anzeigen der Cluster-Details gibt Auskunft über beide Werte des Node Fairness.

    Keine Kommentare