早在上个世纪九十年代,人们就意识到数据的宝贵性胜于硬盘自身价值,渴望有种技术能对硬盘故障进行预测并实现相对安全的数据保护,因此S.M.A.R.T技术应运而生。目前,虽然大多数硬盘的平均无故障时间(MTBF)已达30000~50000小时以上,然而对于不少用户,特别是商业用户而言,一次普通的硬盘故障便足以造成灾难性后果,所以时至今日,S.M.A.R.T技术仍为我们所用。
一、S.M.A.R.T究竟是什么?
S.M.A.R.T的全称为“Self-Monitoring,Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。支持S.M.A.R.T技术的硬盘可以通过硬盘上的监测指令和主机上的监测软件对磁头、盘片、马达、电路的运行情况、历史记录及预设的安全值进行分析、比较。当出现安全值范围以外的情况时,就会自动向用户发出警告。
该技术由Compaq公司率先开发,IBM、希捷、富士通、昆腾等硬盘厂商参与修正,并融合了Compaq公司的IntelliSafe诊断技术和IBM的PFA检测技术特点。
1995年5月,Compaq公司向Small Form Factor(SFF)委员会提交了IntelliSafe的技术标准报告(SFF-8035i);1996年1月进行1.0版的修正(SFF-8035R2);1996年6月进行了1.3版的修正(SFF-8055),并联合IBM等公司向SFF正式申请将IntelliSafe技术加入到ATA-3的行业标准中,正式更名为S.M.A.R.T
作为行业标准,S.M.A.R.T规定了硬盘制造厂商应遵循的标准。满足S.M.A.R.T标准的条件主要包括:在设备制造期间完成S.M.A.R.T需要的各项参数、属性的设定;在特定系统平台下,能够正常使用S.M.A.R.T;通过BIOS检测,能够识别设备是否支持S.M.A.R.T并可显示相关信息,而且能辨别有效和失效的S.M.A.R.T信息;允许用户自由开启和关闭S.M.A.R.T功能;在用户使用过程中,能提供S.M.A.R.T的各项有效信息,确定设备的工作状态,并能发出相应的修正指令或警告。在硬盘以及 *** 作系统都支持S.M.A.R.T.技术并且该技术默认开启的的情况下,在不良状态出现时S.M.A.R.T.技术能够在屏幕上显示英文警告信息:“WARNING:IMMEDIATLY BACKUP YOUR DATA AND REPLACE YOUR HARD DISK DRIVE,A FAILURE MAY BE IMMINENT.” (警告:立刻备份你的数据同时更换硬盘驱动器,可能有错误出现。)
二、S.M.A.R.T在何处?如何工作?
S.M.A.R.T信息保留在硬盘的系统保留区(service area)内,这个区域一般位于硬盘0物理面的最前面几十个物理磁道,由厂商写入相关内部管理程序。除了S.M.A.R.T信息表外还包括低级格式化程序、加密解密程序、自监控程序、自动修复程序等。监测软件通过一个名为“SMART RETURN STATUS”的命令(命令代码为:B0h)对S.M.A.R.T信息进行读取,且不允许最终用户对信息进行修改。
三、S.M.A.R.T信息表由什么组成?
S.M.A.R.T标准中采用二进制代码作为S.M.A.R.T的基本指令,并规定写入标准的寄存器中,形成特定的S.M.A.R.T信息表,以供正常检测和运行。S.M.A.R.T指令分主指令(Command)和次指令(Subcommands)。主指令主要提供设备是否支持S.M.A.R.T或忽略某一次指令特征的信息。而次指令则提供支持S.M.A.R.T设备的检测信息。这些指令主要由设备厂商写入,一些专业硬盘维修软件可以通过这些代码进行设备的检测。
四、通过软件查看硬盘的健康状况
S.M.A.R.T技术的原理是通过侦测硬盘各属性,如数据吞吐性能、马达起动时间、寻道错误率等属性值和标准值进行比较分析,推断硬盘的故障情况并给出提示信息,帮助用户避免数据损失。S.M.A.R.T因此规定了专门的检测参数,由于硬盘结构、性能和定位上的不同,除了ATA-3标准规定的参数外,厂商可以根据自己产品的特性提供不同的S.M.A.R.T检测参数。普通用户则可以通过常用的系统工具(如AIDA32)来查看,并通过这些参数了解硬盘的“健康”状况。
接下来,我们以希捷硬盘的S.M.A.R.T检测参数为例,具体分析主要参数的含义。如图2所示,S.M.A.R.T检测参数分为7列,分别是ID检测代码、属性描述、阈值、属性值、最大错误值、实际值和属性状态。
1.ID检测代码
ID检测代码不是唯一的,厂商可以根据需要,使用不同的ID代码或根据检测参数的多少增减ID代码的数量。例如,西数公司的产品ID检测代码为“04”,检测的参数是Start/Stop Count(加电次数),而富士通公司同样代码的检测参数却为“Number of times the spindle motor is activated”(电机激活时间)。
2.属性描述(Attribute Description)
属性描述(Attribute Description)即检测项目名称。可由厂商自定义增减,由于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 多区域错误率
Vendor-specific 厂商特性
需要注意的是,不同厂商、不同类型产品的属性描述不尽相同。对用户而言,无须深入了解它们的具体含义,只需了解属性监测值的含义即可。
3.阈值(Threshold)
又称门限值。是由硬盘厂商指定的可靠的属性值,通过特定公式计算而得。如果有一个属性值低于相应的阈值,就意味着硬盘将变得不可靠,保存在硬盘里的数据也很容易丢失。可靠属性值的组成和大小对不同硬盘来说是有差异的。这里需要注意的是,ATA标准中只规定了一些S.M.A.R.T参数,它没有规定具体的数值,“Threshold”的数值是厂商根据自己产品特性而确定的。因此,用厂商自己提供的检测软件往往会跟Windows下的检测软件(例如AIDA32)的检测结果有较大出入。这里,我们推荐以厂商软件的检测结果为标准,因为Windows环境下,系统要求硬盘的启动程序比DOS下多得多,这可能导致硬盘S.M.A.R.T值比DOS环境下检测的波动更大。以参数Raw ErrorRate(错误读取率)为例:该参数的计算公式为10×log10(主机和硬盘之间所传输数据的扇区数)×512×8/重读的扇区数。其中 “512×8”是把扇区数转化为所传输的数据位(bits),这个值只在所传输的数据位处于10^10~10^12范围时才作计算,而当Windows系统启动后,主机和硬盘之间所传输的数据扇区大于或等于10^12时,此值将重新复位。这就是为什么有些值在不同的 *** 作环境、不同检测程序下时波动较大的原因。
4.属性值(Attribute value)
属性值是指硬盘出厂时预设的最大正常值,一般范围为1~253。通常,最大的属性值等于100(适用于IBM、昆腾、富士通)或253(适用于三星)。当然,也有例外的时候,比如由西部数据公司生产的部分型号硬盘,就用了两个不同的属性值,最初生产时属性值设为200,但后来生产的硬盘属性值又改为100。
5.最大出错值(Worst)
最大出错值是硬盘运行中曾出现过的最大的非正常值。它是对硬盘累计运行的计算值,根据运行周期,该数值会不断地刷新,并且会非常接近阈值。S.M.A.R.T分析和判定硬盘的状态是否正常,就是根据这个数值和阈值的比较结果而定。新硬盘开始时有最大的属性值,但随着日常使用或出现错误,该值会不断减小。因此,较大的属性值意味着硬盘质量较好而且可靠性较高,而较小的属性值则意味着故障发生的可能性增大。
6.实际值(Date)
是硬盘各检测项目运行中的实际数值,很多项目是累计值。例如:图3中的Start/Stop Count(启停次数),累计的实际值是436,即该硬盘从开始到现在累计加电启停436次。
7.属性状态(Status)
这是S.M.A.R.T针对前面的各项属性值进行比较分析后,提供的硬盘各属性目前的状态,也是我们直观判断硬盘“健康”状态的重要信息。根据S.M.A.R.T的规定,这种状态一般有正常、警告和报告故障或错误等3种状态。S.M.A.R.T判定出这3个状态与S.M.A.R.T的 Pre-failure/advisory BIT(预知错误/发现位)参数的赋值密切相关。
当Pre-failure/advisory BIT=0,并且可靠属性值远大于阈值的情况下,为正常提示“OK”标志。当Pre-failure/advisory BITt=0,并且可靠属性值大于阈值但接近阈值临界值时,为警告提示“!”标志;当Pre-failure/advisory BITt=1,并且可靠属性值小于阈值时,为报告故障或错误提示“!!!”标志。
在图2中,我们发现出现“OK”标志的正常状态下有“值正常”(Value is Normal)和“总是略过”(Always Passing)两个状态说明。它们的区别是:“值正常”表明此项S.M.A.R.T值是正常的,硬盘没有故障;“永远略过”则表明此项只是某参数的记录,没有合格与不合格的标准,如“Power on time count”,这个参数只是记录了硬盘已经加电工作的时间,这个参数应当永远合格,它不用来衡量硬盘的性能,因此显示为“OK:Value is Normal”。
下面我们以ID为“04”的Start/Stop Count(加电次数)检测参数为例,完整地来理解这7列参数的意义:从图2中我们看到此参数规定的属性正常值(Attribute value)为“100”,这个正常值是通过计算公式:“100-硬盘正常使用寿命期间的加电次数/1024”而给出的。而最大出错值是硬盘运行的累计计算值。例如如果是新硬盘,则加电次数为0,因此为100-0/1024=100,最大出错值=属性正常值。随着加电次数的增加,该最大出错值不断变化。厂商规定的阈值为20,即当硬盘的开关电次数达到81920次时(100-81920/1024=20),最大出错值=阈值,系统就会提示用户备份数据。因此,加电次数在81920次范围之内,并且最大出错值始终大于阈值20的状态下,均为正常。图中的加电次数(Date实际值)为107次,因此最大出错值近似为100,状态显示为“OK:Value is Normal(值正常)”。需要特别注意的是:每一个参数所给出的值都是经过一些特定的计算公式而给出的。作为用户,只要观察“Worst”和“Threshold”值的关系,并注意状态提示属性状态信息即可大致了解硬盘的健康状况。
五、SCSI系统中的S.M.R.A.T技术
由于目前硬盘领域存在ATA和SCSI两种标准,所以不可否认,S.M.A.R.T技术是同时支持这两个系列的产品的,只是在一些参数设定上存在一些差异,在关键参数上SCSI比ATA硬盘更为复杂。但在实际运作中,由于用户和使用环境不同,S.M.A.R.T对ATA/IDE系统的干预比SCSI系统要多一些,而对SCSI故障的判定更为专业和准确些。SCSI硬盘的S.M.A.R.T技术与ATA硬盘的S.M.A.R.T技术相比更为复杂,以下仅列举SCSI硬盘所特有参数中的一部分。
Primary Temp:硬盘盘体的工作温度
Secondary Temp:PCB板周围的工作温度
Min and Max Temp:在一段时间内硬盘盘体的最高和最低工作温度
Velocity Observer Count:在一段时间内伺服寻道时偏离指定磁道的次数
12V:12V供电电压值
5V:5V供电电压值
MR Res:MR磁头的电阻值
Sectors Read:在一段时间内从硬盘中读取的扇区数
Sectors Written:在一段时间内数据写入硬盘中的扇区数
在ATA/IDE环境下,由主机上的软件对S.M.A.R.T“报告状态”命令生成的、来自硬盘的报警信号进行解读。主机对硬盘进行查询,以检查这一命令的状态,如果显示马上要发生故障,就将告警信号送至最终用户或系统管理员。系统管理员就安排关机时间,以备份数据和更换硬盘。主系统除对来自硬盘的“报告状态”命令进行评估外,还可对属性和告警报告进行评估。在SCSI环境下,S.M.A.R.T则只报告“状况完好”或“出现故障”。由硬盘进行故障判断,再由主机通知用户采取措施。在SCSI标准中有一个检测位,当硬盘确定可靠性出现问题时,检测位就打上标记并通知最终用户或系统管理员,采取相应措施。
六、S.M.A.R.T的预测效果究竟如何?
通常我们面对的硬盘故障可以分为两大类:不可预测和可预测。
不可预测故障,通常指不可预料的电子和机械故障,这类故障发生在瞬间,如硬盘加电状态意外碰撞导致硬盘磁头撞击盘片,或瞬间电流过大引起的芯片或电路故障。通常是在S.M.A.R.T反映出性能下降之前,硬盘就已经不能工作。而这些只可通过质量、设计、工艺、制造等方面的改进以及使用过程中规范 *** 作来降低不可预测故障的发生率(例如硬盘防震技术的开发和进展,有效降低了硬盘震动物理故障的概率)。
可预测故障具有在硬盘完全不能工作前,其相应的参数会随时间发生变化的特点。根据这一特点,可以通过S.M.A.R.T此类实时信息检测技术监测其属性来进行故障预测、分析和提供建议,从而加以防范。此类故障中包括软件故障和硬件故障。例如许多机械故障都被看作是典型的可预测故障,S.M.A.R.T技术对于此类故障就有了用武之地,在发生故障之前,可以发出提醒用户备份数据的通知,保护用户的数据。
据研究数据表明,利用S.M.A.R.T技术可预测的硬盘故障中,60%为机械性质的,40%左右则是对软性故障的有效预测。随着S.M.A.R.T技术及相关技术的渐渐成熟,可预测出的故障种类将越来越多,对故障的防范措施也会变得越来越有效。当然,对不想开启S.M.A.R.T技术的读者而言,也可以在BIOS设置的“Advanced BIOS Set Up”选项中将其关闭
七、对一些特殊问题的解答
1.组建RAID之后,S.M.A.R.T是否仍然生效?
用户组建RAID之后,S.M.A.R.T功能仍然有效,但是这需要RAID卡控制芯片支持S.M.A.R.T功能。实际上,RAID卡的S.M.A.R.T报警功能与硬盘在常规状态下的报错信息并无太大差别。报警时,相应模块所对应的硬盘指示灯(通常为红色)会长亮以起到警示作用。
2.为什么监测不到USB接口外置硬盘的S.M.A.R.T状态?
对于一个USB接口外置硬盘而言,系统将它判定为一个USB设备,监测不到S.M.A.R.T信息是因为USB标准中没有此项规定。此时虽然硬盘自身仍然在记录S.M.A.R.T状态,但由于它是USB外设,系统就不会监测它的S.M.A.R.T状态。
3.S.M.A.R.T功能对系统性能是否有影响?
硬盘记录S.M.A.R.T信息有两种方式,第一种是“在线(On-line)”收集,所谓在线收集就是硬盘在工作时,根据硬盘的实际工作状态收集到的信息,硬盘实时或在指定时间段内更新自身的S.M.A.R.T数据。举例来说,如果一个ATA硬盘在写入数据到一个扇区时,遇到一个不可修正的错误,硬盘会及时把这个信息更新到SMART数据中;对于SCSI硬盘,如果它设定的S.M.A.R.T更新周期是4分钟,则它会把在4分钟内收集到的相关S.M.A.R.T信息更新到S.M.A.R.T数据区,然后再开始下一个周期的跟踪。在线收集状态对系统性能没有影响。
第二种是“离线(off-line)”收集,离线收集是硬盘收到主机发来的一些特定指令时而进行自检测试,此时硬盘会处于“idel”状态或错误修正状态,在这类情况下,硬盘自身将作大量动作以测试健康状态,导致硬盘对主机发出的正常要求产生延迟。所以离线收集状态会造成系统性能的下降。
4.S.M.A.R.T技术对相关信息的记录是否有周期性?
对于SCSI硬盘而言,记录S.M.A.R.T信息有周期性,一般情况下周期处于4分钟~120分钟之间。这个值在硬盘出厂时就已设定,并且只能通过专业软件进行修改;而对于ATA硬盘,S.M.A.R.T信息的记录则没有周期性。
八、写在最后
经过近9年的发展,S.M.A.R.T技术已成为ATA/SCSI规范中不可或缺的部分。目前,硬盘厂商关于数据保护技术的开发和研究,也基本是建立在S.M.A.R.T技术基础上的。通过本文的分析可以看出,S.M.A.R.T具有被动性的检测、预警功能,被新兴的数据保护技术衍生为可主动修复的功能。随着硬盘技术的更新,我们有理由相信,S.M.A.R.T技术将给用户的数据提供更多保障。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)