一、简介

smartmontools是一款开源的磁盘控制,监视工具,通过控制和管理硬盘的SMART(Self Monitoring Analysis and Reporting Technology,自动检测分析及报告技术)技术来实现的,SMART技术可以对硬盘的磁头单元、盘片电机驱动系统、硬盘内部电路以及盘片表面介质材料等进行监测,当SMART监测并分析出硬盘可能出现问题时会及时向用户报警以避免计算机数据受损失。SMART技术必须在主板支持的前提下才能发生作用。

smartmontools可以运行在 Linux,Unix,BSD,Solaris,Mac OS,OS/2,Cygwin和Windows上,同时它还可以从启动光盘或启动软盘运行,支持ATA/ATAPI/SATA-3(到-8)位的硬盘和 SCSI硬盘,另外还支持磁带设备,它的官网为http://www.smartmontools.org/。

smartmontools,包括了两个实用程 序:smartctl和smatd。它监控的硬盘必须具有S.M.A.R.T特性,目前所有硬盘都有这个特性,但默认情况下通常没有开启这个功能,有两种 方法来开启这个特性:1)通过BIOS设置选项2)通过smartctl命令。利用它可以测试硬盘的健康状况,并在发生故障前进行预警。

MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态,等等。通过MegaCli可以实现对RAID阵列内的物理硬盘做监测。

二、安装smartmontools

yum install smartmontools

开启服务


service smartd start 


chkconfig smartd on


下面是安装截图




centos检查硬盘是否正常 centos硬盘检测工具_linux




三、安装MegaCli的Linux版本


在官网


http://www.avagotech.com/


centos检查硬盘是否正常 centos硬盘检测工具_html_02


搜索MegaCli得到下面的截图


centos检查硬盘是否正常 centos硬盘检测工具_官网_03

下载该压缩包8-07-14_MegaCLI.zip,解压后得到全平台文件,进入Linux目录下面安装rpm包

centos检查硬盘是否正常 centos硬盘检测工具_官网_04


解压


mkdir -p 8-07-14_MegaCLI/


unzip 8-07-14_MegaCLI.zip -d 8-07-14_MegaCLI/


安装


rpm -ivh MegaCli-8.07.14-1.noarch.rpm


安装的文件默认在


/opt/MegaRAID/MegaCli/MegaCli64


为了使用方便,我们创建一个软连接


ln  -s /opt/MegaRAID/MegaCli/MegaCli64  /usr/local/bin/MegaCli


在命令行执行MegaCli就可以了,比如查询硬盘信息


MegaCli -PDList -aAll


centos检查硬盘是否正常 centos硬盘检测工具_centos检查硬盘是否正常_05




四、常用命令:


MegaCli  -LDInfo -Lall -aALL 查raid级别


MegaCli -AdpAllInfo -aALL 查raid卡信息


MegaCli -PDList -aALL 查看硬盘信息


MegaCli -AdpBbuCmd -aAll 查看电池信息


MegaCli -FwTermLog -Dsply -aALL 查看raid卡日志


MegaCli -adpCount 【显示适配器个数】


MegaCli -AdpGetTime –aALL 【显示适配器时间】


MegaCli -AdpAllInfo -aAll    【显示所有适配器信息】


MegaCli -LDInfo -LALL -aAll    【显示所有逻辑磁盘组信息】


MegaCli -PDList -aAll    【显示所有的物理信息】


MegaCli -AdpBbuCmd -GetBbuStatus -aALL |grep ‘Charger Status’ 【查看充电状态】


MegaCli -AdpBbuCmd -GetBbuStatus -aALL【显示BBU状态信息】


MegaCli -AdpBbuCmd -GetBbuCapacityInfo -aALL【显示BBU容量信息】


MegaCli -AdpBbuCmd -GetBbuDesignInfo -aALL    【显示BBU设计参数】


MegaCli -AdpBbuCmd -GetBbuProperties -aALL    【显示当前BBU属性】


MegaCli -cfgdsply -aALL    【显示Raid卡型号,Raid设置,Disk相关信息】



centos检查硬盘是否正常 centos硬盘检测工具_smartmontools_06

centos检查硬盘是否正常 centos硬盘检测工具_linux_07

centos检查硬盘是否正常 centos硬盘检测工具_官网_08

centos检查硬盘是否正常 centos硬盘检测工具_smartmontools_09

centos检查硬盘是否正常 centos硬盘检测工具_centos检查硬盘是否正常_10

centos检查硬盘是否正常 centos硬盘检测工具_smartmontools_11

五、 监控原理


smartctl -a -d megaraid,0 /dev/sda

其megaraid,0中的0代表的是在megaraid中的物理盘编号



下面使用smartctl透过Raid卡获取磁盘更详细的信息:

# smartctl manual 摘录..
              Under Linux , to look at SCSI/SAS disks behind LSI MegaRAID controllers, use syntax such as:
              smartctl -a -d megaraid,2 /dev/sda
              smartctl -a -d megaraid,0 /dev/sdb
              where in the argument megaraid,N, the integer N is the physical disk number within the MegaRAID controller.  This  interface  will
              also work for Dell PERC controllers.  The following /dev/XXX entry must exist:                 # 经测试只要存在即可,对应关系搞错确也仍可正常显示
              For PERC2/3/4 controllers: /dev/megadev0
              For PERC5/6 controllers: /dev/megaraid_sas_ioctl_node



对非Raid模式


可以通过这个命令来检测某个硬盘的健康状况:


# smartctl -s on -a /dev/sda 


在这个命令中,"-s on"标志开启指定设备上的SMART功能。如果/dev/sda上已开启SMART支持,那就省略它。



硬盘的SMART信息包含很多部分。其中,"READ SMART DATA"部分显示出硬盘的整体健康状况。



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


SMART overall-health self-assessment rest result: PASSED


这个测试的结果是PASSED或FAILED。后者表示即将出现硬件故障,所以需要开始备份这块磁盘上的重要数据!