Set di scalabilità di macchine virtuali di Azure e dischi di dati collegatiAzure virtual machine scale sets and attached data disks

I set di scalabilità di macchine virtuali di Azure supportano ora macchine virtuali con dischi di dati collegati.Azure virtual machine scale sets now support virtual machines with attached data disks. I dischi di dati possono essere definiti nel profilo di archiviazione per i set di scalabilità creati con Azure Managed Disks.Data disks can be defined in the storage profile for scale sets that have been created with Azure Managed Disks. In precedenza, le uniche opzioni di archivi collegati direttamente disponibili con le macchine virtuali nei set di scalabilità erano le unità del sistema operativo e le unità temporanee.Previously the only directly attached storage options available with VMs in scale sets were the OS drive and temp drives.

Nota

Quando si crea un set di scalabilità con dischi di dati collegati definiti dall'utente, per usare i dischi è comunque necessario montarli e formattarli all'interno di una macchina virtuale, come per le macchine virtuali di Azure autonome.When you create a scale set with attached data disks defined, you still need to mount and format the disks from within a VM to use them (just like for standalone Azure VMs). Un modo pratico per completare questo processo consiste nell'usare un'estensione di script personalizzata che chiama uno script standard per creare partizioni e formattare tutti i dischi di dati in una macchina virtuale.A convenient way to complete this process is to use a custom script extension that calls a standard script to partition and format all the data disks on a VM.

Creare un set di scalabilità con dischi di dati collegatiCreate a scale set with attached data disks

Un modo semplice per creare un set di scalabilità con dischi collegati consiste nell'usare il comando az vmss create.A simple way to create a scale set with attached disks is to use the az vmss create command. L'esempio seguente crea un gruppo di risorse di Azure e un set di scalabilità di 10 macchine virtuali Ubuntu, ognuna con 2 dischi di dati collegati rispettivamente da 50 GB e 100 GB.The following example creates an Azure resource group, and a virtual machine scale set of 10 Ubuntu VMs, each with 2 attached data disks, of 50 GB and 100 GB respectively.

az group create -l southcentralus -n dsktest
az vmss create -g dsktest -n dskvmss --image ubuntults --instance-count 10 --data-disk-sizes-gb 50 100

Il comando az vmss create imposta valori di configurazione predefiniti se non vengono specificati dall'utente.The az vmss create command defaults certain configuration values if you do not specify them. Per visualizzare le opzioni che possono essere sostituite provare:To see the available options that you can override try:

az vmss create --help

Un altro modo per creare un set di scalabilità con dischi di dati collegati è definire un set di scalabilità in un modello di Azure Resource Manager, includere una sezione dataDisks in storageProfile e distribuire il modello.Another way to create a scale set with attached data disks is to define a scale set in an Azure Resource Manager template, include a dataDisks section in the storageProfile, and deploy the template. I dischi da 50 GB e 100 GB dell'esempio precedente saranno definiti come illustrato nell'esempio di modello seguente:The 50 GB and 100-GB disk in the previous example would be defined as shown in the following template example:

"dataDisks": [
    {
    "lun": 1,
    "createOption": "Empty",
    "caching": "ReadOnly",
    "diskSizeGB": 50
    },
    {
    "lun": 2,
    "createOption": "Empty",
    "caching": "ReadOnly",
    "diskSizeGB": 100
    }
]

Un esempio completo e pronto per la distribuzione di un modello di set di scalabilità con un disco collegato è disponibile qui: https://github.com/chagarw/MDPP/tree/master/101-vmss-os-data.You can see a complete, ready to deploy example of a scale set template with an attached disk defined here: https://github.com/chagarw/MDPP/tree/master/101-vmss-os-data.

Aggiungere un disco dati a un set di scalabilità esistenteAdding a data disk to an existing scale set

Nota

È possibile collegare i dischi dati solo a un set di scalabilità creato con Azure Managed Disks.You can only attach data disks to a scale set that has been created with Azure Managed Disks.

