硬盘SMART属性详解

一、SMART概述

 S.M.A.R.T(Self-Monitoring Analysis And Reporting Technology),即“自我监测、分析及报告技术”,是一种自动监控硬盘驱动器完好状况和报告潜在问题的技术标准。支持S.M.A.R.T技术的硬盘可以通过硬盘上的监测指令和主机上的监测软件对磁头、盘片、马达、电路的运行情况、历史记录及预设的安全值进行分析、比较。当出现安全值范围以外的情况时,就会自动向用户发出警告。

 最早期的硬盘监控技术起源于1992年,IBM在AS/400计算机的IBM 0662 SCSI 2代硬盘驱动器中使用了Predictive Failure Analysis(故障预警分析技术)的监控技术,它通过在固件中测量几个重要的硬盘安全参数和评估他们的情况,然后由监控软件得出两种结果:“硬盘安全”或“不久后会发生故障”。

 不久,当时的微机制造商康柏和硬盘制造商希捷、昆腾和康纳共同提出了名为IntelliSafe的类似技术。通过该技术,硬盘可以测量自身的健康指标并将参量值传送给操作系统和用户的监控软件中,每个硬盘生产商有权决定哪些指标需要被监控以及设定它们的安全阈值。

 1995年,康柏公司将该技术方案提交到Small Form Factor(SFF)委员会进行标准化,该方案得到IBM、希捷、昆腾、康纳和西部数据的支持,1996年6月进行了1.3版的修正,正式更名为S.M.A.R.T(Self-Monitoring Analysis And Reporting  Technology),即“自我检测分析与报告技术”。

 SMART的目的是监控硬盘的可靠性、预测磁盘故障和执行各种类型的磁盘自检。如今大部分的ATA/SATA、SCSI/SAS和固态硬盘都搭载内置的SMART系统。作为行业规范,SMART规定了硬盘制造厂商应该遵循的标准,满足SMART标准的条件主要包括: 

1)   在设备制造期间完成SMART需要的各项参数、属性的设定;

2)   允许用户自由开启和关闭SMART功能; 

3)   在特定系统平台下,能够正常使用SMART;通过BIOS检测,能够识别设备是否支持SMART并可显示相关信息,而且能辨别有效和失效的SMART信息; 

4)   在用户使用过程中,能提供SMART的各项有效信息,确定设备的工作状态,并能发出相应的修正指令或警告。在硬盘及操作系统都支持SMART技术并且开启的情况下,若硬盘状态不良,SMART技术能够在屏幕上显示英文警告信息。

 SMART不断从硬盘上的各个传感器收集信息,并把信息保存在硬盘的系统保留区(service area)内;这个区域一般位于硬盘0物理面的最前面几十个物理磁道,由厂商写入相关的内部管理程序。这里除了SMART信息表外还包括低级格式化程序、加密解密程序、自监控程序、自动修复程序等。用户可使用的监测软件,执行“SMART Return Status”命令(命令代码:B0h)对SMART信息进行读取,但此命令且不允许最终用户对信息进行修改。

二、SMART的值和ID

SMART ID代码是用两位十六进制数表示的硬盘各项检测参数。目前,各硬盘制造商的绝大部分ID代码所代表的参数含义是一致的,但不同制造商的描述有微小差别,或者根据检测项目的多少增减ID代码。

SATA和SAS的SMART信息也是大同小异的。

SMART反映了各项参数的具体情况,主要包括临界值(Threshold)、当前值(Normalized value)、最差值(Worst)、数据值(Data或Raw value)。

2.1 临界值Threshold

临界值是硬盘厂商指定的表示某一项目可靠性的门限值,它通过特定公式计算而得。如果某个参数的当前值接近了临界值,就意味着硬盘将变得不可靠,可能导致数据丢失或者硬盘故障。由于临界值是硬盘厂商根据自己产品特性而确定的,因此用厂商提供的专用检测软件往往会跟Windows下检测软件的检测结果有较大出入。

2.2 当前值(Normalized value)

当前值是各ID项在硬盘运行时根据实测数据通过公式计算的结果,计算公式由硬盘厂家自定。 硬盘出厂时各ID项目都有一个预设的最大正常值,即出厂值,这个预设的依据及计算方法为硬盘厂家保密,不同型号的硬盘都不同,最大正常值通常为100或200或253,新硬盘刚开始使用时显示的当前值可以认为是预设的最大正常值(有些ID项如温度等除外)。随着使用损耗或出现错误,当前值会根据实测数据而不断刷新并逐渐减小。

因此,当前值接近临界值就意味着硬盘寿命的减少,发生故障的可能性增大,所以当前值也是判定硬盘健康状态或推测寿命的依据之一。

2.3 最差值(Worst)

最差值是对硬盘运行中某项数据变劣的峰值统计,该数值也会不断刷新。通常,最差值与当前值是相等的,如果最差值出现较大的波动(小于当前值),表明硬盘曾出现错误或曾经历过恶劣的工作环境(如温度)。

2.4 数据值(Data或Raw value)

数据值是硬盘运行时各ID项参数的实测值,数据值代表的意义随参数而定,大致可以分为三类:

1)数据值是直接累计的,如Start/Stop Count(启动/停止计数)的数据是50,即表示该硬盘从出厂到现在累计启停了50次; 

2)有些参数的数据是即时数,如Temperature(温度)的数据值是44,表示硬盘的当前温度是44℃;

3)有些参数直接查看数据也能大致了解硬盘目前的工作状态;但是,也有很多数据值并不直接反映硬盘状态,必须经过硬盘内置的计算公式换算成当前值才能得出结果.

2.5 TYPE

属性的类型(Pre-fail或Oldage)。Pre-fail类型的属性可被看成一个关键属性,表示参与磁盘的整体SMART健康评估是否通过(PASSED/FAILED)。如果任何Pre-fail类型的属性故障,那么可视为磁盘将要发生故障。另一方面,Oldage类型的属性可被看成一个非关键的属性(如正常的磁盘磨损),表示不会使磁盘本身发生故障。

2.6 UPDATED

表示属性的更新频率。Offline代表磁盘上执行离线测试的时间。

2.7 WHEN_FAILED

如果VALUE小于等于THRESH,会被设置成“FAILING_NOW”;如果WORST小于等于THRESH会被设置成“In_the_past”;如果都不是,会被设置成“-”。在“FAILING_NOW”情况下,需要尽快备份重要 文件,特别是属性是Pre-fail类型时。“In_the_past”代表属性已经故障了,但在运行测试的时候没问题。“-”代表这个属性从没故障过。

三、SMART状态(Status)和参数详解

3.1 SATA SMART日志示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

General SMART Values:
Offline data collection status: (0x82) Offline data collection activity
was completed without error.
Auto Offline Data Collection: Enabled.
Self-test execution status: ( 0) The previous self-test routine completed
without error or no self-test has ever
been run.
Total time to complete Offline
data collection: ( 113) seconds.
Offline data collection
capabilities: (0x5b) SMART execute Offline immediate.
Auto Offline data collection on/off support.
Suspend Offline collection upon new
command.
Offline surface scan supported.
Self-test supported.
No Conveyance Self-test supported.
Selective Self-test supported.
SMART capabilities: (0x0003) Saves SMART data before entering
power-saving mode.
Supports SMART auto save timer.
Error logging capability: (0x01) Error logging supported.
General Purpose Logging supported.
Short self-test routine
recommended polling time: ( 2) minutes.
Extended self-test routine
recommended polling time: ( 571) minutes.
SCT capabilities: (0x003d) SCT Status supported.
SCT Error Recovery Control supported.
SCT Feature Control supported.
SCT Data Table supported.

SMART Attributes Data Structure revision number: 16
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000b 093 093 016 Pre-fail Always - 1703946
2 Throughput_Performance 0x0005 137 137 054 Pre-fail Offline - 104
3 Spin_Up_Time 0x0007 100 100 024 Pre-fail Always - 0
4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 4
5 Reallocated_Sector_Ct 0x0033 087 087 005 Pre-fail Always - 3
7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0
8 Seek_Time_Performance 0x0005 128 128 020 Pre-fail Offline - 18
9 Power_On_Hours 0x0012 100 100 000 Old_age Always - 6318
10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 4
192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 343
193 Load_Cycle_Count 0x0012 100 100 000 Old_age Always - 343
194 Temperature_Celsius 0x0002 162 162 000 Old_age Always - 37 (Min/Max 23/42)
196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 3
197 Current_Pending_Sector 0x0022 087 087 000 Old_age Always - 4600
198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 282
199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0

3.2 SATA SMART的参数详解

属性描述(Attribute Description)即检测项目名称。可由厂商自定义增减,由于ATA标准不断更新,有时候同一品牌的不同型号产品也会有所不同。

有背景颜色的属性,都是需要重点对待的。

01h(001) Raw Read Error Rate 底层数据读取错误率

数据为0或任意值,当前值应远大于与临界值。

底层数据读取错误率是磁头从磁盘表面读取数据时出现的错误,对某些硬盘来说,大于0的数据表明磁盘表面或者读写磁头发生问题,如介质损伤、磁头污染、磁头共振等等。不过对希捷硬盘来说,许多硬盘的这一项会有很大的数据量,这不代表有任何问题,主要是看当前值下降的程度。

在固态硬盘中,此项的数据值包含了可校正的错误与不可校正的RAISE错误(UECC+URAISE)。

02h(002) Throughput Performance 读写通量性能

此参数表示硬盘的读写通量性能,数据值越大越好。当前值如果偏低或趋近临界值,表示硬盘存在严重的问题,但现在的硬盘通常显示数据值为0或根本不显示此项,一般在进行了人工脱机SMART测试后才会有数据量。

03h(003) Spin-Up Time 硬盘主轴起转时间

主轴起旋时间就是主轴电机从启动至达到额定转速所用的时间,数据值直接显示时间,单位为毫秒或者秒,因此数据值越小越好。不过对于正常硬盘来说,这一项仅仅是一个参考值,硬盘每次的启动时间都不相同,某次启动的稍慢些也不表示就有问题。 

硬盘的主轴电机从启动至达到额定转速大致需要4秒~15秒左右,过长的启动时间说明电机驱动电路或者轴承机构有问题。一旦这一参数的数据值在某些型号的硬盘上总是为0,这就要看当前值和最差值来判断了。  

对于固态硬盘来说,所有的数据都是保存在半导体集成电路中,没有主轴电机,所以这项没有意义,数据固定为0,当前值固定为100。

04h(004) Start/Stop Count 马达启停次数(又称加电次数)

这一参数的数据是累计值,表示硬盘主轴电机启动/停止的次数,新硬盘通常只有几次,以后会逐渐增加。系统的某些功能如空闲时关闭硬盘等会使硬盘启动/停止的次数大为增加,在排除定时功能的影响下,过高的启动/停止次数(远大于通电次数0C)暗示硬盘电机及其驱动电路可能有问题。  

这个参数的当前值是依据某种公式计算的结果,例如对希捷某硬盘来说临界值为20,当前值是通过公式“100-(启停计数/1024)”计算得出的。若新硬盘的启停计数为0,当前值为100-(0/1024)=100,随着启停次数的增加,该值不断下降,当启停次数达到81920次时,当前值为100-(81920/1024)=20,已达到临界值,表示从启停次数来看,该硬盘已达设计寿命,当然这只是个寿命参考值,并不具有确定的指标性。  

