Come espandere l'unità del sistema operativo di una macchina virtuale in un gruppo di risorse di AzureHow to expand the OS drive of a Virtual Machine in an Azure Resource Group

PanoramicaOverview

Quando si crea una nuova macchina virtuale (VM) in un gruppo di risorse distribuendo un'immagine da Azure Marketplace, l'unità del sistema operativo predefinita è spesso di 127 GB. Per impostazione predefinita. alcune immagini hanno dimensioni minori per il disco del sistema operativo.When you create a new virtual machine (VM) in a Resource Group by deploying an image from Azure Marketplace, the default OS drive is often 127 GB (some images have smaller OS disk sizes by default). Anche se è possibile aggiungere dischi dati alla VM (il numero dipende dalla SKU scelta) ed è consigliabile installare applicazioni e carichi di lavoro con uso intensivo della CPU su tali dischi aggiuntivi, spesso i clienti devono espandere l'unità del sistema operativo per supportare determinati scenari, come i seguenti:Even though it’s possible to add data disks to the VM (how many depending upon the SKU you’ve chosen) and moreover it’s recommended to install applications and CPU intensive workloads on these addendum disks, oftentimes customers need to expand the OS drive to support certain scenarios such as following:

  1. Supporto di applicazioni legacy che installano componenti nell'unità del sistema operativo.Support legacy applications that install components on OS drive.
  2. Migrazione di un computer fisico o di una macchina virtuale locali a un'unità del sistema operativo più grande.Migrate a physical PC or virtual machine from on-premises with a larger OS drive.

Importante

Azure offre due diversi modelli di distribuzione per creare e usare le risorse: Gestione risorse e la distribuzione classica.Azure has two different deployment models for creating and working with resources: Resource Manager and Classic. Questo articolo illustra l'uso del modello di Gestione risorse.This article covers using the Resource Manager model. Microsoft consiglia di usare il modello di Gestione risorse per le distribuzioni più recenti.Microsoft recommends that most new deployments use the Resource Manager model.

Ridimensionare l'unità del sistema operativoResize the OS drive

In questo articolo verrà eseguito il ridimensionamento dell'unità del sistema operativo usando i moduli di Gestione risorse di Azure Powershell.In this article we’ll accomplish the task of resizing the OS drive using resource manager modules of Azure Powershell. Aprire la finestra di Powershell ISE o Powershell in modalità amministrativa e seguire questa procedura:Open your Powershell ISE or Powershell window in administrative mode and follow the steps below:

  1. Accedere all'account Microsoft Azure in modalità Gestione risorse e selezionare la sottoscrizione come segue:Sign-in to your Microsoft Azure account in resource management mode and select your subscription as follows:

    Login-AzureRmAccount
    Select-AzureRmSubscription –SubscriptionName 'my-subscription-name'
    
  2. Impostare il nome del gruppo di risorse e il nome della VM come segue:Set your resource group name and VM name as follows:

    $rgName = 'my-resource-group-name'
    $vmName = 'my-vm-name'
    
  3. Ottenere un riferimento alla VM come segue:Obtain a reference to your VM as follows:

    $vm = Get-AzureRmVM -ResourceGroupName $rgName -Name $vmName
    
  4. Arrestare la VM prima di ridimensionare il disco come segue:Stop the VM before resizing the disk as follows:

    Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName
    
  5. A questo punto,And here comes the moment we’ve been waiting for! impostare le dimensioni del disco del sistema operativo sul valore desiderato e aggiornare la VM come segue:Set the size of the OS disk to the desired value and update the VM as follows:

    $vm.StorageProfile.OSDisk.DiskSizeGB = 1023
    Update-AzureRmVM -ResourceGroupName $rgName -VM $vm
    

    Avviso

    Le nuove dimensioni devono essere maggiori delle dimensioni del disco esistente.The new size should be greater than the existing disk size. Il valore massimo consentito è 2048 GB.The maximum allowed is 2048 GB. È possibile espandere il BLOB del disco rigido virtuale oltre tale dimensione, ma il sistema operativo potrà usare solo i primi 2048 GB di spazio.(It is possible to expand the VHD blob beyond that size, but the OS will only be able to work with the first 2048 GB of space.)

  6. L'aggiornamento della VM potrebbe richiedere alcuni secondi.Updating the VM may take a few seconds. Al termine dell'esecuzione del comando, riavviare la VM come segue:Once the command finishes executing, restart the VM as follows:

    Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName
    

L'operazione è terminata.And that’s it! Con il protocollo RDP applicato alla VM, aprire Gestione computer (o Gestione disco) ed espandere l'unità usando lo spazio appena allocato.Now RDP into the VM, open Computer Management (or Disk Management) and expand the drive using the newly allocated space.

RiepilogoSummary

In questo articolo sono stati usati i moduli Azure Resource Manager di Powershell per espandere l'unità del sistema operativo di una macchina virtuale IaaS.In this article, we used Azure Resource Manager modules of Powershell to expand the OS drive of an IaaS virtual machine. Di seguito è riportato lo script completo per riferimento:Reproduced below is the complete script for your reference:

Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName 'my-subscription-name'
$rgName = 'my-resource-group-name'
$vmName = 'my-vm-name'
$vm = Get-AzureRmVM -ResourceGroupName $rgName -Name $vmName
Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName
$vm.StorageProfile.OSDisk.DiskSizeGB = 1023
Update-AzureRmVM -ResourceGroupName $rgName -VM $vm
Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName

Passaggi successiviNext Steps

Sebbene questo articolo si concentri principalmente sull'espansione del disco del sistema operativo della VM, lo script sviluppato potrebbe essere usato anche per l'espansione dei dischi dati collegati alla VM modificando una singola riga di codice.Though in this article, we focused primarily on expanding the OS disk of the VM, the developed script may also be used for expanding the data disks attached to the VM by changing a single line of code. Per espandere ad esempio il primo disco dati collegato alla VM, sostituire l'oggetto OSDisk di StorageProfile con la matrice DataDisks e usare un indice numerico per ottenere un riferimento al primo disco dati collegato, come illustrato di seguito:For example, to expand the first data disk attached to the VM, replace the OSDisk object of StorageProfile with DataDisks array and use a numeric index to obtain a reference to first attached data disk, as shown below:

$vm.StorageProfile.DataDisks[0].DiskSizeGB = 1023

Analogamente è possibile fare riferimento agli altri dischi dati collegati alla VM usando un indice come quello illustrato in precedenza oppure la proprietà Name del disco, come illustrato di seguito:Similarly you may reference other data disks attached to the VM, either by using an index as shown above or the Name property of the disk as illustrated below:

($vm.StorageProfile.DataDisks | Where {$_.Name -eq 'my-second-data-disk'})[0].DiskSizeGB = 1023

Per informazioni su come collegare i dischi a una VM di Azure Resource Manager, consultare questo articolo.If you want to find out how to attach disks to an Azure Resource Manager VM, check this article.