Hyper-V与虚拟化

Hyper-V 虚拟机实时迁移故障排除指南 - Windows Server

· 52CE 我爱测

Hyper-V 中的实时迁移允许虚拟机(VM)在主机之间移动,且停机时间最短,这是在 Windows Server 环境中实现高可用性和维护的关键功能。 尽管其功能如此,但实时迁移可能会因为各种因素而失败,例如硬件不兼容、身份验证、网络配置、VM 设置和存储问题。 正确诊断和解决实时迁移失败对于业务连续性至关重要,尤其是在群集和生产设置中。 本指南提供全面的故障排除过程、常见迁移问题的详细解决方案、结构化数据收集过程和快速参考资源。 故障排除清单 在故障排

Hyper-V 中的实时迁移允许虚拟机(VM)在主机之间移动,且停机时间最短,这是在 Windows Server 环境中实现高可用性和维护的关键功能。 尽管其功能如此,但实时迁移可能会因为各种因素而失败,例如硬件不兼容、身份验证、网络配置、VM 设置和存储问题。 正确诊断和解决实时迁移失败对于业务连续性至关重要,尤其是在群集和生产设置中。 本指南提供全面的故障排除过程、常见迁移问题的详细解决方案、结构化数据收集过程和快速参考资源。

故障排除清单

在故障排除之前和期间,将此清单用作分步过程:

  1. 基线运行状况检查

    • 确认 VM 集成服务 up-to日期。
    • 确保所有主机都完全修补并运行受支持的 Windows Server 版本。
    • 确认 VM 处于迁移支持状态(例如,不在“备份”或“正在停止”中)。
  2. 群集和主机配置

    • 检查群集节点/主机兼容性(CPU、BIOS/固件版本、配置版本)。
    • 验证所有群集节点是否处于联机状态、正常运行,并在故障转移群集管理器中可见。
    • 验证跨主机的 VM 配置版本一致性。
  3. 网络和存储

    • 确认正确配置并可访问实时迁移、管理和存储网络。
    • 确保可在目标主机上访问 VM 存储。
    • 检查防火墙规则和端口可访问性(例如 UDP 3343 for WSFC)。
  4. 身份验证或权限

    • 验证是否为实时迁移启用了 Kerberos 或 CredSSP 并正确委派。
    • 确保注册所需的服务主体名称(SPN)。
    • 确认迁移帐户的权限级别。
  5. 虚拟交换机或网络

    • 确保所需的 VM 交换机存在,并且跨主机配置相同。
    • 验证网络组合(SET 或 LBFO)一致性。
  6. 特定于 VM 的功能

    • 如果使用 vTPM/受防护的 VM,请确认主机之间的证书要求。
    • 检查快照/检查点 - 根据需要进行合并或删除。

下面是常见问题及其各自的解决方法:

硬件或 CPU 不兼容

  • 错误消息:

虚拟机使用物理计算机上不支持的特定于处理器的功能

  • 事件 ID 21502

决议

  • 在 Hyper-V 管理器中,设置 VM 的处理器设置。 启用 迁移到具有不同处理器版本的物理计算机。
  • 确保目标主机支持 VM 的 CPU 功能。

小窍门

始终在最旧(最不支持)的 CPU 主机上首次启动 VM。

VM 配置版本不匹配

  • 迁移的工作方式是单向的,但不是相反的(尤其是在迁移到较新的 OS 之后)。
  • 错误消息:

实时迁移或快速迁移失败并出现兼容性问题。

  • 事件 ID 10698 和 21502

决议

  • 升级到较新的主机时升级 VM 配置版本(Hyper-V 管理器: 作>升级 VM 配置版本)。

    注释

    无法回滚此作。 无法将升级版本的 VM 迁移回旧主机。

  • 使用 Get-VM * | select Name, Version cmdlet 验证配置版本。

网络连接或配置问题

  • 实时迁移在传输之前/期间失败。
  • 迁移失败,并显示:“客户端无法连接到请求中指定的目标”或“WinRM 协议错误”。
  • 事件 ID:20406 和 280

决议

  • 确保主机可以通过主机名/IP 相互解析并相互联系(测试)。ping
  • 用于 winrm quickconfig 验证/配置两个主机上的 WinRM。
  • 根据需要更新 TrustedHosts: Set-Item WSMan:\localhost\Client\TrustedHosts -Value "<Host1>,<Host2>"。
  • 验证防火墙是否允许必要的端口(默认 SMB、WinRM 和群集端口)。
  • 跨主机匹配网络配置(交换机名称/类型、组合)。

身份验证或委派问题

  • 错误代码:“常规访问被拒绝错误(0x80070005)”
  • 错误0x8009030E和0x8009030D(委派/Kerberos/SPN 问题)

决议

  • 启用 Kerberos 身份验证: Hyper-V 设置>实时迁移>高级>身份验证协议:Kerberos。
  • 在 Active Directory 中配置约束委派: “计算机属性>委派 ”选项卡 >信任此计算机,以便仅>添加 cifs 和Microsoft虚拟系统迁移服务。
  • 注册缺少 SPN: setspn -s Microsoft Virtual System Migration Service/<FQDN> <ComputerName>。
  • 清除旧的 Kerberos 票证: KLIST PURGE -li 0x3e7。

存储或共享磁盘问题

  • 对于具有共享 VHDX/共享磁盘的 VM,迁移失败。
  • 错误:迁移选项中缺少共享磁盘。

决议

  • 共享虚拟磁盘只能在群集 VM 角色中使用,不能使用标准方法进行迁移。
  • 根据需要,在目标处手动移动和重新附加共享磁盘。