这一项对于固态硬盘同样没有意义,数据固定为0,当前值固定为100。

05h(005) Relocated Sector Count 重映射扇区数(Glist)

数据应为0,当前值应远大于临界值。

这项参数的数据值直接表示已经被重映射扇区的数量,当前值则随着数据值的增加而持续下降。当发现此项的数据值不为零时,要密切注意其发展趋势,若能长期保持稳定,则硬盘还可以正常运行;若数值不断上升,说明不良扇区不断增加,硬盘已处于不稳定状态,应当考虑更换了。如果当前值接近或已到达临界值(此时的数据值并不一定很大,因为不同硬盘保留的备用扇区数并不相同),表示缺陷表已满或备用扇区已用尽,已经失去了重映射功能,再出现不良扇区就会显现出来并直接导致数据丢失。  

 这一项不仅是硬盘的寿命关键参数,而且重映射扇区的数量也直接影响硬盘的性能,例如某些硬盘会出现数据量很大,但当前值下降不明显的情况,这种硬盘尽管还可正常运行,但也不宜继续使用。因为备用扇区都是位于磁盘尾部(靠近盘片轴心处),大量的使用备用扇区会使寻道时间增加,硬盘性能明显下降。

07h(007) Seek Error Rate 寻道错误率

数据应为0或者远远大于0,当前值应远大于与临界值。  

这一项表示磁头寻道时的错误率,有众多因素可导致寻道错误率上升,如磁头组件的机械系统、伺服电路有局部问题,盘片表面介质不良,硬盘温度过高等。

如果这里接近阈值,就说明硬盘马上就要挂了。

08h(008) Seek Time Performance 寻道性能

此项表示硬盘寻道操作的平均性能(寻道速度),通常与前一项(寻道错误率)相关联。当前值持续下降标志着磁头组件、寻道电机或伺服电路出现问题,但现在许多硬盘并不显示这一项。

09h(009) Power-On Hours硬盘加电时间

此参数表示硬盘自出厂以来加电启动的统计时间,单位为小时。

0Ah(010) Spin up Retry Count 马达起转重试次数(即硬盘启动重试次数)

数据应为0,当前值应大于临界值。

主轴电机在一次加速至正常速度失败后尝试重新继续加速到正常运行速度的统计数;这个数值的增加说明电机驱动或者机械子系统出现问题,也可能是整机供电不足。

0Bh(011) Calibration Retry Count 磁头校准重试次数

数据应为0,当前值应远大于与临界值。

磁头在一次运行失败时尝试校准至正常状态的统计数,这个数值的增加表示点击驱动电路或者机械子系统出现问题。

0Ch(012) Power Cycle Count 通电周期计数

通电周期计数的数据值表示了硬盘通电/断电的次数,即电源开关次数的累计,反映硬盘寿命的一个参考值。

0Dh(013) Soft Read Error Rate 软件读取错误率

软件读取错误率也称为可校正的读取误码率,就是报告给操作系统的未经校正的读取错误。数据值越低越好,过高则可能暗示盘片磁介质有问题。

B4h(180) Unused Reserved Block Count Total未用的备用块计数(惠普)

固态硬盘会保留一些容量来准备替换损坏的存储单元,所以可用的预留空间数是非常重要的。这个参数的当前值表示尚未使用的预留的存储单元数量。

B7h(183) SATA Downshift Error Count 串口降速错误计数

这一项表示SATA接口速率错误下降的次数。通常硬盘与主板之间的兼容问题会导致SATA传输级别降级运行。

B8h(184) End to End Error Detection Count 端到端错误检测次数

Intel第二代的34nm固态硬盘有点到点错误检测计数这一项。固态硬盘里有一个LBA(logical block addressing,逻辑块地址)记录,这一项显示了SSD内部逻辑块地址与真实物理地址间映射的出错次数。

BBh(187) Reported Uncorrectable Errors 无法校正的错误

