首页/系统/服务器硬件与 RAID 速查/磁盘故障的典型征兆
硬盘故障与更换68 条

磁盘故障的典型征兆

盘故障很少毫无预兆:SMART 告警、内核 IO 错误、阵列掉盘事件、性能突降、机箱告警灯都是常见前兆,按信号来源分类记录能加快定位。

磁盘故障的征兆

盘故障很少毫无预兆: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 增长偏链路
  • 第三步看时间线:把报错时间与业务告警、机房变更对齐,找共性
  • 第四步再决定动作:链路问题先换线换槽验证,盘体问题按换盘流程处理
先判断是「盘坏」还是「链路、背板、供电引起盘掉线」:后者单纯换盘会反复复发,且每次掉盘都在消耗阵列的冗余余量。
阵列已降级时不要安排重启、固件升级、扩容等高风险操作:降级期间任何一次意外都可能让阵列彻底不可用,优先恢复冗余。

易错点

  • 看到错误就换盘:未区分盘体与链路原因,换完继续掉,还会把好盘换成新盘浪费预算
  • 只查系统日志不查卡事件日志:不少掉盘起初只在卡的日志里有记录,系统侧一切正常
  • 忽略性能下降这个前兆:重试增多会让延迟先升后崩,等业务告警时盘已经掉线
  • 把告警灯当唯一依据:定位要靠槽位灯加序列号双重核对,拔错盘会一次丢两块
  • 故障后不记录时间线:同类问题复发时缺少比对依据,只能重新排查一遍
  • 在阵列已降级时做大动作(重启、升级固件、扩容):一次意外就会让阵列彻底不可用,应先恢复冗余
  • 只盯单块盘的健康:同一批次、同一机箱的盘往往同期老化,要按批次做趋势统计

数据来源与参考

  • smartmontools 文档(健康评估)
  • Linux 内核文档(SCSI 错误处理)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