クラシックから Azure Resource Manager への移行中によく発生するエラーErrors that commonly occur during Classic to Azure Resource Manager migration

重要

現在、IaaS VM の約 90% で Azure Resource Manager が使用されています。Today, about 90% of IaaS VMs are using Azure Resource Manager. 2020 年 2 月 28 日の時点で、クラシック VM は非推奨とされており、2023 年 3 月 1 日に完全に廃止されます。As of February 28, 2020, classic VMs have been deprecated and will be fully retired on March 1, 2023. この非推奨の詳細およびそれが与える影響について確認してください。Learn more about this deprecation and how it affects you.

この記事では、Azure クラシック デプロイ モデルから Azure Resource Manager スタックへの IaaS リソースの移行中に発生する一般的なエラーと軽減策を一覧で示しています。This article catalogs the most common errors and mitigations during the migration of IaaS resources from Azure classic deployment model to the Azure Resource Manager stack.

エラー一覧List of errors

エラー文字列Error string 対応策Mitigation
内部サーバー エラーInternal server error 場合によっては、これは再試行によって解消される一時的なエラーです。In some cases, this is a transient error that goes away with a retry. エラーが解消されない場合は、プラットフォームのログを調べる必要があるため、Azure サポートにご連絡ください。If it continues to persist, contact Azure support as it needs investigation of platform logs.

注: サポート チームによるインシデントの追跡が開始されたら、ご自分で対応しようとしないでください。環境で予期しない結果が発生する可能性があります。NOTE: Once the incident is tracked by the support team, please do not attempt any self-mitigation as this might have unintended consequences on your environment.
HostedService {hosted-service-name} 内の配置 {deployment-name} は PaaS 配置 (Web/Worker) であるため、移行がサポートされません。Migration is not supported for Deployment {deployment-name} in HostedService {hosted-service-name} because it is a PaaS deployment (Web/Worker). これは、デプロイに Web/worker ロールが含まれている場合に発生します。This happens when a deployment contains a web/worker role. 仮想マシンの移行のみがサポートされているため、デプロイから Web/ワーカー ロールを削除し、移行をやり直してください。Since migration is only supported for Virtual Machines, please remove the web/worker role from the deployment and try migration again.
テンプレート {template-name} をデプロイできませんでした。Template {template-name} deployment failed. 関連付け ID = {guid}CorrelationId={guid} 移行サービスのバックエンドでは、Azure Resource Manager テンプレートを使用して Azure Resource Manager スタック内にリソースを作成します。In the backend of migration service, we use Azure Resource Manager templates to create resources in the Azure Resource Manager stack. テンプレートはべき等であるため、通常は移行操作を繰り返すことでこのエラーを解決しても問題はありません。Since templates are idempotent, usually you can safely retry the migration operation to get past this error. エラーが解消されない場合は、Azure サポートに連絡して関連付け ID をお知らせください。If this error continues to persist, please contact Azure support and give them the CorrelationId.