报告给OS的无法通过硬件ECC校正的错误,如果数值大于0,应该注意硬盘安全,甚至备份数据。

BCh(188) Command Timeout 通信超时

由于无法连接至硬盘而终止操作的统计数,一般为0,如果远超过0,则可能电源供电问题或数据线接口氧化,也可能是硬盘出现更严重的问题。

BDh189) High Fly Writes 高飞写入

这一项的数据值就统计了写入时磁头飞行高度出现偏差的次数。硬盘进行写入时对磁头高度进行监控以提供额外的保障;当磁头处于不正常高度进行写入时,写入操作会被终止,原有数据重写入或者将该扇区重映射到安全区域,该属性是统计值。

BEh(190) Airflow Temperature 气流温度

这一项表示的是硬盘内部盘片表面的气流温度。在希捷公司的某些硬盘中,当前值=(100-当前温度),因此气流温度越高,当前值就越低,最差值则是当前值曾经到达过的最低点,临界值由制造商定义的最高允许温度来确定,而数据值不具实际意义。许多硬盘也没有这一项参数。

BFh(191) G-sense Error Rate 冲击错误率

这一项的数值记录了硬盘受到机械冲击导致出错的频度。

C0h(192) Power-Off Retract Count断电返回计数

此参数表示不安全断电时候磁头返回的次数。但要注意这个参数对某些硬盘来说,仅记录意外断电时磁头的返回动作;而某些硬盘记录了所有(包括休眠、待机,但不包括关机时)的磁头返回动作;还有些硬盘这一项没有记录。

因此这一参数的数据值在某些硬盘上持续为0或稍大于0,但在另外的硬盘上则会大于通电周期计数(0C)或启停计数(04)的数据。在一些新型节能硬盘中,这一参数的数据量还与硬盘的节能设计相关,可能会远大于通电周期计数(0C)或启停计数(04)的数据,但又远小于磁头加载/卸载计数(C1)的数据量。

对于固态硬盘来说,虽然没有磁头的加载/卸载操作,但这一项的数据量仍然代表了不安全关机,即发生意外断电的次数。

C1h(193) Load Cycle Count 磁头加载/卸载次数

这个参数的数据值就是磁头执行加载/卸载操作的累计次数。从原理上讲,这个加载/卸载次数应当与硬盘的启停次数相当,但对于笔记本内置硬盘以及台式机新型节能硬盘来说,这一项的数据量会很大。这是因为磁头臂组件设计有一个固定的返回力矩,保证在意外断电时磁头能靠弹簧力自动离开盘片半径范围,迅速返回停靠架。所以要让硬盘运行时磁头保持在盘片的半径之内,就要使磁头臂驱动电机(寻道电机)持续通以电流。而让磁头臂在硬盘空闲几分钟后就立即执行卸载动作,返回到停靠架上,既有利于节能,又降低了硬盘受外力冲击导致磁头与盘片接触的概率。虽然再次加载会增加一点寻道时间,但毕竟弊大于利,所以在这类硬盘中磁头的加载/卸载次数会远远大于通电周期计数(0C)或启停计数(04)的数据量。不过这种加载/卸载方式已经没有了磁头与盘片的接触,所以设计值也已大大增加,通常笔记本内置硬盘的磁头加载/卸载额定值在30~60万次,而台式机新型节能硬盘的磁头加载/卸载设计值可达一百万次。

C2h(194) Temperature 温度

这个数值直接表示了硬盘内部的当前温度。硬盘运行时最好不要超过45℃,温度过高虽不会导致数据丢失,但引起的机械变形会导致寻道与读写错误率上升,降低硬盘性能。硬盘的最高允许运行温度可查看硬盘厂商给出的数据,一般不会超过60℃。

C3h(195) Hardware ECC Recovered

这个数值记录了磁头在盘片上读写时通过ECC技术校正错误的次数,不过许多硬盘有其制造商特定的数据结构,因此数据量的大小并不能直接说明问题。

