概要
本文提供了一种结构化故障排除方法,用于解决在 Windows Server 故障转移群集(WSFC)、存储空间直通、SQL Server Always On 可用性组和 Hyper-V 中滚动升级期间可能会遇到的常见问题。
滚动升级对于维护和升级系统至关重要,确保停机时间最短。 但是,兼容性和配置错误等挑战可能会影响可用性,并可能导致数据丢失。
先决条件
开始滚动升级之前:
- 验证您的工作负载和操作系统版本是否支持滚动升级功能。
- 使用
Get-ClusterNodePowerShell 命令验证所有群集节点是否正常。 - 请确保备份是最新的,包括:
- 系统状态
- 群集配置
- 用户数据
潜在的解决方法
解决滚动升级失败问题
- 使用故障转移群集管理器或
Move-ClusterGroupPowerShell 命令将核心资源移到另一个节点。 - 使用
Suspend-ClusterNode -Drain从节点迁移角色和资源。 - 检查群集日志中是否存在可能阻止作的依赖项或错误。
故障排除清单
-
查看先决条件:确保环境满足本文中所述的所有先决条件。
-
验证群集状态:通过运行
Test-Cluster解决任何验证警告或错误。- 使用
Get-Cluster | Select ClusterFunctionalLevel验证当前群集功能级别。 - 验证所有节点之间的网络连接。
- 使用
-
计划和顺序升级:记录节点升级的顺序(一次一个节点)。
- 将群集角色(例如虚拟机、可用性组或文件共享)迁移出正在升级的节点。
- 将所有节点更新到当前 OS 的最新支持的更新或修补程序。
-
与利益干系人沟通:通知利益干系人并安排维护时段。
- 通知监视团队以避免不必要的警报。
-
确保应用程序意识:验证 SQL Server、Hyper-V 或文件服务等工作负载的应用程序兼容性。
- 通知应用程序所有者计划升级。
-
进行升级前测试:查看 Windows、应用程序、群集和存储的日志,以确定任何预先存在的问题。
常见问题及其各自的解决方案
1.滚动升级不会启动或无法逐出节点
现象
无法暂停、清空或删除群集中的节点。 会收到错误消息,例如以下示例:
节点。。。无法从群集中删除。
原因
节点托管核心群集资源、依赖项配置错误或群集不稳定。
Solution
- 将核心资源移动到另一节点,使用故障转移群集管理器或
Move-ClusterGroup。 - 通过运行
Suspend-ClusterNode -Drain来移动角色和资源。 - 确保该节点不是最新更新的节点或法定节点。
- 检查群集日志以阻止依赖项。
2.无法将升级的节点还原到群集
现象
收到版本不匹配消息或错误消息,例如以下示例:
节点尝试加入故障转移群集,但由于不兼容而失败。
原因
不支持的 OS 版本混合或非更新节点。
Solution
- 验证支持的 OS 和群集版本矩阵。
- 将节点更新到最新的累积更新(CU)。
- 按顺序升级 OS 版本(例如,2016 → 2019 → 2022)。
- 使用
Get-ClusterLog识别版本控制错误。
3. 资源或服务无法上线
现象
升级后,VM 或文件共享等资源进入失败或脱机状态。 常见事件 ID 包括1069和 1146``1230。
原因
升级期间配置错误、缺少注册表项或文件或服务帐户失败。
Solution
- 检查故障转移群集管理器中的群集事件。
- 通过运行
Get-ClusterResource | Get-ClusterOwnerNode来验证资源所有者配置。 - 修复或重新创建缺少的依赖项。
- 通过运行
Restart-Service ClusSvc重启群集服务。
4. 法定人数或通信丢失
现象
群集脱机、节点隔离或事件 ID 1135 和 1136 出现。
原因
网络分区、防火墙配置或仲裁配置错误。
Solution
- 请确保所有必需的端口都已打开。
- 检查网络、DNS 和路由配置。
- 通过运行
Get-ClusterQuorum来检查仲裁设置。 根据需要更新设置。 - 若要确定根本原因,请运行
Validate-Cluster。
5. 更新失败或已知错误
现象
由于已知有问题的更新而导致,群集服务在更新后停止响应,或资源出现故障。
原因
Microsoft更新安装后发生群集不稳定。
Solution
- 查看有关已知问题的Microsoft知识库(KB)文章。
- 如有必要,请删除有问题的更新。
- 应用建议的修补程序或等待新更新。
- 如果问题仍未解决,请提出支持案例。
6.群集验证或功能级别错误
现象
无法更新群集功能级别,或者验证失败。
原因
混合 OS 版本、不完整的升级或过时的驱动程序。
Solution
- 更新所有节点,并确保它们已加入群集。
- 更新硬件驱动程序(如网络和存储)和固件。
- 使用
Update-ClusterFunctionalLevel.. 完成升级。 - 查看驱动程序或验证失败的日志。
高级故障排除和数据收集
对于持久性或复杂问题,请收集以下数据。
群集日志
Get-ClusterLog -TimeSpan 24:00 -Destination
系统和应用程序事件日志
Get-WinEvent -LogName System -MaxEvents 1000 | Export-Csv <Path>\SystemLogs.csv
Get-WinEvent -LogName Application -MaxEvents 1000 | Export-Csv <Path>\AppLogs.csv
资源和节点状态
Get-ClusterNode
Get-ClusterResource
Get-ClusterGroup
Test-Cluster
网络和驱动程序信息
Get-NetAdapter -IncludeHidden | Export-Csv <Path>\NetAdapters.csv
更新历史记录
Get-HotFix | Export-Csv \Hotfix.csv