VTPM 或受防护的 VM 证书问题

  • 错误:“无法解包虚拟机的密钥保护程序。
  • 迁移仅对受 vTPM 保护的 VM 失败。

决议

  • 从源主机导出防护或密钥保护程序证书,并将其导入目标。
  • 可以使用 Windows 证书管理单元(certmgr.msc)。
  • PowerShell cmdlet: Export-PfxCertificate 和 Import-PfxCertificate。

状态文件或检查点问题

  • 错误消息:

无法还原此虚拟机,因为无法读取保存的状态数据。 删除保存的状态数据,然后尝试启动虚拟机。 (0xC0370027)

  • VM 停滞在“备份”状态。

决议

  • 在 Hyper-V 管理器中:选择 VM>删除已保存状态。
  • 如有必要,请手动删除 .bin``.vsv VM 文件夹中的文件。
  • 删除或合并损坏的检查点。

群集或迁移限制问题

  • 错误消息:

达到虚拟机迁移限制 1,请等待完成正在进行的迁移作。

  • VM 在节点清空或重新启动期间进入“已保存”状态。

决议

  • 增加同步迁移: Hyper-V 设置>实时迁移 同时迁移>。

  • PowerShell cmdlet:

    Set-VMHost -MaximumVirtualMachineMigrations N
    
  • 在重新启动 Suspend-ClusterNode -Name <NodeName> -Drain之前,请始终清空角色。

代码缺陷或 bug

VM 在迁移后停滞在“正在停止”状态;实时转储分析中报告孤立的 vport。

决议

  • 更新到最新的 Windows Server 累积更新。
  • 如果无法升级,请请求Microsoft对修补程序的支持(如果引用了 bug)。

数据收集

标准数据收集清单:

  • 事件日志: Get-WinEvent -LogName "Microsoft-Windows-Hyper-V-VMMS/Admin".
  • 群集日志: Get-ClusterLog -UseLocalTime -Destination <Path>.
  • Hyper-V 迁移日志: Get-WinEvent -LogName Microsoft-Windows-Hyper-V-Worker-Admin.
  • 网络诊断: Get-NetAdapter, ipconfig /all并确保所有网络路径都已启动。
  • 委派和 SPN 检查:运行 setspn -L <HostName>,并检查 AD 中的 “委派 ”选项卡。
  • VM 和系统配置: Get-VM * | select Name, Version、 Get-VMSwitch和 Get-VMProcessor -VMName <VMName>。
  • WinRM 配置: winrm quickconfig Set-Item WSMan:\localhost\Client\TrustedHosts -Value "<Host1>,<Host2>"。
  • 用于收集实时迁移跟踪的 PowerShell: TSS.ps1 -CollectLog SHA_support-all -noBasicLog -noUpdate -NewSession
  • 快照或检查点链: Get-VHDChain -Path <PathToVHD>.

常见问题快速参考表

症状或错误 可能的根本原因 解决方法摘要
“VM 使用不支持的特定于处理器的功能...” CPU 功能/BIOS/固件不匹配 启用迁移兼容性;检查主机 CPU 功能和 BIOS。
VM 迁移失败,并出现版本错误。 配置版本不匹配 升级新主机上的 VM 配置版本;无法迁移回旧主机。
“常规访问被拒绝错误(0x80070005),”0x8009030E/0x8009030D SPN/delegation/Kerberos 配置错误 配置约束委派、注册 SPN、设置 Kerberos 和检查 AD。
“服务器不支持 WS-Management 标识作...” WinRM/proxy/trustedhosts 错误配置 设置 WinRM/受信任的主机、更新主机文件并绕过代理。
“无法还原此虚拟机,因为保存的状态数据...” 损坏的检查点/保存的状态文件 删除“已保存”状态、删除/合并检查点,并手动删除.bin/.vsv 文件。
已启用 vTPM 的 VM 失败,并出现“密钥保护程序...无法解包。 证书/受防护的 VM 配置 导出/导入密钥保护程序证书。
迁移失败 - 迁移向导中不提供共享磁盘。 不支持的方案 手动重新附加磁盘;遵循共享磁盘迁移文档。
已达到实时迁移限制;VM 在清空中输入“已保存”状态。 低并发设置;不当排水 提高迁移限制;在重新启动之前清空角色。
“找不到匹配的虚拟交换机...” 网络交换机配置不一致 确保所有主机上的虚拟交换机配置相同。
实时迁移事件显示更新后失败。 修补程序/固件/猜测设置 确保所有节点都已更新/修补;检查猜测控件设置。
VM 永久备份,无法移入/移出“备份”状态。 备份软件锁 重启备份服务和 VMMS 服务,或打开 VM 以合并检查点。

确保成功 Hyper-V 实时迁移需要跨所有参与主机进行勤奋的配置管理,包括 CPU、固件、网络、身份验证、存储和权限。 按照故障排除清单,解决解决部分中概述的已知根本原因,并使用有针对性的数据收集,可以迅速解决或适当升级大多数迁移失败。 使用修补程序保持最新状态,标准化群集配置,并了解日志输出可最大程度地减少任务关键型 VM 工作负荷的停机时间和作风险。

References

资料来源与适用范围

资料来源
微软官方中文故障文档
适用范围
按正文的 Windows / Windows Server 适用版本;保留原文兼容性要求
内容语言
中文;命令、路径和错误标识保留技术原文
本地收录日期
2026-10-26
授权说明
CC BY 4.0

正文与所需资源由本站本地存储。查看来源及更新记录 ↗

请按适用版本和实际日志确认原因;本站没有对每一种系统或设备逐项执行文中的操作。