Freigeben über


Virtual Machine Scale Sets und Platzierungsgruppen

Hinweis

In diesem Dokument geht es um Virtual Machine Scale Sets, die im Modus „Einheitliche Orchestrierung“ ausgeführt werden. Für neue Workloads empfehlen wir den Modus „Flexible Orchestrierung“. Weitere Informationen finden Sie unter Orchestrierungsmodi für VM-Skalierungsgruppen in Azure.

Sie können nun Azure-VM-Skalierungsgruppen mit einer Kapazität von bis zu 1.000 VMs erstellen. Eine große Virtual Machine Scale Set wird in diesem Dokument als eine Skalierungsgruppe definiert, die auf mehr als 100 VMs skaliert werden kann. Diese Funktion wird über eine Skalierungsgruppeneigenschaft (singlePlacementGroup=False) festgelegt.

Bestimmte Aspekte umfangreicher Skalierungsgruppen (wie etwa Lastenausgleich und Fehlerdomänen) verhalten sich anders als bei Standardskalierungsgruppen. In diesem Dokument werden die Eigenschaften großer Datensätze erläutert und beschrieben, was Sie wissen müssen, um sie erfolgreich in Ihren Anwendungen zu nutzen.

Eine gängige Methode für die Bereitstellung umfangreicher Cloudinfrastrukturen ist die Erstellung eines Satzes von Skalierungseinheiten – beispielsweise durch Erstellen mehrerer VM-Skalierungsgruppen in mehreren VNets und Speicherkonten. Verglichen mit einzelnen virtuellen Computern ermöglicht dieser Ansatz eine einfachere Verwaltung. Mehrere Skalierungseinheiten sind zudem bei zahlreichen Anwendungen hilfreich. Dies gilt insbesondere für Anwendungen, die andere stapelbare Komponenten (etwa mehrere virtuelle Netzwerke und Endpunkte) erfordern. Falls Ihre Anwendung allerdings einen einzelnen großen Cluster erfordert, ist es unter Umständen einfacher, eine einzelne Skalierungsgruppe mit bis zu 1.000 virtuellen Computern bereitzustellen. Beispielszenarien wären etwa zentrale Big Data-Bereitstellungen oder Computenetze, die eine einfache Verwaltung eines umfangreichen Pools von Workerknoten erfordern. In Kombination mit angefügten Datenträgern für Virtual Machine Scale Sets können Sie mit umfangreichen Skalierungsgruppen in einem einzelnen Vorgang eine skalierbare Infrastruktur mit Tausenden von vCPUs und einem Speicherplatz von mehreren Petabyte bereitstellen.

Platzierungsgruppen

Die Besonderheit einer umfangreichen Skalierungsgruppe ist nicht die Anzahl virtueller Computer, sondern die Anzahl enthaltener Platzierungsgruppen. Eine Platzierungsgruppe ist ein ähnliches Konstrukt wie eine Azure-Verfügbarkeitsgruppe und verfügt über eigene Fehler- und Upgradedomänen. Standardmäßig besteht eine Skalierungsgruppe aus einer einzelnen Platzierungsgruppe mit einer maximalen Größe von 100 virtuellen Computern. Wenn die Skalierungsgruppeneigenschaft singlePlacementGroup auf false festgelegt ist, kann die Skalierungsgruppe mehrere Platzierungsgruppen und bis zu 1.000 virtuelle Computer umfassen. Wenn der Standardwert true festgelegt ist, besteht eine Skalierungsgruppe aus einer einzelnen Platzierungsgruppe und hat eine Bandbreite von 0 bis 100 virtuellen Computern.

Prüfliste für die Verwendung großangelegter Skalensätze

Um festzustellen, ob Ihre Anwendung großdimensionierte Sets effektiv nutzen kann, berücksichtigen Sie die folgenden Anforderungen.

  • Wenn Sie eine große Anzahl von virtuellen Computern bereitstellen möchten, ist unter Umständen eine Erhöhung der Compute-vCPU-Kontingentgrenzwerte erforderlich.
  • Aus Azure Marketplace-Bildern oder Azure Compute Gallery-Bildern erstellte Skalierungsgruppen können bis zu 1000 VMs skalieren.
  • Skalierungsgruppen, die auf der Grundlage benutzerdefinierter Images (selbst erstellte und hochgeladene VM-Images) erstellt wurden, können derzeit auf bis zu 600 virtuelle Computer skaliert werden.
  • Große Mengen erfordern von Azure verwaltete Datenträger. Skalierungssätze, die nicht mit verwalteten Datenträgern erstellt werden, erfordern mehrere Speicherkonten (eine für alle 20 VMs). Großmaßstäbliche Sets sind so konzipiert, dass sie ausschließlich mit verwalteten Datenträgern arbeiten, um den Speicherverwaltungsaufwand zu reduzieren und das Risiko zu vermeiden, die Abonnementgrenzwerte für Speicherkonten zu erreichen.
  • Groß angelegte Skalierung (SPG=false) unterstützt keine InfiniBand-Netzwerke.
  • Für den Layer-4-Lastenausgleich mit Skalierungsgruppen bestehend aus mehreren Platzierungsgruppen ist die Standard-SKU von Azure Load Balancer erforderlich. Mit der Standard-SKU von Azure Load Balancer profitieren Sie von weiteren Vorteilen, z.B. der Möglichkeit zum Durchführen des Lastenausgleichs zwischen mehreren Skalierungsgruppen. Außerdem ist es für die Standard-SKU erforderlich, dass der Skalierungsgruppe eine Netzwerksicherheitsgruppe zugeordnet ist. Andernfalls funktionieren NAT-Pools nicht richtig. Falls Sie die Azure Load Balancer Basic-SKU verwenden müssen, sollten Sie darauf achten, dass die Skalierungsgruppe für die Verwendung einer einzelnen Platzierungsgruppe konfiguriert ist. Dies ist die Standardeinstellung.
  • Layer-7-Lastenausgleich mit Azure Application Gateway wird für alle Skalierungsgruppen unterstützt.
  • Eine Skalierungsgruppe ist mit einem einzelnen Subnetz definiert. Vergewissern Sie sich daher, dass Ihr Subnetz über einen ausreichend großen Adressbereich für alle benötigten virtuellen Computer verfügt. Zur Verbesserung der Zuverlässigkeit und der Leistung der Bereitstellung findet bei Skalierungsgruppen standardmäßig eine Überbereitstellung statt. (Zur Bereitstellungszeit oder beim horizontalen Hochskalieren werden also zusätzliche virtuelle Computer erstellt.) Die Größe des Adressraums sollte daher die geplante Anzahl von virtuellen Computern, auf die Sie skalieren möchten, um etwa 20 Prozent übersteigen.
  • Fehlerdomänen und Upgradedomänen sind nur innerhalb einer Platzierungsgruppe konsistent. Diese Architektur ändert nichts an der allgemeinen Verfügbarkeit einer Skalierungsgruppe, da virtuelle Computer gleichmäßig auf unterschiedliche physische Hardware verteilt werden. Wenn Sie jedoch sicherstellen müssen, dass sich zwei virtuelle Computer auf unterschiedlicher Hardware befinden, müssen Sie sich vergewissern, dass sie sich in unterschiedlichen Fehlerdomänen in der gleichen Platzierungsgruppe befinden. Weitere Informationen finden Sie unter Verfügbarkeitsoptionen.
  • Fehlerdomäne und Platzierungsgruppen-ID werden in der Instanzansicht eines virtuellen Skalierungsgruppencomputers angezeigt. Die Instanzansicht eines virtuellen Skalierungsgruppencomputers können Sie im Azure-Ressourcen-Explorer anzeigen.

