Verwenden umfangreicher VM-SkalierungsgruppenWorking with large virtual machine scale sets

Sie können nun Azure-VM-Skalierungsgruppen mit einer Kapazität von bis zu 1.000 virtuellen Computern erstellen.You can now create Azure virtual machine scale sets with a capacity of up to 1,000 VMs. Eine umfangreiche VM-Skalierungsgruppe ist in diesem Dokument als Skalierungsgruppe mit mehr als 100 virtuellen Computern definiert.In this document, a large virtual machine scale set is defined as a scale set capable of scaling to greater than 100 VMs. Diese Funktion wird über eine Skalierungsgruppeneigenschaft (singlePlacementGroup=False) festgelegt.This capability is set by a scale set property (singlePlacementGroup=False).

Bestimmte Aspekte umfangreicher Skalierungsgruppen (wie etwa Lastenausgleich und Fehlerdomänen) verhalten sich anders als bei Standardskalierungsgruppen.Certain aspects of large scale sets, such as load balancing and fault domains behave differently to a standard scale set. In diesem Dokument werden die Merkmale umfangreicher Skalierungsgruppen erläutert, und Sie erfahren, wie Sie sie erfolgreich in Ihren Anwendungen verwenden.This document explains the characteristics of large scale sets, and describes what you need to know to successfully use them in your applications.

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.A common approach for deploying cloud infrastructure at large scale is to create a set of scale units, for example by creating multiple VMs scale sets across multiple VNETs and storage accounts. 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.This approach provides easier management compared to single VMs, and multiple scale units are useful for many applications, particularly those that require other stackable components like multiple virtual networks and endpoints. 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.If your application requires a single large cluster however, it can be more straightforward to deploy a single scale set of up to 1,000 VMs. Beispielszenarien wären etwa zentrale Big Data-Bereitstellungen oder Computenetze, die eine einfache Verwaltung eines umfangreichen Pools von Workerknoten erfordern.Example scenarios include centralized big data deployments, or compute grids requiring simple management of a large pool of worker nodes. In Kombination mit angefügten Datenträgern für VM-Skalierungsgruppen können Sie dank umfangreicher Skalierungsgruppen in einem einzelnen Vorgang eine skalierbare Infrastruktur mit Tausenden von vCPUs und einem Speicherplatz von mehreren Petabytes bereitstellen.Combined with virtual machine scale set attached data disks, large scale sets enable you to deploy a scalable infrastructure consisting of thousands of vCPUs and petabytes of storage, as a single operation.

PlatzierungsgruppenPlacement groups

Die Besonderheit einer umfangreichen Skalierungsgruppe ist nicht die Anzahl virtueller Computer, sondern die Anzahl enthaltener Platzierungsgruppen.What makes a large scale set special is not the number of VMs, but the number of placement groups it contains. Eine Platzierungsgruppe ist ein ähnliches Konstrukt wie eine Azure-Verfügbarkeitsgruppe und verfügt über eigene Fehler- und Upgradedomänen.A placement group is a construct similar to an Azure availability set, with its own fault domains and upgrade domains. Standardmäßig besteht eine Skalierungsgruppe aus einer einzelnen Platzierungsgruppe mit einer maximalen Größe von 100 virtuellen Computern.By default, a scale set consists of a single placement group with a maximum size of 100 VMs. Wenn die Skalierungsgruppeneigenschaft singlePlacementGroup auf false festgelegt ist, kann die Skalierungsgruppe mehrere Platzierungsgruppen und bis zu 1.000 virtuelle Computer umfassen.If a scale set property called singlePlacementGroup is set to false, the scale set can be composed of multiple placement groups and has a range of 0-1,000 VMs. Bei Verwendung des Standardwerts true besteht eine Skalierungsgruppe aus einer einzelnen Platzierungsgruppe und umfasst maximal 100 virtuelle Computer.When set to the default value of true, a scale set is composed of a single placement group, and has a range of 0-100 VMs.

Prüfliste für die Verwendung umfangreicher SkalierungsgruppenChecklist for using large scale sets

