XCP-ng VM Load Balancing

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Lastenausgleich

Eine generische Definition (von Wikipedia) lautet:

Im Bereich der Informatik verteilt der Lastenausgleich Arbeitslasten über mehrere Rechenressourcen, wie Computer, einen Computercluster, Netzwerkverbindungen, zentrale Verarbeitungseinheiten oder Festplatten.

Im Fall der Virtualisierung haben Sie mehrere physische Hosts, die Ihre virtuellen Maschinen (VMs) ausführen. Das Ziel hier ist es, die Last der VMs bestmöglich auf Ihre Server zu verteilen.

TIPP

Vielleicht haben Sie schon von VMWare DRS (Distributed Resource Scheduler) gehört: Das ist das gleiche Prinzip, aber für XCP-ng.

Das primäre Ziel ist es, die Platzierung Ihrer VMs live (ohne Dienstunterbrechung) je nach Last anzupassen. Da Xen Orchestra mit mehreren Pools verbunden ist und XCP-ng Live-Speicherverschiebung unterstützt, können wir Lastenausgleich auf einer gesamten XCP-ng-Infrastruktur durchführen (sogar zwischen entfernten Rechenzentren). Eine Lastenausgleichsrichtlinie wird als "Plan" bezeichnet.

Einen Plan konfigurieren

In dieser Ansicht können Sie einen neuen Lastenausgleichsplan konfigurieren oder einen bestehenden bearbeiten.

Ein Plan hat:

  • einen Namen
  • Pool(s), auf die die Richtlinie angewendet werden soll
  • einen Modus (siehe Absatz unten)

Plan-Modi

Es gibt 3 mögliche Modi:

  • Performance
  • Densitity
  • Simple

Performance

VMs werden so platziert, dass alle möglichen Ressourcen genutzt werden. Dies bedeutet, die Last zu verteilen, um die bestmögliche Gesamtleistung zu erzielen. Dies neigt dazu, alle verfügbaren Hosts zu nutzen, um die Last zu verteilen.

Density

Diesmal ist das Ziel, so wenige Hosts wie möglich zu nutzen und Ihre VMs zu konzentrieren. In diesem Modus werden ungenutzte (und kompatible) Hosts heruntergefahren.

Simple

Dieser Modus ermöglicht es Ihnen, VM-Anti-Affinität zu verwenden, ohne einen Lastenausgleichsmechanismus zu nutzen. (siehe Absatz unten)

Schwellenwerte

In einem Plan können Sie verschiedene Schwellenwerte konfigurieren:

  • CPU-Schwellenwert
  • Freier Speicher

WARNUNG

Wenn der CPU-Schwellenwert auf 90 % gesetzt ist, wird der Lastenausgleicher nur ausgelöst, wenn die durchschnittliche CPU-Auslastung auf einem Host mehr als 90 % beträgt.

Für den freien Speicher wird er ausgelöst, wenn weniger freier RAM vorhanden ist als der Schwellenwert.

Ausschluss

Wenn Sie verhindern möchten, dass der Lastenausgleich Migrationen auf einem bestimmten Host oder einer bestimmten VM auslöst, ist es möglich, diesen vom Lastenausgleich auszuschließen. Dies kann über den Parameter "Ausgeschlossene Hosts" in jedem Plan und den Parameter "Ignorierte VM-Tags", der für alle Pläne gilt, konfiguriert werden.

vCPU-Ausgleich

Mit einem Performance-Plan können Sie die Option "vCPUs ausgleichen" aktivieren. Wenn die Pool-Auslastung niedrig ist (unter 40 % CPU-Auslastung), versucht diese Option, Ihre VMs präventiv auf die Hosts zu verteilen, um übermäßige Disparitäten in der Anzahl der vCPUs pro CPU zu vermeiden, anstatt nur zu warten, bis ein Host überlastet ist. Auf diese Weise werden VMs vorpositioniert, sodass bei steigender Last weniger Migrationen ausgelöst werden.

Timing

Die globale Situation (Ressourcennutzung) wird jede Minute überprüft.

VM-Anti-Affinität

Die VM-Anti-Affinität ist eine Funktion, die verhindert, dass VMs mit denselben Benutzertags auf demselben Host ausgeführt werden. Diese Funktion ist direkt im Lastenausgleichs-Plugin verfügbar. Auf diese Weise können Sie vermeiden, dass Paare redundanter VMs oder ähnliche VMs auf demselben Host ausgeführt werden.

Betrachten wir ein einfaches Beispiel: Sie haben mehrere VMs, die MySQL und PostgreSQL mit hoher Verfügbarkeit/Replikation ausführen. Offensichtlich möchten Sie nicht, dass die replizierte Datenbank innerhalb der VMs auf demselben physischen Host verloren geht. Erstellen Sie einfach Ihren Plan wie folgt:

  • Einfacher Plan: bedeutet, dass kein aktiver Lastenausgleichsmechanismus verwendet wird
  • Anti-Affinität: Wir haben unsere 2x Tags hinzugefügt, was bedeutet, dass keine VMs mit einem dieser Tags (wenn möglich) auf demselben Host wie eine andere VM mit demselben Tag ausgeführt werden.

Sie können auch den Performance-Plan mit aktiviertem Anti-Affinitätsmodus verwenden, um weiterhin nicht getaggte VMs zu migrieren.

TIPP

Diese Funktion ist nicht durch die Anzahl der VMs mit demselben Tag begrenzt, d. h., wenn Sie 6 VMs mit demselben Anti-Affinitäts-Tag und 2 Hosts haben, wird das Plugin immer versuchen, 3 VMs auf jedem Host zu platzieren. Es wird die VMs so fair wie möglich verteilen und hat (in den meisten Fällen) Vorrang vor dem Performance-Algorithmus.