Convertire i dischi non gestiti di una VM Windows in dischi gestiti

Se si hanno macchine virtuali (VM) Windows che usano dischi non gestiti, è possibile convertire le VM all'uso di dischi gestiti mediante il servizio Azure Managed Disks. Questo processo consente di convertire sia il disco del sistema operativo che eventuali dischi dati collegati.

Questo articolo illustra come convertire le VM con Azure PowerShell. Se è necessario eseguirne l'installazione o l'aggiornamento, vedere Installare e configurare Azure PowerShell.

Prima di iniziare

  • La conversione richiede un riavvio della macchina virtuale, quindi pianificare la migrazione delle macchine virtuali in una finestra di manutenzione preesistente.

  • La conversione non è reversibile.

  • Assicurarsi di testare la conversione. Eseguire la migrazione di una macchina virtuale di test prima di eseguire la migrazione nell'ambiente di produzione.

  • Durante la conversione la macchina virtuale verrà deallocata. La macchina virtuale riceve un nuovo indirizzo IP quando viene avviata dopo la conversione. Se necessario, è possibile assegnare un indirizzo IP statico alla VM.

  • I dischi rigidi virtuali originali e l'account di archiviazione usato dalla macchina virtuale prima della conversione non verranno eliminati e i costi correlati continueranno a essere addebitati. Per evitare addebiti per questi elementi, eliminare i BLOB VHD originali dopo aver verificato che la conversione sia stata completata.

Convertire VM a istanza singola

Questa sezione descrive come convertire i dischi delle macchine virtuali di Azure a istanza singola da non gestiti a gestiti. Se le VM sono in un set di disponibilità, vedere la sezione successiva.

  1. Deallocare la VM mediante il cmdlet Stop-AzureRmVM. L'esempio seguente dealloca la macchina virtuale denominata myVM nel gruppo di risorse myResourceGroup:

    $rgName = "myResourceGroup"
    $vmName = "myVM"
    Stop-AzureRmVM -ResourceGroupName $rgName -Name $vmName -Force
    
  2. Convertire i dischi della VM in dischi gestiti mediante il cmdlet ConvertTo-AzureRmVMManagedDisk. Il processo seguente converte la macchina virtuale precedente, incluso il disco del sistema operativo ed eventuali dischi dati:

    ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $rgName -VMName $vmName
    
  3. Avviare la VM dopo la conversione ai dischi gestiti mediante Start-AzureRmVM. L'esempio seguente riavvia la VM precedente:

    Start-AzureRmVM -ResourceGroupName $rgName -Name $vmName
    

Convertire VM in un set di disponibilità

Se le macchine virtuali che si desidera convertire in dischi gestiti si trovano in un set di disponibilità, è innanzitutto necessario convertire il set di disponibilità in un set di disponibilità gestito.

  1. Convertire il set di disponibilità mediante il cmdlet Update-AzureRmAvailabilitySet. L'esempio seguente aggiorna il set di disponibilità denominato myAvailabilitySet nel gruppo di risorse myResourceGroup:

    $rgName = 'myResourceGroup'
    $avSetName = 'myAvailabilitySet'
    
    $avSet = Get-AzureRmAvailabilitySet -ResourceGroupName $rgName -Name $avSetName
    Update-AzureRmAvailabilitySet -AvailabilitySet $avSet -Sku Aligned 
    

    Se l'area in cui si trova il set di disponibilità ha solo 2 domini di errore gestiti, ma il numero di domini di errore non gestiti è 3, questo comando visualizza un errore di questo tipo: "Il conteggio del dominio di errore specificato 3 deve essere compreso nell'intervallo 1-2". Per correggere l'errore, impostare il dominio di errore su 2 e impostare Sku su Aligned come segue:

    $avSet.PlatformFaultDomainCount = 2
    Update-AzureRmAvailabilitySet -AvailabilitySet $avSet -Sku Aligned
    
  2. Deallocare e convertire le VM nel set di disponibilità. Lo script seguente dealloca ogni VM mediante il cmdlet Stop-AzureRmVM, la converte mediante ConvertTo-AzureRmVMManagedDisk e la riavvia mediante Start-AzureRmVM:

    $avSet = Get-AzureRmAvailabilitySet -ResourceGroupName $rgName -Name $avSetName
    
    foreach($vmInfo in $avSet.VirtualMachinesReferences)
    {
      $vm = Get-AzureRmVM -ResourceGroupName $rgName | Where-Object {$_.Id -eq $vmInfo.id}
      Stop-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name -Force
      ConvertTo-AzureRmVMManagedDisk -ResourceGroupName $rgName -VMName $vm.Name
      Start-AzureRmVM -ResourceGroupName $rgName -Name $vm.Name
    }
    

Risoluzione dei problemi

Se si verifica un errore durante la conversione o se una VM si trova in uno stato di errore a causa di problemi in una conversione precedente, eseguire di nuovo il cmdlet ConvertTo-AzureRmVMManagedDisk. In genere è sufficiente riprovare per sbloccare la situazione.

Passaggi successivi

Convertire i dischi gestiti da Standard a Premium

Eseguire una copia di sola lettura di una VM usando snapshot.