Die effektive Nutzung umfangreicher Skalierungsgruppen durch eine Anwendung hängt von folgenden Aspekten ab:To decide whether your application can make effective use of large scale sets, consider the following requirements:

  • Wenn Sie eine große Anzahl von virtuellen Computern bereitstellen möchten, ist unter Umständen eine Erhöhung der Compute-vCPU-Kontingentgrenzwerte erforderlich.If you are planning to deploy large number of VMs, your Compute vCPU quota limits may need to be increased.
  • Skalierungsgruppen, die auf der Grundlage von Azure Marketplace-Images erstellt wurden, können auf bis zu 1.000 virtuelle Computer skaliert werden.Scale sets created from Azure Marketplace images can scale up to 1,000 VMs.
  • 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.Scale sets created from custom images (VM images you create and upload yourself) can currently scale up to 600 VMs.
  • Umfangreiche Skalierungsgruppen erfordern Azure Managed Disks.Large scale sets require Azure Managed Disks. Für Skalierungsgruppen, die nicht mit Managed Disks erstellt wurden, sind mehrere Speicherkonten (jeweils eins pro 20 virtuelle Computer) erforderlich.Scale sets that are not created with Managed Disks require multiple storage accounts (one for every 20 VMs). Umfangreiche Skalierungsgruppen wurden exklusiv für die Verwendung mit Managed Disks konzipiert, um die Speicherverwaltung zu vereinfachen und um zu verhindern, dass Abonnementgrenzwerte für Speicherkonten erreicht werden.Large scale sets are designed to work exclusively with Managed Disks to reduce your storage management overhead, and to avoid the risk of running into subscription limits for storage accounts.
  • Für den Layer-4-Lastenausgleich mit Skalierungsgruppen bestehend aus mehreren Platzierungsgruppen ist die Standard-SKU von Azure Load Balancer erforderlich.Layer-4 load balancing with scale sets composed of multiple placement groups requires Azure Load Balancer Standard SKU. 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.The Load Balancer Standard SKU provides additional benefits, such as the ability to load balance between multiple scale sets. Außerdem ist es für die Standard-SKU erforderlich, dass der Skalierungsgruppe eine Netzwerksicherheitsgruppe zugeordnet ist. Andernfalls funktionieren NAT-Pools nicht richtig.Standard SKU also requires that the scale set has a Network Security Group associated with it, otherwise NAT pools don't work correctly. 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.If you need to use the Azure Load Balancer Basic SKU, make sure the scale set is configured to use a single placement group, which is the default setting.
  • Layer-7-Lastenausgleich mit Azure Application Gateway wird für alle Skalierungsgruppen unterstützt.Layer-7 load balancing with the Azure Application Gateway is supported for all scale sets.
  • 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.A scale set is defined with a single subnet - make sure your subnet has an address space large enough for all the VMs you need. 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.)By default a scale set overprovisions (creates extra VMs at deployment time or when scaling out, which you are not charged for) to improve deployment reliability and performance. Die Größe des Adressraums sollte daher die geplante Anzahl von virtuellen Computern, auf die Sie skalieren möchten, um etwa 20 Prozent übersteigen.Allow for an address space 20% greater than the number of VMs you plan to scale to.
  • Fehler- und Upgradedomänen sind nur innerhalb einer Platzierungsgruppe konsistent.Fault domains and upgrade domains are only consistent within a placement group. 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.This architecture does not change the overall availability of a scale set, as VMs are evenly distributed across distinct physical hardware, but it does means that if you need to guarantee two VMs are on different hardware, make sure they are in different fault domains in the same placement group. Informationen finden Sie unter Regionen und Verfügbarkeit für virtuelle Computer in Azure.Please refer to this link Azure Regions and availability.
  • Fehlerdomäne und Platzierungsgruppen-ID werden in der Instanzansicht eines virtuellen Skalierungsgruppencomputers angezeigt.Fault domain and placement group ID are shown in the instance view of a scale set VM. Die Instanzansicht eines virtuellen Skalierungsgruppencomputers können Sie im Azure-Ressourcen-Explorer anzeigen.You can view the instance view of a scale set VM in the Azure Resource Explorer.

