将一代Azure VM恢复至新VM时遇CloudInternalError故障排查
问题描述
尝试将Gen 1 Azure VM恢复至不同Azure区域的另一资源组中的新Gen 1 VM,目标资源组已包含新VM所需的虚拟网络。使用以下PowerShell脚本获取最新恢复点并执行恢复:
# Get the most recent recovery point name [string]$rpName = az backup recoverypoint list --resource-group $vm.resourceGroup ` --vault-name $vm.vaultName ` --backup-management-type 'AzureIaasVM' ` --container-name $vm.vmName ` --item-name $vm.vmName ` --query '[0].name' ` --output 'tsv' Write-Output "Restoring $($vm.vmName) to $($vm.targetVmName)" az backup restore restore-disks --resource-group $vm.resourceGroup ` --vault-name $vm.vaultName ` --container-name $vm.vmName ` --item-name $vm.vmName ` --restore-mode 'AlternateLocation' ` --storage-account $storageAccountName ` --storage-account-resource-group $storageAccountRg ` --target-resource-group $vm.targetVnetResourceGroup ` --rp-name $rpName ` --target-vm-name $vm.targetVmName ` --target-vnet-name $vm.targetVnetName ` --target-vnet-resource-group $vm.targetVnetResourceGroup ` --target-subnet-name $vm.targetSubnetName
恢复任务在备份中心显示「Completed with warnings」,深入查看作业发现错误代码为CloudInternalError,提示「Microsoft Azure Backup encountered an internal error」。任务子步骤:
- 从保管库传输数据(已完成)
- 创建恢复的虚拟机(执行失败)
使用的存储账户为Standard_LRS类型的StorageV2账户,请问问题出在哪里?
可能的原因及解决方法
1. 存储账户区域与目标区域不匹配
跨区域恢复时,指定的存储账户必须位于目标VM所在的区域。如果存储账户在源区域或其他非目标区域,会导致磁盘传输完成后,VM创建过程中因跨区域磁盘访问限制触发内部错误。
解决步骤:
- 检查
$storageAccountName对应的存储账户区域,确认与$vm.targetVnetResourceGroup的区域一致 - 若区域不匹配,在目标区域创建新的Standard_LRS StorageV2账户,替换脚本中的存储账户参数后重新执行恢复
2. 目标子网的网络配置限制
目标子网的NSG规则或服务端点配置可能阻止了VM创建所需的内部操作:
- NSG规则拒绝了Azure Compute服务的内部API调用
- 子网启用了Storage服务端点,但未将恢复用的存储账户加入允许列表,导致磁盘附加失败
解决步骤:
- 临时移除目标子网关联的NSG,重新尝试恢复。若恢复成功,再逐步排查NSG中限制VM创建的规则
- 检查子网的服务端点设置,确保存储账户的资源ID或所在区域被包含在允许范围内
3. 磁盘加密状态不兼容
如果源VM启用了Azure磁盘加密,目标区域的密钥管理配置可能不匹配:
- 目标区域没有对应的密钥保管库,或备份服务没有访问该密钥保管库的权限
- 加密密钥的区域与目标区域不兼容,导致磁盘无法正常附加到新VM
解决步骤:
- 确认目标区域存在与源VM同类型的密钥保管库(如使用相同的密钥类型、访问策略)
- 为Azure Backup服务主体分配密钥保管库的
Key Vault Contributor或Crypto Service Encryption User权限 - 尝试手动从存储账户中取出恢复的磁盘,手动创建Gen 1 VM并附加磁盘,观察是否出现具体错误提示
4. 区域服务临时故障
CloudInternalError有时是由于目标区域的Compute或Backup服务出现临时中断导致的。
解决步骤:
- 查看Azure状态页面,确认目标区域的Compute和Backup服务状态正常
- 等待30-60分钟后重新执行恢复脚本,避开服务高峰期
内容的提问来源于stack exchange,提问作者Disco Globeulon
相关产品推荐
相关产品推荐

