Hyper-V与虚拟化

排查高可用性虚拟机问题指南 - Windows Server

· 52CE 我爱测

总结 本文可帮助你排查影响 Windows Server 故障转移群集环境中高可用性(HA)虚拟机(VM)的问题。 如果遇到无法迁移的 VM、群集资源无响应或影响 VM 可用性的存储和通信错误等问题,请使用本指南。 本文分为以下部分: - 故障排除清单:帮助你在开始更深入调查之前隔离问题并修复最常见的基础问题的指导。 - 常见问题和解决方案:针对特定症状的指导,包括迁移失败、虚拟机卡住、仲裁问题、存储错误和配置问题。 - 数据收集:联系 Microsoft

总结

本文可帮助你排查影响 Windows Server 故障转移群集环境中高可用性(HA)虚拟机(VM)的问题。 如果遇到无法迁移的 VM、群集资源无响应或影响 VM 可用性的存储和通信错误等问题,请使用本指南。

本文分为以下部分:

  • 故障排除清单:帮助你在开始更深入调查之前隔离问题并修复最常见的基础问题的指导。
  • 常见问题和解决方案:针对特定症状的指导,包括迁移失败、虚拟机卡住、仲裁问题、存储错误和配置问题。
  • 数据收集:联系 Microsoft 支持部门时如何收集诊断数据的说明。

在开始之前,请确保对群集资源、Hyper-V 主机和管理工具(如故障转移群集管理器和 Hyper-V 管理器)具有管理访问权限。

故障排除清单

在开始对问题进行故障排除之前,请按照此清单帮助隔离原因。 此清单中的步骤还可以帮助你解决最常见的基础问题。

步骤 1:收集信息并查看症状

  • 收集和查看日志数据。 查看日志条目,了解在问题发生时发生的相关事件或消息。 首先,请查看以下信息:

    • 系统和管理事件日志

    • Hyper-V 事件日志(在事件查看器中,转到 应用程序和服务日志>Microsoft>Windows>Hyper-V)

    • 收集的任何进程转储文件

    • 您所收集的任何网络跟踪数据

    • 来自所有节点的群集日志 若要收集日志,请在其中一个群集节点上运行以下命令:

      Get-ClusterLog -UseLocalTime -Destination <FolderPath>
      
  • 检查更改和维护历史记录。 检查任何最近的更改或操作事件,包括以下事件:

    • 操作系统更新
    • 驱动程序或固件更改
    • 配置更改
    • 第三方软件安装或更新
    • 计划性维护
    • 群集故障转移任务
    • 影响 VM 的存储迁移
  • 检查主机和 VM 版本: 确保以下组件是最新的,并且版本彼此兼容:

    • Hyper-V 主机的操作系统
    • VM 配置
    • 集成服务

步骤 2:检查群集和底层基础结构的运行状况

  • 若要检查故障转移群集和群集资源的运行状况,请使用故障转移群集管理器:

    • 在故障转移群集管理器中识别任何错误消息。
    • 确定哪些节点处于联机状态,以及哪些节点(如果有)处于脱机状态。
    • 确定停滞在“已锁定”、“已暂停”或“未响应”状态的任何群集资源。
    • 检查 CSV 的状态。
    • 确保节点可以连接到共享存储。
  • 若要检查存储子系统的运行状况,请在扫描模式下运行 chkdsk 。 以管理员身份打开 Windows 命令提示符窗口,然后运行以下命令:

    chkdsk /scan
    

    如果 chkdsk 标识问题,请参阅 数据损坏和磁盘错误故障排除指南。

  • 查看节点网络连接。 确保所有节点上的以下配置都是一致的:

    • IP 地址
    • 网络适配器
    • 团队合作

    有关详细信息,请参阅 故障转移群集中 Hyper-V 的网络建议。

    重要

    故障转移群集中 Hyper-V 的网络建议 提到负载均衡和故障转移 (LBFO) NIC 组合。 但是,这项技术已被弃用,建议使用Switch-Embedded Teaming (SET)。 尽可能使用 SET 而非 NIC 团队化。

  • 确保任何网络设备驱动程序都支持群集,并确保它们是最新的。

步骤 3:检查资源可用性

