总结
存储配置是任何 Windows Server 或 Hyper-V 群集环境的关键组件。 适当的设置可确保应用程序和虚拟机的高可用性、可靠性能、数据完整性以及最短停机时间。 配置错误或环境更改可能会引发一系列问题,例如存储资源不可用、虚拟机(VM)故障和性能瓶颈,到更微妙的症状,例如定期事件日志警告。 本文为管理员提供了解决常见存储配置问题的指南。
故障排除清单
使用此清单进行系统故障排除:
- 验证所有硬件(磁盘、HBA、交换机)是否与 OS 版本兼容。
- 验证所有相关设备驱动程序、存储固件和 DSM(特定于设备的模块)软件是否是最新的。
- 对物理连接(电缆、SVP、网络和存储布线)进行视觉检查。
- 所有群集节点都会看到共享存储(在磁盘管理和故障转移群集管理器中)。
- 验证是否已在所有节点上正确安装和配置多路径 I/O(MPIO)。
- 验证是否已在所有节点上启用和正确配置 Hyper-V 和故障转移群集功能。
- 验证 VM 和存储路径是否可从所有节点访问(使用文件资源管理器或每个节点上 Get-ClusterSharedVolume 进行测试)。
- 验证计划的工作负荷是否有足够的 CSV 和卷容量。
- 验证防病毒、筛选器驱动程序或不支持的第三方软件之间是否存在冲突。
- 查看事件日志,了解与存储、群集或磁盘相关的最近严重事件或警告事件。
常见问题和解决方案
以下部分详细介绍了最常见的故障模式并提供解决方案。
CSV (群集共享卷)“暂停状态”
症状
- VM 无响应
- 事件 ID 5120/5142/153,“所有 I/O 将暂时排队,直到重新建立卷的路径。”
原因和解决方法
- 网络瓶颈或配置错误(例如网络适配器组合不匹配):
- 在所有节点上对齐网络适配器组合(Get-NetLbfoTeam)
- 验证组合配置,并在禁用位置重新启用组合。
- 请考虑将 CSV 和实时迁移流量卸载到专用网络。
- 网络适配器资源耗尽(事件 ID 252 警告)
- 根据硬件供应商的建议增加 RAM 和网络适配器资源。
- 监视资源分配并调整或升级网络适配器(如果定期)。
- 物理磁盘或 HBA 故障:
- 查看磁盘运行状况(Get-PhysicalDisk | Format-Table),事件 ID 157。
- 根据需要更换故障磁盘/HBA、重新插入或重新连接。
- 硬件交换机或电缆故障(例如 FC 开关上的异常电压):
- 检查存储交换机日志和计数器。
- 更换有故障的硬件组件,重新路由布线。
- CSV 或卷容量不足
- 扩展卷或 CSV 存储空间。
- 请考虑设置 CSV 文件监控以实现主动警报。
- 多个防病毒或不支持的筛选器驱动程序:
- 卸载所有防病毒软件,只保留一个。 删除不受支持的筛选器驱动程序(使用 fltmc 进行检查)。
存储路径问题和磁盘可见性问题
- 症状包括磁盘管理中磁盘缺失、意外的“只读”/“脱机”/“已解除分配”状态、事件 ID 11/153/129 以及故障转移失败。
原因和解决方法
- 错误/损坏的 MPIO 配置:
- 确认 MPIO 中的所有路径为 Online(使用 mpclaim -s -d)。
- 更新/重新安装 MPIO。
- 如果可用(尤其是适用于企业 SAN),请切换到供应商 DSM。
- 过时/不正确的驱动程序:
- 更新存储驱动程序、SAN 固件和 DSM/MPIO 软件。
- 无法在所有节点上访问卷:
- 检查权限和路径映射。
- 在每个节点上使用 Get-ClusterSharedVolume 来验证路径。
- 对于 CIFS/SMB 共享,请确保群集和 SCVMM 帐户具有必要的访问权限。
- 其他进程锁定的磁盘或路径:
- 重启节点,使用 handle.exe 或 procmon.exe 来标识进程。
- 如果卡住,请从 VM 分离磁盘、重启节点和重新附加。
- 物理或虚拟存储池配置错误:
- 使用 Get-StoragePool、Get-VirtualDisk、Get-ClusterResource 查看健康状况。
- 如有需要,重新调整池成员资格。
磁盘权限和访问被拒绝问题
症状
- 迁移失败
- 备份失败
- 存储迁移返回“访问被拒 0x80070005”
- 错误消息“帐户无权打开附件”
原因和解决方法
- NTFS 权限不正确
- 使用 icacls <Path\To\Disk.vhdx> /grant “NT VIRTUAL MACHINE<VM_GUID>:(F)”设置正确的权限。
- 如果锁定,请回收所有权:高级安全 > 所有者:管理员 > 再次应用权限。
- 群集/SCVMM 帐户在 SMB/CIFS 共享中缺失
- 将 SCVMM 服务帐户和群集名称对象添加到文件共享权限。
- 对于基于 NetApp/SAN 的 CIFS,请确保 AD 对象具有适当的权限。
- 由于进程崩溃或句柄丢失导致锁定的文件
- 重启服务器/节点以释放文件锁。
- 使用 handle.exe、进程资源管理器、Procmon 检查文件句柄。
群集服务不稳定和已知更新问题
症状
- 群集服务 (clussvc) 失败
- 事件 7031
- 更新后,节点既不会加入,也不会进入隔离区
- 虚拟机意外重启
原因和解决方法
- 已知产品错误(例如,适用于 Windows Server 2019 S2D 的 KB5062557):
- 通过 Windows 更新历史记录删除有问题的更新。
- 根据官方公告部署 KIR MSI。
- 参考:[IcMPath 的 OS 工作项 52578872]
- 配置错误的仲裁或 CSV 映射:
- 根据需要查看和调整仲裁设置和 CSV 分配。
性能下降和高延迟
症状
- 高存储延迟
- IOPS 性能差
- VM 或应用程序速度缓慢
- 定期超时(事件 ID 5120、5142)
原因和解决方法
- 已禁用或配置错误的 S2D 缓存设置:
- 使用正确的注册表值(HKLM:\SYSTEM\CurrentControlSet\Services\Spaceport\Parameters)重新启用/优化。
- 查看缓存/SSD 层运行状况(Get-PhysicalDisk)。
- 硬件资源不足或不平衡:
- 根据 S2D 要求添加或升级 NVMe 和 SSD。
- 监控工作负载,重新平衡并修复任务。
常见问题快速参考表
| 症状 | 原因 | 解决方案 | 键盘命令 |
|---|---|---|---|
| CSV 已暂停,事件 5120/5142 | 网络瓶颈,网络适配器组合,磁盘失败 | 检查组合、网络适配器、容量、更新驱动程序、检查 CSV 运行状况 | Get-NetLbfoTeam,Get-ClusterSharedVolume |
| 磁盘上的事件 153/129/11 | 故障磁盘/HBA、MPIO 配置、过时的驱动程序 | 替换硬件、更新/配置 MPIO/DSM、更新驱动程序 | mpclaim -s -d, Get-PhysicalDisk |
| 在节点上无法访问存储 | 权限、网络、池配置 | 验证权限、所有节点的路径,以及池和虚拟磁盘的运行状况 | icacls、Get-ClusterSharedVolume、Get-VirtualDisk |
| 访问被拒绝(0x80070005),迁移错误 | NTFS/共享权限,锁定的文件 | 正确的权限,回收所有权,重启以释放锁 | icacls、ProcessExplorer/Procmon |
| 群集服务故障,事件 7031,VM 重启 | 错误更新(例如,KB5062557),仲裁 | 卸载更新、应用 KIR、验证仲裁和群集服务 | 更新历史记录,KIR MSI |
| 高存储延迟、持久性超时 | 禁用 S2D 缓存,硬件资源耗尽 | 启用/优化缓存、添加/升级磁盘、重新平衡存储池 | 注册表,Get-PhysicalDisk |
数据收集
在联系Microsoft支持人员之前,可以收集有关你的问题的以下信息。
-
群集日志: Get-ClusterLog -UseLocalTime -TimeSpan 60
-
FailoverClustering 事件日志: 使用事件查看器导出相关日志。
-
CSV 和存储信息:
Get-ClusterSharedVolume | fl Get-PhysicalDisk | Format-Table FriendlyName, CanPool, OperationalStatus, HealthStatus Get-VirtualDisk | Format-Table FriendlyName, HealthStatus -
MPIO 和磁盘信息: mpclaim -s -d diskpart > list disk
-
网络适配器和团队状态: Get-NetAdapter Get-NetLbfoTeam
-
权限: icacls <Path\To\Disk.vhdx>
-
**Procmon 跟踪:**procmon.exe /Quiet /Minimized /Backingfile <tracefile.pml >(重现问题)> procmon.exe /Terminate
-
**Handle.exe(Sysinternals):**handle.exe handles.txt >
-
驱动程序和固件版本: Get-WmiObject Win32_PnPSignedDriver |Select-Object DeviceName、Manufacturer、DriverVersion