磁盘故障的征兆
盘故障很少毫无预兆:SMART 属性恶化、内核 IO 错误、阵列掉盘事件、性能突降、机箱告警灯都会先后出现。真正要紧的是把信号源分类记录——是盘体级别的介质问题,还是链路、背板、供电引起的掉线。前者换盘即可,后者单纯换盘会反复复发,处理思路完全不同。
征兆与信号源
| 征兆 | 观察位置 | 初步判断 |
|---|---|---|
| SMART 属性恶化 | smartctl、阵列卡工具 | 盘体健康下降 |
| 内核报 IO 错误 | dmesg、journalctl | 链路或盘介质问题 |
| 阵列盘 Offline/Failed | 卡工具、/proc/mdstat | 卡侧已认定故障 |
| 重建后再次掉线 | 卡事件日志 | 链路、背板或供电待查 |
| 性能突然下降 | 业务监控、iostat | 重试增多或阵列已降级 |
三处交叉核对
三处交叉核对
dmesg -T | grep -i -E "i/o error|medium error|reset" | tail -20 # 内核侧
smartctl -H /dev/sdb # 盘体健康
smartctl -A /dev/sdb | grep -Ei "Reallocated|Pending|CRC" # 关键属性数值
storcli /c0/eall/sall show | grep -Ei "Offln|Failed|Rbld" # 卡侧状态
# 三处结论一致才叫证据:内核报错但卡侧正常,优先怀疑链路与背板判断顺序
- 第一步看阵列状态:是否已降级、降级几块盘,决定处理紧迫度
- 第二步看错误类型:medium error 偏介质,link reset 与 CRC 增长偏链路
- 第三步看时间线:把报错时间与业务告警、机房变更对齐,找共性
- 第四步再决定动作:链路问题先换线换槽验证,盘体问题按换盘流程处理
先判断是「盘坏」还是「链路、背板、供电引起盘掉线」:后者单纯换盘会反复复发,且每次掉盘都在消耗阵列的冗余余量。
阵列已降级时不要安排重启、固件升级、扩容等高风险操作:降级期间任何一次意外都可能让阵列彻底不可用,优先恢复冗余。