排查通过 Azure Migrate 将 Hyper-V VM 迁移到 Azure 本地的问题(预览版)
适用于:Azure 本地版本 23H2
本文介绍如何排查使用 Azure Migrate 将 Hyper-V VM 迁移到 Azure 本地时可能会遇到的任何潜在问题。
重要
此功能目前处于预览状态。 有关 beta 版本、预览版或尚未正式发布的版本的 Azure 功能所适用的法律条款,请参阅 Microsoft Azure 预览版的补充使用条款。
检查所需的服务是否正在运行
确保源设备 VM 和目标设备 VM 具有正常的配置,其方法是确保以下服务正在运行。
以管理员身份打开 PowerShell,并为源设备和目标设备括号中列出的每个服务运行以下命令,以验证它们是否正在运行:
Get-Service -Name <name_of_service>
在源设备 VM 上:
- Microsoft Azure 网关服务(asrgwy)
- Microsoft Azure Hyper-V 发现服务(amhvdiscoverysvc)
- Azure Site Recovery 管理服务(asrmgmtsvc)
在目标设备 VM 上:
- Microsoft Azure 网关服务(asrgwy)
- Azure Site Recovery 管理服务(asrmgmtsvc)
可在 C:\ProgramData\Microsoft Azure\Config 中找到配置数据。
收集日志和信息
如果遇到任何问题,请在开具支持票证之前收集以下信息,并与Microsoft 支持部门团队共享这些问题进行分析。
- 来自 Azure Migrate 设备的日志
- 问题的说明或反馈
- 订阅 ID
- 租户 ID
- Azure Migrate 项目名称
- Azure Migrate 项目区域或地理位置
- 有关复制和迁移中问题的 VM 名称
- 部署或作业 ID 的相关性 ID
以下部分介绍如何基于操作或问题类型收集此信息。
对于来自 Azure 门户 的用户触发的操作
若要排查用户触发的操作问题,需要相关 ID 或作业 ID。
获取部署的相关 ID
创建或删除迁移项目、创建设备项目、实体和存储帐户等操作失败,错误在迁移项目资源组的“部署”部分中显示为失败。 每个部署操作还有一个 关联 ID ,可用于故障排除。
会话中其他失败的操作显示为通知或旧历史记录中的活动日志。
按照以下步骤在 Azure 门户 中标识部署的相关 ID:
转到 Azure Migrate 项目的资源组,然后转到 “概述”。 在右窗格中,选择显示失败和成功部署的超链接。
确定要为其指定相关 ID 的部署,并选择部署名称。
查找相关 ID。
获取复制或迁移的作业 ID
创建和删除受保护项(也称为创建和删除复制)和计划的故障转移(也称为迁移)等操作也会在门户的 Azure 本地迁移部分中列为作业。
在这些情况下, 还需要收集作业 ID 。
按照以下步骤获取作业 ID:
在Azure 门户的 Azure Migrate 项目中,转到“迁移工具”下的“概述”。
在左窗格中,转到 Azure 本地迁移 > 作业。
标识要为其指定作业 ID 的作业,并选择作业名称。
查找作业 ID。
对于计划的复制操作
计划操作中的失败(例如每小时复制周期失败)在门户的 Azure 本地迁移部分下列为 事件 。
若要排查复制问题,请收集以下信息:
- 事件中显示的错误详细信息,包括时间、错误 ID、错误消息、VM ID。
- 如果可能,Azure 门户的屏幕截图。
有关门户中的 UX 问题
若要排查门户中的 UX 问题,请收集以下信息:
- 来自Azure 门户的屏幕截图。
- 在浏览器开发人员模式下记录操作。 导出 HAR 文件并将其共享。
对于设备注册问题
若要排查设备注册问题,请收集以下信息:
- 设备上 C:\ProgramData\MicrosoftAzure\Logs 上的所有可用日志。
对于发现问题
若要排查发现问题,请收集以下信息:
- 源设备上 C:\ProgramData\MicrosoftAzure\Logs\HyperV\Discovery 上的所有可用日志。
有关详细信息,请参阅 “发现疑难解答”。
对于特殊问题
如果需要,Microsoft 支持部门还可以请求组件事件查看器日志或系统事件日志,例如 Hyper-V 日志和 SMB 日志。
常见问题和解决方法
Azure Migrate 项目创建失败
根本原因
如果未向 Azure Migrate 注册 Azure 订阅,或者用户不具有创建项目所需的权限,则 Azure Migrate 项目创建失败。
建议的解决方案
检查下列各项:
- 请确保在 Azure AD 租户上具有 应用程序管理员 角色。
- 请确保在 Azure 订阅上具有 参与者 和 用户访问管理员 角色。
- 请确保选择 Azure Migrate 项目创建支持的区域之一。 有关支持区域的列表,请参阅 支持的地理位置。
目标系统验证在设备上失败
根本原因
目标系统无法验证,因为默认情况下 FQDN 无法从设备解析 DNS。
建议的解决方案
通过编辑位于 C:\Windows\System32\drivers\etc\hosts 的主机文件,手动将 Azure 本地 IP 映射到其相应的 FQDN。
使用以下格式添加新行,其中包含系统 IP 和 FQDN: <群集 IP><群集 FQDN>。
从源设备配置管理器中删除或更改目标系统信息不起作用。
在源设备配置管理器中提供信息时,输入目标系统名称后无法更改。
建议的解决方法 按照以下步骤从源设备配置管理器中删除或更改目标系统:
在源设备上,打开资源管理器。 转到 C:\ProgramData\Microsoft Azure\CredStore 并删除 TargetClusterCredentials.json。
重新加载设备配置管理器,并且你可以输入目标系统的新值。
目标设备注册失败
根本原因
目标设备注册失败。
建议的解决方案
刷新页面,然后再次尝试注册。
目标设备问题
根本原因
在某些情况下,你可能需要从项目中删除目标设备。 例如,如果要将设备移动到其他订阅或区域。 这将要求你删除目标设备并在新的订阅或区域中创建新设备。
建议的解决方案
要从项目中删除目标设备,请遵照以下步骤:
以管理员身份运行 PowerShell。
运行以下命令以删除设备:
.\AzureMigrateInstaller.ps1 -RemoveAzMigrate
VM 复制失败
根本原因
由于以下一个或多个原因,VM 复制可能会失败:
- 群集共享卷或存储容器已满。
- VM 不具有高度可用性。 所有 VM 必须高度可用,才能发现复制和迁移。 如果 VM 不具有高度可用性,这些 VM 不会显示在列表中并被排除在迁移之外。
建议的解决方案
要启用复制和迁移,请确保群集共享卷或存储容器有足够的空间。
此外,要迁移非 HA VM,请遵照以下步骤:
- 首先需要使 VM 高度可用。 有关详细信息,请参阅使 Hyper-V VM 高度可用。
- 等待发现代理同步数据。
或者,转到 Azure Migrate 并选择“刷新”以手动刷新服务器、数据库和 Web 应用,以帮助加快发现代理同步。
复制或迁移失败,错误值不能为 null
根本原因
复制或迁移失败,并出现以下错误消息:
值不能为 null。 参数名称: FetchingHyperVDiskPropertiesFailed
.
组件无法从源 Hyper-V 主机提取磁盘属性。 如果基础群集虚拟磁盘处于脱机状态或磁盘未处于正常状态,则可能会出现这种情况。
建议的解决方案
确保群集磁盘正常运行,并验证是否可以提取磁盘属性。
在源设备上,以管理员身份运行 PowerShell。 将内容 {} 替换为实际值后,请运行以下步骤。
$ImageMgmtService = Get-WmiObject -Class "Msvm_ImageManagementService" -Namespace "root\virtualization\v2" -ComputerName "{HyperVHostOwningTheVM}" -Credential {$CredentialsToHyperVHost} $ImageMgmtService.GetVirtualHardDiskSettingData("{DiskPathShownInTheMessage}").
在返回的输出中,验证属性
MaxInternalSize
和ParentPath
XML 中SettingData
是否合适。
已迁移 VM 上的磁盘处于脱机状态
根本原因
迁移的 Windows VM 上的磁盘可能无法联机。
迁移会创建一个新的 VHD/VHDX,这会为迁移的 VM 上的 Windows OS 生成新磁盘。 OS 将此视为新驱动器并应用 SAN 策略。 然后,OS 不会使磁盘联机,因为它被视为共享磁盘。
建议的解决方案
若要解决此问题,请选择以下选项之一:
将 SAN 策略设置为
OnlineAll
已迁移的 Windows VM。 重新启动 VM。 这应该会使所有磁盘联机。 有关详细说明,请参阅如何 配置 SAN 策略以使磁盘联机。在已迁移的 VM 上手动将驱动器联机。
迁移失败,无法删除快照错误
根本原因
由于以下错误,无法迁移:
错误:无法删除 ID 为 ID 的快照
系统上的 Hyper-V VM 手动操作失败并出现相同的错误,无法在此服务器上执行 VM 上的手动操作。
建议的解决方案
若要缓解此错误,请确保 VM 正常运行。
连接到源设备,并尝试执行以下步骤,确保迁移顺利。
获取错误信息中的 VM ID。
$VmId= '146a690f-2e88-4c54-a662-c4e7da70b5e9'
确保 get-VM 正常工作,并从源设备返回信息。
Get-VM -Id $VmId
确保 get-VHD 正常工作并返回正确的信息。
Get-VHD -VMId $VmId
如果快照创建操作失败,请确保手动创建快照在 VM 上正常工作。
Get-VM -Id $VmId | Checkpoint-VM
如果快照删除操作失败,请确保手动删除快照在 VM 上正常工作。
Get-VMCheckpoint -Id "TemporarilyCreatedCheckpointIdGuid" | Remove-VMSnapshot
关闭 Hyper-V 主机上的 VM 失败
根本原因
在计划的故障转移期间,VM 通过 WMI 调用在源 Hyper-V 主机上关闭。 会看到错误 ID:1000001或错误消息:发生了内部错误。
建议的解决方案
可以通过 PowerShell 在源 Hyper-V 主机上手动关闭 VM。
# Replace Guid '146..' In below command with actual VM ID.
$Vm = Get-WmiObject -Namespace root\virtualization\v2 -Query "Select * From Msvm_ComputerSystem Where Name ='146a690f-2e88-4c54-a662-c4e7da70b5ef'"
$ShutdownIC = Get-WmiObject -Namespace root\virtualization\v2 -Query "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice ResultClass=Msvm_ShutdownComponent"
$ShutdownIC.InitiateShutdown("TRUE", "Need to shutdown")
后续步骤
根据迁移的阶段,可能需要查看以下文章之一来排查问题: