windows存储池无原生健康预警开关,需依赖物理盘s.m.a.r.t.数据与storsvc服务;可通过设置中“磁盘和卷”查看驱动器运行状况,或用powershell执行get-storagereliabilitycounter查estimatedlifeleft、readerrorsuncorrected等关键指标,结合事件日志id 1001/1002确认预测故障。
windows 存储池本身不提供独立的“健康预警开关”,其磁盘状态监测完全依赖底层物理磁盘的 s.m.a.r.t. 数据和 windows 存储健康服务(storsvc)的轮询能力。预警是否触发,关键看池中每块物理盘是否被系统识别为支持健康事件上报的设备(主要是原生 nvme ssd),以及存储池配置是否启用可靠性功能。
查看存储池中磁盘的实时健康状态
这是最直接的日常检查方式,能快速定位异常盘:
- 打开“设置” → “系统” → “存储” → “高级存储设置” → “磁盘和卷”
- 在左侧列表中找到你的存储池(通常显示为“存储空间”或“Storage Space”)
- 展开该池,逐个点击其中的物理磁盘条目
- 点击右侧“属性” → 滚动到“驱动器运行状况”区域
- 若显示“估计剩余寿命”数值(如 72)、“可用备用空间”百分比,或出现黄色/红色提示(如“可靠性降低”),说明该盘已成功上报健康数据;若该区域空白或仅写“驱动器运行正常”,大概率是 SATA 盘、USB 盘或固件未开放健康字段
用 PowerShell 获取池内每块 SSD 的寿命与错误计数
命令行可绕过图形界面限制,读取更底层指标,尤其适合脚本化监控:
- 以管理员身份运行 Windows Terminal
- 执行:Get-StoragePool | Where-Object HealthStatus -ne "Healthy" | Get-PhysicalDisk | Get-StorageReliabilityCounter —— 只查当前不健康的盘
- 或执行:Get-PhysicalDisk | Where-Object MediaType -eq SSD | Get-StorageReliabilityCounter | Select FriendlyName, HealthStatus, EstimatedLifeLeft, TotalPowerOnHours, ReadErrorsUncorrected, WriteErrorsUncorrected
- 重点关注:ReadErrorsUncorrected 和 WriteErrorsUncorrected 是否大于 0;只要非零,就代表已出现无法修复的物理坏块,该盘应立即从池中移除并替换
- EstimatedLifeLeft 若返回数字(如 45),即为固件计算的剩余寿命百分比;若为 null,说明该 SSD 不支持此字段
验证存储池是否收到预测性故障告警
Windows 会将 SSD 固件主动上报的“即将失效”信号记录为系统事件,这是最及时的硬件级预警:
- 管理员终端中运行:wevtutil qe "Microsoft-Windows-Storage-Health/Operational" /q:"*[System[(EventID=1001) or (EventID=1002)]]" /c:5 /rd:true
- EventID 1001 表示“预测性故障已检测到”,1002 表示“预测性故障已清除”
- 若查到 1001 事件,对应盘的 InstanceName 就是故障盘标识,需立刻停用该盘并从池中踢出
- 若无结果,不代表安全——可能只是固件未上报,或 storsvc 服务被禁用,需补查:Get-Service storsvc 确认状态为 Running
确保存储池具备基础容错与自动响应能力
健康预警只有配合合理的池配置才能真正起作用:
- 创建池时务必选择“镜像”或“奇偶校验”布局,单盘直通模式(Simple)无冗余,预警再早也来不及抢救
- 在“存储空间设置”中开启“启用写入缓存”(对 NVMe 有效)和“自动修复”选项,让系统在发现逻辑错误时主动重建
- 避免将 USB 移动硬盘、SATA 转接盒或老旧机械盘加入生产环境池——它们几乎不支持 S.M.A.R.T. 健康上报,预警形同虚设
- 定期运行:Repair-VirtualDisk -FriendlyName "你的池名",强制触发一致性检查,提前暴露潜在介质问题











