硬盘物理坏道是硬盘的所有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 负有盛名的特点之一是其非凡的稳定性。然而, 如果您的硬件有缺陷或配置不正确,即使是世界上最稳定的操作系统也不会对您有什么帮助。