对于 Hyper-V 主机和来宾 VM,请使用任务管理器和性能监视器(PerfMon)或其他监视工具来评估物理内存、CPU、存储和网络资源类别中的资源负载。 确保资源一致可用。 有关资源使用情况和 Hyper-V 的详细信息,请参阅 性能优化 Hyper-V 服务器。

步骤 4:检查群集节点配置

确保每个群集节点具有相同的硬件和配置,包括以下组件:

  • BIOS 和固件
  • Windows Server 版本和版本号
  • CPU 和内存

步骤 5:检查 VM 设置

  1. 确保 VM 已正确配置为在群集上运行。 例如,可以在群集节点上的 Windows PowerShell 窗口中运行以下命令:

    Get-ClusterResource | Where-Object { $_.ResourceType -eq "Virtual Machine" }
    

    有关如何在不同类型的拓扑中为复制配置 VM 的详细信息,请参阅 “复制虚拟机”。

  2. 检查 VM 配置文件(.vmcx)和磁盘文件(.vhd 或 .vhdx)的位置。

    • 确保文件驻留在群集节点使用的共享存储上。
    • 确保 VM 管理客户端(如 Hyper-V 管理器)使用这些文件的正确路径。
  3. 检查 VM 是否有检查点(也称为快照)。 请考虑合并任何现有检查点。 如果任何检查点未合并,请参阅 Hyper-V 快照、检查点和差异磁盘(AVHDX)故障排除指南。

  4. 确保 VM 配置是最新的,并且所有主机节点都支持 VM 配置版本。

常见问题和解决方案

  • VM 不会迁移
  • VM 或主机变得“停滞”且无响应
  • 群集数据库或仲裁问题
  • 存储警报、错误或超时
  • 群集资源之间的通信问题
  • VM 缺失、未启动或生成配置错误消息

VM 不会迁移

VM 无法从一个群集节点迁移到另一个群集节点的最常见原因涉及节点配置的差异,以及所有节点上不支持的 VM 配置。 以下列表链接到特定症状的详细说明和解决方法步骤:

VM 或主机变得“停滞”且无响应

症状

  • VM 停滞在过渡状态(正在启动或停止)或处于脱机状态。

  • VM 或主机进入以下状态之一:

    • 已暂停
    • 危急
    • 未响应
    • 资源锁定
  • 可能会收到类似于以下示例的错误消息:

    • Resource lock
    • Service unable to pause
    • Storage inaccessible
  • 事件日志包含指示服务问题或超时的事件,例如以下示例:

    • 事件 ID 153
    • 事件 ID 5120

可能的原因

此类问题可能有多种不同的原因。 通常,观察到的消息和事件指示涉及哪些原因。 可能性包括以下原因:

  • 与网络断开连接的资源(例如存储设备)。
  • 由于操作失败,资源锁未正确释放。
  • 硬件失败并减少了可用资源(CPU、内存、存储 IO),或者资源已耗尽。
  • 驱动程序或固件已过期。

解决方案

若要隔离遇到的问题类型并解决最常见的问题,请完成 故障排除清单。 如果问题仍然存在,请使用以下方法之一(具体取决于问题类型):

群集数据库或仲裁问题

症状

  • 群集服务未启动,群集不会联机。

  • 计算机集群间歇性地脱机。

  • CSV 或 VM 处于脱机或不可访问状态。

  • 你会收到错误消息或事件,这些事件引用了以下任一问题:

    • 损坏的群集数据库 (CLUSDB)
    • 丢失法定人数

可能的原因

  • 失败的操作损坏了群集数据库。 此类操作包括添加或删除节点以及关闭群集。
  • 仲裁磁盘或群集见证丢失或无法访问。
  • 防火墙规则阻止群集节点之间的通信。

解决方案

若要隔离遇到的问题类型并解决最常见的问题,请完成 故障排除清单。 有关详细清单和故障排除信息,请参阅以下文章:

如果无法解决问题,可以根据需要备份群集,验证备份,然后重新生成群集。

存储警报、错误或超时

症状

  • 事件日志包含指示服务问题或超时的事件,例如以下示例:

    • 事件 ID 153
    • 事件 ID 157
    • 事件 ID 5120
  • 收到有关存储硬件(如 RAID 或 SAN 设备)的错误消息或警报

  • 管理工具将卷标记为只读、脱机、缺失、断开连接或不可访问

  • VM 意外重启、无响应或无法迁移