C4h(196) Reallocation Event Count 重映射事件计数

数据值应为0,当前值应该远大于临界值。

记录已重映射操作的计数,无论是否成功转移,都会被计数。反映了硬盘已经存在了不良扇区。

C5h(197) Current Pending Sector Count 当前待映射扇区计数

数据值应为0,当前值应该远大于临界值。

记录了不稳定的扇区的数量,即等待被映射的扇区。如果不稳定扇区在随后的读写中成功了,那么此扇区就不再列入等待的范围,数值会下降。仅仅读取时出错的扇区并不会导致重映射,只是被列入“等待”,也许以后读取就没有问题,所以只有在写入失败时才会发生重映射。下次对该扇区写入时如果继续出错,就会产生一次重映射操作,此时重映射扇区计数(05)与重映射事件计数(C4)的数据值增加,此参数的数据值下降。

C6h(198) Offline Uncorrectable Sector Count 脱机无法校正的扇区计数

数据应为0,当前值应远大于临界值。 

这个参数的数据累计了读写扇区时发生的无法校正的错误总数。数值上升表明盘片表面介质或机械子系统出现问题,有些扇区肯定已经不能读取,如果有文件正在使用这些扇区,操作系统会返回读盘错误的信息。下一次写操作时会对该扇区执行重映射。

C7h(199) UDMA CRC Error CountULTRA DMA访问校验错误率

C7h(199) Ultra ATA CRC Error Rate Ultra DMA访问校验错误率

这个参数的数据值累计了通过接口循环冗余校验(Interface Cyclic Redundancy Check,ICRC)发现的数据线传输错误的次数。如果数据值不为0且持续增长,表示“硬盘控制器→数据线→硬盘接口”出现错误,劣质的数据线、接口接触不良都可能导致此现象。由于这一项的数据值不会复零,所以某些新硬盘也会出现一定的数据量,只要更换数据线后数值不再继续增长,即表示问题已得到解决。

C8h(200) Multi-zone Error Rate 多区域错误率

C8h(200) Write Error Rate 写入错误率

数据应为0,当前值应远大于临界值。  

这个参数的数据累计了向扇区写入数据时出现错误的总数。有的新硬盘也会有一定的数据量,若数值持续快速升高(当前值偏低),表示盘片、磁头组件可能有问题。  

CEh(206) Flying Height 磁头飞行高度

磁头距离盘片表面的垂直距离。高度过低则增加了磁头与盘片接触导致损坏的可能性;高度偏高则增大了读写错误率。不过准确地说,硬盘中并没有任何装置可以直接测出磁头的飞行高度,制造商也只是根据磁头读取的信号强度来推算磁头飞行高度。

CFh(207) Spin High Current 主轴过电流

数值记录了主轴电机运行时出现浪涌电流的次数,数据量的增加意味着轴承或电机可能有问题。

D0h(208) Spin Buzz 主轴电机重启次数

数值记录了主轴电机反复尝试启动的次数,这通常是由于电源供电不足引起的。

DCh(220) Disk Shift 盘片偏移量

硬盘中的盘片相对主轴的偏移量(通常是受外力冲击或温度变化所致),单位未知,数据值越小越好。

F1h(241) Total LBAs Written LBA写入总数

LBA写入数的累计。

F2h(242) Total LBAs Read LBA读取总数

LBA读取数的累计。某些SMART读取工具会显示负的数据值,是因为采用了48位LBA,而不是32位LBA。

FEh(254) Free Fall Protection 自由坠落保护

现在有些笔记本硬盘具有自由坠落保护功能,当硬盘内置的加速度探测装置检测到硬盘位移时,会立即停止读写操作,将磁头臂复位。这个措施防止了磁头与盘片之间发生摩擦撞击,提高了硬盘的抗震性能。这个参数的数据里记录了这一保护装置动作的次数。

