故障排除指南:Windows Server 故障转移群集运行状况服务

概要

Windows Server 运行状况服务是 Windows Server、故障转移群集和 System Center 环境的关键组件。 它主动监视关键群集资源、服务、磁盘、存储和网络连接的运行状况和可用性,并生成警报,帮助管理员在故障导致中断之前解决问题。 如果健康服务出现故障、未能启动或生成持续警告,它可能会掩盖潜在问题或产生误报,从而危及系统的可用性和性能。

本文提供了用于排查运行状况服务问题的详细清单。 它介绍诊断步骤、常见错误方案、已验证的解决方案和用于收集数据的工具,以便进行根本原因分析。

故障排除清单

使用此清单进行系统故障排除:

  • 检查健康服务状态
    • 检查故障转移群集管理器(mmc)、Windows 事件查看器和 PowerShell 中的状态:Get-Service -Name HealthServiceGet-ClusterResource |Where-Object {$_.ResourceType -eq“HealthService”}
  • 查看最近的警报和事件
    • 检查系统、应用程序和 FailoverClustering 事件日志中是否有错误或反复警告(事件查看器)。
    • 请注意事件 ID,例如 0、7024、7031、7034、5120、5121、5126。
  • 检查群集资源状态
    • 验证健康服务是否在集群面板中处于联机状态(绿色状态)。
    • 确保没有任何依赖资源或关键服务失败。
  • 评估系统先决条件
    • 验证群集节点是否具有一致的 OS 和更新级别。
    • 存在足够的磁盘空间、内存和网络连接。
    • 为群集路径和二进制文件配置防病毒或安全软件排除项。
  • 查看最近的更改
    • 任何最近的更新、升级、网络更改、群集配置修改或磁盘添加?
    • 如果症状在更改后开始,请回滚或验证最近更新的影响。
  • 检查网络和防火墙设置
    • 确保节点(例如 TCP/UDP 5985、135、445、3343)之间打开所需的端口(群集和运行状况服务)。
  • 验证磁盘和存储运行状况
    • 检查 CSV、仲裁磁盘或见证磁盘状态。
    • 运行 chkdsk 并查看运行状况诊断。
  • 同步时间和证书
    • NTP 已正确配置;群集节点之间没有明显的时钟偏移。
    • 健康服务使用的证书(如果有的话)是有效的且没有过期。
  • 运行群集验证
    • 使用故障转移群集管理器中的群集验证向导进行自动检查,专注于存储、网络和系统配置。

常见问题和解决方案

1. 健康服务无法启动或会脱机

症状

  • 故障转移群集管理器将运行状况服务显示为脱机或处于失败状态。
  • 事件 ID:7024、7031、0(服务意外终止)、群集事件 1205/1069。

原因和解决方法

  • 损坏的健康服务二进制文件/安装
    • 动作:卸载并重新安装运行状况服务角色/组件。
  • 系统完整性违规:
    • 操作:在每个节点上运行 sfc /scannow 和 DISM 修复命令。DISM /Online /Cleanup-Image /RestoreHealth
  • 资源不足(RAM/CPU/磁盘):
    • 作:释放空间、增加资源、根据需要移动工作负荷。
  • 待处理的 Windows 更新:
    • 操作:安装所有未决更新并重启集群节点。
  • 依赖服务未运行:
    • 作:确保 WMI、RemoteRegistry 和群集服务正在运行。
  • AV/防火墙干扰:
    • 操作:添加排除项
      • C:\Windows\Cluster
      • C:\ClusterStorage
      • 群集二进制文件和 SQL/Hyper-V 二进制文件

2. 健康服务事件日志错误或反复出现的群集健康警报

症状

  • 不断的健康警告。
  • 事件日志 ID:5120/5121(存储/网络问题)、5126(资源脱机)、WMI 错误。

原因和解决方法

  • 资源依赖项失败:
    • 作:验证所有依赖项(磁盘、SMB、存储、复制)处于联机状态和正常状态。
  • 网络分区:
    • 作:使用群集验证和 netstat 跟踪丢失/中断的通信。
    • 重新配置或修复网络适配器,查看交换机和路由日志。
  • 仲裁磁盘或见证服务器故障:
    • 操作:检查磁盘运行状况,并运行 chkdsk,根据需要替换或重新配置仲裁或见证磁盘。
  • 存储空间/S2D 池问题:
    • 操作:使用 PowerShell:Get-StoragePool、Get-VirtualDisk、Get-PhysicalDisk 查看状态。
    • 运行存储池优化,添加/替换故障磁盘。

