Das VMware Cloud Director-Platzierungsmodul bestimmt, in welchen Ressourcen (einschließlich Ressourcenpools, Datenspeicher, Netzwerken oder Netzwerkpools) die virtuellen Maschinen (VMs) in einer vApp platziert werden sollen. Basierend auf den VM-Anforderungen trifft das Modul eine unabhängige Platzierungsentscheidung für jede VM in einer vApp.

Das Platzierungsmodul wird in folgenden Szenarios ausgeführt:
Hinweis: VMware Cloud Director platziert die VMs unabhängig von den Anforderungen für jede VM innerhalb einer vApp.
  • Beim Erstellen einer VM bestimmt das Platzierungsmodul, in welchem Ressourcenpool, Datenspeicher und Netzwerkpool sie platziert werden soll.
  • Wenn Sie eine VM starten und die VM nicht eingeschaltet werden kann, kann VMware Cloud Director die VM selektiv in einen anderen Ressourcenpool, Datenspeicher oder Netzwerkpool verschieben.
  • Wenn Sie eine VM bearbeiten und die Konfiguration des Datenspeichers, der Ressourcen oder des Netzwerks ändern, verschiebt VMware Cloud Director die VM möglicherweise auf einen anderen Datenspeicher und Ressourcenpool, der die neuen VM-Einstellungen unterstützt. VMware Cloud Director verschiebt eine VM nur dann, wenn die aktuellen Ressourcen die neuen Anforderungen nicht unterstützen können.
  • Wenn Sie VMs auf andere Ressourcenpools migrieren.
  • Wenn das Organisations-VDC VMs erkennt, die in einem das VDC stützenden vCenter Server-Ressourcenpool erstellt wurden, und das System eine vereinfachte vApp erstellt, die jede ermittelte VM enthält.
Das Platzierungsmodul wählt infrage kommende Ressourcenpools für eine VM anhand der folgenden Kriterien aus:
  • CPU-Kapazität
  • Speicherkapazität
  • Anzahl der virtuellen CPUs
  • Hardwareversion, die vom Host unterstützt und vom Provider-VDC zugelassen wird
  • Affinitätsregeln

Das Platzierungsmodul filtert deaktivierte Ressourcenpools aus der Kandidatenliste heraus. Nach Möglichkeit platziert VMware Cloud Director VMs auf demselben Hostcluster wie andere VMs im Organisations-VDC.

Das Platzierungsmodul verwendet die folgenden Kriterien, um kandidatenielle Datenspeicher für VMs auszuwählen.
  • Speicherkapazität
  • Speicherrichtlinien
  • Affinitätsanforderungen zwischen VMs
  • Wenn IOPS aktiviert ist, IOPS-Kapazität und IOPS der VM-Festplatten

In den meisten Fällen filtert das Platzierungsmodul deaktivierte und rote Schwellenwert-Datenspeicher aus der Kandidatenliste heraus. Das Modul filtert diese Datenspeicher nicht heraus, wenn Sie eine VM aus vCenter Server importieren.

Das Platzierungsmodul verwendet den Netzwerknamen, um Kandidaten für die Netzwerkpools einer vApp und der zugehörigen VMs zu ermitteln.

Nachdem das Platzierungsmodul einen Satz potenzieller Ressourcen ausgewählt hat, werden die Ressourcen bewertet, um im Anschluss die beste Positionierung für jede VM basierend auf der Konfiguration der CPU, des virtuellen Arbeitsspeichers und des Speichers jeder VM auszuwählen.

