一、先通过linux服务器通过smart 检测你的硬盘和磁盘阵列.

硬盘的状况:
smartctl -i /dev/sda

硬盘的健康状况:
smartctl -H /dev/sda

注意
result后边的结果:PASSED,这表示硬盘健康状态良好
如果这里显示Failure,那么最好立刻给服务器更换硬盘
SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的
通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间
有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了
但是一旦出现报警,侥幸心里是万万不能的……

执行如下命令可以看到详细的参数:
smartctl -A /dev/hdb

输出完整结果:
smartctl -a /dev/hdb

定期登录到服务器上运行smartctl是比较麻烦的,linux提供了系统进程smartd
编辑配置文件:
vi /etc/smartd.conf

这个配置文件中大部分可能是注释掉的说明,只需要和当前硬盘相关的一行写入正确即可:
/dev/hdb -H -m [email protected]

上边的配置表示smartd以静默状态工作,当SMART中报告PASSED的时候不理睬
一旦出现Failure,立刻用邮件通知用户指定的邮箱

修改配置后重启服务:
/etc/init.d/smartd

即可完成对SMART的全部配置。

二、我们还可以通过hdparm 测试硬盘读写速度的方法

 测试各硬盘读取速度判断硬盘故障

  在服务端命令窗口中执行如下命令

  hdparm -t /dev/hda (IDE硬盘)

  hdparm -t /dev/sda (SATA、SCSI、硬RAID卡阵列)

  hdparm -t /dev/md0 (软RAID设备)

  测试结果在空载情况下应 >40M/s ,在负载情况下平均应 > 20M/s 为正常,如测试结果极低则需要进一步使用硬盘专用检测工具测试是否为硬盘故障。

 参  数:

  -a<快取分区> 设定读取文件时,预先存入块区的分区数,若不加上<快取分区>选项,则显示目前的设定。

  -A<0或1> 启动或关闭读取文件时的快取功能。

  -c 设定IDE32位I/O模式。

  -C 检测IDE硬盘的电源管理模式。

  -d<0或1> 设定磁盘的DMA模式。

  -f 将内存缓冲区的数据写入硬盘,并清楚缓冲区。

  -g 显示硬盘的磁轨,磁头,磁区等参数。

  -h 显示帮助。

  -i 显示硬盘的硬件规格信息,这些信息是在开机时由硬盘本身所提供。

  -I 直接读取硬盘所提供的硬件规格信息。

  -k<0或1> 重设硬盘时,保留-dmu参数的设定。

  -K<0或1> 重设硬盘时,保留-APSWXZ参数的设定。

  -m<磁区数> 设定硬盘多重分区存取的分区数。

  -n<0或1> 忽略硬盘写入时所发生的错误。

  -p 设定硬盘的PIO模式。

  -P<磁区数> 设定硬盘内部快取的分区数。

  -q 在执行后续的参数时,不在屏幕上显示任何信息。

  -r<0或1> 设定硬盘的读写模式。

  -S<时间> 设定硬盘进入省电模式前的等待时间。

  -t 评估硬盘的读取效率。

  -T 平谷硬盘快取的读取效率。

  -u<0或1> 在硬盘存取时,允许其他中断要求同时执行。

  -v 显示硬盘的相关设定。

  -W<0或1> 设定硬盘的写入快取。

  -X<传输模式> 设定硬盘的传输模式。

  -y 使IDE硬盘进入省电模式。

  -Y 使IDE硬盘进入睡眠模式。

  -Z 关闭某些Seagate硬盘的自动省电功能。