一、简介
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
下面是安装截图
三、安装MegaCli的Linux版本
在官网
搜索MegaCli得到下面的截图
下载该压缩包8-07-14_MegaCLI.zip,解压后得到全平台文件,进入Linux目录下面安装rpm包
解压
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
四、常用命令:
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相关信息】
五、 监控原理
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。后者表示即将出现硬件故障,所以需要开始备份这块磁盘上的重要数据!