DRS sorgt im Cluster zwar für eine ausgeglichene Lastverteilung, ignoriert aber bei der Platzierung von VMs andere Aspekte. Das gilt etwa für die Verfügbarkeit von VMs oder die Performance von Anwendungen, die aus mehreren VMs bestehen. Admins können jedoch über Regeln bestimmte Platzierungen erzwingen.
Vorstellbar ist durchaus ein Szenario, in dem ein DRS-Cluster aus 3 ESXi-Hosts besteht, von denen zwei überhaupt keine VMs ausführen, während der dritte 20 VMs hostet. Solange es nämlich auf dem Server mit den 20 VMs zu keinerlei Leistungsproblemen oder Ressourcenkonflikten kommt, wird DRS je nach Migrationsschwellenwert und Default-Einstellungen keine VMs verschieben.
Regeln zur Steuerung des DRS-Verhaltens
In Hinblick auf vSphere HA und den Schutz einzelner VMs gegen einen Host-Ausfall wäre es aber besser, VMs auf die anderen Hosts im Cluster zu verteilen. DRS sah lange Zeit keine Möglichkeit zur zahlenmäßig gleichen Verteilung von VMs vor, und erst in neueren Versionen gibt es dafür die Option VM-Verteilung. Aber unabhängig davon kann man das Verhalten von DRS auch durch explizite Regeln beeinflussen.
Die entsprechenden Optionen dazu finden sich im Cluster-Hauptmenü in den Abschnitten VM/Host-Gruppen und VM/Host-Regeln. Die hier definierbaren Regeln betreffen nicht nur vSphere DRS, sondern auch HA, weil beide Features einander beeinflussen.
Unter VM/Host-Regeln können Sie mit einem Klick auf den Knopf Hinzufügensolche Regeln erstellen, die bestimmen, wie die im unteren Teil des Dialogfelds aufgenommenen virtuellen Maschinen sich zueinander verhalten sollen, wenn DRS eine vMotion-Operation zwecks Load-Balancing als notwendig erachtet.
VMs auf einem Host zusammenhalten
Hierbei sind grundsätzlich Szenarien vorstellbar, in denen zwei (oder mehrere) VMs, die häufig direkt miteinander interagieren, aus Latenz- oder anderen technischen Gründen besser gemeinsam auf dem gleichen Host laufen („Virtuelle Maschinen zusammenhalten“).
Sie profitieren dann u. a. von Shared-Memory bzw. allgemein von der direkten Kommunikation bestimmter virtueller Hardware über das Host-Memory.
Ein weiteres Beispiel hierfür wäre ein Frontend-Webserver, der mit einer Backend-Datenbank große Datenströme unterhält. Operieren beide im selben vLAN, dann läuft auch der Netzwerkverkehr intern über den gleichen Host, was wiederum den physischen Netzwerk-Traffic entlastet.
VMs auf mehrere Hosts verteilen
Auch für das Trennen bestimmter VMs („Separate virtuelle Maschinen“) sind Gründe vorstellbar. So könnte man etwa zwei virtuelle Domänen-Controller immer separieren, um eine bessere Verfügbarkeit zu erreichen. Ebenso denkbar wäre, zwei besonders Last- oder I/O-Intensive VMs (etwa SQL-Server und Exchange) möglichst auf separaten Hosts zu betreiben.
Ferner kann man mit dem Regeltyp „Virtuelle Maschinen zu Hosts“ erzwingen, dass die hier angegebenen virtuellen Maschinen immer auf einem bestimmten Host ausgeführt werden sollen, weil dieser etwa für sie die besten Voraussetzungen bietet.
Gruppen über Regel verknüpfen
Um eine VM-zu-Host-Regel umzusetzen, benötigt man zuvor je eine VM- bzw. Host-Gruppe. Diese werden im gleichnamigen Menü VM-Host-Gruppeneingerichtet. In der Abbildung wurde eine Gruppe für Hosts erstellt, die mit einer XEON E5-CPU ausgestattet sind. Die Gruppe enthält aktuell nur einen Host.