Uso di set di scalabilità di macchine virtuali di grandi dimensioni

È ora possibile creare set di scalabilità di macchine virtuali di Azure con capacità fino a 1.000 VM. In questo documento è definito set di scalabilità di macchine virtuali di grandi dimensioni un set di scalabilità ridimensionabile fino a oltre 100 VM. Tale funzionalità è impostata da una proprietà del set di scalabilità (singlePlacementGroup=False).

Nei set di scalabilità di grandi dimensioni, alcuni aspetti, come il bilanciamento del carico e i domini di errore, presentano un comportamento diverso rispetto ai set di scalabilità standard. Questo documento illustra le caratteristiche dei set di scalabilità di grandi dimensioni e offre informazioni utili per usarli correttamente nelle applicazioni.

Un approccio comune per distribuire un'infrastruttura cloud su larga scala consiste nel creare un set di unità di scala, ad esempio creando più set di scalabilità di macchine virtuali in più reti virtuali e account di archiviazione. Questo approccio offre una gestione più semplice rispetto alle VM singole e la presenza di più unità di scala è utile per numerose applicazioni, in particolare per quelle che richiedono altri componenti organizzabili in stack come più reti virtuali ed endpoint. Se l'applicazione richiede un singolo cluster di grandi dimensioni, tuttavia, può essere più semplice distribuire un singolo set di scalabilità con un massimo di 1.000 VM. Gli scenari di esempio includono distribuzioni centralizzate di Big Data o griglie di calcolo che richiedono una gestione semplice di un esteso pool di nodi di lavoro. In combinazione con i dischi dati collegati dei set di scalabilità di macchine virtuali, i set di scalabilità di grandi dimensioni consentono di distribuire un'infrastruttura scalabile costituita da migliaia di core e petabyte di spazio di archiviazione in un'unica operazione.

Gruppi di posizionamento

La caratteristica distintiva di un set di scalabilità di grandi dimensioni non è il numero di VM, ma il numero di gruppi di posizionamento che contiene. Un gruppo di posizionamento è un costrutto simile a un set di disponibilità di Azure, con specifici domini di errore e di aggiornamento. Per impostazione predefinita, un set di scalabilità è costituito da un singolo gruppo di posizionamento con una dimensione massima di 100 VM. Se la proprietà del set di scalabilità denominata singlePlacementGroup è impostata su false, il set può essere costituito da più gruppi di posizionamento con un intervallo da 0 a 1.000 VM. Quando la proprietà è impostata sul valore predefinito true, un set di scalabilità è costituito da un singolo gruppo di posizionamento, con un intervallo da 0 a 100 VM.

Elenco di controllo per l'uso di set di scalabilità di grandi dimensioni

