Esercitazione: Creare e distribuire macchine virtuali a disponibilità elevata con Azure PowerShellTutorial: Create and deploy highly available virtual machines with Azure PowerShell

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ù nodi hardware isolati in un cluster.Availability sets ensure that the VMs you deploy on Azure are distributed across multiple isolated hardware nodes in a cluster. 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
  • Selezionare Azure AdvisorCheck Azure Advisor

Avviare Azure Cloud ShellLaunch Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.The Azure Cloud Shell is a free interactive shell that you can use to run the steps in this article. Include strumenti comuni di Azure preinstallati e configurati per l'uso con l'account.It has common Azure tools preinstalled and configured to use with your account. È sufficiente fare clic su Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just click the Copy to copy the code, paste it into the Cloud Shell, and then press enter to run it. Esistono alcuni modi per avviare Cloud Shell:There are a few ways to launch the Cloud Shell:

Fare clic su Prova nell'angolo superiore destro di un blocco di codice.Click 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/powershell
Fare clic sul pulsante Cloud Shell nel menu 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 Shell nel portaleCloud Shell in the portal

Se si sceglie di installare e usare PowerShell in locale, per questa esercitazione è necessario il modulo Azure PowerShell versione 5.7.0 o successiva.If you choose to install and use the PowerShell locally, this tutorial requires the Azure PowerShell module version 5.7.0 or later. Eseguire Get-Module -ListAvailable AzureRM per trovare la versione.Run Get-Module -ListAvailable AzureRM to find the version. Se è necessario eseguire l'aggiornamento, vedere Installare e configurare Azure PowerShell.If you need to upgrade, see Install Azure PowerShell module. Se si esegue PowerShell in locale, è anche necessario eseguire Connect-AzureRmAccount per creare una connessione con Azure.If you are running PowerShell locally, you also need to run Connect-AzureRmAccount to create a connection with Azure.

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 quattro 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 four 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 in Azure.Use Availability Sets when you want to deploy reliable VM-based solutions in Azure.

Creare un set di disponibilitàCreate an availability set

È possibile creare un set di disponibilità con il comando New-AzureRmAvailabilitySet.You can create an availability set using New-AzureRmAvailabilitySet. In questo esempio sia il numero di domini di aggiornamento che quello di domini di errore viene impostato su 2 per il set di disponibilità denominato myAvailabilitySet nel gruppo di risorse myResourceGroupAvailability.In this example, 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.

New-AzureRmResourceGroup -Name myResourceGroupAvailability -Location EastUS

Creare un set di disponibilità gestito usando New-AzureRmAvailabilitySet con il parametro -sku aligned.Create a managed availability set using New-AzureRmAvailabilitySet with the -sku aligned parameter.

New-AzureRmAvailabilitySet `
   -Location "EastUS" `
   -Name "myAvailabilitySet" `
   -ResourceGroupName "myResourceGroupAvailability" `
   -Sku aligned `
   -PlatformFaultDomainCount 2 `
   -PlatformUpdateDomainCount 2

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.

L'hardware in un percorso è suddiviso in più domini di aggiornamento e domini di errore.The hardware in a location is divided in to multiple update domains and fault domains. I domini di aggiornamento sono gruppi di macchine virtuali con relativo hardware fisico sottostante che è possibile riavviare nello stesso momento.An update domain is a group of VMs and underlying physical hardware that can be rebooted at the same time. Le macchine virtuali nello stesso dominio di errore condividono risorse di archiviazione comuni, nonché un alimentatore e un commutatore di rete comune.VMs in the same fault domain share common storage as well as a common power source and network switch.

Quando si crea una VM con New-AzureRmVM, si usa il parametro -AvailabilitySetName per specificare il nome del set di disponibilità.When you create a VM with New-AzureRmVM, you use the -AvailabilitySetName parameter to specify the name of the availability set.

Impostare prima di tutto nome utente e password dell'amministratore della macchina virtuale con il comando Get-Credential:First, set an administrator username and password for the VM with Get-Credential:

$cred = Get-Credential

Creare quindi due macchine virtuali con il comando New-AzureRmVM nel set di disponibilità.Now create two VMs with New-AzureRmVM in the availability set.

for ($i=1; $i -le 2; $i++)
{
    New-AzureRmVm `
        -ResourceGroupName "myResourceGroupAvailability" `
        -Name "myVM$i" `
        -Location "East US" `
        -VirtualNetworkName "myVnet" `
        -SubnetName "mySubnet" `
        -SecurityGroupName "myNetworkSecurityGroup" `
        -PublicIpAddressName "myPublicIpAddress$i" `
        -AvailabilitySetName "myAvailabilitySet" `
        -Credential $cred
}

Il parametro -AsJob crea la VM come attività in background, in modo che i prompt di PowerShell vengano restituiti all'utente.The -AsJob parameter creates the VM as a background task, so the PowerShell prompts return to you. È possibile visualizzare i dettagli dei processi in background con il cmdlet Job.You can view details of background jobs with the Job cmdlet. La creazione e la configurazione di entrambe le macchine virtuali richiedono alcuni minuti.It takes a few minutes to create and configure both VMs. Al termine, sono disponibili due macchine virtuali distribuite nell'hardware sottostante.When finished, you have two virtual machines distributed across the underlying hardware.

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 two 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 sapere quali dimensioni di macchina virtuale sono 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 Get-AzureRMVMSize per elencare tutte le dimensioni disponibili nel cluster hardware per il set di disponibilità.Use Get-AzureRMVMSize to list all the available sizes on the hardware cluster for the availability set.

Get-AzureRmVMSize `
   -ResourceGroupName "myResourceGroupAvailability" `
   -AvailabilitySetName "myAvailabilitySet"

Selezionare Azure AdvisorCheck Azure Advisor

È possibile anche usare Azure Advisor per ottenere altre informazioni su come migliorare la disponibilità delle macchine virtuali.You can also use Azure Advisor to get more information on ways to improve the availability of your VMs. Azure Advisor illustra come seguire le procedure consigliate per ottimizzare le distribuzioni di Azure.Azure Advisor helps you follow best practices to optimize your Azure deployments. Analizza i dati di telemetria dell'uso e della configurazione delle risorse e consiglia soluzioni che consentono di migliorare l'efficienza dei costi, le prestazioni, la disponibilità elevata e la sicurezza delle risorse di Azure.It analyzes your resource configuration and usage telemetry and then recommends solutions that can help you improve the cost effectiveness, performance, high availability, and security of your Azure resources.

Accedere al portale di Azure, selezionare Tutti i servizi e digitare Advisor.Sign in to the Azure portal, select All services, and type Advisor. Nel dashboard di Advisor vengono visualizzate raccomandazioni personalizzate per la sottoscrizione selezionata.The Advisor dashboard displays personalized recommendations for the selected subscription. Per altre informazioni vedere Presentazione di Azure Advisor.For more information, see Get started with Azure Advisor.

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
  • Selezionare Azure AdvisorCheck Azure Advisor

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.