Eseguire la migrazione di risorse IaaS dal modello classico al modello di Azure Resource Manager tramite PowerShell
Si applica a: ✔️ Macchine virtuali ✔️ Linux Windows
Importante
Oggigiorno, circa il 90% delle macchine virtuali IaaS usa Azure Resource Manager. A partire dal 28 febbraio 2020, le macchine virtuali classiche sono state deprecate e verranno ritirate completamente il 6 settembre 2023. Altre informazioni su questa deprecazione e sui relativi effetti sull'utente.
Questi passaggi mostrano come usare i comandi di Azure PowerShell per eseguire la migrazione di risorse IaaS (infrastruttura distribuita come servizio) dal modello di distribuzione classica al modello di distribuzione Azure Resource Manager.
Se si vuole, è anche possibile eseguire la migrazione delle risorse usando l'interfaccia della riga di comando di Azure.
- Per informazioni di base su scenari di migrazione supportati, vedere Migrazione di risorse IaaS supportata dalla piattaforma dal modello di distribuzione classica ad Azure Resource Manager.
- Per una guida approfondita e la procedura dettagliata di migrazione, vedere Approfondimento tecnico sulla migrazione supportata dalla piattaforma dal modello di distribuzione classica ad Azure Resource Manager.
- Esaminare gli errori di migrazione più comuni.
Ecco un diagramma di flusso per identificare l'ordine in cui è necessario eseguire i passaggi durante un processo di migrazione.
Passaggio 1: Pianificare la migrazione
Di seguito sono riportate alcune procedure consigliate quando si valuta se eseguire la migrazione delle risorse IaaS dal modello classico al Resource Manager:
- Leggere con attenzione le funzionalità e configurazioni supportate e non supportate. Se sono presenti macchine virtuali che usano configurazioni o funzionalità non supportate, attendere l'annuncio della configurazione o del supporto delle funzionalità. In alternativa, in base alle esigenze è possibile rimuovere tale funzionalità o uscire da tale configurazione per abilitare la migrazione.
- Se si hanno script automatizzati che consentono di distribuire subito l'infrastruttura e le applicazioni, provare a creare una configurazione di test simile usando questi script per la migrazione. In alternativa, è anche possibile configurare ambienti di esempio tramite il portale di Azure.
Importante
I gateway applicazione non sono attualmente supportati per la migrazione dal modello classico al Resource Manager. Per eseguire la migrazione di una rete virtuale con un gateway applicazione, rimuovere il gateway prima di eseguire un'operazione Prepara per spostare la rete. Dopo aver completato la migrazione, riconnettere il gateway in Azure Resource Manager.
I gateway Azure ExpressRoute che si connettono ai circuiti ExpressRoute in un'altra sottoscrizione non possono essere migrati automaticamente. In questi casi, rimuovere il gateway ExpressRoute, eseguire la migrazione della rete virtuale e ricreare il gateway. Per altre informazioni, vedere Eseguire la migrazione di circuiti ExpressRoute e reti virtuali associate dal modello di distribuzione classica al modello di distribuzione Resource Manager.
Passaggio 2: Installare la versione più recente di PowerShell
Per l'installazione di Azure PowerShell sono previste due opzioni principali: PowerShell Gallery e Installazione guidata piattaforma Web (WebPI). WebPI riceve aggiornamenti mensili. PowerShell Gallery riceve aggiornamenti su base continua. Questo articolo si basa su Azure PowerShell versione 2.1.0.
Per le istruzioni di installazione, vedere Come installare e configurare Azure PowerShell.
Passaggio 3: Assicurarsi di essere un amministratore per la sottoscrizione
Per eseguire questa migrazione, è necessario essere aggiunti come coamministratore per la sottoscrizione nel portale di Azure.
- Accedere al portale di Azure.
- Scegliere Sottoscrizione dal menu Hub. Se questa voce non viene visualizzata, selezionare Tutti i servizi.
- Trovare la voce di sottoscrizione appropriata e quindi esaminare il campo RUOLO PERSONALE . Per un coamministratore, il valore deve essere Amministratore account.
Se non è possibile aggiungere un coamministratore, contattare un amministratore del servizio o un coamministratore per l'aggiunta della sottoscrizione.
Passaggio 4: Impostare la sottoscrizione e iscriversi per la migrazione
Avviare prima un prompt di PowerShell. Per la migrazione, configurare l'ambiente sia per la versione classica che per Resource Manager.
Accedere con l'account per il modello di Resource Manager.
Connect-AzAccount
È possibile ottenere le sottoscrizioni disponibili usando il comando seguente:
Get-AzSubscription | Sort Name | Select Name
Impostare la sottoscrizione di Azure per la sessione corrente. In questo esempio viene impostato il nome My Azure Subscription per la sottoscrizione predefinita. Sostituire il nome della sottoscrizione di esempio con il nome della propria sottoscrizione.
Select-AzSubscription –SubscriptionName "My Azure Subscription"
Nota
La registrazione è un passaggio una tantum, ma è necessario eseguire questa operazione una sola volta prima di tentare la migrazione. Senza la registrazione, verrà visualizzato il seguente messaggio di errore:
BadRequest: Subscription is not registered for migration (Richiesta non valida: la sottoscrizione non è registrata per la migrazione)
Registrarsi con il provider di risorse di migrazione usando il comando seguente:
Register-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Attendere cinque minuti per il completamento della registrazione. Controllare lo stato dell'approvazione usando il comando seguente:
Get-AzResourceProvider -ProviderNamespace Microsoft.ClassicInfrastructureMigrate
Assicurarsi che RegistrationState sia Registered
prima di procedere.
Prima di passare al modello di distribuzione classica, assicurarsi di disporre di sufficienti vCPU di macchine virtuali di Azure Resource Manager nell'area di Azure della distribuzione o della rete virtuale corrente. È possibile usare il comando PowerShell seguente per controllare il numero corrente di CPU virtuali in Azure Resource Manager. Per altre informazioni sulle quote di CPU virtuali, vedere Limiti e Azure Resource Manager.
In questo esempio viene verificata la disponibilità nell'area Stati Uniti occidentali. Sostituire il nome dell'area di esempio con il nome della propria area.
Get-AzVMUsage -Location "West US"
Accedere ora all'account per il modello di distribuzione classica.
Add-AzureAccount
È possibile ottenere le sottoscrizioni disponibili usando il comando seguente:
Get-AzureSubscription | Sort SubscriptionName | Select SubscriptionName
Impostare la sottoscrizione di Azure per la sessione corrente. In questo esempio viene impostato My Azure Subscription come sottoscrizione predefinita. Sostituire il nome della sottoscrizione di esempio con il nome della propria sottoscrizione.
Select-AzureSubscription –SubscriptionName "My Azure Subscription"
Passaggio 5: Eseguire i comandi per la migrazione delle risorse IaaS
- Eseguire la migrazione di macchine virtuali in un servizio cloud (non in una rete virtuale)
- Eseguire la migrazione di macchine virtuali in una rete virtuale
- Migrare un account di archiviazione
Nota
Tutte le operazioni descritte di seguito sono idempotenti. Se vengono rilevati errori diversi da una funzionalità non supportata o un errore di configurazione, è consigliabile provare a ripetere l'operazione di preparazione, interruzione o commit. La piattaforma tenterà di ripetere l'azione.
Passaggio 5a: Opzione 1 - Eseguire la migrazione di macchine virtuali in un servizio cloud (non in una rete virtuale)
Ottenere l'elenco dei servizi cloud usando il comando seguente. Selezionare quindi il servizio cloud di cui si vuole eseguire la migrazione. Se le VM nel servizio cloud si trovano in una rete virtuale o hanno ruoli Web o di lavoro, il comando restituisce un messaggio di errore.
Get-AzureService | ft Servicename
Ottenere il nome della distribuzione per il servizio cloud. In questo esempio il nome del servizio è My Service. Sostituire il nome del servizio di esempio con il nome del proprio servizio.
$serviceName = "My Service"
$deployment = Get-AzureDeployment -ServiceName $serviceName
$deploymentName = $deployment.DeploymentName
Preparare le macchine virtuali nel servizio cloud per la migrazione. È possibile scegliere tra due opzioni.
Opzione 1: eseguire la migrazione delle macchine virtuali a una rete virtuale creata dalla piattaforma.
Prima di tutto, verificare di poter eseguire la migrazione del servizio cloud usando i comandi seguenti:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork $validate.ValidationMessages
Il comando seguente visualizza gli eventuali avvisi ed errori che bloccano la migrazione. Se i messaggi di convalida non contengono un messaggio di errore di tipo, è possibile passare al passaggio Prepara.
Move-AzureService -Prepare -ServiceName $serviceName ` -DeploymentName $deploymentName -CreateNewVirtualNetwork
Opzione 2: Eseguire la migrazione a una rete virtuale esistente nel modello di distribuzione Resource Manager.
Questo esempio imposta il nome del gruppo di risorse su myResourceGroup, il nome della rete virtuale su myVirtualNetwork e il nome della subnet su mySubNet. Sostituire i nomi dell'esempio con i nomi delle proprie risorse.
$existingVnetRGName = "myResourceGroup" $vnetName = "myVirtualNetwork" $subnetName = "mySubNet"
Prima di tutto, verificare di poter eseguire la migrazione della rete virtuale usando il comando seguente:
$validate = Move-AzureService -Validate -ServiceName $serviceName ` -DeploymentName $deploymentName -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName -VirtualNetworkName $vnetName -SubnetName $subnetName $validate.ValidationMessages
Il comando seguente visualizza gli eventuali avvisi ed errori che bloccano la migrazione. Se i messaggi di convalida non contengono errori, è possibile procedere con il passaggio Prepara seguente:
Move-AzureService -Prepare -ServiceName $serviceName -DeploymentName $deploymentName ` -UseExistingVirtualNetwork -VirtualNetworkResourceGroupName $existingVnetRGName ` -VirtualNetworkName $vnetName -SubnetName $subnetName
Dopo aver completato la procedura di preparazione tramite una delle opzioni precedenti, eseguire una query dello stato di migrazione delle VM, Assicurarsi che siano nello Prepared
stato.
In questo esempio viene impostato il nome myVM per la VM. Sostituire il nome di esempio con il nome della propria VM.
$vmName = "myVM"
$vm = Get-AzureVM -ServiceName $serviceName -Name $vmName
$vm.VM.MigrationState
Controllare la configurazione per le risorse preparate tramite PowerShell o il portale di Azure. Se non si è pronti per la migrazione e si vuole tornare allo stato precedente, usare il comando seguente:
Move-AzureService -Abort -ServiceName $serviceName -DeploymentName $deploymentName
Se la configurazione preparata appare corretta, è possibile procedere ed eseguire il commit delle risorse usando il comando seguente:
Move-AzureService -Commit -ServiceName $serviceName -DeploymentName $deploymentName
Passaggio 5a: Opzione 2 - Eseguire la migrazione di macchine virtuali in una rete virtuale
Per eseguire la migrazione delle macchine virtuali in una rete virtuale, migrare la rete virtuale. Le macchine virtuali migreranno automaticamente con la rete virtuale. Selezionare la rete virtuale per cui si vuole eseguire la migrazione.
Nota
Eseguire la migrazione di una singola macchina virtuale creata usando il modello di distribuzione classica creando una nuova macchina virtuale Resource Manager con Managed Disks usando i file VHD (sistema operativo e dati) della macchina virtuale.
Nota
Il nome della rete virtuale potrebbe essere diverso da quello mostrato nel nuovo portale. Il nuovo portale di Azure visualizza il nome come [vnet-name]
, ma il nome effettivo della rete virtuale è di tipo Group [resource-group-name] [vnet-name]
. Prima di avviare la migrazione, cercare il nome effettivo della rete virtuale usando il comando Get-AzureVnetSite | Select -Property Name
o visualizzarlo nel portale di Azure precedente.
In questo esempio il nome della rete virtuale viene impostato su Group [resource-group-name][vnet-name]. Sostituire il nome della rete virtuale di esempio con uno restituito dall'esecuzione del comando nella sezione Nota precedente.
$vnetName = "Group [resource-group-name] [vnet-name]"
Nota
Se la rete virtuale contiene ruoli Web o di lavoro, o VM con configurazioni non supportate, viene visualizzato un messaggio di errore di convalida.
Prima di tutto, verificare di poter eseguire la migrazione della rete virtuale usando il comando seguente:
Move-AzureVirtualNetwork -Validate -VirtualNetworkName $vnetName
Il comando seguente visualizza gli eventuali avvisi ed errori che bloccano la migrazione. Se la convalida ha esito positivo, è possibile procedere con il passaggio Prepara seguente:
Move-AzureVirtualNetwork -Prepare -VirtualNetworkName $vnetName
Controllare la configurazione per le macchine virtuali preparate usando Azure PowerShell o il portale di Azure. Se non si è pronti per la migrazione e si vuole tornare allo stato precedente, usare il comando seguente:
Move-AzureVirtualNetwork -Abort -VirtualNetworkName $vnetName
Se la configurazione preparata appare corretta, è possibile procedere ed eseguire il commit delle risorse usando il comando seguente:
Move-AzureVirtualNetwork -Commit -VirtualNetworkName $vnetName
Passaggio 5b: Eseguire la migrazione di un account di archiviazione
Dopo aver completato la migrazione delle macchine virtuali, eseguire i controlli dei prerequisiti seguenti prima di eseguire la migrazione degli account di archiviazione.
Nota
Se l'account di archiviazione non ha dischi o dati della macchina virtuale associati, è possibile passare direttamente alla sezione "Convalidare gli account di archiviazione e avviare la migrazione". Si noti anche che l'eliminazione dei dischi classici, delle immagini di macchine virtuali o delle immagini del sistema operativo non comporta la rimozione dei file VHD di origine nell'account di archiviazione. Tuttavia, interrompe il lease su tali file VHD in modo che possano essere riutilizzati per creare dischi o immagini ARM dopo la migrazione.
I prerequisiti controllano se è stata eseguita la migrazione di macchine virtuali o l'account di archiviazione dispone di risorse disco:
Eseguire la migrazione di macchine virtuali i cui dischi vengono archiviati nell'account di archiviazione.
Il comando seguente restituisce le proprietà RoleName e DiskName di tutti i dischi della macchina virtuale nell'account di archiviazione. RoleName è il nome della macchina virtuale a cui il disco è collegato. Se questo comando restituisce dischi, assicurarsi che le macchine virtuali a cui sono collegati questi dischi vengano migrate prima di eseguire la migrazione dell'account di archiviazione.
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Select-Object -ExpandProperty AttachedTo -Property ` DiskName | Format-List -Property RoleName, DiskName
Eliminare i dischi delle macchine virtuali scollegati archiviati nell'account di archiviazione.
Trovare dischi di macchine virtuali scollegati nell'account di archiviazione usando il comando seguente:
$storageAccountName = 'yourStorageAccountName' Get-AzureDisk | where-Object {$_.MediaLink.Host.Contains($storageAccountName)} | Where-Object -Property AttachedTo -EQ $null | Format-List -Property DiskName
Se il comando precedente restituisce dischi, eliminare questi dischi usando il comando seguente:
Remove-AzureDisk -DiskName 'yourDiskName'
Eliminare le immagini vm archiviate nell'account di archiviazione.
Il comando seguente restituisce tutte le immagini di macchina virtuale con dischi del sistema operativo archiviati nell'account di archiviazione.
Get-AzureVmImage | Where-Object { $_.OSDiskConfiguration.MediaLink -ne $null -and $_.OSDiskConfiguration.MediaLink.Host.Contains($storageAccountName)` } | Select-Object -Property ImageName, ImageLabel
Il comando seguente restituisce tutte le immagini di macchina virtuale con dischi dati archiviati nell'account di archiviazione.
Get-AzureVmImage | Where-Object {$_.DataDiskConfigurations -ne $null ` -and ($_.DataDiskConfigurations | Where-Object {$_.MediaLink -ne $null -and $_.MediaLink.Host.Contains($storageAccountName)}).Count -gt 0 ` } | Select-Object -Property ImageName, ImageLabel
Eliminare tutte le immagini di macchina virtuale restituite dai comandi precedenti usando questo comando:
Remove-AzureVMImage -ImageName 'yourImageName'
Convalidare gli account di archiviazione e avviare la migrazione.
Convalidare ogni account di archiviazione per la migrazione con il comando che segue. In questo esempio il nome dell'account di archiviazione è myStorageAccount. Sostituire il nome di esempio con il nome del proprio account di archiviazione.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Validate -StorageAccountName $storageAccountName
Il passaggio successivo consiste nel preparare l'account di archiviazione per la migrazione.
$storageAccountName = "myStorageAccount" Move-AzureStorageAccount -Prepare -StorageAccountName $storageAccountName
Controllare la configurazione per l'account di archiviazione preparato tramite Azure PowerShell o il portale di Azure. Se non si è pronti per la migrazione e si vuole tornare allo stato precedente, usare il comando seguente:
Move-AzureStorageAccount -Abort -StorageAccountName $storageAccountName
Se la configurazione preparata appare corretta, è possibile procedere ed eseguire il commit delle risorse usando il comando seguente:
Move-AzureStorageAccount -Commit -StorageAccountName $storageAccountName
Passaggi successivi
- Panoramica sulla migrazione di risorse IaaS supportata dalla piattaforma dal modello di distribuzione classica al modello Azure Resource Manager
- Approfondimento tecnico sulla migrazione supportata dalla piattaforma dal modello di distribuzione classica ad Azure Resource Manager
- Planning for migration of IaaS resources from classic to Azure Resource Manager (Pianificazione della migrazione delle risorse IaaS dal modello di distribuzione classica al modello di distribuzione Azure Resource Manager)
- Usare l'interfaccia della riga di comando per eseguire la migrazione di risorse IaaS dal modello di distribuzione classica ad Azure Resource Manager
- Community tools for assisting with migration of IaaS resources from classic to Azure Resource Manager (Strumenti della community per assistenza alla migrazione delle risorse IaaS dal modello di distribuzione classica ad Azure Resource Manager)
- Rivedere gli errori di migrazione più comuni
- Esaminare le domande frequenti sulla migrazione delle risorse IaaS dal modello di distribuzione classica ad Azure Resource Manager