Come usare i set di disponibilitàHow to use availability sets

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 are 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

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell Bash gratuita che può essere eseguita direttamente nel portale di Azure.The Azure Cloud Shell is a free Bash shell that you can run directly within the Azure portal. Include l'interfaccia della riga di comando di Azure preinstallata e configurata per l'uso con l'account.It has the Azure CLI preinstalled and configured to use with your account. Fare clic sul pulsante Cloud Shell nel menu nel riquadro in alto a destra nel portale di Azure.Click the Cloud Shell button on the menu in the upper-right of the Azure portal.

Cloud ShellCloud Shell

Il pulsante avvia una shell interattiva che è possibile usare per eseguire i passaggi di questo argomento:The button launches an interactive shell that you can use to run the steps in this topic:

Screenshot che mostra la finestra di Cloud Shell nel portaleScreenshot showing the Cloud Shell window in the portal

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.4 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.4 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 si dispone di 4 server Web front-end e vengono usate 2 macchine virtuali di back-end che ospitano un database.Let’s consider a typical VM-based solution where you might have 4 front-end web servers and use 2 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 sia il numero di domini di aggiornamento che quello di domini di errore viene impostato a 2 per il set di disponibilità denominato myAvailabilitySet nel gruppo di risorse myResourceGroupAvailability.In this example, we set both the number of update and fault domains at 2 for the availability set named myAvailabilitySet in the myResourceGroupAvailability resource group.

Creare un gruppo di risorse.Create a resource group.

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 viene indicato che si desidera distribuire il set di disponibilità su almeno due domini di errore quando vengono distribuite le macchine virtuali.In the preceding example, we indicate that we want our availability set to be distributed across at least two fault domains when our VMs are deployed. Viene anche indicato che si desidera distribuire il set di disponibilità su due domini di aggiornamento.We also indicate that we want our availability set distributed across two update domains. Due domini di aggiornamento assicurano che, quando Azure esegue 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 our VM resources are isolated, preventing all the software running underneath our 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.You can't add an existing VM to an availability set after it is created.

Quando si crea una macchina virtuale usando il comando az vm create si specifica il set di disponibilità usando il parametro --availability-set per indicare il nome del set di disponibilità.When you create a VM using az vm create you specify the availability set using 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 Canonical:UbuntuServer:14.04.4-LTS:latest \
     --admin-username azureuser \
     --generate-ssh-keys \
     --no-wait
done 

Sono ora disponibili due macchine virtuali all'interno del set di disponibilità appena creato.We now have two virtual machines within our newly created 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 our overall VM solution.

Se si esamina il set di disponibilità nel portale, selezionando Gruppi di risorse > myResourceGroupAvailability > myAvailabilitySet, è possibile vedere in che modo sono distribuite le macchine virtuali tra i due domini di errore e di aggiornamento.If you look at the availability set in the portal by going to Resource Groups > myResourceGroupAvailability > myAvailabilitySet, you should see how the VMs are distributed across the 2 fault and update domains.

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, ma è necessario conoscere le dimensioni delle macchine virtuali disponibili nell'hardware.You can add more VMs to the availability set later, but you need to know what 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

In questa esercitazione si è appreso 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.