È possibile aggiungere un disco dati a un set di scalabilità di macchine virtuali usando il comando az vmss disk attach dell'interfaccia della riga di comando di Azure.You can add a data disk to a virtual machine scale set using Azure CLI az vmss disk attach command. Specificare un LUN che non sia già in uso.Make sure you specify a LUN that is not already in use. L'esempio di interfaccia della riga di comando seguente aggiunge un'unità da 50 GB a LUN 3:The following CLI example adds a 50-GB drive to LUN 3:

az vmss disk attach -g dsktest -n dskvmss --size-gb 50 --lun 3

L'esempio di PowerShell seguente aggiunge un'unità da 50 GB a LUN 3:The following PowerShell example adds a 50 GB drive to LUN 3:

$vmss = Get-AzureRmVmss -ResourceGroupName myvmssrg -VMScaleSetName myvmss
$vmss = Add-AzureRmVmssDataDisk -VirtualMachineScaleSet $vmss -Lun 3 -Caching 'ReadWrite' -CreateOption Empty -DiskSizeGB 50 -StorageAccountType StandardLRS
Update-AzureRmVmss -ResourceGroupName myvmssrg -Name myvmss -VirtualMachineScaleSet $vmss

Nota

Le diverse dimensioni delle macchine virtuali hanno limiti differenti per quanto riguarda il numero di unità collegate supportate.Different VM sizes have different limits on the numbers of attached drives they support. Verificare le dimensioni delle macchine virtuali prima di aggiungere un nuovo disco.Check the virtual machine size characteristics before adding a new disk.

È anche possibile aggiungere un disco aggiungendo una nuova voce alla proprietà dataDisks dell'elemento storageProfile della definizione di un set di scalabilità e applicando la modifica.You can also add a disk by adding a new entry to the dataDisks property in the storageProfile of a scale set definition and applying the change. Per testare questa configurazione, trovare una definizione di set di scalabilità esistente in Esplora risorse di Azure.To test this, find an existing scale set definition in the Azure Resource Explorer. Selezionare Modifica e aggiungere un nuovo disco all'elenco dei dischi di dati, come illustrato nell'esempio seguente:Select Edit and add a new disk to the list of data disks, as shown in the following example:

"dataDisks": [
    {
    "lun": 1,
    "createOption": "Empty",
    "caching": "ReadOnly",
    "diskSizeGB": 50
    },
    {
    "lun": 2,
    "createOption": "Empty",
    "caching": "ReadOnly",
    "diskSizeGB": 100
    },
    {
    "lun": 3,
    "createOption": "Empty",
    "caching": "ReadOnly",
    "diskSizeGB": 20
    }          
]

Selezionare quindi PUT per applicare le modifiche al set di scalabilità.Then select PUT to apply the changes to your scale set. Questo esempio funziona se si usano macchine virtuali con dimensioni che supportano più di due dischi di dati collegati.This example would work as long as you are using a VM size that supports more than two attached data disks.

Nota

Quando si apporta una modifica a una definizione di set di scalabilità, ad esempio l'aggiunta o la rimozione di un disco di dati, la modifica si applica a tutte le nuove macchine virtuali, mentre si applica a quelle esistenti solo se la proprietà upgradePolicy è impostata su "Automatic".When you make a change to a scale set definition such as adding or removing a data disk, it applies to all newly created VMs, but only applies to existing VMs if the upgradePolicy property is set to "Automatic". Se è impostata su "Manual", è necessario applicare manualmente il nuovo modello alle macchine virtuali esistenti.If it is set to "Manual", you need to manually apply the new model to existing VMs. È possibile eseguire questa operazione nel portale, usando il comando AzureRmVmssInstance di PowerShell o il comando az vmss update-instances dell'interfaccia della riga di comando.You can do this in the portal, using the Update-AzureRmVmssInstance PowerShell command, or using the az vmss update-instances CLI command.

Aggiunta di dischi dati pre-popolati a un set di scalabilità esistenteAdding pre-populated data disks to an existent scale set