Erstellen einer umfangreichen SkalierungsgruppeCreating a large scale set

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.When you create a scale set in the Azure portal, just specify the Instance count value of up to 1,000. Bei mehr als 100 Instanzen wird Skalierung auf über 100 Instanzen aktivieren auf Ja festgelegt, um die Skalierung auf mehrere Platzierungsgruppen zu ermöglichen.If it is more than 100 instances, Enable scaling beyond 100 instances will be set to Yes, which will allow it to scale to multiple placement groups.

Über die Azure-Befehlszeilenschnittstelle kann eine umfangreiche VM-Skalierungsgruppe mithilfe des Befehls az vmss create erstellt werden.You can create a large virtual machine scale set using the Azure CLI az vmss create command. Dieser Befehl legt auf der Grundlage des Arguments instance-count intelligente Standardwerte wie etwa die Subnetzgröße fest:This command sets intelligent defaults such as subnet size based on the instance-count argument:

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

Der Befehl vmss create verwendet standardmäßig bestimmte Konfigurationswerte, wenn Sie diese nicht angeben.The vmss create command defaults certain configuration values if you do not specify them. Mit dem folgenden Befehl können Sie die überschreibbaren Optionen anzeigen:To see the available options that you can override, try:

az vmss create --help

Wenn Sie eine umfangreiche Skalierungsgruppe mithilfe einer Azure Resource Manager-Vorlage erstellen, achten Sie darauf, dass die Vorlage eine auf Azure Managed Disks basierende Skalierungsgruppe erstellt.If you are creating a large scale set by composing an Azure Resource Manager template, make sure the template creates a scale set based on Azure Managed Disks. Die Eigenschaft singlePlacementGroup kann im Abschnitt properties der Ressource Microsoft.Compute/virtualMachineScaleSets auf false festgelegt werden.You can set the singlePlacementGroup property to false in the properties section of the Microsoft.Compute/virtualMachineScaleSets resource. Das folgende JSON-Fragment zeigt den Anfang einer Skalierungsgruppenvorlage mit einer Kapazität von 1.000 virtuellen Computern und der Einstellung "singlePlacementGroup" : false:The following JSON fragment shows the beginning of a scale set template, including the 1,000 VM capacity and the "singlePlacementGroup" : false setting:

{
  "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/master/bigtest/bigbottle.json.For a complete example of a large scale set template, refer to https://github.com/gbowerman/azure-myriad/blob/master/bigtest/bigbottle.json.

Konvertieren einer vorhandenen Skalierungsgruppe in eine Skalierungsgruppe, die mehrere Platzierungsgruppen umfasstConverting an existing scale set to span multiple placement groups

Wenn eine vorhandene VM-Skalierungsgruppe auf über 100 VMs skalierbar sein soll, müssen Sie die Eigenschaft singlePlacementGroup im Skalierungsgruppenmodell auf false festlegen.To make an existing virtual machine scale set capable of scaling to more than 100 VMs, you need to change the singlePlacementGroup property to false in the scale set model. Sie können das Ändern dieser Eigenschaft mit dem Azure-Ressourcen-Explorer testen.You can test changing this property with the Azure Resource Explorer. Navigieren Sie zu einer vorhandenen Skalierungsgruppe, wählen Sie Bearbeiten aus, und ändern Sie die Eigenschaft singlePlacementGroup.Find an existing scale set, select Edit and change the singlePlacementGroup property. Sollte die Eigenschaft nicht angezeigt werden, betrachten Sie die Skalierungsgruppe möglicherweise mit einer älteren Version der Microsoft.Compute-API.If you do not see this property, you may be viewing the scale set with an older version of the Microsoft.Compute API.

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.You can change a scale set from supporting a single placement group only (the default behavior) to a supporting multiple placement groups, but you cannot convert the other way around. Machen Sie sich daher vor der Konvertierung sorgfältig mit den Eigenschaften umfangreicher Skalierungsgruppen vertraut.Therefore make sure you understand the properties of large scale sets before converting.