Windows Server 环境中的磁盘、文件系统和存储问题可能会导致无法访问的驱动器、文件或文件夹损坏、意外的驱动器状态更改以及应用程序或备份失败。 如果未及时解决,这些问题可能会损害数据完整性、中断服务可用性并导致停机或数据丢失。
本文提供了指导,可帮助你有效地识别、诊断和修复数据损坏和磁盘错误。
先决条件
- 在执行任何修复或修改任何磁盘之前,请备份所有关键数据。
- 请确保对受影响的设备具有管理权限。
- 熟悉存储子系统体系结构和事件日志监视。
- 请确保使用现代的卷管理工具。 避免弃用的功能,例如动态磁盘
注意
本文讨论必须在管理 Windows 命令提示符或管理 Windows PowerShell 命令提示符下运行的命令。
故障排除清单
使用此清单进行系统故障排除。
检查驱动程序和固件
确保与存储相关的驱动程序和固件是最新的。 如果需要,请咨询硬件供应商以获取最新的驱动程序和诊断工具。 此步骤包括组件驱动程序,例如:
- iSCSI 端口
- RAID 控制器
- 主机总线适配器 (HBA)
- 特定于设备的模块(DSM)
- 多路径 I/O (MPIO)
扫描存储系统的运行状况
在扫描模式下运行 chkdsk ,在不进行更改的情况下查找潜在的存储系统问题。 以管理员身份打开 Windows 命令提示符窗口,然后运行以下命令:
chkdsk /scan
查看相关事件的事件日志
以下事件 ID 指示数据损坏或磁盘错误:
- 事件 ID 55,
The file system structure on the disk is corrupt and unusable. Please run the chkdsk utility on the volume. - 事件 ID 98、
Volume C: (\Device\HarddiskVolume3) needs to be taken offline to perform a Full Chkdsk. Please run "CHKDSK /F" locally via the command line or run "REPAIR-VOLUME \<drive:>" locally or remotely via PowerShell. - 事件 ID 129,
Reset to device, \Device\RaidPort1, was issued. - 事件 ID 153、
The IO operation at logical block address 123456 for Disk 2 was retried. - 事件 ID 157、
Disk 2 has been surprise removed.
扫描和修复 NTFS 卷
注意
可复原文件系统 (ReFS) 卷可以自动修复损坏问题。 如果想要扫描卷,仍可以运行 chkdsk 。
-
若要获取有关卷的详细信息,请在 Windows 命令提示符处运行以下命令:
fsutil fsinfo ntfsinfo <RootPath>:注意
在此命令中, <RootPath> 表示驱动器根的驱动器号。
-
若要检查卷是否脏,请在 Windows 命令提示符处运行以下命令:
fsutil dirty query <VolumePath>:注意
在此命令中, <VolumePath> 表示驱动器号。
-
如果上一步的结果指示卷状态为脏,请安排卷的维护窗口。 在修复过程中无法访问磁盘。 在维护时段内,在 Windows 命令提示符处运行以下命令:
chkdsk /f /r注意
如果
chkdsk未修复磁盘错误,请考虑检查清单的其余部分以发现更多问题。 但是,必须从备份还原数据。
高级故障排除
如果错误仍然存在,请进一步测试系统以隔离问题。 执行以下步骤:
- 卸载任何第三方磁盘管理软件,例如 Diskeeper。
- 删除或更新筛选驱动程序。
- 切换到不同类型的驱动程序。 例如,RAID 控制器驱动程序或单片驱动程序。
- 检查多路径 I/O 配置。 有关详细信息,请参阅 多路径 I/O (MPIO) 故障排除指南。
- 若要将问题隔离到特定硬件,请从群集中删除单个磁盘,然后测试系统。
常见问题和解决方案
事件 ID 153:对磁盘 2 的逻辑块地址 123456 处的 IO 操作进行了重试
事件 ID 153 指示存储子系统已重载。 此条件会导致请求超时。事件 ID 153 类似于事件 ID 129。 事件有所不同,如下所示:
- 当 Storport 微型端口驱动程序(有时称为适配器或 HBA 驱动程序)超时请求时,将记录事件 ID 153。
- 当 Storport 驱动程序 (Storport.sys) 超时对磁盘的请求时,将记录事件 ID 129。
由于 Storport 微型端口驱动程序和 Storport 驱动程序交互的方式,事件 ID 153 可能不会附带错误消息。
若要解决此问题,必须解除重载。 执行以下步骤:
- 确定流量在系统中的分布方式(例如,通过检查性能监视器统计信息)。
- 确保有足够的控制器来处理系统负载。 如果有多个共享控制器的高负载驱动器,请考虑在不同的控制器之间拆分驱动器。
- 请检查控制器配置,尤其是任何节流配置(例如适用于 VMware 存储 I/O 控制的配置)。
- 如果系统流量未按预期流动,请检查以下问题:
- iSCSI 配置问题,例如损坏的电缆、损坏的网络适配器或处理非存储流量和存储流量的网络适配器。
- MPIO 配置问题,例如多路径配置不充分或配置不当。
- 如果前面的步骤未解决超时问题,请联系硬件供应商,了解有关特定驱动程序超时的信息。
事件 ID 129:重置到设备 \Device\RaidPort1 的请求已被发出。
与事件 ID 153 类似,事件 ID 129 指示存储子系统已重载。 这种情况会导致请求超时。当 Storport 驱动程序 (Storport.sys) 对磁盘的请求超时时,将记录事件 ID 129。 事件信息包括与受影响的 Storport 驱动程序关联的存储适配器(也称为微型端口驱动程序)的名称。
以下问题可能会导致此行为:
- LUN 未响应。
- 硬件问题(如故障 SAN 路由器)会导致请求下降。
若要解决此问题,请执行以下步骤:
- 验证存储网络是否稳定且 LUN 正在响应。
- 如果需要有关磁盘优化的信息,请联系存储供应商。 除非有供应商指导,否则不要更改注册表中的磁盘超时值。
事件 ID 157:磁盘 2 已意外删除
此事件表示 Classpnp.sys 驱动程序从即插即用(PNP)管理器接收到对不可移动磁盘的意外删除请求。
当系统与磁盘之间的通信中断时,通常会发生此问题。 例如,以下任何事件都可以生成此事件:
- SAN 网络结构错误
- SCSI 总线问题
- 磁盘故障
- 在系统运行时拔出磁盘的用户
若要解决此问题,请执行以下步骤:
- 验证磁盘子系统是否正常。
- 检查磁盘硬件的状态。
- 检查存储连接是否存在中断。
事件 ID 55 和事件 ID 98:请运行 chkdsk 实用工具
NTFS 事件(如事件 ID 55、50、140 和 98)表示文件系统损坏和类似问题。 发生以下一个或多个问题时,会发生文件系统损坏:
- 磁盘具有错误的扇区。
- 文件系统发送到磁盘子系统的 I/O 请求未成功完成。
注意
由于 NTFS 无法将数据写入事务日志,此问题可能会影响 NTFS 停止或回滚无法写入数据的事务操作的能力。
若要解决这些问题,请执行以下步骤:
-
打开管理 Windows 命令提示符窗口,然后运行以下命令:
chkdsk /f /r此命令可修复和恢复扇区。
-
验证基础硬件是否正常工作。
-
更新 SCSI 端口或 RAID 控制器驱动程序。
-
删除或更新筛选驱动程序。
-
更新第三方存储驱动程序或固件。
-
如果问题仍然存在,请尝试切换到不同类型的驱动程序。 例如,RAID 控制器驱动程序或整体驱动程序,或者尝试将硬件重新排列到各种组合中。
第三方信息免责声明
本文中提到的第三方产品由 Microsoft 以外的其他公司提供。 Microsoft 不对这些产品的性能或可靠性提供任何明示或暗示性担保。