预测能做什么
硬盘故障预测通过持续采集 SMART 属性、链路错误计数与性能趋势,识别「正在退化」的盘,从而把被动抢修变成有窗口的主动更换。它的边界同样清楚:固件缺陷、供电与电子元件突发损坏、外部物理损伤都无法提前预测。因此预测的价值是缩小意外窗口,而不是让冗余或备份可以被省略。
基本信息
| 介质类指标 | 重分配扇区、待定扇区、离线不可纠正扇区、寻道与旋转重试 |
|---|---|
| 固态盘指标 | 磨损指标与剩余寿命、备用块消耗、不可纠正读错误计数 |
| 链路类指标 | CRC 错误、误码率、链路重置次数,异常时常被误判为盘故障 |
| 判读方式 | 看趋势与变化速率,单个阈值只在明显超标时才有意义 |
| 更换窗口 | 冗余充足、有备件、业务低峰,且不同时更换多块成员盘 |
| 不可预测项 | 固件缺陷、供电异常、突发电子故障、物理损伤 |
典型使用场景
- 巡检发现个别盘的重分配扇区连续两个周期增长,需要决定是否排期更换时
- 同批次盘使用年限接近,制定分批更换计划以避开集中重建时
- 固态盘磨损指标接近厂商给出的耐久度参考值,评估替换优先级时
- 链路错误计数增长,先排除线缆与背板再决定是否换盘时
- 更换申请需要写明理由,用趋势数据替代「感觉这块盘不行」时
采集趋势数据
采集趋势数据
# 先看整体健康结论,再看具体属性值
smartctl -H /dev/sdb
smartctl -A /dev/sdb | egrep -i 'Reallocated|Pending|Uncorrect|CRC|Wear|Used'
# 固态盘直接读寿命与写入量
nvme smart-log /dev/nvme0
# 触发一次长自检并在完成后读结果
smartctl -t long /dev/sdb
smartctl -l selftest /dev/sdb
# 关键是把每次输出按日期存档,趋势比单次快照有价值
smartctl -A /dev/sdb >> /var/log/disk/sdb-$(date +%F).log指标逐项读法
| 指标 | 含义 | 趋势判读 |
|---|---|---|
| 重分配扇区 | 已用备用扇区替换的坏扇区数 | 数值不变多为历史遗留;持续增长需更换 |
| 待定扇区 | 读取失败待重试判定的扇区 | 出现即需重点关注并复测 |
| 离线不可纠正 | 无法纠正的读错误次数 | 持续增加意味着数据可读性下降 |
| CRC 错误 | 接口传输错误计数 | 增长倾向链路问题,先换线缆验证 |
| 磨损与剩余寿命 | 固态盘耐久度消耗程度 | 接近厂商参考值时排期替换 |
SMART 自检通过不等于盘健康,通过只说明当下未触发自检的失败条件。预测应基于多指标趋势叠加,而不是某一次自检结果。
预防性更换本身也是一次变更:换盘会触发重建,若同一时间窗内多块盘一起更换,重建并发会把冗余水平压到最低,风险可能高于继续观察。