SMART(SFF-8035i)是硬盘生产商们建立的一个工业标准, SFF-8035i工业标准经过ATA-3, ATA-4, 到了ATA-5, 加入了一个错误信息日志(error log)和一系列硬盘自测SMART命令. 这个标准就是在硬盘上保存一些跟执行情况, 可靠程度, 读找错误率等属性的数据, 所有属性都有一个1字节(大小范围 1-253)的标准化值, 还包含另一个1字节的关键阶段值, 如果属性中某个数据接近小于或达到关键阶段值,那么硬盘就很可能会在不久出现严重的读写问题, 至少也是超过它的设计使用极限了, 这时应该做系统完全备份了.
SMART适用于IDE和SCSI硬盘, 如果硬盘支持SMART标准, 就可以使用smartmontools来 监视硬盘的状态, smartmontools的安装如下, 这里我使用的是IDE的硬盘, 设备是ad0
# cd /usr/ports/sysutils/smartmontools # make all install clean # echo 'smartd_enable="YES"' >> /etc/rc.conf # echo '/dev/ad0 -H -m mymailbox@mymachine' > /usr/local/etc/smartd.conf # /usr/local/etc/rc.d/smartd.sh start
上面我设置smartd在发现错误后发送邮件通知我, 此外还可以根据需要定期测试硬盘, 查看其是否有错误, 具体设置可以参见/usr/local/etc/smartd.conf.sample
还可以通过smartctl来查看和测试硬盘, 常用命令如下:
-
查看硬盘是否支持SMART标准
# smartctl -i /dev/ad0
-
查看硬盘的健康状况
# smartctl -H /dev/ad0
-
查看硬盘错误日志
# smartctl -l error /dev/ad0
-
进行硬盘自检
# smartctl -l selftest /dev/ad0
-
终止硬盘自检
# smartctl -X /dev/ad0