Condividi tramite


Errori che si verificano comunemente durante la migrazione dalla distribuzione classica alla distribuzione Azure Resource Manager

Si applica a: ✔️ macchine virtuali Linux ✔️ macchine virtuali 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.

Questo articolo descrive gli errori più comuni e le relative soluzioni per agevolare la migrazione delle risorse IaaS dal modello di distribuzione classica di Azure allo stack di Azure Resource Manager.

Elenco degli errori

Stringa di errore Strategia di riduzione del rischio
Errore interno del server In alcuni casi, si tratta di un errore temporaneo che si risolve con un nuovo tentativo. Se l'errore persiste, contattare il supporto tecnico Azure perché esamini i log della piattaforma.

NOTA: dopo aver rilevato l'evento imprevisto dal team di supporto, non tentare alcuna mitigazione automatica perché ciò potrebbe avere conseguenze impreviste sull'ambiente.
La migrazione non è supportata per la distribuzione {deployment-name} in HostedService {hosted-service-name} perché si tratta di una distribuzione PaaS (Web/Worker). Ciò si verifica quando una distribuzione contiene un ruolo Web o di lavoro. Poiché la migrazione è supportata solo per Macchine virtuali, rimuovere il ruolo Web/di lavoro dalla distribuzione e riprovare a eseguire la migrazione.
Distribuzione del modello {nome modello} non riuscita. CorrelationId={guid} Nel back-end del servizio di migrazione, vengono usati i modelli di Azure Resource Manager per creare risorse nello stack di Azure Resource Manager. Dal momento che i modelli sono idempotenti, in genere è possibile ritentare in modo sicuro l'operazione di migrazione per superare l'errore. Se l'errore persiste, contattare supporto tecnico di Azure e assegnare loro CorrelationId.

NOTA: dopo aver rilevato l'evento imprevisto dal team di supporto, non tentare alcuna mitigazione automatica perché ciò potrebbe avere conseguenze impreviste sull'ambiente.
La rete virtuale {virtual-network-name} non esiste. Questa situazione può verificarsi se la rete virtuale è stata creata nel nuovo portale di Azure. Il nome Rete virtuale effettivo segue il modello "Group * <VNET name>"
La macchina virtuale {vm-name} in HostedService {hosted-service-name} contiene l'estensione {extension-name} che non è supportata in Azure Resource Manager. È consigliabile disinstallarla dalla macchina virtuale prima di continuare con la migrazione. NOTA: il messaggio di errore è in corso di aggiornamento, è necessario procedere con la disinstallazione dell'estensione prima che le estensioni XML di migrazione , ad esempio BGInfo 1.* non siano supportate in Azure Resource Manager. Pertanto, non è possibile eseguire la migrazione di queste estensioni.
La macchina virtuale {nome-vm} nel servizio ospitato {nome-servizio-ospitato} contiene l'estensione VMSnapshot/VMSnapshotLinux che non è attualmente supportata per la migrazione. Disinstallare l'estensione dalla macchina virtuale e riaggiungerla tramite Azure Resource Manager al termine della migrazione Questo è lo scenario in cui la macchina virtuale è configurata per Backup di Azure. Poiché questo è attualmente uno scenario non supportato, seguire la soluzione alternativa in https://aka.ms/vmbackupmigration
La macchina virtuale {vm-name} in HostedService {hosted-service-name} contiene l'estensione {nome-estensione} il cui stato non viene segnalato dalla macchina virtuale. Di conseguenza, non è possibile eseguire la migrazione di questa macchina virtuale. Assicurarsi che venga segnalato lo stato dell'estensione o disinstallare l'estensione dalla macchina virtuale e ripetere la migrazione.

La VM {nome-vm} in HostedService {nome-servizio-ospitato} contiene l'estensione {nome-estensione} con Stato Handler: {stato-handler}. Di conseguenza, non è possibile eseguire la migrazione della macchina virtuale. Assicurarsi che lo stato handler dell'estensione segnalato sia {stato-handler} o disinstallare l'estensione dalla macchina virtuale e ripetere la migrazione.

