硬盘健康检测(SMART)
场景
机器变慢、有咔哒声,或者阵列卡报介质错误,需要确认盘是不是要坏。
前置条件
- 能进系统或带外管理
- 直通盘用
smartctl,RAID 卡后面的盘要看阵列卡 - 提前备份,检测本身不会损坏数据但坏盘可能随时挂
配置
# 安装
dnf install -y smartmontools || apt install -y smartmontools
# 看总体健康
smartctl -H /dev/sda
# 看详细属性
smartctl -a /dev/sda
# 短测(2 分钟)/ 长测(几小时)
smartctl -t short /dev/sda
smartctl -t long /dev/sda
# 看测试结果
smartctl -l selftest /dev/sda
RAID 卡后面的盘:
storcli /c0/eall/sall show all | grep -i "media error\|predictive"
验证
重点看这几个属性:
| 属性 | 含义 |
|---|---|
Reallocated_Sector_Ct |
已重映射扇区,非 0 就要警惕 |
Current_Pending_Sector |
待映射扇区,通常意味着坏道 |
Offline_Uncorrectable |
离线不可纠正错误 |
UDMA_CRC_Error_Count |
线缆/背板问题,不是盘坏 |
Temperature_Celsius |
温度,持续 50℃ 以上要查风道 |
回滚
检测不改数据,无需回滚。长测会占用磁盘,业务高峰别跑。
坑
- RAID 卡后面的盘
smartctl看不到,要用storcli ... show all或-d megaraid,N。 Reallocated_Sector_Ct缓慢增长是正常老化,突然暴涨要立刻换盘。- 长测期间性能下降,别在生产高峰做。
- 温度高不一定是盘的问题,可能是风扇或风道。
- 换盘前先确认阵列已经重建完成,别同时掉两块。
- 笔记本和桌面盘的 SMART 阈值和服务器盘不一样,别照搬。