硬盘的健康情况直接关系到数据的安全性,在硬盘出现错误之前,发现并替换可能故障的硬盘是最有效的方法。
现在的硬盘均支持 S.M.A.R.T.,如果你的桌面或者笔记本计算机开机时提示 S.M.A.R.T. 没启用,请到 BIOS 中打开。
本文中的服务器使用 IBM ServeRAID M5015 控制器,支持操作系统访问所接硬盘的 S.M.A.R.T. 功能。
由于其特殊的结构,不能直接使用 smartctl 工具操作硬盘。
本机的虚拟硬盘 /dev/sdb
从 /var/log/messages 看到:
kernel: 3.057255] scsi 0:0:11:0: Direct-Access ATA HGST HTS725050A7 A420 PQ: 0 ANSI: 5
kernel: 3.058895] scsi 0:0:13:0: Direct-Access ATA HGST HTS725050A7 A420 PQ: 0 ANSI: 5
kernel: 3.060448] scsi 0:0:14:0: Direct-Access ATA HGST HTS725050A7 A420 PQ: 0 ANSI: 5
kernel: 3.061926] scsi 0:0:15:0: Direct-Access ATA HGST HTS725050A7 A420 PQ: 0 ANSI: 5
kernel: 3.280380] scsi 0:0:16:0: Direct-Access ATA HGST HTS725050A7 A420 PQ: 0 ANSI: 5
使用以下命令访问 SMART 信息:
smartctl -a --device=sat+megaraid,11 /dev/sdb
以上命令中的关键是 --device=sat+megaraid,sat 是 SCSI to ATA Translation 的缩写,megaraid 是 LSI 以及其他贴牌厂商的 RAID 卡驱动,包括 IBM ServeRAID,Dell PERC 等。
“11” 这个数字的来源是“scsi 0:0:11:0”。
有了核心的 device 这段,就可以像使用一般直连硬盘一样使用 smartctl 命令了。
废话少说,贴配置文件 /etc/smartd.conf
/dev/sdb -d sat+megaraid,11 -a -e apm,off -s L/../../7/23
/dev/sdb -d sat+megaraid,13 -a -e apm,off -s L/../../7/23
/dev/sdb -d sat+megaraid,14 -a -e apm,off -s L/../../7/23
/dev/sdb -d sat+megaraid,15 -a -e apm,off -s L/../../7/23
/dev/sdb -d sat+megaraid,16 -a -e apm,off -s L/../../7/23
smartd.conf 的格式与 smartctl 命令参数不同,详情参考 smartd.conf(5) 手册页。
-a 将打开一系列选项包括 SMART 健康检测以及自检报告、SMART 指标异常报告等
-e 是一个实验性新功能,可以更改硬盘的 ATA 选项。本例中,为了避免日立硬盘的 Load_Cycle_Count 数值激增,延长硬盘寿命,需关闭硬盘的 APM(高级电源管理)特性。
-s 是对硬盘自检的设置与安排,本例中将在每周日晚 23 时开始对硬盘的长自检。自检时间可以在 smartctl -a 的输出中找到。
最好是覆盖系统已有的 smartd.conf 文件。在本例中,所有的 DEVICESCAN 开头的行必须注释掉。
执行以下命令,设置 smartd 开机自动启动:
systemctl enable smartd
systemctl start smartd