Esercitazione: Creare e distribuire macchine virtuali a disponibilità elevata con l'interfaccia della riga di comando di Azure 2.0Tutorial: Create and deploy highly available virtual machines with the Azure CLI 2.0

In questa esercitazione si apprenderà come aumentare la disponibilità e l'affidabilità delle soluzioni delle proprie macchine virtuali in Azure tramite una funzionalità denominata set di disponibilità.In this tutorial, you learn how to increase the availability and reliability of your Virtual Machine solutions on Azure using a capability called Availability Sets. I set di disponibilità assicurano che le macchine virtuali distribuite in Azure vengano distribuite tra più cluster hardware isolati.Availability sets ensure that the VMs you deploy on Azure are distributed across multiple isolated hardware clusters. Questa operazione assicura che, se si verifica un errore hardware o software all'interno di Azure, solo un subset delle macchine virtuali viene interessato e che nel complesso la soluzione rimane disponibile e operativa.Doing this ensures that if a hardware or software failure within Azure happens, only a subset of your VMs is impacted and that your overall solution remains available and operational.

In questa esercitazione si apprenderà come:In this tutorial, you learn how to:

  • Creare un set di disponibilitàCreate an availability set
  • Creare una macchina virtuale in un set di disponibilitàCreate a VM in an availability set
  • Controllare le dimensioni delle macchine virtuali disponibiliCheck available VM sizes

Aprire Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Gli strumenti comuni di Azure sono preinstallati e configurati in Cloud Shell per l'uso con l'account.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. È sufficiente selezionare il pulsante Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Esistono alcuni modi per aprire Cloud Shell:There are a few ways to open Cloud Shell:

Selezionare Prova nell'angolo superiore destro di un blocco di codice.Select Try It in the upper-right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/bash
Selezionare il pulsante Cloud Shell nel menu nell'angolo superiore destro del portale di Azure.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell nel portale

Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, per questa esercitazione è necessario eseguire l'interfaccia della riga di comando di Azure versione 2.0.30 o successiva.If you choose to install and use the CLI locally, this tutorial requires that you are running the Azure CLI version 2.0.30 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Informazioni generali sui set di disponibilitàAvailability set overview

Un set di disponibilità è una funzionalità di raggruppamento logico che è possibile usare in Azure per garantire che le risorse delle macchine virtuali inserite dall'utente siano isolate tra loro quando vengono distribuite all'interno di un data center di Azure.An Availability Set is a logical grouping capability that you can use in Azure to ensure that the VM resources you place within it are isolated from each other when they are deployed within an Azure datacenter. Azure garantisce che le macchine virtuali inserite all'interno di un set di disponibilità vengano eseguite tra più server fisici, rack di calcolo, unità di archiviazione e commutatori di rete.Azure ensures that the VMs you place within an Availability Set run across multiple physical servers, compute racks, storage units, and network switches. In caso di guasto hardware o errore software in Azure, viene interessato solo un subset delle macchine virtuali. L'applicazione nel suo complesso rimarrà attiva e disponibile per i clienti.If a hardware or Azure software failure occurs, only a subset of your VMs are impacted, and your overall application stays up and continues to be available to your customers. I set di disponibilità sono una funzionalità essenziale da sfruttare quando si vogliono creare soluzioni cloud affidabili.Availability Sets are an essential capability when you want to build reliable cloud solutions.

Si consideri una soluzione tipica basata su macchine virtuali, in cui sono disponibili quattro server Web front-end e vengono usate due macchine virtuali di back-end che ospitano un database.Let’s consider a typical VM-based solution where you might have four front-end web servers and use two back-end VMs that host a database. Con Azure è possibile definire due set di disponibilità prima di distribuire le macchine virtuali: un set di disponibilità per il livello "Web" e un set di disponibilità per il livello "database".With Azure, you’d want to define two availability sets before you deploy your VMs: one availability set for the “web” tier and one availability set for the “database” tier. Quando si crea una nuova macchina virtuale, è quindi possibile specificare il set di disponibilità come parametro per il comando az vm create. Azure garantisce automaticamente che le macchine virtuali create all'interno del set di disponibilità vengano isolate tramite installazione in più risorse hardware fisiche.When you create a new VM you can then specify the availability set as a parameter to the az vm create command, and Azure automatically ensures that the VMs you create within the available set are isolated across multiple physical hardware resources. Se l'hardware fisico in cui è in esecuzione una delle macchine virtuali dei server di database o dei server Web presenta un problema, le altre istanze delle macchine virtuali dei server Web e di database rimangono in esecuzione, perché si trovano all'interno di risorse hardware diverse.If the physical hardware that one of your Web Server or Database Server VMs is running on has a problem, you know that the other instances of your Web Server and Database VMs remain running because they are on different hardware.

È consigliabile usare i set di disponibilità quando si vogliono distribuire soluzioni affidabili basate su macchine virtuali all'interno di Azure.Use Availability Sets when you want to deploy reliable VM-based solutions within Azure.

Creare un set di disponibilitàCreate an availability set