Quando si aggiungono dischi a un modello di set di scalabilità esistente, da progettazione il disco viene sempre creato vuoto.When you add disks to an existent scale set model, by design, the disk is always created empty. Questo scenario include anche nuove istanze create dal set di scalabilità.This scenario also includes new instances created by the scale set. Questo comportamento è dovuto alla presenza di un disco dati vuoto nella definizione del set di scalabilità.This behavior is because the scale set definition has an empty data disk. Per creare unità dati pre-popolate per un modello di set di scalabilità esistente, è possibile scegliere tra le due opzioni seguenti:In order to create pre-populated data drives for an existent scale set model, you can choose either of next two options:

  • Copiare i dati dalla macchina virtuale dell'istanza 0 ai dischi dati delle altre macchine virtuali eseguendo uno script personalizzato.Copy data from the instance 0 VM to the data disk(s) in the other VMs by running a custom script.
  • Creare un'immagine gestita con il disco del sistema operativo e un disco dati, con i dati necessari, e creare un nuovo set di scalabilità con l'immagine.Create a managed image with the OS disk plus data disk (with the required data) and create a new scale set with the image. In questo modo ogni nuova macchina virtuale creata avrà un disco dati incluso nella definizione del set di scalabilità.This way every new VM created has a data disk that that is provided in the definition of the scale set. Dato che la definizione fa riferimento a un'immagine con un disco dati che contiene dati personalizzati, ogni macchina virtuale nel set di scalabilità include tali modifiche.Since this definition refers to an image with a data disk that has customized data, every virtual machine on the scale set has these changes.

Per informazioni su come creare un'immagine personalizzata, vedere Creare un'immagine gestita di una macchina virtuale generalizzata in Azure.The way to create a custom image can be found here: Create a managed image of a generalized VM in Azure

L'utente deve acquisire la macchina virtuale dell'istanza 0 che contiene i dati necessari e usare tale disco rigido virtuale per la definizione dell'immagine.The user needs to capture the instance 0 VM that has the required data, and then use that vhd for the image definition.

Rimuovere un disco dati da un set di scalabilitàRemoving a data disk from a scale set

È possibile rimuovere un disco dati da un set di scalabilità di macchine virtuali usando il comando az vmss disk detach dell'interfaccia della riga di comando di Azure.You can remove a data disk from a virtual machine scale set using Azure CLI az vmss disk detach command. Ad esempio il comando seguente rimuove il disco definito in LUN 2:For example the following command removes the disk defined at LUN 2:

az vmss disk detach -g dsktest -n dskvmss --lun 2

Allo stesso modo è anche possibile rimuovere un disco da un set di scalabilità rimuovendo una voce dalla proprietà dataDisks dell'elemento storageProfile e applicando la modifica.Similarly you can also remove a disk from a scale set by removing an entry from the dataDisks property in the storageProfile and applying the change.

Note aggiuntiveAdditional notes

Il supporto per Azure Managed Disks e i set di scalabilità con dischi di dati collegati è disponibile nella versione 2016-04-30-preview o successiva dell'API Microsoft.Compute.Support for Azure Managed disks and scale set attached data disks is available in API version 2016-04-30-preview or later of the Microsoft.Compute API.

Nell'implementazione iniziale del supporto di dischi collegati per set di scalabilità, non è possibile collegare o scollegare dischi di dati a/da singole macchine virtuali in un set di scalabilità.In the initial implementation of attached disk support for scale sets, you cannot attach or detach data disks to/from individual VMs in a scale set.

Il supporto del portale di Azure per i dischi di dati collegati nei set di scalabilità è inizialmente limitato.Azure portal support for attached data disks in scale sets is initially limited. A seconda dei requisiti è possibile usare modelli di Azure, interfaccia della riga di comando, PowerShell, SDK e API REST per gestire i dischi collegati.Depending on your requirements you can use Azure templates, CLI, PowerShell, SDKs, and REST API to manage attached disks.