3. 健康服务的高 CPU 和内存使用情况

症状

  • “HealthService.exe”消耗过多的系统资源。

原因和解决方法

  • 许多资源和监视器:
    • 作:优化受监视的对象、删除不需要的性能计数器,或跨节点拆分工作负荷。
  • 日志文件膨胀或泄漏:
    • 作:存档或截断日志、检查停滞的事务、清除临时目录。
  • 损坏的性能计数器:
    • 操作:重建计数器:lodctr /r

4. 健康服务证书/身份验证错误

症状

  • 提及证书问题、访问被拒绝(5)、身份验证或安全通道错误的事件。

原因和解决方法

  • 已过期/吊销的证书:
    • 操作:续订或替换运行状况服务和群集证书。 确保 CRL(证书吊销列表)可访问。
  • 时间偏移:
    • 操作:确保跨群集节点的 NTP 时间同步。w32tm /query /status
  • 不匹配的安全/身份验证协议:
    • 作:验证群集 Kerberos/NTLM 协议是否匹配(Windows 身份验证必须跨节点对齐)。
    • 根据需要设置 GPO/注册表设置。

5. “拒绝访问”或权限/注册表问题

症状

  • 运行状况服务无法访问群集资源、系统日志或注册表项。
  • 特定错误代码(例如 5,0x80070005)。

原因和解决方法

  • 缺少权限:
    • 操作:将群集服务帐户和 SYSTEM 添加至本地管理员组,并授予所需的资源权限。
  • 计算机/服务帐户密码问题:
    • 操作:使用Test-ComputerSecureChannel -Repair -Verbose 重置安全通道

6. WMI 问题影响运行状况服务

症状

  • WMI 存储库相关的错误和管理对象访问失败。
  • 群集日志显示与 WMI 相关的错误。

原因和解决方法

  • 损坏的 WMI 存储库:

    • 操作:
    winmgmt /verifyrepository
    winmgmt /resetrepository
    mofcomp cluswmi.mof
    
  • WMI 命名空间权限不足:

    • 作:使用“wmimgmt.msc”验证 root\cimv2 和群集命名空间的安全性,使用“wmimgmt”或 PowerShell 进行修复。

常见问题快速参考表

症状 错误/事件 ID 原因 决议
离线状态健康服务 7024, 7031, 0 二进制损坏,依赖项缺失 重新安装,检查服务
持久性健康警告 5120, 5121, 5126 存储/网络/仲裁问题 检查磁盘、CSV/网络
高 CPU/内存 HealthService - 许多监视器/性能计数器,泄漏 优化、清除计数器
拒绝访问 5、0x80070005 权限、AV 或 ACL 配置错误 设置权限,排除杀毒软件。
WMI 存储库错误 - WMI 存储库损坏 winmgmt /resetrepository
SSL/证书/认证失败 7034, 1069, 1207 过期/缺少证书,时间偏差 续订/重新导入、同步 NTP
健康检查触发故障转移 1676, 1135, 1177 心跳检测失败,IsAlive 阈值 (生存状态阈值),VSS 优化备份,网络诊断(net diag)
服务无法访问注册表 86, 5126 缺少注册表项或权限 添加/还原,ACL 审阅

数据收集

在联系Microsoft支持人员之前,可以收集有关你的问题的以下信息。

  • 群集诊断日志:Get-ClusterLog -Destination <路径> -UseLocalTime
  • 服务事件日志:- 事件查看器中的应用程序、系统和 FailoverClustering 日志。
  • 服务状态快照:Get-Service HealthService,Get-ClusterResource
  • 网络和存储状态:ipconfiguration /all、Test-NetConnection、Get-StoragePool、Get-VirtualDisk
  • 资源和角色列表:Get-ClusterGroup、Get-ClusterResource
  • WMI 诊断:winmgmt /verifyrepository
  • 群集验证报告:在故障转移群集管理器中运行群集验证。
  • 特定错误屏幕截图和资源状态。

发送日志和诊断信息以提供支持,或根据组织政策使用安全的工作区共享。

References