Considerazioni sulla progettazione per i set di scalabilitàDesign Considerations For Scale Sets

Questo argomento descrive una serie di considerazioni di progettazione per i set di scalabilità di macchine virtuali.This topic discusses design considerations for Virtual Machine Scale Sets. Per sapere che cosa sono i set di scalabilità di macchine virtuali, vedere Panoramica dei set di scalabilità di macchine virtuali.For information about what Virtual Machine Scale Sets are, refer to Virtual Machine Scale Sets Overview.

Quando usare i set di scalabilità invece delle macchine virtuali?When to use scale sets instead of virtual machines?

I set di scalabilità sono in genere utili per distribuire un'infrastruttura a disponibilità elevata che include un set di computer con una configurazione simile.Generally, scale sets are useful for deploying highly available infrastructure where a set of machines have similar configuration. Tuttavia, alcune funzionalità sono disponibili soltanto nei set di scalabilità, mentre altre sono disponibili solo nelle macchine virtuali.However, some features are only available in scale sets while other features are only available in VMs. Per prendere una decisione consapevole su quando usare ogni tecnologia, è consigliabile esaminare prima alcune delle funzionalità di uso comune disponibili nei set di scalabilità ma non nelle macchine virtuali:In order to make an informed decision about when to use each technology, we should first take a look at some of the commonly used features that are available in scale sets but not VMs:

Funzionalità specifiche dei set di scalabilitàScale set-specific features

Funzionalità specifiche delle macchine virtualiVM-specific features

D'altra parte, alcune funzionalità sono disponibili solo nelle macchine virtuali (almeno per il momento):On the other hand, some features are only available in VMs (at least for the time being):

  • È possibile collegare dischi dati a singole macchine virtuali specifiche, mentre in un set di scalabilità i dischi dati collegati vengono configurati per tutte le macchine virtuali.You can attach data disks to specific individual VMs, but attached data disks are configured for all VMs in a scale set.
  • È possibile collegare dischi dati non vuoti alle singole macchine virtuali, ma non alle macchine virtuali in un set di scalabilità.You can attach non-empty data disks to individual VMs but not VMs in a scale set.
  • È possibile acquisire uno snapshot di una singola macchina virtuale, ma non di una macchina virtuale in un set di scalabilità.You can snapshot an individual VM but not a VM in a scale set.
  • È possibile acquisire un'immagine da una singola macchina virtuale, ma non da una macchina virtuale in un set di scalabilità.You can capture an image from an individual VM but not from a VM in a scale set.
  • È possibile eseguire la migrazione di una singola macchina virtuale da dischi nativi a dischi gestiti, ma la stessa operazione non può essere eseguita per le macchine virtuali in un set di scalabilità.You can migrate an individual VM from native disks to managed disks, but you cannot do this for VMs in a scale set.
  • È possibile assegnare indirizzi IP pubblici IPv6 alle schede di interfaccia di rete di singole macchine virtuali, ma la stessa operazione non può essere eseguita per le macchine virtuali in un set di scalabilità.You can assign IPv6 public IP addresses to individual VM nics but cannot do so for VMs in a scale set. Si noti che è possibile assegnare indirizzi IP pubblici IPv6 ai servizi di bilanciamento del carico che si trovano davanti a singole macchine virtuali o a quelle di un set di scalabilità.Note that you can assign IPv6 public IP addresses to load balancers in front of either individual VMs or scale set VMs.

ArchiviazioneStorage

Set di scalabilità con Azure Managed DisksScale sets with Azure Managed Disks

Invece che con i tradizionali account di archiviazione di Azure, i set di scalabilità possono essere creati con Azure Managed Disks.Scale sets can be created with Azure Managed Disks instead of traditional Azure storage accounts. Managed Disks offre i seguenti vantaggi:Managed Disks provide the following benefits:

Se si ha un modello esistente, è anche possibile aggiornare il modello per l'uso di Managed Disks.If you have an existing template, you can also update the template to use Managed Disks.

Archiviazione gestita dall'utenteUser-managed Storage

Un set di scalabilità non definito con Azure Managed Disks si basa sugli account di archiviazione creati dall'utente per archiviare i dischi del sistema operativo delle macchine virtuali nel set.A scale set that is not defined with Azure Managed Disks relies on user-created storage accounts to store the OS disks of the VMs in the set. È consigliabile un rapporto di 20 o meno macchine virtuali per ogni account di archiviazione per ottenere il massimo IO e per sfruttare i vantaggi del provisioning in eccesso (vedere di seguito).A ratio of 20 VMs per storage account or less is recommended to achieve maximum IO and also take advantage of overprovisioning (see below). È anche consigliabile usare le diverse lettere dell'alfabeto come caratteri iniziali dei nomi degli account di archiviazione.It is also recommended that you spread the beginning characters of the storage account names across the alphabet. Questo consente di suddividere il carico tra diversi sistemi interni.Doing so helps spread load across different internal systems.