注: サポート チームによるインシデントの追跡が開始されたら、ご自分で対応しようとしないでください。環境で予期しない結果が発生する可能性があります。NOTE: Once the incident is tracked by the support team, please do not attempt any self-mitigation as this might have unintended consequences on your environment.
仮想ネットワーク {virtual-network-name} は存在していません。The virtual network {virtual-network-name} does not exist. これは、新しい Azure Portal で Virtual Network を作成した場合に発生する可能性があります。This can happen if you created the Virtual Network in the new Azure portal. 実際の仮想ネットワーク名は、"グループ * <VNET name>" のパターンに従います。The actual Virtual Network name follows the pattern "Group * <VNET name>"
HostedService {hosted-service-name} 内の VM {vm-name} に、Azure Resource Manager でサポートされない拡張機能 {extension-name} が含まれています。VM {vm-name} in HostedService {hosted-service-name} contains Extension {extension-name} which is not supported in Azure Resource Manager. 移行を続行する前に、この拡張機能を VM からアンインストールすることをお勧めします。It is recommended to uninstall it from the VM before continuing with migration. Azure Resource Manager では、BGInfo 1.* などの XML 拡張機能はサポートされていません。XML extensions such as BGInfo 1.* are not supported in Azure Resource Manager. そのため、これらの拡張機能を移行することはできません。Therefore, these extensions cannot be migrated. これらの拡張機能が仮想マシンにインストールされている場合は、移行を完了する前に自動的にアンインストールされます。If these extensions are left installed on the virtual machine, they are automatically uninstalled before completing the migration.
HostedService {hosted-service-name} 内の VM {vm-name} に、移行用に現在サポートされていない拡張機能 VMSnapshot/VMSnapshotLinux が含まれています。VM {vm-name} in HostedService {hosted-service-name} contains Extension VMSnapshot/VMSnapshotLinux, which is currently not supported for Migration. この機能を一度 VM からアンインストールし、移行が完了したら Azure Resource Manager を使って再インストールしてください。Uninstall it from the VM and add it back using Azure Resource Manager after the Migration is Complete これは、仮想マシンが Azure Backup 用に構成されるシナリオです。This is the scenario where the virtual machine is configured for Azure Backup. これは、現時点ではサポートされていないシナリオであるため、 https://aka.ms/vmbackupmigration の回避策に従ってください。Since this is currently an unsupported scenario, please follow the workaround at https://aka.ms/vmbackupmigration
HostedService {hosted-service-name} の VM {vm-name} には、拡張機能 {extension-name} が含まれています。この拡張機能のステータスについて VM から報告がないため、VM {vm-name} in HostedService {hosted-service-name} contains Extension {extension-name} whose Status is not being reported from the VM. この VM を移行できません。Hence, this VM cannot be migrated. この拡張機能のステータスが報告されるようにするか、VM からこの拡張機能をアンインストールしたうえで、移行をやり直してください。Ensure that the Extension status is being reported or uninstall the extension from the VM and retry migration.

HostedService {hosted-service-name} の VM {vm-name} には、拡張機能 {extension-name} が含まれています。この拡張機能のハンドラー ステータスとして {handler-status} が報告されているため、VM {vm-name} in HostedService {hosted-service-name} contains Extension {extension-name} reporting Handler Status: {handler-status}. この VM を移行できません。Hence, the VM cannot be migrated. この拡張機能のハンドラー ステータスとして {handler-status} が報告されるようにするか、VM からこの拡張機能をアンインストールしたうえで、移行をやり直してください。Ensure that the Extension handler status being reported is {handler-status} or uninstall it from the VM and retry migration.

