mdadm RAID degraded 后如何判断是哪块盘真坏(smart 值对比)

4次阅读

RAID degraded 时需结合 /proc/mdstat 与 SMART 数据交叉验证故障盘:先通过 [2/1][_U] 等标记定位离线盘,再用 smartctl - a 检查 Reallocated_Sector_Ct、Current_Pending_Sector、Offline_Uncorrect 三项原始值,横向对比同组硬盘并辅以 dmesg 和物理连接排查。

mdadm RAID degraded 后如何判断是哪块盘真坏(smart 值对比)

mdadm 显示 RAID 处于 degraded 状态(如 [2/1] [_U]),说明至少有一块成员盘已失效或被移出阵列。但“失效”不等于“物理损坏”——可能是临时掉线、连接松动、控制器误判,也可能是 硬盘 真实老化或坏道累积。要确认哪块盘真坏,不能只看 /proc/mdstat,必须结合 SMART 数据交叉验证。

先定位疑似故障盘

/proc/mdstat 输出中识别异常标记:

  • [2/1] [_U]:2 块盘参与,仅 1 块在线;下划线 _ 对应的盘(通常是第一块)已离线
  • [3/2] [UU_]:第 3 块盘状态为 _,即它已不可用
  • 同时运行 mdadm --detail /dev/mdX,查看 State : 行和每块设备后的 FaultyRemoved 或空状态

对每块成员盘执行 SMART 全面检测

不要只看 smartctl -H /dev/sdX 的 summary,它可能显示 PASSED 却掩盖严重隐患。重点检查以下三项原始值(Raw Value):

  • Reallocated_Sector_Ct (ID 5):重映射扇区总数。值 > 0 就需警惕;> 50 基本可判定盘体开始劣化
  • Current_Pending_Sector (ID 197 / C5):等待重映射的扇区数。> 0 表示有读取失败扇区,尚未完成重映射,属于高危信号
  • Offline_Uncorrect (ID 198 / C6):离线无法纠正错误数。> 0 意味着硬盘在自检时发现坏道但无法修复,是物理损坏的强证据

执行命令:
smartctl -a /dev/sdX | grep -E "(Reallocated_Sector_Ct|Current_Pending_Sector|Offline_Uncorrect)"

对比分析:关键看变化趋势与绝对值

同一 RAID 组内各盘应使用同型号、相近服役时间。横向对比更有效:

  • 若某盘 Current_Pending_Sector 为 32,其余均为 0 → 这块盘正在“挣扎”,极可能即将 Failure
  • 若某盘 Reallocated_Sector_Ct 是 127,其他盘都是 0~3 → 它已启用大量备用扇区,寿命大幅缩短
  • 若某盘 Offline_Uncorrect > 0,而其他盘为 0 → 这块盘存在无法修复的物理缺陷,必须更换
  • 特别注意:SSD 要额外关注 Media_Wearout_Indicator (ID 233)Available_Reserve_Space (ID 234),低于 10% 需立即干预

辅助验证:检查系统日志与连接状态

SMART 是静态快照,还需动态佐证:

  • 查内核日志:dmesg | grep -i "sdX|ata|raid",找 ATA bus errorconnection timed outreset failed 等线索
  • 检查物理连接:lsblk 确认设备是否还在;lsscsi 查 SAS/SATA 链路是否识别正常;拔插后能否重新上线
  • 排除控制器问题:同一控制器下其他 RAID 组是否也出现 degraded?如果是,优先怀疑 RAID 卡或背板
text=ZqhQzanResources