Bei der Einstufung von Ressourcen untersucht das Platzierungsmodul die aktuelle und geschätzte zukünftige Nutzung der Ressource. Die geschätzte zukünftige Nutzung wird auf Grundlage der im jeweiligen Ressourcenpool vorhandenen ausgeschalteten VMs und deren erwarteter Nutzung nach dem Einschalten berechnet. Für CPU und Arbeitsspeicher berücksichtigt das Platzierungsmodul die aktuelle nicht reservierte Kapazität, die maximale Nutzung und die geschätzte zukünftige nicht reservierte Kapazität. Für die Speicherung berücksichtigt das Modul die gesamte bereitgestellte Kapazität des Clusters, zu dem jeder Ressourcenpool gehört. Das Platzierungsmodul prüft dann die gewichtete Metrik sowohl für die aktuelle als auch für die zukünftig zu erwartende Eignung des jeweiligen Ressourcenpools.

Wenn eine Verschiebung erforderlich ist, bevorzugt das Platzierungsmodul Ressourcenpools mit der meisten nicht reservierten Kapazität für CPU, Arbeitsspeicher und Speicher. Gelbe Cluster werden weniger stark berücksichtigt, sodass diese nur ausgewählt werden, wenn kein geeigneter Cluster verfügbar ist, der die Platzierungskriterien erfüllt. Wenn beim Importieren einer VM aus vCenter Server die VM-Platzierung zufriedenstellend ist, ignoriert das Modul die Schwellenwerte, um die Verschiebung zu minimieren.

Beim Einschalten einer VM versucht VMware Cloud Director, sie an ihrem aktuellen Speicherort einzuschalten. Wenn vCenter Server einen Fehler bei der CPU- und Speicherkapazität des Hosts meldet, verwendet VMware Cloud Director den Ressourcenpool zweimal, bevor die VM in die anderen kompatiblen Ressourcenpools im Organisations-VDC verschoben wird. Während das Platzierungsmodul erneut versucht, einen kompatiblen Ressourcenpool zu finden, schließt VMware Cloud Director frühere verwendete und fehlgeschlagene Ressourcenpools aus. Wenn keine geeigneten Ressourcenpools mit dem Datenspeicher verbunden sind, auf dem sich die VMDKs befinden, kann das Verschieben einer VM in einen anderen Ressourcenpool zur Migration der VMDKs der VM auf einen anderen Datenspeicher führen. Wenn die VM-Platzierung an allen Speicherorten fehlschlägt, die die Anforderungen der VM erfüllen, gibt VMware Cloud Director eine Fehlermeldung zurück, dass die Platzierung nicht möglich ist. Wenn eine Affinität zum aktuellen Datenspeicher besteht und der Datenspeicher nicht verfügbar ist, zeigt das Platzierungsmodul eine Fehlermeldung darüber an, dass die Platzierung nicht möglich ist. Dies ist ein normaler Zustand des Systems, wenn es nahezu vollständig funktioniert und die vorgeschlagene Lösung zum jetzigen Zeitpunkt nicht alle Anforderungen erfüllt. Zum Beheben des Fehlers können Sie Ressourcen hinzufügen oder freigeben und einen erneuten Versuch starten. Wenn kein bestimmter Datenspeicher erforderlich ist, wählt das Platzierungsmodul einen Datenspeicher im Kandidatenhost-Cluster oder Ressourcenpool aus, der die anderen Anforderungen erfüllt, wie z. B. Speicherrichtlinie, Speicherkapazität und IOPS-Kapazität.

Bei parallelen Bereitstellungssituationen, wenn die Kapazität eines Ressourcenpools nahezu ausgeschöpft ist, kann die Prüfung dieses Ressourcenpools erfolgreich sein, auch wenn der Ressourcenpool nicht über ausreichend Ressourcen verfügt, um die VM zu unterstützen. In diesen Fällen kann die VM nicht eingeschaltet werden. Wenn eine VM in dieser Situation nicht eingeschaltet werden kann und das VDC von mehr als einem Ressourcenpool gestützt wird, starten Sie den Einschaltvorgang erneut, um VMware Cloud Director aufzufordern, die VM in einen anderen Ressourcenpool zu migrieren.