Provisioning eccessivoOverprovisioning

L'impostazione predefinita per i set di scalabilità è attualmente il "provisioning eccessivo" di macchine virtuali.Scale sets currently default to "overprovisioning" VMs. Con il provisioning eccessivo attivato, il set di scalabilità di fatto avvia un maggior numero di macchine virtuali rispetto a quanto richiesto, dopodiché elimina le macchine virtuali aggiuntive una volta eseguito correttamente il provisioning del numero di macchine virtuali richiesto.With overprovisioning turned on, the scale set actually spins up more VMs than you asked for, then deletes the extra VMs once the requested number of VMs are successfully provisioned. Il provisioning eccessivo migliora le percentuali di riuscita del provisioning e riduce i tempi di distribuzione.Overprovisioning improves provisioning success rates and reduces deployment time. Le macchine virtuali aggiuntive non vengono addebitate all'utente e non se ne tiene conto per il raggiungimento dei limiti di quota.You are not billed for the extra VMs, and they do not count toward your quota limits.

Il provisioning eccessivo consente di migliorare la percentuale di riuscita del provisioning, ma può causare il comportamento confuso delle applicazioni non progettate per gestire VM aggiuntive che compaiono e scompaiono senza preavviso.While overprovisioning does improve provisioning success rates, it can cause confusing behavior for an application that is not designed to handle extra VMs appearing and then disappearing. Per disattivare il provisioning eccessivo, assicurarsi che il modello includa la stringa seguente: "overprovision": "false".To turn overprovisioning off, ensure you have the following string in your template: "overprovision": "false". Per altre informazioni, consultare la documentazione dell'API REST relativa ai set di scalabilità.More details can be found in the Scale Set REST API documentation.

Se il set di scalabilità usa l'archiviazione gestita dall'utente e se si disattiva il provisioning in eccesso, è possibile disporre di più di 20 macchine virtuali per account di archiviazione. Tuttavia, non è consigliabile superare le 40 macchine virtuali per ragioni di prestazioni I/O.If your scale set uses user-managed storage, and you turn off overprovisioning, you can have more than 20 VMs per storage account, but it is not recommended to go above 40 for IO performance reasons.

LimitiLimits

Un set di scalabilità basato su un'immagine Marketplace (chiamata anche immagine di piattaforma) e configurato per usare Azure Managed Disks supporta una capacità massima di 1.000 macchine virtuali.A scale set built on a Marketplace image (also known as a platform image) and configured to use Azure Managed Disks supports a capacity of up to 1,000 VMs. Se si configura il set di scalabilità per supportare più di 100 macchine virtuali, non tutti gli scenari funzioneranno allo stesso modo, ad esempio il bilanciamento del carico.If you configure your scale set to support more than 100 VMs, not all scenarios work the same (for example load balancing). Per altre informazioni, vedere Uso di set di scalabilità di macchine virtuali di grandi dimensioni.For more information, see Working with large virtual machine scale sets.

Un set di scalabilità configurato con account di archiviazione gestita dall'utente ha un limite corrente di 100 macchine virtuali. Per questa scalabilità sono consigliati 5 account di archiviazione.A scale set configured with user-managed storage accounts is currently limited to 100 VMs (and 5 storage accounts are recommended for this scale).

Un set di scalabilità basato su un'immagine personalizzata (creata dall'utente) può avere una capacità massima di 300 macchine virtuali quando configurato con Azure Managed Disks.A scale set built on a custom image (one built by you) can have a capacity of up to 300 VMs when configured with Azure Managed disks. Se il set di scalabilità è configurato con gli account di archiviazione gestita dall'utente, è necessario creare tutti i dischi rigidi virtuali del disco del sistema operativo all'interno di un unico account di archiviazione.If the scale set is configured with user-managed storage accounts, it must create all OS disk VHDs within one storage account. Di conseguenza, il numero massimo consigliato di VM in un set di scalabilità basato su un'immagine personalizzata e su un'archiviazione gestita dall'utente è 20.As a result, the maximum recommended number of VMs in a scale set built on a custom image and user-managed storage is 20. Se si disattiva il provisioning eccessivo, è possibile arrivare a 40.If you turn off overprovisioning, you can go up to 40.

Per un numero di macchine virtuali superiore a tali limiti, è necessario distribuire più set di scalabilità, come indicato in questo modello.For more VMs than these limits allow, you need to deploy multiple scale sets as shown in this template.