Erstellen einer umfangreichen Skalierungsgruppe

Geben Sie beim Erstellen einer Skalierungsgruppe über das Azure-Portal einfach einen Wert von bis zu 1.000 für die Anzahl von Instanzen an. Bei mehr als 100 Instanzen wird Skalierung auf über 100 Instanzen aktivieren auf Ja festgelegt, um die Skalierung auf mehrere Platzierungsgruppen zu ermöglichen.

Diese Abbildung zeigt das Blatt „Instanzen“ im Azure-Portal. Es sind Optionen zum Auswählen der Instanzanzahl und -größe verfügbar.

Über die Azure CLI kann mit dem Befehl az vmss create eine umfangreiche VM-Skalierungsgruppe erstellt werden. Dieser Befehl legt auf der Grundlage des Arguments instance-count intelligente Standardwerte wie etwa die Subnetzgröße fest:

az group create -l southcentralus -n biginfra
az vmss create -g biginfra -n bigvmss --image Ubuntu2204 --instance-count 1000

Der Befehl vmss create verwendet standardmäßig bestimmte Konfigurationswerte, wenn Sie diese nicht angeben. Um die Optionen anzuzeigen, die Sie überschreiben können, versuchen Sie:

az vmss create --help

Wenn Sie eine umfangreiche Skalierungsgruppe mithilfe einer Azure Resource Manager-Vorlage erstellen, achten Sie darauf, dass die Vorlage eine auf von Azure verwalteten Datenträgern basierende Skalierungsgruppe erstellt. Die Eigenschaft singlePlacementGroup kann im Abschnitt properties der Ressource Microsoft.Compute/virtualMachineScaleSets auf false festgelegt werden. Das folgende JSON-Fragment zeigt den Anfang einer Skalierungsgruppenvorlage mit einer Kapazität von 1.000 virtuellen Computern und der Einstellung "singlePlacementGroup" : false:

{
  "type": "Microsoft.Compute/virtualMachineScaleSets",
  "location": "australiaeast",
  "name": "bigvmss",
  "sku": {
    "name": "Standard_DS1_v2",
    "tier": "Standard",
    "capacity": 1000
  },
  "properties": {
    "singlePlacementGroup": false,
    "upgradePolicy": {
      "mode": "Automatic"
    }

Ein vollständiges Beispiel für eine Vorlage für umfangreiche Skalierungsgruppen finden Sie unter https://github.com/gbowerman/azure-myriad/blob/main/bigtest/bigbottle.json.

Konvertieren eines vorhandenen Skalierungssets in eines, das mehrere Platzierungsgruppen umfasst

Wenn eine vorhandene VM-Skalierungsgruppe auf über 100 VMs skalierbar sein soll, müssen Sie die singlePlacementGroup-Eigenschaft im Skalierungsgruppenmodell auf false festlegen. Sie können das Ändern dieser Eigenschaft mit dem Azure-Ressourcen-Explorer testen. Navigieren Sie zu einem vorhandenen Skalierungsset, wählen Sie Bearbeiten aus, und ändern Sie die singlePlacementGroup-Eigenschaft. Sollte die Eigenschaft nicht angezeigt werden, verwenden Sie möglicherweise eine ältere Version der Microsoft.Compute-API für das Skalierungsset.

Hinweis

Eine Skalierungsgruppe, die nur eine einzelne Platzierungsgruppe unterstützt (Standardverhalten), kann in eine Skalierungsgruppe konvertiert werden, die mehrere Skalierungsgruppen unterstützt, aber nicht umgekehrt. Machen Sie sich daher vor der Konvertierung sorgfältig mit den Eigenschaften umfangreicher Skalierungsgruppen vertraut.