Bei nahezu ausgeschöpfter Kapazität des Clusters, zu dem ein Ressourcenpool gehört, kann eine VM in diesem Ressourcenpool unter Umständen nicht eingeschaltet werden, wenn kein einzelner Host über ausreichend Kapazität zum Einschalten der VM verfügt. Dies resultiert aus der Kapazitätsfragmentierung auf Clusterebene. In solchen Fällen muss ein Systemadministrator einige VMs aus dem Cluster migrieren, damit der Cluster ausreichend verfügbare Kapazität aufrechterhält.

Algorithmus des VM-Platzierungsmoduls

Der Platzierungsalgorithmus wählt einen Hostcluster aus der Liste der Hostcluster aus, für die erforderliche Speicherprofile verfügbar sind, und erfüllt alle vorhandenen VM-VM-, VM-Host- oder Anti-Affinitätsregeln. VMware Cloud Director berechnet die Platzierungslösung anhand verschiedener Punktzahlen. Um das Verhalten des Moduls zu ändern, können Sie das Zellenverwaltungstool verwenden, um die konfigurierbaren Parameter zu ändern, die mit einem Unterstrich (_) beginnen.
  1. Für jeden Hostcluster berechnet das Platzierungsmodul für Arbeitslasten eine capacityScore, futureCapacityScore und reservationScore. Das Platzierungsmodul berechnet jede Punktzahl separat für CPU, Arbeitsspeicher und Speicher.
    capacityScore: (not available in some cases ) 
    
    CPU = (cpuUnreservedCapacityMHz - (cupBurstMHz * _cpuBurstRatio)) / cpuRequirementMHz 
    Memory = (memoryUnreservedCapacityMB - (memBurstMB * _memoryBurstRatio)) / memRequirementMB 
    Storage = storageFreeCapacityMB / stgRequirementMB 
    
    futureCapacityScore (not available in some cases) 
    
    CPU = (cpuUnreservedCapacityMHz - (cpuUndeployedReservationMHz * _futureDeployRatio)) / cpuRequirementMHz 
    Memory = (memoryUnreservedCapacityMB - (memUndeployedReservationMB * _futureDeployRatio)) / memRequirementMB 
    Storage = storageFreeCapacityMB / stgRequirementMB 
    
    reservationScore: (used for capacityScore and futureCapacityScore when those scores are unavailable) 
    
    CPU = cpuUnreservedCapacityMHz / cpuRequirementMHz 
    Memory = memoryUnreservedCapacityMB / memRequirementMB 
    Storage = storageFreeCapacityMB / stgRequirementMB 
  2. Für jeden Hostcluster berechnet das Platzierungsmodul eine weightedCapacityScore für CPU, Arbeitsspeicher und Speicher.
    weightedCapacityScore = capacityScore * _currentScoreWeight + futureCapacityScore * (1 - _currentScoreWeight)

    Jede weightedCapacityScore ist ein Verhältnis zwischen 0 und 1 mit höheren Werten für mehr verfügbare Ressourcen. weightedCapacityScore-Werte können über verschiedene Ressourcentypen hinweg verglichen werden, z. B. CPU, Arbeitsspeicher und Speicher, da sie ein einheitsloses Maß an Verfügbarkeit darstellen. Eine höhere weightedCapacityScore bedeutet eine höhere Verfügbarkeit der entsprechenden Ressource im Hostcluster.

  3. Das Platzierungsmodul überprüft, ob genügend Ressourcen für CPU, Arbeitsspeicher und Speicher vorhanden sind.
    totalAvailable * _[memory|cpu|storage]headRoom < free / UnreservedCapacity
  4. Das Platzierungsmodul sortiert die Liste der Hostcluster auf dem weightedCapacityScore, sodass der am wenigsten eingeschränkte Hostcluster an erster Stelle und der am stärksten eingeschränkte Hostcluster an letzter Stelle steht.
  5. Das Platzierungsmodul verarbeitet jeden Hostcluster in der Liste.
    • Wenn der Hostcluster vermieden werden muss, z. B. aufgrund einer Anti-Affinitätsregel, fügt das Modul sie zu avoidHubList hinzu.
    • Wenn der Hostcluster nicht über genügend zusätzliche Ressourcen verfügt, fügt das Modul ihn zu noHeadRoomHubList hinzu.
    • Wenn der Hostcluster bevorzugt wird, z. B. aufgrund einer starken Affinitätsregel oder des aktuellen Hostclusters, fügt das Modul ihn zu preferredHubList hinzu.
    • Alle anderen Hostcluster wechseln zu acceptableHubList.

    In jeder Liste ist der am meisten bevorzugte Hostcluster der erste und der am wenigsten bevorzugte Hostcluster der letzte.

  6. Das Modul integriert die vier Listen.

    preferredHubList + acceptableHubList + noHeadRoomHubList + avoidHubList

    Das Modul ordnet die Ergebnisliste vom am besten zu dem am wenigsten bevorzugten Hostcluster an.

  7. Das Platzierungsmodul wählt den wichtigsten Hostcluster aus der Liste als Ziel-Hub aus.