HostedService {hosted-service-name} 内の VM {vm-name} 用の VM エージェントが、エージェントの全体的なステータスとして [準備不完了] を報告しています。VM Agent for VM {vm-name} in HostedService {hosted-service-name} is reporting the overall agent status as Not Ready. そのため、VM に移行可能な拡張機能があっても、VM を移行できません。Hence, the VM may not be migrated, if it has a migratable extension. VM エージェントがエージェントの全体的なステータスとして [準備完了] を報告していることを確認してください。Ensure that the VM Agent is reporting overall agent status as Ready. https://aka.ms/classiciaasmigrationfaqs を参照してください。Refer to https://aka.ms/classiciaasmigrationfaqs.
Azure ゲスト エージェントと VM 拡張機能では、各自の状態を設定するために VM ストレージ アカウントへの発信インターネット アクセスが必要です。Azure guest agent & VM Extensions need outbound internet access to the VM storage account to populate their status. 状態エラーの一般的な原因には、以下が考えられます。Common causes of status failure include
  • ネットワーク セキュリティ グループがインターネットへの発信アクセスがブロックしているa Network Security Group that blocks outbound access to the internet
  • VNET にオンプレミスの DNS サーバーがあるときに DNS 接続が失われているIf the VNET has on premises DNS servers and DNS connectivity is lost

    サポートされていない状態が解決しない場合は、拡張機能をアンインストールしてこのチェックをスキップし、移行を進めることができます。If you continue to see an unsupported status, you can uninstall the extensions to skip this check and move forward with migration.
  • HostedService {hosted-service-name} 内の配置 {deployment-name} には複数の可用性セットがあるため、移行がサポートされません。Migration is not supported for Deployment {deployment-name} in HostedService {hosted-service-name} because it has multiple Availability Sets. 現時点では、1 つ以下の可用性セットを持つホストされるサービスのみを移行できます。Currently, only hosted services that have 1 or less Availability sets can be migrated. この問題を回避するには、余分な可用性セットと可用性セット内の Virtual Machines を別のホストされるサービスに移動してください。To work around this problem, move the additional availability sets, and Virtual machines in those availability sets, to a different hosted service.
    HostedService {hosted-service-name} 内の配置 {deployment-name} に含まれている VM が可用性セットの一部ではないため、HostedService に可用性セットが含まれているとしても、この配置の移行はサポートされません。Migration is not supported for Deployment {deployment-name} in HostedService {hosted-service-name because it has VMs that are not part of the Availability Set even though the HostedService contains one. このシナリオの回避策は、すべての仮想マシンを 1 つの可用性セット内に移動するか、ホストされるサービスの可用性セットからすべての仮想マシンを削除することです。The workaround for this scenario is to either move all the virtual machines into a single Availability set or remove all Virtual machines from the Availability set in the hosted service.
    ストレージ アカウント/HostedService/Virtual Network {virtual-network-name} は移行中のため、変更できません。Storage account/HostedService/Virtual Network {virtual-network-name} is in the process of being migrated and hence cannot be changed このエラーは、リソースの "準備" 移行処理が完了し、リソースに変更を加える可能性がある操作がトリガーされた場合に発生します。This error happens when the "Prepare" migration operation has been completed on the resource and an operation that would make a change to the resource is triggered. "準備" 操作の後、管理プレーンはロックされるため、リソースの変更はすべてブロックされます。Because of the lock on the management plane after "Prepare" operation, any changes to the resource are blocked. 管理プレーンのロックを解除するには、"コミット" 移行操作を実行して移行を完了するか、"中止" 移行操作で "準備" 操作をロールバックします。To unlock the management plane, you can run the "Commit" migration operation to complete migration or the "Abort" migration operation to roll back the "Prepare" operation.
    次の状態の VM {vm-name} が存在するため、HostedService {hosted-service-name} の移行は許可されていません:RoleStateUnknown。Migration is not allowed for HostedService {hosted-service-name} because it has VM {vm-name} in State: RoleStateUnknown. VM が [実行中]、[停止済み]、[停止済み (割り当て解除)] のいずれかの状態の場合にのみ、移行が許可されます。Migration is allowed only when the VM is in one of the following states - Running, Stopped, Stopped Deallocated. VM が状態遷移中である可能性があります。通常、この状態は、再起動や拡張機能のインストールなどの HostedService の更新操作を実行しているときに発生します。移行を試行する前に、HostedService の更新操作が完了するまで待つことをお勧めします。The VM might be undergoing through a state transition, which usually happens when during an update operation on the HostedService such as a reboot, extension installation etc. It is recommended for the update operation to complete on the HostedService before trying migration.
    HostedService {hosted-service-name} のデプロイ {deployment-name} には、物理 BLOB サイズ ({size-of-the-vhd-blob-backing-the-data-disk} バイト) が VM データ ディスクの論理サイズ ({size-of-the-data-disk-specified-in-the-vm-api} バイト) と一致しないデータ ディスク {data-disk-name} を持つ VM {vm-name} が含まれています。Deployment {deployment-name} in HostedService {hosted-service-name} contains a VM {vm-name} with Data Disk {data-disk-name} whose physical blob size {size-of-the-vhd-blob-backing-the-data-disk} bytes does not match the VM Data Disk logical size {size-of-the-data-disk-specified-in-the-vm-api} bytes. 移行は、Azure Resource Manager VM のデータ ディスクのサイズを指定せずに続行されます。Migration will proceed without specifying a size for the data disk for the Azure Resource Manager VM. このエラーは、VM API モデルのサイズを更新せずに VHD の BLOB サイズを変更した場合に発生します。This error happens if you've resized the VHD blob without updating the size in the VM API model. 対応策の詳細な手順を以下に示します。Detailed mitigation steps are outlined below.
    クラウド サービス {クラウド サービス名} 内の VM {VM 名} のメディア リンク {データ ディスク URI} を使用してデータ ディスク {データ ディスク名} を検証中にストレージ例外が発生しました。A storage exception occurred while validating data disk {data disk name} with media link {data disk Uri} for VM {VM name} in Cloud Service {Cloud Service name}. この仮想マシンが VHD メディア リンクにアクセスできることを確認してください。Please ensure that the VHD media link is accessible for this virtual machine このエラーは、VM のディスクが削除された場合、またはディスクにアクセスできなくなった場合に発生します。This error can happen if the disks of the VM have been deleted or are not accessible anymore. VM のディスクが存在することを確認してください。Please make sure the disks for the VM exist.
    HostedService {cloud-service-name} 内の VM {vm-name} に、Azure Resource Manager でサポートされない BLOB 名 {vhd-blob-name} の MediaLink {vhd-uri} があるディスクが含まれています。VM {vm-name} in HostedService {cloud-service-name} contains Disk with MediaLink {vhd-uri} which has blob name {vhd-blob-name} that is not supported in Azure Resource Manager. このエラーは、BLOB の名前に "/" が含まれている場合に発生します。この記号は現在、コンピューティング リソース プロバイダーでサポートされていません。This error occurs when the name of the blob has a "/" in it which is not supported in Compute Resource Provider currently.
    HostedService {cloud-service-name} 内のデプロイ {deployment-name} はリージョン範囲に含まれていないため、移行することができません。Migration is not allowed for Deployment {deployment-name} in HostedService {cloud-service-name} as it is not in the regional scope. このデプロイをリージョン範囲に移動する方法については、https://aka.ms/regionalscope を参照してください。Please refer to https://aka.ms/regionalscope for moving this deployment to regional scope. 2014 年、Azure は、ネットワーク リソースをクラスター レベル スコープからリージョン スコープに移動すると発表しました。In 2014, Azure announced that networking resources will move from a cluster level scope to regional scope. 詳細については、「https://aka.ms/regionalscope」を参照してください。See https://aka.ms/regionalscope for more details. 移行中のデプロイで更新操作が行われていない場合に、このエラーが発生します。その場合は、自動的にリージョン スコープに移動されます。This error happens when the deployment being migrated has not had an update operation, which automatically moves it to a regional scope. このエラーを回避するには、エンドポイントを VM に追加するか、データ ディスクを VM に追加してから、移行を再試行してください。The best work around is to either add an endpoint to a VM, or a data disk to the VM, and then retry migration.
    Azure 上でクラシック仮想マシンにエンドポイントをセットアップする方法またはクラシック デプロイ モデルを使用して作成された仮想マシンにデータ ディスクをアタッチするに関するページを参照してください。See How to set up endpoints on a classic virtual machine in Azure or Attach a data disk to a virtual machine created with the classic deployment model
    Virtual Network {vnet-name} の移行はサポートされていません。この Virtual Network にはゲートウェイ以外の PaaS 展開が含まれいるためです。Migration is not supported for Virtual Network {vnet-name} because it has non-gateway PaaS deployments. このエラーは、Virtual Network に接続されている Application Gateway サービスや API Management サービスなどのゲートウェイ以外の PaaS デプロイがある場合に発生します。This error occurs when you have non-gateway PaaS deployments such as Application Gateway or API Management services that are connected to the Virtual Network.

    詳細な対応策Detailed mitigations

    VM のデータ ディスクの物理 BLOB サイズのバイト数が、VM データ ディスクの論理サイズのバイト数と一致していません。VM with Data Disk whose physical blob size bytes does not match the VM Data Disk logical size bytes.

    これは、データ ディスクの論理サイズが実際の VHD BLOB サイズと同期されていない可能性がある場合に発生します。This happens when the Data disk logical size can get out of sync with the actual VHD blob size. 次のコマンドを使用すると、簡単に検証できます。This can be easily verified using the following commands:

    問題の検証Verifying the issue

    # 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
    

    問題の軽減Mitigating the issue

    # 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      
    

    移行の完了後に VM を別のサブスクリプションに移動するMoving a VM to a different subscription after completing migration

    移行プロセスの完了後に、VM を別のサブスクリプションに移動する場合があります。After you complete the migration process, you may want to move the VM to another subscription. ただし、Key Vault リソースを参照する VM にシークレット/証明書がある場合、現時点では移動はサポートされていません。However, if you have a secret/certificate on the VM that references a Key Vault resource, the move is currently not supported. 次の手順を実行すると、この問題を回避できます。The below instructions will allow you to work around the issue.

    PowerShellPowerShell

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

    Azure CLIAzure CLI

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

    次のステップNext steps