È possibile creare un set di disponibilità usando il comando az vm availability-set create.You can create an availability set using az vm availability-set create. In questo esempio il numero di domini di aggiornamento e di errore viene impostato su 2 per il set di disponibilità denominato myAvailabilitySet nel gruppo di risorse myResourceGroupAvailability.In this example, the number of update and fault domains is set to 2 for the availability set named myAvailabilitySet in the myResourceGroupAvailability resource group.

Creare prima un gruppo di risorse con il comando az group create, quindi creare il set di disponibilità:First, create a resource group with az group create, then create the availability set:

az group create --name myResourceGroupAvailability --location eastus

az vm availability-set create \
    --resource-group myResourceGroupAvailability \
    --name myAvailabilitySet \
    --platform-fault-domain-count 2 \
    --platform-update-domain-count 2

I set di disponibilità consentono di isolare le risorse in domini di errore e in domini di aggiornamento.Availability Sets allow you to isolate resources across fault domains and update domains. Un dominio di errore rappresenta una raccolta isolata di server + rete + risorse di archiviazione.A fault domain represents an isolated collection of server + network + storage resources. Nell'esempio precedente il set di disponibilità viene distribuito in almeno due domini di errore quando vengono distribuite le macchine virtuali.In the preceding example, the availability set is distributed across at least two fault domains when the VMs are deployed. Il set di disponibilità viene distribuito anche in due domini di aggiornamento.The availability set is also distributed across two update domains. Due domini di aggiornamento assicurano che, quando vengono eseguiti automaticamente gli aggiornamenti software, le risorse delle macchine virtuali siano isolate, impedendo che tutto il software in esecuzione nelle macchine virtuali venga aggiornato contemporaneamente.Two update domains ensure that when Azure performs software updates, the VM resources are isolated, preventing all the software that runs on the VM from being updated at the same time.

Creare macchine virtuali in un set di disponibilitàCreate VMs inside an availability set

Per garantire la corretta distribuzione delle macchine virtuali in tutto l'hardware, le VM devono essere create all'interno del set di disponibilità.VMs must be created within the availability set to make sure they are correctly distributed across the hardware. Non è possibile aggiungere una macchina virtuale esistente a un set di disponibilità dopo la sua creazione.An existing VM cannot be added to an availability set after it is created.

Quando si crea una macchina virtuale con az vm create, usare il parametro --availability-set per specificare il nome del set di disponibilità.When a VM is created with az vm create, use the --availability-set parameter to specify the name of the availability set.

for i in `seq 1 2`; do
   az vm create \
     --resource-group myResourceGroupAvailability \
     --name myVM$i \
     --availability-set myAvailabilitySet \
     --size Standard_DS1_v2  \
     --image UbuntuLTS \
     --admin-username azureuser \
     --generate-ssh-keys \
     --no-wait
done

Sono ora disponibili due macchine virtuali all'interno del set di disponibilità.There are now two virtual machines within the availability set. Poiché si trovano nello stesso set di disponibilità, Azure assicura che le macchine virtuali e tutte le relative risorse (inclusi i dischi dati) vengano distribuite in risorse hardware fisiche isolate.Because they are in the same availability set, Azure ensures that the VMs and all their resources (including data disks) are distributed across isolated physical hardware. Questa distribuzione consente di garantire una disponibilità molto maggiore della soluzione complessiva delle macchine virtuali.This distribution helps ensure much higher availability of the overall VM solution.

La distribuzione del set di disponibilità può essere esaminata nel portale accedendo a Gruppi di risorse > myResourceGroupAvailability > myAvailabilitySet.The availability set distribution can be viewed in the portal by going to Resource Groups > myResourceGroupAvailability > myAvailabilitySet. Le macchine virtuali vengono distribuite tra i due domini di errore e di aggiornamento, come illustrato nell'esempio seguente:The VMs are distributed across the two fault and update domains, as shown in the following example:

Set di disponibilità nel portale

Controllare le dimensioni delle macchine virtuali disponibiliCheck for available VM sizes

È possibile aggiungere più macchine virtuali al set di disponibilità in un secondo momento, se le dimensioni delle macchine virtuali sono disponibili nell'hardware.Additional VMs can be added to the availability set later, where VM sizes are available on the hardware. Usare il comando az vm availability-set list-sizes per elencare tutte le dimensioni disponibili nel cluster hardware per il set di disponibilità:Use az vm availability-set list-sizes to list all the available sizes on the hardware cluster for the availability set:

az vm availability-set list-sizes \
     --resource-group myResourceGroupAvailability \
     --name myAvailabilitySet \
     --output table

Passaggi successiviNext steps

Questa esercitazione illustra come:In this tutorial, you learned how to:

  • Creare un set di disponibilitàCreate an availability set
  • Creare una macchina virtuale in un set di disponibilitàCreate a VM in an availability set
  • Controllare le dimensioni delle macchine virtuali disponibiliCheck available VM sizes

Passare all'esercitazione successiva per informazioni sui set di scalabilità di macchine virtuali.Advance to the next tutorial to learn about virtual machine scale sets.