Linux上S.M.A.R.T以及监控程序玩

Linux上启动S.M.A.R.T.硬盘检测

 

问题

  如何在Linux上启动S.M.A.R.T.硬盘检测

  解决方案

  什么是S.M.A.R.T.

  随着硬盘容量、速度的快速发展,硬盘的可靠性问题越来越重要

  90年代如果一块硬盘故障,可能损失掉几百MB或者几个GB的数据

  而今,单块硬盘存储容量可轻松达到500GB,硬盘损坏带来的影响非常巨大

  SMART是一种磁盘自我分析检测技术,早在90年代末就基本得到了普及

  每一块硬盘(包括IDE、SCSI)在运行的时候,都会将自身的若干参数记录下来

  这些参数包括型号、容量、温度、密度、扇区、寻道时间、传输、误码率等

  硬盘运行了几千小时后,很多内在的物理参数都会发生变化

  某一参数超过报警阈值,则说明硬盘接近损坏

  此时硬盘依然在工作,如果用户不理睬这个报警继续使用

  那么硬盘将变得非常不可靠,随时可能故障

  启用SMART

  SMART是和主板BIOS上相应功能配合的

  要使用SMART,必须先进入到主板BIOS设置里边启动相关设置

  一般从Pentium2级别起的主板,都支持SMART

  BIOS启动以后,就是操作系统级别的事情了

  很遗憾,Windows没有内置SMART相关工具(需要安装第三方工具软件)

  好在Linux上很早就有了SMART支持了

  如果把Linux装在VMware等虚拟机上,在系统启动时候可以看到有个服务启动报错:smartd

  这个服务器就是smart的daemon进程(因为vmware虚拟机的硬盘不支持SMART,所以报错)

  首先通过dmesg工具,确认一下硬盘的设备符号

  例如一个IDE硬盘连接到Primary IDE 总线上的Slave位置,硬盘设备符号是/dev/hdb

  hdb中的h代表IDE,如果显示为sdb,则代表SATA和SCSI

  最后一个字幕b代表Primary总线,第二块硬盘即Slave位置

  确认硬盘是否打开了SMART支持

  smartctl -i /dev/hdb

  例如看到如下返回结果

  [[email protected] ~]# smartctl -i /dev/hdb

  smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

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

  === START OF INFORMATION SECTION ===

  Device Model: ST380011A

  Serial Number: 3JVAPRGH

  Firmware Version: 3.04

  User Capacity: 80,026,361,856 bytes

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

  ATA Version is: 6

  ATA Standard is: ATA/ATAPI-6 T13 1410D revision 2

  Local Time is: Tue Apr 3 15:39:52 2007 CST

  SMART support is: Available - device has SMART capability.

  SMART support is: Disabled

  SMART Disabled. Use option -s with argument 'on' to enable it.

  [[email protected] ~]#

  例如,我们从下边可以看到SMART support is: Disabled表示SMART未启用

  执行如下命令,启动SMART:

  smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb

  例如看到如下返回结果

  [[email protected] ~]# smartctl --smart=on --offlineauto=on --saveauto=on /dev/hdb

  smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

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

  === START OF ENABLE/DISABLE COMMANDS SECTION ===

  SMART Enabled.

  SMART Attribute Autosave Enabled.

  SMART Automatic Offline Testing Enabled every four hours.

  [[email protected] ~]#

  现在硬盘的SMART功能已经被打开

  执行如下命令查看硬盘的健康状况:

  smartctl -H /dev/hda

  例如可以看到如下结果:

  [[email protected] ~]# smartctl -H /dev/hdb

  smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

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

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

  SMART overall-health self-assessment test result: PASSED

  [[email protected] ~]#

  请注意result后边的结果:PASSED,这表示硬盘健康状态良好

  如果这里显示Failure,那么最好立刻给服务器更换硬盘

  SMART只能报告磁盘已经不再健康,但是报警后还能继续运行多久是不确定的

  通常,SMART报警参数是有预留的,磁盘报警后,不会当场坏掉,一般能坚持一段时间

  有的硬盘SMART报警后还继续跑了好几年,有的硬盘SMART报错后几天就坏了

  但是一旦出现报警,侥幸心里是万万不能的……

  执行如下命令可以看到详细的参数:

  smartctl -A /dev/hdb

  例如可以看到如下结果:

  [[email protected] ~]# smartctl -A /dev/hdb

  smartctl version 5.33 [i386-redhat-Linux-gnu] Copyright (C) 2002-4 Bruce Allen

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

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

  SMART Attributes Data Structure revision number: 10

  Vendor Specific SMART Attributes with Thresholds:

  ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE

  1 Raw_Read_Error_Rate 0x000f 053 051 006 Pre-fail Always - 11338710

  3 Spin_Up_Time 0x0003 098 097 000 Pre-fail Always - 0

  4 Start_Stop_Count 0x0032 100 100 020 Old_age Always - 17

  5 Reallocated_Sector_Ct 0x0033 100 100 036 Pre-fail Always - 0

  7 Seek_Error_Rate 0x000f 087 060 030 Pre-fail Always - 610059516

  9 Power_On_Hours 0x0032 087 087 000 Old_age Always - 11974

  10 Spin_Retry_Count 0x0013 100 100 097 Pre-fail Always - 0

  12 Power_Cycle_Count 0x0032 100 100 020 Old_age Always - 110

  194 Temperature_Celsius 0x0022 045 052 000 Old_age Always - 45

  195 Hardware_ECC_Recovered 0x001a 053 051 000 Old_age Always - 11338710

  197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always - 0

  198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline - 0

  199 UDMA_CRC_Error_Count 0x003e 200 200 000 Old_age Always - 0

  200 Multi_Zone_Error_Rate 0x0000 100 253 000 Old_age Offline - 0

  202 TA_Increase_Count 0x0032 100 253 000 Old_age Always - 0

  [[email protected] ~]#

  上边列出的参数表中可供进行技术分析和参考,使用下边的命令可以输出完整结果:

  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的全部配置。