Per stabilire se l'applicazione può usare in modo efficace set di scalabilità di grandi dimensioni, considerare i requisiti seguenti:

  • I set di scalabilità di grandi dimensioni richiedono Azure Managed Disks. Per i set di scalabilità non creati con Managed Disks sono necessari più account di archiviazione (uno ogni 20 VM). I set di scalabilità di grandi dimensioni sono progettati per usare esclusivamente Managed Disks, per ridurre il sovraccarico nella gestione dell'archiviazione ed evitare il rischio di raggiungere i limiti della sottoscrizione per gli account di archiviazione. Se non si usa Managed Disks, il set di scalabilità è limitato a 100 VM.
  • I set di scalabilità creati da immagini di Azure Marketplace sono ridimensionabili fino a 1.000 VM.
  • I set di scalabilità creati da immagini personalizzate (ossia immagini di VM create e caricate dall'utente) sono attualmente ridimensionabili fino a 300 VM.
  • Il bilanciamento del carico di livello 4 con Azure Load Balancer non è ancora supportato per i set di scalabilità costituiti da più gruppi di posizionamento. Se è necessario usare Azure Load Balancer, verificare che il set di scalabilità sia configurato per l'uso di un singolo gruppo di posizionamento, come da impostazione predefinita.
  • Il bilanciamento del carico di livello 7 con il gateway applicazione di Azure è supportato per tutti i set di scalabilità.
  • Un set di scalabilità è definito con una singola subnet. Verificare che lo spazio indirizzi della subnet sia sufficiente per tutte le VM necessarie. Per impostazione predefinita, un set di scalabilità effettua un provisioning eccessivo (ossia crea VM aggiuntive, per cui non vengono applicati addebiti, in fase di distribuzione o quando si aumenta il numero di istanze) per migliorare l'affidabilità e le prestazioni della distribuzione. Prevedere uno spazio indirizzi superiore del 20% rispetto al numero di VM a cui si intende eseguire il ridimensionamento.
  • Se si pianifica di distribuire molte VM, potrebbe essere necessario aumentare i limiti di quota dei core di calcolo.
  • I domini di errore e di aggiornamento sono coerenti solo all'interno di un gruppo di posizionamento. Questa architettura non modifica la disponibilità generale di un set di scalabilità, perché le VM sono distribuite in modo uniforme su hardware fisico distinto. Se è necessario garantire che due VM risiedano in hardware diverso, tuttavia, verificare che si trovino in domini di errore diversi nello stesso gruppo di posizionamento. Il dominio di errore e l'ID del gruppo di posizionamento sono riportati nella visualizzazione dell'istanza di una VM del set di scalabilità. La visualizzazione dell'istanza di una VM del set di scalabilità è disponibile in Esplora risorse di Azure.

Creazione di un set di scalabilità di grandi dimensioni

Quando si crea un set di scalabilità nel portale di Azure, è possibile consentire il ridimensionamento a più gruppi di posizionamento impostando l'opzione Limit to a single placement group (Limita a singolo gruppo di posizionamento) su False nel pannello Informazioni di base. Con questa opzione impostata su False, è possibile specificare un valore fino a 1.000 in Numero di istanze.

È possibile creare un set di scalabilità di macchine virtuali di grandi dimensioni con il comando az vmss create dell'interfaccia della riga di comando di Azure. Questo comando configura impostazioni predefinite intelligenti, ad esempio dimensioni di subnet basate sull'argomento instance-count:

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

Si noti che il comando vmss create imposta alcuni valori di configurazione predefiniti se non vengono specificati dall'utente. Per visualizzare le opzioni che possono essere sostituite, provare il comando seguente:

az vmss create --help

Se si crea un set di scalabilità di grandi dimensioni componendo un modello di Azure Resource Manager, verificare che il modello crei un set di scalabilità basato su Azure Managed Disks. È possibile impostare la proprietà singlePlacementGroup su false nella sezione properties della risorsa Microsoft.Compute/virtualMAchineScaleSets. Il frammento JSON seguente mostra l'inizio di un modello di set di scalabilità, con una capacità di 1.000 VM e l'impostazione "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"
    }

Per un esempio completo di modello di set di scalabilità di grandi dimensioni, vedere https://github.com/gbowerman/azure-myriad/blob/master/bigtest/bigbottle.json.

Conversione di un set di scalabilità esistente per includere più gruppi di posizionamento

Per consentire il ridimensionamento di un set di scalabilità di macchine virtuali esistente a più di 100 VM, è necessario modificare la proprietà singlePlacementGroup impostandola su false nel modello di set di scalabilità. È possibile testare la modifica di questa proprietà con Esplora risorse di Azure. Trovare un set di scalabilità esistente, selezionare Edit (Modifica) e modificare la proprietà singlePlacementGroup. Se questa proprietà non è visualizzata, è possibile che si stia visualizzando il set di scalabilità con una versione precedente dell'API Microsoft.Compute.

Nota

È possibile modificare una set di scalabilità passando dal supporto di un singolo gruppo di posizionamento (comportamento predefinito) al supporto di più gruppi di posizionamento, ma non eseguire la conversione inversa. Di conseguenza, prima di effettuare la conversione è importante comprendere le proprietà dei set di scalabilità di grandi dimensioni. In particolare, verificare che non sia necessario il bilanciamento del carico di livello 4 con Azure Load Balancer.