3.3 SAS SMART日志示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
=== START OF READ SMART DATA SECTION ===
SMART Health Status: OK

Current Drive Temperature: 31 C
Drive Trip Temperature: 65 C

Manufactured in week 31 of year 2017
Specified cycle count over device lifetime: 50000
Accumulated start-stop cycles: 21
Specified load-unload count over device lifetime: 600000
Accumulated load-unload cycles: 22
Elements in grown defect list: 0

Error counter log:
Errors Corrected by Total Correction Gigabytes Total
ECC rereads/ errors algorithm processed uncorrected
fast | delayed rewrites corrected invocations [10^9 bytes] errors
read: 2155 1 0 0 0 6621.256 0
write: 0 0 0 0 0 177.814 0

Non-medium error count: 1

SMART Self-test log
Num Test Status segment LifeTime LBA_first_err [SK ASC ASQ]
Description number (hours)
# 1 Background long Completed - 4 - [- - -]
Long (extended) Self Test duration: 7411 seconds [123.5 minutes]

3.4 SAS SMART参数详解

SATA和SAS的SMART日志内容格式不一样,ID参数也不一样,但是参数含义大同小异;由于SATA盘的smart信息较全,因此本文档以SATA的参数解释为主,SAS盘的参数解释请参考SATA盘的。

SAS盘的smart信息少,最为直观且重要的一项指标是“Elements in grown defect list”,即Glist。" Error counter log:Total uncorrected errors:"   10就建议更换。

“Non-medium error count” 非介质错误计数。正常是0;一般可能的原因为是电缆、传输、校验问题,可以忽略。

3.5 硬盘坏道表PList和GList

硬盘的数据密度很大,在生产过程中不可避免地会产生缺陷,同时在使用过程中,那些不稳定的扇区也会逐渐老化而产生数据读写错误,这些缺陷和不稳定扇区会严重威胁硬盘数据的安全。为此,硬盘设计了两个坏道表来处理这些有缺陷的扇区,即P-list和G-list,它们用于记录硬盘的缺陷扇区的情况,使硬盘工作时不会在缺陷扇区里读写数据,防止数据损坏。

坏道的产生可以分为两种情况:一是生产过程中产生的缺陷扇区,二是使用过程的产生的缺陷扇区。硬盘设计两个坏道表就是用于分别识别和处理硬盘的两种不同的坏道的。

P-list (Primary Defect List) 基本缺陷列表

在每个硬盘在生产的时候,其实不可避免会产生有部分碟片磁介质不均匀,或者有损坏的地区,对于这部分在生产过程中产生的不稳定的扇区,工厂就会使用一个PLIST 来记录下来。

P-list叫做“永久缺陷表”,这些记录地址在硬盘运行时候自动被跳过,所以P-list不影响硬盘的存取速度。

G-list (Grown Defect List) 成长缺陷列表

 称为增长坏道表,这些记录地址随着用户使用硬盘,硬盘检测到某些区域可能存在缺陷(坏扇区),自动重新映射到出厂时预留的空间。

用来保护用户数据的访问安全。由于G-list带来的是重映射,而非跳过,也就意味着硬盘首先寻找到坏的区域然后再映射到安全区域,这样就会造成硬盘存取速度的减慢。

四、DST硬盘自检

DST(Drive Self Test),硬盘自测试,通过一定的算法,实现硬盘的诊断和SMART刷新。DST主要分为三种测试类型:Short DST、Long DST(SATA硬盘又称其为Extended Self Test)、Conveyance DST。在DST离线的测试完成后,硬盘会把测试的结果刷新到Self test log。

DST主要包括spindup马达磁头臂起转测试、Buffer RAM/Flash ROM检测、伺服定位功能检测、寻道测试、读写磁头检测、读写校验测试、低级格式化功能检测、碟片缺陷检测,部分厂家的DST还会进行日志事件异常检测以及SMART检测等等。