windows存储池无独立健康预警开关,依赖s.m.a.r.t.与storsvc服务协同监控;ssd(尤其nvme)可触发可视化告警,机械硬盘/sata ssd仅支持手动检查;需确保storsvc运行并查事件日志,发现异常应立即备份、退役、移除故障盘。
windows 存储池(storage spaces)本身不提供独立的“健康预警开关”,其磁盘状态监控完全依赖底层物理磁盘的 s.m.a.r.t. 数据与 windows 存储健康服务(storsvc)的协同工作。只有当池中某块物理磁盘被系统识别为 ssd(尤其是原生 nvme)且固件支持健康事件上报时,才可能触发可视化告警;机械硬盘或 sata ssd 通常仅能通过手动检查呈现状态变化,不会自动弹窗或推送通知。
查看存储池中磁盘的实时健康状态
这是最直接、无需第三方工具的方式:
- 打开“设置 → 系统 → 存储 → 高级存储设置 → 磁盘和卷”,找到属于存储池的物理磁盘(注意区分“池成员”与“独立磁盘”,部分型号会标注“Used by Storage Space”)
- 点击该磁盘 → “属性” → 滚动至“驱动器运行状况”区域
- 若显示“可靠性降低”“备用容量不足”或“估计剩余寿命”数值偏低(如<20%),说明该磁盘已触发系统级健康警告
- 若显示“正常”但无具体数值(如 EstimatedLifeLeft 为空),大概率是固件未暴露关键 SMART 字段,或该盘为机械硬盘/SATA SSD
用 PowerShell 强制读取池内磁盘的可靠性指标
适用于需要量化数据(如写入量、通电时间、重映射扇区数)的场景:
- 以管理员身份运行 Windows Terminal,执行:
Get-PhysicalDisk | Where-Object {$_.Usage -eq "Data" -or $_.Usage -eq "Journal"} | Get-StorageReliabilityCounter | Select-Object FriendlyName, HealthStatus, OperationalStatus, PowerOnHours, TotalBytesWritten, ReallocatedSectorCount, EstimatedLifeLeft - 重点关注 HealthStatus(应为 “Healthy” 或 “Unhealthy”)、ReallocatedSectorCount(非零即存在物理缺陷)、EstimatedLifeLeft(SSD 专属,低于 10% 需警惕)
- 若返回空值或报错 “No MSFT_StorageReliabilityCounter object found”,说明该磁盘不支持或未启用可靠性计数器,需改用 WMIC 或 CrystalDiskInfo 补充验证
确认存储健康服务是否正常运行
storsvc 是整个预警链路的中枢,禁用后所有自动轮询与事件上报将中断:
- 在管理员终端中运行:
Get-Service storsvc | Select-Object Name, Status, StartType
确保 Status 为 Running,StartType 为 Automatic - 若未运行,立即启动:
Start-Service storsvc - 再检查事件日志是否有健康事件记录:
wevtutil qe "Microsoft-Windows-Storage-Health/Operational" /q:"*[System[(EventID=1001) or (EventID=1002)]]" /c:3
返回结果含时间戳和描述,即表示服务已成功捕获磁盘异常
对存储池磁盘发出预警后的标准响应动作
一旦发现某块池成员磁盘状态异常,不应等待故障发生:
- 立即备份池中所有重要数据——存储池的冗余(镜像/奇偶校验)不能替代定期外部备份
- 在“存储空间”设置中,将该磁盘标记为“退役”(Retire),系统会自动迁移其数据至其他健康磁盘
- 使用 Remove-PhysicalDisk 命令将其从池中安全移除,避免后续写入加剧恶化
- 更换新磁盘后,重新添加进池并运行 Optimize-Volume 触发数据再平衡