L'agente VM per la macchina virtuale {nome-vm} in HostedService {nome-servizio-ospitato} indica lo stato generale dell'agente Non pronto. Di conseguenza, se dispone di un'estensione migrabile, la macchina virtuale potrebbe non essere migrata. Assicurarsi che l'agente VM indichi lo stato dell'agente generale Pronto. Fare riferimento a https://aka.ms/classiciaasmigrationfaqs.
L'agente guest di Azure e le estensioni delle macchine virtuali hanno bisogno di accesso Internet in uscita per consentire all'account di archiviazione della macchina virtuale di popolare il proprio stato. Le cause comuni dell'errore di stato includono
  • un gruppo di sicurezza di rete che blocca l'accesso in uscita a Internet
  • Se la rete virtuale ha server DNS locali e la connettività DNS viene persa

    Se si continua a visualizzare lo stato non supportato, è possibile disinstallare le estensioni per ignorare il controllo e procedere con la migrazione.
  • La migrazione non è supportata per la distribuzione {deployment-name} in HostedService {hosted-service-name} perché dispone di più set di disponibilità. Attualmente è possibile migrare solo i servizi ospitati che dispongono di un massimo di 1 set di disponibilità. Per risolvere questo problema, spostare i set di disponibilità aggiuntivi e le macchine virtuali in tali set di disponibilità in un servizio ospitato diverso.
    La migrazione non è supportata per la distribuzione {deployment-name} in HostedService {hosted-service-name perché contiene macchine virtuali che non fanno parte del set di disponibilità anche se HostedService ne contiene una. La soluzione alternativa per questo scenario è spostare tutte le macchine virtuali in un unico set di disponibilità o rimuovere tutte le macchine virtuali dal set di disponibilità del servizio ospitato.
    Account di archiviazione/HostedService/Rete virtuale {nome-rete-virtuale} sono in fase di migrazione e pertanto non possono essere modificati. Questo errore si verifica quando l'operazione di migrazione "Prepara" è stata completata sulla risorsa e viene attivata un'operazione che apporta una modifica alla risorsa. A causa del blocco sul piano di gestione dopo l'operazione "Prepara", vengono bloccate tutte le modifiche alla risorsa. Per sbloccare il piano di gestione è possibile eseguire l'operazione di migrazione "Commit" per completare la migrazione o l'operazione di migrazione "Interrompi" per eseguire il rollback dell'operazione "Prepara".
    La migrazione non è consentita per HostedService {hosted-service-name} perché include la macchina virtuale {vm-name} in Stato: RoleStateUnknown. La migrazione è consentita solo quando la macchina virtuale si trova in uno dei seguenti stati: In esecuzione, Arrestato, Arrestato deallocato. La macchina virtuale potrebbe essere sottoposta a una transizione di stato, che in genere si verifica quando durante un'operazione di aggiornamento in HostedService, ad esempio un riavvio, l'installazione dell'estensione e così via. È consigliabile completare l'operazione di aggiornamento in HostedService prima di provare la migrazione.
    La distribuzione {deployment-name} in HostedService {hosted-service-name} contiene una macchina virtuale {nome-vm} con disco dati {data-disk-name} le cui dimensioni del BLOB fisico {size-of-the-vhd-blob-backing-the-data-disk} byte non corrispondono alle dimensioni logiche del disco dati della macchina virtuale {size-of-the-data-disk-specified-in-the-vm-api} byte. La migrazione viene eseguita senza specificare una dimensione per il disco dati per la macchina virtuale di Azure Resource Manager. Questo errore si verifica se è stato ridimensionato il BLOB del disco rigido virtuale senza aggiornare le dimensioni nel modello dell'API VM. Procedure di prevenzione dettagliate sono descritte di seguito.
    Si è verificata un'eccezione di archiviazione durante la convalida del disco dati {nome del disco dati} con collegamento ai file multimediali {URI disco dati} per la macchina virtuale {nome VM} nel servizio Cloud {nome del servizio Cloud}. Verificare che il collegamento ai supporti VHD sia accessibile per questa macchina virtuale Questo errore può verificarsi se i dischi della macchina virtuale sono stati eliminati o non sono più accessibili. Assicurarsi che i dischi per la macchina virtuale esistano.
    La macchina virtuale {vm-name} in HostedService {cloud-service-name} contiene Il disco con MediaLink {vhd-uri} con nome BLOB {vhd-blob-name} non supportato in Azure Resource Manager. Questo errore si verifica quando il nome del BLOB contiene un "/" che non è attualmente supportato nel provider di risorse di calcolo.
    La migrazione non è consentita per la distribuzione {deployment-name} in HostedService {cloud-service-name} perché non si trova nell'ambito a livello di area. Fare riferimento a https://aka.ms/regionalscope per spostare questa distribuzione nell'ambito a livello di area. Nel 2014 Azure ha annunciato lo spostamento delle risorse di rete da un ambito a livello di cluster a un ambito a livello di area. Per informazioni dettagliate, vedere https://aka.ms/regionalscope. Questo errore si verifica quando non è stata eseguita un'operazione di aggiornamento per la distribuzione di cui viene eseguita la migrazione, per spostarla automaticamente in un ambito a livello di area. La soluzione migliore consiste nell'aggiungere un endpoint a una macchina virtuale o a un disco dati alla macchina virtuale e quindi riprovare a eseguire la migrazione.
    Vedere Come configurare gli endpoint in una macchina virtuale classica in Azure o Collegare un disco dati a una macchina virtuale creata con il modello di distribuzione classica
    La migrazione non è supportata per Rete virtuale {vnet-name} perché include distribuzioni PaaS non gateway. Questo errore si verifica quando si hanno distribuzioni PaaS non gateway come il gateway applicazione o servizi Gestione API connessi alla rete virtuale.
    Le operazioni di gestione nella macchina virtuale non sono consentite perché la migrazione è in corso Questo errore si verifica perché la macchina virtuale è in stato di preparazione e quindi bloccata per qualsiasi operazione di aggiornamento/eliminazione. Chiamare Abort usando PS/CLI nella macchina virtuale per eseguire il rollback della migrazione e sbloccare la macchina virtuale per le operazioni di aggiornamento/eliminazione. La chiamata al commit sbloccherà anche la macchina virtuale, ma eseguirà il commit della migrazione in ARM.

    Soluzioni di prevenzione dettagliate

    Macchina virtuale con un disco dati le cui dimensioni BLOB fisiche (in byte) non corrispondono alle dimensioni logiche del disco dati della macchina virtuale (in byte).

    Ciò si verifica quando le dimensioni logiche del disco dati non sono sincronizzate con le dimensioni BLOB del disco rigido virtuale effettive. Il problema può essere verificato con facilità usando questi comandi:

    Verifica del problema

    # Store the VM details in the VM object
    $vm = Get-AzureVM -ServiceName $servicename -Name $vmname
    
    # Display the data disk properties
    # NOTE the data disk LogicalDiskSizeInGB below which is 11GB. Also note the MediaLink Uri of the VHD blob as we'll use this in the next step
    $vm.VM.DataVirtualHardDisks
    
    
    HostCaching         : None
    DiskLabel           : 
    DiskName            : coreosvm-coreosvm-0-201611230636240687
    Lun                 : 0
    LogicalDiskSizeInGB : 11
    MediaLink           : https://contosostorage.blob.core.windows.net/vhds/coreosvm-dd1.vhd
    SourceMediaLink     : 
    IOType              : Standard
    ExtensionData       : 
    
    # Now get the properties of the blob backing the data disk above
    # NOTE the size of the blob is about 15 GB which is different from LogicalDiskSizeInGB above
    $blob = Get-AzStorageblob -Blob "coreosvm-dd1.vhd" -Container vhds 
    
    $blob
    
    ICloudBlob        : Microsoft.WindowsAzure.Storage.Blob.CloudPageBlob
    BlobType          : PageBlob
    Length            : 16106127872
    ContentType       : application/octet-stream
    LastModified      : 11/23/2016 7:16:22 AM +00:00
    SnapshotTime      : 
    ContinuationToken : 
    Context           : Microsoft.WindowsAzure.Commands.Common.Storage.AzureStorageContext
    Name              : coreosvm-dd1.vhd
    

    Prevenzione del problema

    # Convert the blob size in bytes to GB into a variable which we'll use later
    $newSize = [int]($blob.Length / 1GB)
    
    # See the calculated size in GB
    $newSize
    
    15
    
    # Store the disk name of the data disk as we'll use this to identify the disk to be updated
    $diskName = $vm.VM.DataVirtualHardDisks[0].DiskName
    
    # Identify the LUN of the data disk to remove
    $lunToRemove = $vm.VM.DataVirtualHardDisks[0].Lun
    
    # Now remove the data disk from the VM so that the disk isn't leased by the VM and it's size can be updated
    Remove-AzureDataDisk -LUN $lunToRemove -VM $vm | Update-AzureVm -Name $vmname -ServiceName $servicename
    
    OperationDescription OperationId                          OperationStatus
    -------------------- -----------                          ---------------
    Update-AzureVM       213xx1-b44b-1v6n-23gg-591f2a13cd16   Succeeded  
    
    # Verify we have the right disk that's going to be updated
    Get-AzureDisk -DiskName $diskName
    
    AffinityGroup        : 
    AttachedTo           : 
    IsCorrupted          : False
    Label                : 
    Location             : East US
    DiskSizeInGB         : 11
    MediaLink            : https://contosostorage.blob.core.windows.net/vhds/coreosvm-dd1.vhd
    DiskName             : coreosvm-coreosvm-0-201611230636240687
    SourceImageName      : 
    OS                   : 
    IOType               : Standard
    OperationDescription : Get-AzureDisk
    OperationId          : 0c56a2b7-a325-123b-7043-74c27d5a61fd
    OperationStatus      : Succeeded
    
    # Now update the disk to the new size
    Update-AzureDisk -DiskName $diskName -ResizedSizeInGB $newSize -Label $diskName
    
    OperationDescription OperationId                          OperationStatus
    -------------------- -----------                          ---------------
    Update-AzureDisk     cv134b65-1b6n-8908-abuo-ce9e395ac3e7 Succeeded 
    
    # Now verify that the "DiskSizeInGB" property of the disk matches the size of the blob 
    Get-AzureDisk -DiskName $diskName
    
    
    AffinityGroup        : 
    AttachedTo           : 
    IsCorrupted          : False
    Label                : coreosvm-coreosvm-0-201611230636240687
    Location             : East US
    DiskSizeInGB         : 15
    MediaLink            : https://contosostorage.blob.core.windows.net/vhds/coreosvm-dd1.vhd
    DiskName             : coreosvm-coreosvm-0-201611230636240687
    SourceImageName      : 
    OS                   : 
    IOType               : Standard
    OperationDescription : Get-AzureDisk
    OperationId          : 1v53bde5-cv56-5621-9078-16b9c8a0bad2
    OperationStatus      : Succeeded
    
    # Now we'll add the disk back to the VM as a data disk. First we need to get an updated VM object
    $vm = Get-AzureVM -ServiceName $servicename -Name $vmname
    
    Add-AzureDataDisk -Import -DiskName $diskName -LUN 0 -VM $vm -HostCaching ReadWrite | Update-AzureVm -Name $vmname -ServiceName $servicename
    
    OperationDescription OperationId                          OperationStatus
    -------------------- -----------                          ---------------
    Update-AzureVM       b0ad3d4c-4v68-45vb-xxc1-134fd010d0f8 Succeeded      
    

    Spostare una macchina virtuale in un'altra sottoscrizione dopo il completamento della migrazione

    Dopo aver completato il processo di migrazione, può essere necessario spostare la VM in un'altra sottoscrizione. Se, tuttavia, nella macchina virtuale che fa riferimento alla risorsa insieme di credenziali delle chiavi esiste un segreto/certificato, lo spostamento non è supportato. Le istruzioni seguenti consentiranno di risolvere il problema.

    PowerShell

    $vm = Get-AzVM -ResourceGroupName "MyRG" -Name "MyVM"
    Remove-AzVMSecret -VM $vm
    Update-AzVM -ResourceGroupName "MyRG" -VM $vm
    

    Interfaccia della riga di comando di Azure

    az vm update -g "myrg" -n "myvm" --set osProfile.Secrets=[]
    

    Passaggi successivi