网络通信 频道

使用Smartmontools监控Linux磁盘存储设备

    硬盘物理坏道是硬盘的所有Linux硬件故障中最让人头痛的。它轻则使你的Linux计算机频频死机,重则让你的所有数据化为乌有。S.M.A.R.T的全称为“Self-Monitoring,Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。Smartmontools是一个Linux下硬盘检测工具,主页:http://smartmontools.sourceforge.net

    一、 磁盘存储设备健康监控

    1、软件下载安装:

    Wegt http://jaist.dl.sourceforge.net/sourceforge/smartmontools/smartmontools-5.36-1.i386.rpm

    rpm –ivh /smartmontools-5.1-18.i386.rpm

    检测硬盘和主板是否支持SMART技术

    软件安装后会在/usr/local/ 目录下产生程序:smartctl,先检测硬盘和主板是否支持SMART技术:

smartctl -i /dev/hda7

smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen

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

=== START OF INFORMATION SECTION ===

Device Model: ST313620A

Serial Number: 7BW0DZLX

Firmware Version: 3.11

User Capacity: 13,666,701,312 bytes

Device is: Not in smartctl database [for details use: -P showall]

ATA Version is: 4

ATA Standard is: Exact ATA specification draft version not indicated

Local Time is: Tue Apr 25 08:14:56 2006 CST

SMART support is: Available - device has SMART capability.

SMART support is: Enabled

    2.启动SMART技术

smartctl -s on /dev/hda1

smartctl version 5.36 [i686-pc-linux-gnu] Copyright (C) 2002-6 Bruce Allen

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

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

SMART Enabled.

 

    3. 全面检测硬盘健康

    smartctl -A /dev/hda1

    下面详细解读检测信息:

    1.ID检测代码

    ID检测代码不是唯一的,厂商可以根据需要,使用不同的ID代码或根据检测参数的多少增减ID代码的数量。例如,西数公司的产品ID检测代码为“04”,检测的参数是Start_Stop_Count(加电次数),而富士通公司同样代码的检测参数却为“Number of times the spindle motor is activated”(电机激活时间)。

    2.属性描述(Attribute_NAME)

    属性描述(Attribute_NAME)即检测项目名称。可由厂商自定义增减,由于ATA标准不断更新,有时候同一品牌的不同型号产品也会有所不同。但必须确保S.M.A.R.T规定的几个主要检测项目。

• Read Error Rate 错误读取率

• Start/Stop Count 启动/停止次数(又称加电次数)

• Relocated Sector Count 重新分配扇区数

• Spin up Retry Count 旋转重试次数(即硬盘启动重试次数)

• Drive Calibration Retry Count 磁盘校准重试次数

• ULTRA DMA CRC Error Rate (ULTRA DMA奇偶校验错误率)

• Multi-zone Error Rate 多区域错误率

    对Linux系统管理员必须深入了解它们的具体含义,理解属性监测值的含义。

    3.阈值(Thresh)

    又称门限值。是由硬盘厂商指定的可靠的属性值,通过特定公式计算而得。如果有一个属性值低于相应的阈值,就意味着硬盘将变得不可靠,保存在硬盘里的数据也很容易丢失。可靠属性值的组成和大小对不同硬盘来说是有差异的。这里需要注意的是,ATA标准中只规定了一些S.M.A.R.T参数,它没有规定具体的数值,“Thresh”的数值是厂商根据自己产品特性而确定的。

    4.属性值(Attribute value)

    属性值是指硬盘出厂时预设的最大正常值,一般范围为1~253。通常,最大的属性值等于100(适用于IBM、昆腾、富士通)或253(适用于三星)。当然,也有例外的时候,比如由西部数据公司生产的部分型号硬盘,就用了两个不同的属性值,最初生产时属性值设为200,但后来生产的硬盘属性值又改为100。

    5.最大出错值(Worst)

    最大出错值是硬盘运行中曾出现过的最大的非正常值。它是对硬盘累计运行的计算值,根据运行周期,该数值会不断地刷新,并且会非常接近阈值。S.M.A.R.T分析和判定硬盘的状态是否正常,就是根据这个数值和阈值的比较结果而定。新硬盘开始时有最大的属性值,但随着日常使用或出现错误,该值会不断减小。因此,较大的属性值意味着硬盘质量较好而且可靠性较高,而较小的属性值则意味着故障发生的可能性增大。

    总结:FLAG是标记,标准数值(VALUE)应当小于或等於关键值(THRESH)。WHEN_FAILED 代表错误信息,WHEN_FAILED纵行是空行,说明硬盘没有故障。如果WHEN_FAILED显示数字,表明硬盘磁道可能有比较大的坏道。它是S.M.A.R.T针对前面的各项属性值进行比较分析后,提供的硬盘各属性目前的状态,也是我们直观判断硬盘“健康”状态的重要信息。作为用户,只要观察“Worst”和“Threshold”值的关系,并注意状态提示属性状态信息即可大致了解硬盘的健康状况。

 

    二、 磁盘存储设备使用空间监控

    1.使用diskcheck定时监视系统上的空闲磁盘空间数量