Anpassbare Parameter

Um verschiedene Schwellenwerte des Auswahlalgorithmus zu beeinflussen, können Sie mehrere Parameter anpassen. Allerdings sollten nur Dienstanbieteradministratoren mit erweiterten Kenntnissen über die VMware Cloud Director-Vorgänge versuchen, diese Parameter ausgehend von ihren Standardwerten zu ändern, da dies zu unerwünschten und unerwarteten Ergebnissen führen kann. Testen Sie zuerst alle Parameteränderungen in einer Nicht-Produktionsumgebung.

Sie können die folgenden Parameter mithilfe des Zellenverwaltungstools anpassen.

Parameter Beschreibung
vcloud.placement.ranking.currentScoreWeight Die relative Bedeutung der aktuellen Komponente der Hostcluster-Punktzahl. Der Wert muss in [0.1] angegeben werden. Wenn der Wert 0 beträgt, ordnet das Modul den Hostcluster nur basierend auf der zukünftigen Punktzahl ein. Wenn der Wert 1 lautet, ordnet das Modul den Hostcluster nur basierend auf der aktuellen Punktzahl ein. Die Standardeinstellung ist 0,5.

vcloud.placement.ranking.memoryBurstRatio

vcloud.placement.ranking.cpuBurstRatio

Der Prozentsatz der Zuteilung über die Reservierung einer VM hinaus, den der Ranglistenersteller verwendet, um die Auslastung des Clusters zu schätzen. Der Wert liegt zwischen 0 und 1. 0 bedeutet, dass eine VM nur ihre Reservierung verwendet. 1 bedeutet, dass die VM voll ausgelastet ist. Die Standardeinstellung ist 0,67.
vcloud.placement.ranking.futureDeployRatio Der Prozentsatz der VMs auf diesem Hostcluster, die voraussichtlich bereitgestellt werden und Arbeitsspeicher und CPU verbrauchen. Der Wert liegt zwischen 0 und 1. Die Standardeinstellung ist 0,5.

vcloud.placement.ranking.memoryHeadRoom

vcloud.placement.ranking.cpuHeadRoom

vcloud.placement.ranking.storageHeadRoom

Diese Parameter geben die Kontrolle darüber, zusätzliche Ressourcen für das Wachstum auf einem Hostcluster zu belassen. Das Modul definiert den Spielraum als ein Verhältnis der nicht reservierten Ressourcen. Wenn beispielsweise vcloud.placement.ranking.memoryHeadRoom 0,2 ist und dem Hostcluster weniger als 20 % Ressourcen zur Verfügung stehen, stuft das Modul diesen Cluster als einen Cluster mit unzureichendem Speicherplatz ein und stuft ihn niedriger ein als andere Hostcluster. Der Wert muss zwischen 0 und 1 liegen. Die Standardeinstellung ist 0,2.

Beispiel:
./cell-management-tool manage-config -n vcloud.placement.ranking.memoryHeadRoom -v 0.3