===========

S.M.A.R.T的全称为“Self-Monitoring,Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。支持S.M.A.R.T技术的硬盘可以通过硬盘上的监测指令和主机上的监测软件对磁头、盘片、马达、电路的运行情况、历史记录及预设的安全值进行分析、比较。当出现安全值范围以外的情况时,就会自动向用户发出警告。

wikipedia有关于S.M.A.R.T的详细介绍

http://en.wikipedia.org/wiki/S.M.A.R.T.

Ubuntu系统启用S.M.A.R.T

1.smartd和smartctl等tool包含在smartmontools套件

#apt-get install smartmontools

2.检查硬盘是否开启smart

#smartctl /dev/sda

如果看到以下提示,则说明未开启

SMART support is: Available - device has SMART capability.
SMART support is: Disabled

执行以下步骤开启

smartctl --smart=on --offlineauto=on --saveauto=on /dev/sda

3.检查硬盘健康状况

# smartctl -H /dev/sda
smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen
Home page is http://smartmontools.sourceforge.net/

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

如果这里显示Failure,那么最好立刻给服务器更换硬盘。虽说,有时候人品好的话,Failure报警后,还能撑好几个月。但是,作为SA,相信大家是明白“数据价值远远大于硬件本身”的道理。

4.设置Failure报警,以便及时发现

# vim /etc/smartd.conf

/dev/sda -H -m root
/dev/sdb -H -m root

5.设置smartmontools随系统启动

# vim /etc/default/smartmontools

# uncomment to start smartd on system startup
start_smartd=yes

 

===========

http://blog.shadypixel.com/monitoring-hard-drive-health-on-linux-with-smartmontools/

S.M.A.R.T. is a system in modern hard drives designed to report conditions that may indicate impending failure. smartmontools is a free software package that can monitor S.M.A.R.T. attributes and run hard drive self-tests. Although smartmontools runs on a number of platforms, I will only cover installing and configuring it on Linux.

 

。。。。。。

。。。。。。

===========下载,wndows下也有了版本

http://packages.debian.org/zh-cn/sid/smartmontools

 

目前这一系列硬盘的1TB容量有CinemaStar 7K1000.C和CinemaStar 5K1000两种产品,通过调整电机来降低硬盘转速,从而减少谐波共振,因此在运行时几乎没有声音。此外,CinemaStar硬盘还具有SMART命令传输,可将硬盘设置优化为最佳视频流性能;而先进的自动电源管理可以尽可能降低硬盘功耗。此外,先进的驱动机制可以使平均故障间隔时间(MTBF)达120万小时。

[产品型号]:日立7K1000.C 1TB 7200转 32MB
[产品报价]:345元

你可能感兴趣的:(Linux上S.M.A.R.T以及监控程序玩)