Ridimensionare una VM WindowsResize a Windows VM

Questo articolo illustra come ridimensionare una VM Windows creata nel modello di distribuzione Resource Manager usando Azure PowerShell.This article shows you how to resize a Windows VM, created in the Resource Manager deployment model using Azure Powershell.

Dopo aver creato una macchina virtuale (VM), è possibile scalarla in verticale o in orizzontale modificandone le dimensioni.After you create a virtual machine (VM), you can scale the VM up or down by changing the VM size. In alcuni casi, è necessario prima deallocare la macchina virtuale.In some cases, you must deallocate the VM first. Questa situazione può verificarsi se le nuove dimensioni non sono disponibili nel cluster hardware che attualmente ospita la VM.This can happen if the new size is not available on the hardware cluster that is currently hosting the VM.

Ridimensionare una VM Windows non inclusa in un set di disponibilitàResize a Windows VM not in an availability set

  1. Elencare le dimensioni di VM disponibili nel cluster hardware in cui la VM è ospitata.List the VM sizes that are available on the hardware cluster where the VM is hosted.

    Get-AzureRmVMSize -ResourceGroupName <resourceGroupName> -VMName <vmName> 
    
  2. Se la dimensione desiderata è inclusa nell'elenco, per ridimensionare la VM eseguire i comandi seguenti.If the desired size is listed, run the following commands to resize the VM. Se la dimensione desiderata non è inclusa nell'elenco, andare al passaggio 3.If the desired size is not listed, go on to step 3.

    $vm = Get-AzureRmVM -ResourceGroupName <resourceGroupName> -VMName <vmName>
    $vm.HardwareProfile.VmSize = "<newVMsize>"
    Update-AzureRmVM -VM $vm -ResourceGroupName <resourceGroupName>
    
  3. Se la dimensione desiderata non è nell'elenco, eseguire i comandi seguenti per deallocare la VM, ridimensionarla e quindi riavviare la VM.If the desired size is not listed, run the following commands to deallocate the VM, resize it, and restart the VM.

    $rgname = "<resourceGroupName>"
    $vmname = "<vmName>"
    Stop-AzureRmVM -ResourceGroupName $rgname -VMName $vmname -Force
    $vm = Get-AzureRmVM -ResourceGroupName $rgname -VMName $vmname
    $vm.HardwareProfile.VmSize = "<newVMSize>"
    Update-AzureRmVM -VM $vm -ResourceGroupName $rgname
    Start-AzureRmVM -ResourceGroupName $rgname -Name $vmname
    

Avviso

La deallocazione della VM rilascia qualsiasi indirizzo IP dinamico assegnato alla VM.Deallocating the VM releases any dynamic IP addresses assigned to the VM. I dischi del sistema operativo e dei dati non sono coinvolti.The OS and data disks are not affected.

Ridimensionare una VM Windows inclusa in un set di disponibilitàResize a Windows VM in an availability set

Se la nuova dimensione di una VM inclusa in un set di disponibilità non è disponibile nel cluster hardware che attualmente ospita la VM in questione, per ridimensionare tale VM sarà necessario deallocare tutte le VM incluse nel set di disponibilità.If the new size for a VM in an availability set is not available on the hardware cluster currently hosting the VM, then all VMs in the availability set will need to be deallocated to resize the VM. Dopo il ridimensionamento di una VM, può inoltre essere necessario aggiornare le dimensioni delle altre VM incluse nel gruppo di disponibilità.You also might need to update the size of other VMs in the availability set after one VM has been resized. Per ridimensionare una VM inclusa in un gruppo di disponibilità, seguire questa procedura.To resize a VM in an availability set, perform the following steps.

  1. Elencare le dimensioni di VM disponibili nel cluster hardware in cui la VM è ospitata.List the VM sizes that are available on the hardware cluster where the VM is hosted.

    Get-AzureRmVMSize -ResourceGroupName <resourceGroupName> -VMName <vmName>
    
  2. Se la dimensione desiderata è inclusa nell'elenco, per ridimensionare la VM eseguire i comandi seguenti.If the desired size is listed, run the following commands to resize the VM. Se non è inclusa nell'elenco, andare al passaggio 3.If it is not listed, go to step 3.

    $vm = Get-AzureRmVM -ResourceGroupName <resourceGroupName> -VMName <vmName>
    $vm.HardwareProfile.VmSize = "<newVmSize>"
    Update-AzureRmVM -VM $vm -ResourceGroupName <resourceGroupName>
    
  3. Se la dimensione desiderata non è elencata, seguire questa procedura per deallocare tutte le VM incluse nel set di disponibilità, ridimensionare le VM e quindi riavviarle.If the desired size is not listed, continue with the following steps to deallocate all VMs in the availability set, resize VMs, and restart them.
  4. Arrestare tutte le VM nel set di disponibilità.Stop all VMs in the availability set.

    $rg = "<resourceGroupName>"
    $as = Get-AzureRmAvailabilitySet -ResourceGroupName $rg
    $vmIds = $as.VirtualMachinesReferences
    foreach ($vmId in $vmIDs){
      $string = $vmID.Id.Split("/")
      $vmName = $string[8]
      Stop-AzureRmVM -ResourceGroupName $rg -Name $vmName -Force
    } 
    
  5. Ridimensionare e riavviare tutte le VM nel set di disponibilità.Resize and restart the VMs in the availability set.

    $rg = "<resourceGroupName>"
    $newSize = "<newVmSize>"
    $as = Get-AzureRmAvailabilitySet -ResourceGroupName $rg
    $vmIds = $as.VirtualMachinesReferences
    foreach ($vmId in $vmIDs){
      $string = $vmID.Id.Split("/")
      $vmName = $string[8]
      $vm = Get-AzureRmVM -ResourceGroupName $rg -Name $vmName
      $vm.HardwareProfile.VmSize = $newSize
      Update-AzureRmVM -ResourceGroupName $rg -VM $vm
      Start-AzureRmVM -ResourceGroupName $rg -Name $vmName
    }
    

Passaggi successiviNext steps