商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 系统应用 > Linux怎么查看具体的磁盘阵列健康度

Linux怎么查看具体的磁盘阵列健康度

  发布于2026-08-18 阅读(0)

扫一扫,手机访问

cat /proc/mdstat只能反映RAID的逻辑状态,像[UU]或者[_U]这样的。但它没办法检测出物理盘的老化、坏块增长或者固件异常这些情况。真正的健康检查得用smartctl逐个盘读取SMART原始值,其中Reallocated_Sector_Ct、Media_Wearout_Indicator、Percentage Used等RAW_VALUE指标是重点关注对象。

Linux怎么查看具体的磁盘阵列健康度

cat /proc/mdstat 只能看状态,不能代替健康度检查

它只告诉你阵列当前是不是 [UU][_U],但不反映物理盘真实老化、坏块增长或固件异常。一块盘的 Reallocated_Sector_Ct 已涨到 12,/proc/mdstat 仍可能显示 clean —— 这不是阵列健康,只是“没掉盘”。

真正要查健康度,必须穿透到每块物理盘,用 smartctl 逐个读取 SMART 数据。软件 RAID(mdadm)本身不监控磁盘寿命,它只管逻辑层同步和容错。

  • 先用 lsblk -d -o NAME,MODEL,TRAN 确认哪些设备属于该阵列(比如 sdasdb
  • 对每个盘单独执行 smartctl -a /dev/sdX,别只查 /dev/md0
  • 若输出里有 SMART support is: Disabled,说明访问被拦截,需加参数(见下一条)

smartctl 访问被拒?先确认接口类型再加-d参数

很多服务器(尤其带 RAID 卡或 USB 盒)直接跑 smartctl -i /dev/sda 会失败,这不是硬盘坏了,是路径不对。关键在 -d 参数:

  • SATA 盘挂主板直连但被识别为 SCSI:加 -d atasudo smartctl -i -d ata /dev/sda
  • LSI MegaRAID 卡:查物理盘序号(MegaCli64 -PDList -aAll),再用 -d megaraid,N(N 从 0 开始)→ sudo smartctl -a -d megaraid,0 /dev/sdb
  • USB 硬盘盒:大概率要 -d satsudo smartctl -a -d sat /dev/sdc
  • NVMe 盘:不用 -d,但必须用 -a-A 会漏掉 Percentage Used

别信 VALUE 列,RAW_VALUE 才是真实数字

厂商把原始值做了归一化处理,VALUE 列看着都是 100 或 200,完全无法判断磨损程度。所有关键指标必须盯 RAW_VALUE

  • NVMe 盘:Percentage Used 原始值越大越差(100 = 寿命耗尽);A vailable Spare 低于 A vailable Spare Threshold 就危险
  • SATA SSD:Media_Wearout_Indicator 接近 100 表示 NAND 快耗尽;Reallocated_Sector_Ct 非零即已出现物理坏块
  • HDD:Reallocated_Sector_Ct(ID 5)、Current_Pending_Sector(ID 197)、UDMA_CRC_Error_Count(ID 199)—— 后者高了先换数据线

smartctl -H 显示 PASSED 不等于安全

这个结果只是固件上报的一个快照,RAID 卡可能伪造它,pending 扇区还没触发重映射时也常返回 PASSED。更危险的是:Reallocated_Sector_Ct 已到 3,-H 仍可能显示 PASSED。

所以必须人工检查关键属性的 RAW_VALUE,而不是依赖这一行结论。另外,smartctl -l selftest /dev/sdX 查历史自检日志,比 -H 更可靠 —— 曾失败过的盘,即使现在 PASS,也该列入更换计划。

复杂点在于:同一块盘,NVMe 和 SATA 的 SMART 字段命名、方向、单位全都不一样,混着看会误判。比如 Wear_Leveling_Count 在 SATA 上越大越好,在 NVMe 上根本不存在 —— 它被 Percentage Used 取代,且含义相反。

本文转载于:https://www.php.cn/faq/3004942.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注