Linux 提供了一个叫做 diskcheck 的工具程序,它监视系统上的空闲磁盘空间数量。根据配置文件的规定,当一个或多个磁盘驱动器上的用量达到指定程度时,它会向系统管理员发送电子邮件。要使用该工具,可以在http://rpmfind.net/ 琏接:ftp://rpmfind.net/linux/fedora/core/3/i386/os/Fedora/RPMS/diskcheck-1.6-2.noarch.rpm 下载该软件包。 该工具作为每小时 cron任务运行。

    以下变量可以在 /etc/diskcheck.conf 文件中被定义:

? defaultCutoff — 当磁盘驱动器的用量达到这个百分比,它就会被报告。譬如,如果 defaultCutoff = 90 被指定,磁盘驱动器的用量达到 90%, 电子邮件就会被寄出。

? cutoff[ /dev/partition ] — 超越分区的 defaultCutoff 。例如,如果 cutoff['/dev/hda3'] = 50 被指定,当 /dev/hda3 分区的用量达到 50%, diskcheck 就会警告系统管理员。

? cutoff[ /mountpoint ] — 超越挂载点的 defaultCutoff 。譬如,如果 cutoff['/home'] = 50 被指定,当 /home 挂载点的用量达到 50%, diskcheck 就会警告系统管理员。

? exclude — 指定 diskcheck 要忽略的一个或多个分区。譬如,如果 exclude = "/dev/sda2 /dev/sda4" 被指定,在 /dev/sda2 或 /dev/sda4 的用量达到指定的切断百分比的情况下, diskcheck 将不会警告系统管理员。

? ignore — 指定要忽略的一个或多个文件系统,格式为 -x filesystem-type 。譬如,如果 ignore = "-x nfs -x iso9660" 被指定了,在 nfs 或 iso9660 文件系统的用量达到限制时,系统管理员将不会被警告。

? mailTo — 当分区或挂载点达到限制时,要向系统管理员发出警告的电子邮件地址。譬如,如果 mailTo = "webmaster@example.com" 被指定了,警告就会被邮寄给 webmaster@example.com

? mailFrom — 指定电子邮件寄发者的身份。这有助于系统管理员过滤来自 diskcheck 的邮件。譬如,如果 mailFrom = "Disk Usage Monitor" 被指定了,发送给系统管理员的电子邮件的寄发者就是“磁盘用量监控器”。

? mailProg — 指定发送电子邮件警告要使用的邮寄程序。譬如,如果 mailProg = "/usr/sbin/sendmail" 被指定了,Sendmail 就会被用作邮寄程序。

    如果你改变了配置文件,你不必重新启动服务,因为每次 cron 任务运行的时候都会重读该配置文件。你必须运行 crond 服务才能执行 cron 任务。

    2.其他存储设备监控工具

? scsirastools scsirastools项目用于提高Linux软件RAID 1配置下常用驱动器的可靠性和可用性。其项目主页是http://scsirastools.sourceforge.net/。该安装包还包含一些低级的SCSI工具,比如,用于磁盘固件的sgdskfl、用于得到和设置模式页的sgmode、用于读取增长缺陷列表的sgdefects,以及用于执行格式化和其它测试功能的sgdiag。该项目的其它努力致力于让各种通用硬件RAID适配器及其驱动器能够在Linux下工作。

? sg3_utils sg3_utils提供一套用来使用Linux SCSI Genric设备驱动器的工具。这些工具包括传统dd命令的“sg”变种、扫描和匹配SCSI总线的工具、发布低级SCSI命令的工具,定时测试的工具,以及一些例子资源和杂项。