可能的原因

  • 存储驱动程序或固件有故障或过时。
  • 磁盘被错误删除。
  • SAN 故障转移或存储硬件故障
  • 存储路径或分区未正确配置。

解决方案

若要隔离遇到的问题类型并解决最常见的问题,请完成 故障排除清单。 如果问题仍然存在,请使用以下方法之一(具体取决于问题类型):

群集资源之间的通信问题

症状

  • 节点从群集中脱离或进入隔离状态,或者心跳信号丢失或被删除。
  • RDP(远程桌面协议)或发现失败。
  • VM 意外迁移或不迁移,尤其是在移动或维护节点后。

可能的原因

  • 防火墙规则正在阻止所需的端口。
  • 配置重复的 IP 地址。
  • DNS 未正确配置。
  • 网络接口失败。
  • 群集网络未正确配置(例如,客户端通信使用错误模式)。
  • 未正确配置组合或 VLAN 设置。

解决方案

若要隔离遇到的问题类型并解决最常见的问题,请完成 故障排除清单。 如果问题仍然存在,请使用以下方法之一(具体取决于问题类型):

  • 使用故障转移群集管理器来确保不同类型的群集网络流量(管理、群集和客户端)遵循正确的路由。
  • 请确保所有必需的端口都已打开。 有关所需端口的详细信息,请参阅 Windows 的服务概述和网络端口要求中的 Hyper-V 服务和群集服务。
  • 验证 IP 地址是否为静态地址。
  • 验证 DNS 配置并解决任何冲突。 确保没有服务对 DNS 记录进行意外更新。

VM 缺失、未启动或生成配置错误消息

症状

  • 还原或克隆 VM 后,它不会启动。
  • 管理客户端不包括特定的 VM。
  • 无法导入或导出 VM。
  • 你会收到引用 Incomplete VM configuration的错误消息。
  • 事件日志包含事件 ID 1069。

可能的原因

  • VM 配置文件存储在本地(非共享)存储中。
  • 磁盘文件或检查点缺失或孤立,或者检查点合并过程未正确完成。
  • 配置版本不匹配。

解决方案

若要隔离遇到的问题类型并解决最常见的问题,请完成 故障排除清单。 如果问题仍然存在,请尝试以下办法:

数据收集

如果需要其他帮助,请收集以下数据,然后联系 Microsoft支持部门。

常规数据

  • 基础设施的版本信息(以及构建信息,如果适用),包括以下组件:

    • Windows Server
    • Hyper-V
    • 集成服务
    • 存储设备、固件和驱动程序
  • 意外行为或错误消息的屏幕截图

  • 跟踪或转储数据文件,包括来自 ProcDump、ProcMon、PerfMon 的数据文件或 livekd

  • RAID 和 SAN 日志

  • 每个群集节点的最新更改和维护文档

  • 记录群集、网络和存储系统状态的 PowerShell 查询的输出

Hyper-V 相关问题的数据

使用Microsoft的故障排除脚本(TSS)自动收集故障排除信息。 有关说明,请参阅 “收集数据”以分析和排查 Hyper-V 方案问题。

此外,请收集以下信息:

  • 来自系统和应用程序日志的相关事件,以及来自 Hyper-V 日志的事件。 Hyper-V 日志在应用程序和服务>>MicrosoftWindows>Hyper-V 的事件查看器中提供。 可以从Event Viewer导出此信息。
  • VM 配置信息。 使用 Hyper-V 管理器或 PowerShell 导出此信息。

群集相关问题的数据

使用Microsoft故障排除脚本(TSS)自动收集故障排除信息。 如需说明,请参阅收集数据以分析和排查集群和高可用性场景。

此外,请收集以下信息:

  • 要从所有节点收集群集日志,请在其中一个群集节点上运行以下命令:

    Get-ClusterLog -UseLocalTime -Destination <folder path>
    
  • FailoverClustering 和 DNS 服务器事件日志通道中的相关事件日志

  • Active Directory 中 CNO 对象的详细信息,包括安全权限

参考

故障转移群集

Hyper-V 和虚拟机

PowerShell cmdlet

存储

Windows Server

资料来源与适用范围

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

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

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