概要
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.mofWMI 命名空间权限不足:
- 作:使用“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
- 群集验证报告:在故障转移群集管理器中运行群集验证。
- 特定错误屏幕截图和资源状态。
发送日志和诊断信息以提供支持,或根据组织政策使用安全的工作区共享。