? SCU SCU实现了对SCSI外设日常维护和诊断的SCSI命令。它的功能包括格式化、扫描、重新分配坏块、下载新固件,以及执行诊断和获得性能信息等。

 

    三.网络设备使用情况监控

    1. 网络设备监控

    Iptraf是一款Linux环境下,监控网络流量的一款较好(可以工作在命令行和图形两种界面)的软件,IPTraf使用Linux内核的内置原始(raw)包捕获接口,可以广泛地用于以太网卡,支持FDDI适配器、ISDN适配器以及任何异步SLIP/PPP接口。Iptraf的最新版本是3.0,可以从下面的地址下载是:ftp://iptraf.seul.org/pub/iptraf/。。

    与大多数UNIX系统的命令一样,IPTraf还命令行参数,以下是iptraf支持的所有功能选项:

    -i 网络接口 让IPTraf监视特定的网络接口,例如:eth0。-i all表示监视系统的所有网络接口。

    -g 网络接口 显示一般统计信息。

    -d 网络接口 显示特定网络接口的详细统计信息。

    -s 网络接口 对特定网络接口的TCP/UDP数据流量进行监视。

    -z 网络接口 监视局域网的特定网络接口。-l all表示全部。

    -t timeout 使IPTraf在指定的时间后,自动退出。如果没有设置IPTraf就会一直运行,直到用户按下退出键(x)才退出。

    -B 使IPTraf在后台运行。单独使用无效(被忽略直接进入菜单界面),只能和-i、-g、-d、-s、-z、
    -l中的某个参数一块使用。

    -f 使IPTraf强制清除所有的加锁文件,重置所有实例计数器。

    -h 显示简短的帮助信息 。

    下面是选单说明,一共七个选单,各选单说明如下:

    1.Configure选单:

    在这里可以对iptraf进行配置,所有的修改都将保存在文件:/var/local/iptraf/iptraf.cfg中, Reverse DNS Lookups 选项,对IP地址反查 DNS名,默认是关闭的。TCP/UDP Service Names 选项,使用服务器代替端口号,例如用www 代替80,默认是关闭的。Force promiscuous 混杂模式,此时网卡将接受所有到达的数据。Color 终端显示彩色,当然用telnet ,ssh连接除外,也就是用不支持颜色的终端连接肯定还是没有颜色。Logging 同时产生日志文件,在/var/log/iptraf 目录下。 Activity mode 可以选择统计单位是kbit/sec 还是 kbyte/sec。 Source MAC addrs in traffic monitor 选择后,会显示数据包的源MAC地址。

    2. Filters选单

    在这里可以设置过滤规则,这是最有用的选项了,当你从远端连入监控机时,自己的机器与监控机会产生源源不断的tcp数据包,有时很令人讨厌,此时你就可以将自己的ip地址排除在外。它包括六个选项,分别是:Tcp、Udp、OtherIP、ARP、RARP、Non-ip。

    3、IP Traffic Monitor选单

    IP数据包流量实时监控窗口,注意这里会监控所有的来往数据包(包括lo、eth0)。

    4、General Interface Statistics选单

    显示每个网络设备出去和进入的数据流量统计信息,包括总计、IP包、非IP包、Bad IP包、还有每秒的流速,单位是kbit/sec或者是kbyte/sec , 这由Configure选单的Activity选项决定。

    5、Detailed Interface Statistics选单

    显示了每个网络设备的详细使用的统计信息。包括:TCP报文数和字节数 、UDP报文数和字节数 、ICMP报文数和字节数、非IP类型的报文数和字节数 、其它IP类型的报文数和字节数 、校验和错误计数 、网络接口活动状态、

    6、Statistical Breakdowns选单

    提供更详细的统计信息,可以按包的大小分类,分别统计;也可以按Tcp/Udp的服务来分类统计。

    7、LAN Station Statistics选单

    LAN Station Statistics即局域网工作站标志符,IPTraf的局域网工作站统计是基于MAC地址的。但是十六进制的MAC地址非常难以记忆,因此IPTraf 引入了局域网工作站标志符(LAN Station Identifiers)。使用局域网工作站标志符(LAN Station Identifiers)可以帮助你更好地区别局域网内的工作站。记录每个网络地址通过本机的数据的统计信息。

    应用实例:

    查看端口流量并且进行排序。

    使用命令:iptraf -s ,然后按S键工作。

    总结:到此为止我们介绍了Linux计算机主要硬件监控方法,硬件监控对于Linux安全、高效运行是非常重要的。Linux 负有盛名的特点之一是其非凡的稳定性。然而, 如果您的硬件有缺陷或配置不正确,即使是世界上最稳定的操作系统也不会对您有什么帮助。

 

 

0
相关文章