什么是 SMART
SMART 是磁盘固件内置的自监测机制,把重分配扇区、待映射扇区、离线不可纠正错误、通电时间、温度等计数器暴露出来。smartctl(smartmontools 包)读取这些数据:-H 给出整体健康判定,-A 列出全部属性与阈值,-a 则是完整信息。它擅长发现机械盘的渐进式劣化,对 SSD 主要看磨损与介质错误计数,且必须能被设备支持才能读到。
基本信息
| 软件包 | smartmontools(smartctl / smartd) |
|---|---|
| 健康判定 | smartctl -H /dev/sda |
| 属性明细 | smartctl -A /dev/sda |
| 被动监控 | smartd 守护进程可按阈值告警 |
| 权限 | 通常需要 root 或 CAP_SYS_ADMIN |
典型使用场景
- 巡检与批量核对:脚本遍历所有盘取健康结论与关键属性
- 故障盘确认:出现读错误或超时后判断是否该换盘
- RAID 与 JBOD 环境:用 -d 参数穿透 RAID 卡读取单盘属性
- SSD 磨损评估:看磨损指示与介质错误计数,规划更换周期
- 上线验收:记录新盘基线属性,便于日后对比劣化趋势
常用命令
常用命令
sudo smartctl -H /dev/sda # 快速健康判定
sudo smartctl -A /dev/sda | grep -iE 'Reallocated|Pending|Media|Temp|Wear'
sudo smartctl -i /dev/sda # 型号、序列号、固件版本
sudo smartctl -d megaraid,0 -a /dev/sdb # RAID 卡后第一块盘
sudo smartctl --scan # 列出可识别的设备
sudo smartctl -t short /dev/sda # 触发短自检(不中断业务)
sudo smartctl -l selftest /dev/sda # 查看自检历史结果关键属性判读
| 属性 | 含义 | 异常信号 |
|---|---|---|
| Reallocated_Sector | 已重分配扇区数 | 非 0 且持续增长就是劣化信号 |
| Current_Pending | 待映射扇区 | 大于 0 表示读取失败待处理,优先关注 |
| Offline_Uncorrectable | 离线不可纠正错误 | 非 0 说明介质已出现坏块 |
| Temperature_Celsius | 当前温度 | 长期偏高会加速老化与掉盘 |
smartd 可以把属性阈值写成告警规则,让磁盘劣化在损坏前就被发现;比人工巡检更可靠,适合批量机器。
SMART 判定为 PASSED 不等于盘没问题:固件阈值往往很宽松,属性趋势比单次结论更有参考价值,出现增长就得安排更换。
批量巡检可以用一行循环覆盖所有盘:遍历 lsblk -dno NAME 的输出逐个执行 smartctl -H 并抓取结果行,把输出接到监控或工单系统,比逐台登录可靠。