smartmontools介绍

     smartmontools是一款开源的磁盘控制,监视工具,可以运行在Linux,Unix,BSD,Solaris,Mac O
  S,OS/2,Cygwin和Windows上,同时它还可以从启动光盘或启动软盘运行,支持ATA/ATAPI/SATA-3
  (到-8)位的硬盘和SCSI硬盘,另外还支持磁带设备,它的老家在smartmontools.sourceforge.net,实际上
 它是一个软件包,包括了两个实用程序:smartctl和smatd。它监控的硬盘必须具有S.M.A.R.T特性,目前所
 有硬盘都有这个特性,但默认情况下通常没有开启这个功能,有两种方法来开启这个特性:1)通过BIOS设置选
 项2)通过smartctl命令。利用它可以测试硬盘的健康状况,并在发生故障前进行预警。

     准备工作

     在开始测试或监控之前,先检查一下目标硬盘是否支持S.M.A.R.T,以root登陆(Windows下以系统管理
 员身份登陆),运行下面的命令:
  #smartctl -i -d ata /dev/sda

       这里的参数-i指出显示设备信息,-d指出设备类型,这里指定的设备类型为ata,当然,如果是SCSI硬
 盘,就指定scsi了,最后的/dev/sda就是设备了,这个命令返回:
  smartctl version 5.37 'i686-pc-linux-gnu' Copyright (C) 2002-6

     Bruce Allen

     Home page is http://smartmontools.sourceforge.net/=== START OF INFORMATION SECTIO
  N ===

     Model Family: Western Digital Caviar SE (Serial ATA) family

     Device Model: WDC WD800JD-00MSA1

     Serial Number: WD-WMAM9S474555

     Firmware Version: 10.01E01

     User Capacity: 80,026,361,856 bytes

     Device is: In smartctl database 'for details use: -P show'

     ATA Version is: 7

     ATA Standard is: Exact ATA specification draft version not

     indicated

     Local Time is: Thu Feb 7 13:09:37 2008 PST

     SMART support is: Available - device has SMART capability.

     SMART support is: Disabled

     从返回的信息中,可以看到硬盘的生产厂家,型号,序列号,容量,是否支持SMART,目前SMART开启
 没有。结果的最后两行就是我们需要的信息,从这里可以看出,这块硬盘是支持SMART技术的,但目前还没有
 开启它。

     如果运行这个命令返回了类似“Device does not support SMART”的信息就说明目标硬盘不支持SMAR
  T,不能使用这套软件包进行测试和监控。

     对于前面的例子,我们可以使用下面的命令来开启SMART特性:
  #smartctl -s on -d ata /dev/sda

     这里的参数-s就是用来开关SMART特性的,如果加上参数值on就表示开启,如果参数值是off就表示关
 闭。

     开始测试

     其实就一条命令就完成了测试,如:
   #smartctl -H -d ata /dev/sda

     这里的参数-H就是指定显示目标硬盘的健康状态,这个命令返回如下结果:
  smartctl version 5.37 'i686-pc-linux-gnu' Copyright (C) 2002-6

     Bruce Allen

     Home page is http://smartmontools.sourceforge.net/=== START OF READ SMART DATA S
  ECTION ===

     SMART overall-health self-assessment test result: PASSED

     注意最后一行的测试结果“PASSED”,表明测试通过,该硬盘目前处于健康状态。

  其它一些有用的参数

     -A 显示支持的SMART属性,参考命令:
  #smartctl -A sda

     返回内容:    
  smartctl version 5.38 [i686-mingw32-xp-sp2] Copyright (C) 2002-8 Bruce Allen

     Home page is http://smartmontools.sourceforge.net/

     === START OF READ SMART DATA SECTION ===

     SMART Attributes Data Structure revision number: 16

     Vendor Specific SMART Attributes with Thresholds:

     ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_
  VALUE

     3 Spin_Up_Time 0x0027 220 220 063 Pre-fail Always - 13621

     4 Start_Stop_Count 0x0032 253 253 000 Old_age Always - 999

     5 Reallocated_Sector_Ct 0x0033 253 253 063 Pre-fail Always - 0

     6 Read_Channel_Margin 0x0001 253 253 100 Pre-fail Offline - 0

     7 Seek_Error_Rate 0x000a 253 252 000 Old_age Always - 0

     8 Seek_Time_Performance 0x0027 250 241 187 Pre-fail Always - 59017

     9 Power_On_Minutes 0x0032 225 225 000 Old_age Always - 1019h+16m

     10 Spin_Retry_Count 0x002b 253 252 157 Pre-fail Always - 0

     11 Calibration_Retry_Count 0x002b 253 252 223 Pre-fail Always - 0

     12 Power_Cycle_Count 0x0032 251 251 000 Old_age Always - 1091

     192 Power-Off_Retract_Count 0x0032 253 253 000 Old_age Always - 0

     193 Load_Cycle_Count 0x0032 253 253 000 Old_age Always - 0

     194 Temperature_Celsius 0x0032 253 253 000 Old_age Always - 39

     195 Hardware_ECC_Recovered 0x000a 253 252 000 Old_age Always - 1566

     196 Reallocated_Event_Count 0x0008 253 253 000 Old_age Offline - 0

     197 Current_Pending_Sector 0x0008 253 253 000 Old_age Offline - 0

     198 Offline_Uncorrectable 0x0008 253 253 000 Old_age Offline - 0

     199 UDMA_CRC_Error_Count 0x0008 199 199 000 Old_age Offline - 0

     200 Multi_Zone_Error_Rate 0x000a 253 252 000 Old_age Always - 0

     201 Soft_Read_Error_Rate 0x000a 253 251 000 Old_age Always - 5

     202 TA_Increase_Count 0x000a 253 252 000 Old_age Always - 0

     203 Run_Out_Cancel 0x000b 253 252 180 Pre-fail Always - 0

     204 Shock_Count_Write_Opern 0x000a 253 252 000 Old_age Always - 0

     205 Shock_Rate_Write_Opern 0x000a 253 252 000 Old_age Always - 0

     207 Spin_High_Current 0x002a 253 252 000 Old_age Always - 0

     208 Spin_Buzz 0x002a 253 252 000 Old_age Always - 0

     209 Offline_Seek_Performnce 0x0024 189 187 000 Old_age Offline - 0

     99 Unknown_Attribute 0x0004 253 253 000 Old_age Offline - 0

     100 Unknown_Attribute 0x0004 253 253 000 Old_age Offline - 0

     101 Unknown_Attribute 0x0004 253 253 000 Old_age Offline - 0

     返回结果中的id#为194的属性(Temperature_Celsius)表示输出硬盘温度,所以才会有软件能够监测到
 硬盘的温度。我们从这里也可以直接看到硬盘当前的温度为39°C,理想的状态是控制在5°C左右,所以应该增
 加风扇了。

     -a 显示设备所有的SMART信息。

     -l error 列出硬盘错误日志。如果显示没有错误最好,如果显示了大量的错误信息,那就该着手准备替换
 硬盘了。

     -l selftest 列出自行测试结果。

     利用smartd进行自动监控

     smartd是smartmontools软件包中的一个实用程序,可以单独运行,也可以注册为系统服务,Windows
 上的注册命令为:
  >smartd install

     注册后,打开services.msc,可看到一个名叫“SmartD Service”服务,并设置为“自动”启动。

     在非Windows平台上可通过向/etc/rc.d/init.d添加smartd脚本,其实在安装smartmontools软件包的
 时候通常会安装到这个位置,只需要在对应的启动级别下做一个软链接就可以了。

     smartd的配置文件为smartd.conf(Windows和非Windows平台都叫这个名字,Windows平台与smart
  d.exe在同一个目录下,非Windows平台位于/etc目录下),在这个配置文件中已经内置许多种监视方法和参数
 说明,值得一体的是-m参数,可以利用它将监视报告以邮件的形式发送给指定的E-mail地址,这样设备管理员
 就可以坐在电脑前就可以掌控所有硬盘设备的健康状况了。