分享下之前对某台服务器做的一个硬盘监控,主要是通过smartctl工具来实现,下面是测试的一个过程。
XX服务器磁盘空间 [root@localhost media]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup-lv_root 99G 70G 24G 75% /tmpfs 48G 76K 48G 1% /dev/shm/dev/sdb2 485M 42M 418M 10% /boot/dev/sdb1 500M 156M 345M 32% /boot/efi/dev/mapper/VolGroup-lv_home 77G 5.7G 68G 8% /home这里可以看到用了sdb硬盘
附:smartmontools介绍
smartmontools是一款开源的磁盘控制,监视工具,可以运行在Linux,Unix,BSD,Solaris,Mac OS,OS/2,Cygwin和Windows上,同时它还可以从启动光盘或启动软盘运行,支持ATA/ATAPI/SATA-3(到-8)位的硬盘和 SCSI硬盘,另外还支持磁带设备,它的老家在
smartmontools.sourceforge.NET,实际上它是一个软件包,包括了两个实用程序:smartctl和smatd。它监控的硬盘必须具有S.M.A.R.T特性,目前所有硬盘都有这个特性,但默认情况下通常没有开启这个功能,有两种方法来开启这个特性:1)通过BIOS设置选项2)通过smartctl命令。利用它可以测试硬盘的健康状况,并在发生故障前进行预警。
[root@localhost media]
# smartctl -i -d scsi /dev/sdb
说明:参数-i指出显示设备信息,-d指出设备类型,有些指定的设备类型为ata,如果是SCSI硬盘,就指定scsi了,最后的/dev/sda就是设备(df命令查询设备)。
从返回的信息中,可以看到硬盘的生产厂家,型号,序列号,容量,是否支持SMART,目前SMART开启没有。结果的最后两行就是我们需要的信息,从这里可以看出,/dev/sdb硬盘是支持SMART技术的,目前已经启动它。/dev/sda硬盘提示“Device does not support SMART”的信息就说明目标硬盘不支持SMART,不能使用这套软件包进行测试和监控。
开启SMART特性 #smartctl -s on -d ata /dev/sda参数-s就是用来开关SMART特性的,如果加上参数值on就表示开启,如果参数值是off就表示关闭。
测试 [root@localhost media]# smartctl -H -d scsi /dev/sdb[root@localhost media]
# smartctl -H -d scsi /dev/sda
说明:参数-H指定显示目标硬盘的健康状态
其它一些有用的参数-A 显示支持的SMART属性,参考命令:
#smartctl -A sda返回内容:
说明:
-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平台与 smartd.exe在同一个目录下,非Windows平台位于/etc目录下),在这个配置文件中已经内置许多种监视方法和参数说明:
[root@localhost ~]# locate smartd.conf/etc/smartd.conf/usr/share/doc/smartmontools-5.43/smartd.conf/usr/share/man/man5/smartd.conf.5.gz关于smartctl这里面其实还有个-m 参数,我们可以利用它将监视报告以邮件的形式发送给指定的E-mail地址,这样设备管理员坐在电脑前就可以掌控所有硬盘设备的健康状况了。