【HDTune变红警告】硬盘SMART检测参数详解
硬盘 SMART 检测参数详解
⼀、SMART概述
  硬盘的故障⼀般分为两种:可预测的(predictable)和不可预测的(unpredictable)。后者偶⽽会发⽣,也没有办法去预防它,例如芯⽚突然失效,机械撞击等。但像电机轴承磨损、盘⽚磁介质性能下降等都属于可预测的情况,可以在在⼏天甚⾄⼏星期前就发现这种不正常的现象。如果发⽣这种问题,SMART功能会在开机时响起警报,⾄少让使⽤者有⾜够的时间把重要资料转移到其它储存设备上。
  最早期的硬盘监控技术起源于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规定了硬盘制造⼚商应遵循的标准,满⾜SMART标准的条件主要包括:
  1)在设备制造期间完成SMART需要的各项参数、属性的设定;
  2)在特定系统平台下,能够正常使⽤SMART;通过BIOS检测,能够识别设备是否⽀持SMART并可显⽰相关信息,⽽且能辨别有效和失效的SMART信息;
  3)允许⽤户⾃由开启和关闭SMART功能;
  4)在⽤户使⽤过程中,能提供SMART的各项有效信息,确定设备的⼯作状态,并能发出相应的修正指令或警告。在硬盘及操作系统都⽀持SMART技术并且开启的情况下,若硬盘状态不良,SMART技术能够在屏幕上显⽰英⽂警告信息:“WARNING:IMMEDIATLY BACKUP YOUR DATA AND REPLACE YOUR HARD DISK DRIVE,A FAILURE MAY BE IMMINENT.”(警告:⽴刻备份你的数据并更换硬盘,硬盘可能失效。)
  SMART功能不断从硬盘上的各个传感器收集信息,并把信息保存在硬盘的系统保留区(service area)内,这个区域⼀般位于硬盘0物理⾯的最前⾯⼏⼗个物理磁道,由⼚商写⼊相关的内部管理程序。这⾥除了SMART信息表外还包括低级格式化程序、加密解密程序、⾃监控程序、⾃动修复程序等。⽤户使⽤的监测软件通过名为“SMART Return Status”的命令(命令代码为:B0h)对SMART信息进⾏读取,且不允许最终⽤户对信息进⾏修改。
  ⼆、SMART的ID代码
  硬盘SMART检测的ID代码以两位⼗六进制数表⽰(括号⾥对应的是⼗进制数)硬盘的各项检测参数。⽬前,各硬盘制造商的绝⼤部分SMART ID代码所代表的参数含义是⼀致的,但⼚商也可以根据需要使⽤不同的ID代码,或者根据检测项⽬的多少增减ID代码。⼀般来说,以下这些检测项是必需的:
  01(001) 底层数据读取错误率 Raw Read Error Rate
  04(004) 启动/停⽌计数 Start/Stop Count
  05(005) 重映射扇区数 Relocated Sector Count
  09(009) 通电时间累计 Power-On Time Count (POH)
  0A(010) 主轴起旋重试次数(即硬盘主轴电机启动重试次数) Spin up Retry Count
  0B(011) 磁盘校准重试次数 Calibration Retry Count
  0C(012) 磁盘通电次数 Power Cycle Count
  C2(194) 温度 Temperature
  C7(199) ULTRA DMA奇偶校验错误率 ULTRA ATA CRC Error Rate
  C8(200) 写错误率 Write Error Rate
小g娜和吴亦凡事件
三、SMART的描述(Description)
  描述,即某⼀检测项⽬的名称,是ID代码的⽂字解释。对⽤户⽽⾔,不仅要了解描述的含义,重要的是要了解各参数的值如“临界值”、“最差值”的定义,“当前值”与“数据值”的区别等,才能对⾃⼰的硬盘状态有⼀个基本了解。
四、SMART的值
  1、临界值(Threshold)
房贷优惠  临界值是硬盘⼚商指定的表⽰某⼀项⽬可靠性的门限值,也称阈值,它通过特定公式计算⽽得。如果某个参数的当前值接近了临界值,就意味着硬盘将变得不可靠,可能导致数据丢失或者硬盘故障。由于临界值是硬盘⼚商根据⾃⼰产品特性⽽确定的,因此⽤⼚商提供的专⽤检测往往会跟Windows下检测软件的检测结果有较⼤出⼊。
  以参数Raw Read Error Rate(底层数据读取错误率)为例:某型硬盘对该参数的计算公式为“10×log10(主机和硬盘之间所传输数据的扇区数)×512×8/重读的扇区数”。其中“512×8”是把扇区数转化为所传输的数据位(bits),这个值只在所传输的数据位处于1010~1012范围时才作计算,⽽当Windows系统启动后,主机和硬盘之间所传输的数据扇区⼤于或等于1012时,此值将重新复位,所以有些值在不同的操作环境、不同检测程序下时会有较⼤的波动。
  2、当前值(Normalized value)
  当前值是各ID项在硬盘运⾏时根据实测数据通过公式计算的结果,计算公式由硬盘⼚家⾃定。
  硬盘出⼚时各ID项⽬都有⼀个预设的最⼤正常值,也即出⼚值,这个预设的依据及计算⽅法为硬盘⼚家保密,不同型号的硬盘都不同,最⼤正常值通常为100或200或253,新硬盘刚开始使⽤时显⽰的当前值可以认为是预设的最⼤正常值(有些ID项如温度等除外)。随着使⽤损耗或出现错误,当前值会根据实测数据⽽不断刷新并逐渐减⼩。因此,当前值接近临界值就意味着硬盘寿命的减少,发⽣故
障的可能性增⼤,所以当前值也是判定硬盘健康状态或推测寿命的依据之⼀。
  3、最差值(Worst)
  最差值是硬盘运⾏时各ID项曾出现过的最⼤的⾮正常值。
  最差值是对硬盘运⾏中某项数据变劣的峰值统计,该数值也会不断刷新。通常,最差值与当前值是相等的,如果最差值出现较⼤的波动(⼩于当前值),表明硬盘曾出现错误或曾经历过恶劣的⼯作环境(如温度)。
  4、数据值(Data或Raw value)
  数据值是硬盘运⾏时各项参数的实测值,⼤部分SMART⼯具以⼗进制显⽰数据。
  数据值代表的意义随参数⽽定,⼤致可以分为三类:
  1)数据值并不直接反映硬盘状态,必须经过硬盘内置的计算公式换算成当前值才能得出结果;
  2)数据值是直接累计的,如Start/Stop Count(启动/停⽌计数)的数据是50,即表⽰该硬盘从出⼚到现在累计启停了50次;
  3)有些参数的数据是即时数,如Temperature(温度)的数据值是44,表⽰硬盘的当前温度是44℃。
  因此,有些参数直接查看数据也能⼤致了解硬盘⽬前的⼯作状态。
五、状态(Status)
  硬盘的每项SMART信息中都有⼀个临界值(阈值),不同硬盘的临界值是不同的,SMART针对各项的当前值、最差值和临界值的⽐较结果以及数据值进⾏分析后,提供硬盘当前的评估状态,也是我们直观判断硬盘健康状态的重要信息。根据SMART的规定,状态⼀般有正常、警告、故障或错误三种状态。
  SMART判定这三个状态与SMART的 Pre-failure/advisory BIT(预测错误/发现位)参数的赋值密切相关,当Pre-failure/advisory BIT=0,并且当前值、最差值远⼤于临界值的情况下,为正常标志。当Pre-failure/advisory BIT=0,并且当前值、最差值⼤于但接近临界值时,为警告标志;当Pre-failure/advisory BIT=1,并且当前值、最差值⼩于临界值时,为故障或错误标志。
六、SMART参数详解
  ⼀般情况下,⽤户只要观察当前值、最差值和临界值的关系,并注意状态提⽰信息即可⼤致了解硬
盘的健康状况。下⾯简单介绍各参数的含义,以红⾊标出的项⽬是寿命关键项,蓝⾊为固态硬盘(SSD)特有的项⽬。
  在基于闪存的固态硬盘中,存储单元分为两类:SLC(Single Layer Cell,单层单元)和MLC(Multi-Level Cell,多层单元)。SLC 成本⾼、容量⼩、但读写速度快,可靠性⾼,擦写次数可⾼达100000次,⽐MLC⾼10倍。⽽MLC虽容量⼤、成本低,但其性能⼤幅落后于SLC。为了保证MLC的寿命,控制芯⽚还要有智能磨损平衡技术算法,使每个存储单元的写⼊次数可以平均分摊,以达到100万⼩时的平均⽆故障时间。因此固态硬盘有许多SMART参数是机械硬盘所没有的,如存储单元的擦写次数、备⽤块统计等等,这些新增项⼤都由⼚家⾃定义,有些尚⽆详细的解释,有些解释也未必准确,此处也只是仅供参考。下⾯凡未注明⼚商的固态硬盘特有的项均为SandForce主控芯⽚特有的,其它⼚商各⾃单独注明。
  01(001)底层数据读取错误率 Raw Read Error Rate
  数据为0或任意值,当前值应远⼤于与临界值。
  底层数据读取错误率是磁头从磁盘表⾯读取数据时出现的错误,对某些硬盘来说,⼤于0的数据表明磁盘表⾯或者读写磁头发⽣问题,如介质损伤、磁头污染、磁头共振等等。不过对希捷硬盘来说,许多硬盘的这⼀项会有很⼤的数据量,这不代表有任何问题,主要是看当前值下降的程度。
  在固态硬盘中,此项的数据值包含了可校正的错误与不可校正的RAISE错误(UECC+URAISE)。
  注:RAISE(Redundant Array of Independent Silicon Elements)意为独⽴硅元素冗余阵列,是固态硬盘特有的⼀种冗余恢复技术,保证内部有类似RAID阵列的数据性。
  02(002)磁盘读写通量性能 Throughput Performance
  此参数表⽰硬盘的读写通量性能,数据值越⼤越好。当前值如果偏低或趋近临界值,表⽰硬盘存在严重的问题,但现在的硬盘通常显⽰数据值为0或根本不显⽰此项,⼀般在进⾏了⼈⼯脱机SMART测试后才会有数据量。
  03(003)主轴起旋时间 Spin Up Time
  主轴起旋时间就是主轴电机从启动⾄达到额定转速所⽤的时间,数据值直接显⽰时间,单位为毫秒或者秒,因此数据值越⼩越好。不过对于正常硬盘来说,这⼀项仅仅是⼀个参考值,硬盘每次的启动时间都不相同,某次启动的稍慢些也不表⽰就有问题。
李云迪的老婆
  硬盘的主轴电机从启动⾄达到额定转速⼤致需要4秒~15秒左右,过长的启动时间说明电机驱动电路或者轴承机构有问题。旦这⼀参数的数据值在某些型号的硬盘上总是为0,这就要看当前值和最差值来判断了。
  对于固态硬盘来说,所有的数据都是保存在半导体集成电路中,没有主轴电机,所以这项没有意义,数据固定为0,当前值固定为100。
  04(004)启停计数 Start/Stop Count
  这⼀参数的数据是累计值,表⽰硬盘主轴电机启动/停⽌的次数,新硬盘通常只有⼏次,以后会逐渐增加。系统的某些功能如空闲时关闭硬盘等会使硬盘启动/停⽌的次数⼤为增加,在排除定时功能的影响下,过⾼的启动/停⽌次数(远⼤于通电次数0C)暗⽰硬盘电机及其驱动电路可能有问题。
  这个参数的当前值是依据某种公式计算的结果,例如对希捷某硬盘来说临界值为20,当前值是通过公式“100-(启停计
数/1024)”计算得出的。若新硬盘的启停计数为0,当前值为100-(0/1024)=100,随着启停次数的增加,该值不断下降,当启停次数达到81920次时,当前值为100-(81920/1024)=20,已达到临界值,表⽰从启停次数来看,该硬盘已达设计寿命,当然这只是个寿命参考值,并不具有确定的指标性。
  这⼀项对于固态硬盘同样没有意义,数据固定为0,当前值固定为100。
  05(005)重映射扇区计数 Reallocated Sectors Count/ 退役块计数 Retired Block Count
舞蹈家金星个人资料  数据应为0,当前值应远⼤于临界值。
  当硬盘的某扇区持续出现读/写/校验错误时,硬盘固件程序会将这个扇区的物理地址加⼊缺陷表(G-list),将该地址重新定向到预先保留的备⽤扇区并将其中的数据⼀并转移,这就称为重映射。执⾏重映射操作后的硬盘在Windows常规检测中是⽆法发现不良扇区的,因其地址已被指向备⽤扇区,这等于屏蔽了不良扇区。
  这项参数的数据值直接表⽰已经被重映射扇区的数量,当前值则随着数据值的增加⽽持续下降。当发现此项的数据值不为零时,要密切注意其发展趋势,若能长期保持稳定,则硬盘还可以正常运⾏;若数据值不断上升,说明不良扇区不断增加,硬盘已处于不稳定状态,应当考虑更换了。如果当前值接近或已到达临界值(此时的数据值并不⼀定很⼤,因为不同硬盘保留的备⽤扇区数并不相同),表⽰缺陷表已满或备⽤扇区已⽤尽,已经失去了重映射功能,再出现不良扇区就会显现出来并直接导致数据丢失。
  这⼀项不仅是硬盘的寿命关键参数,⽽且重映射扇区的数量也直接影响硬盘的性能,例如某些硬盘会出现数据量很⼤,但当前值下降不明显的情况,这种硬盘尽管还可正常运⾏,但也不宜继续使⽤。因为备⽤扇区都是位于磁盘尾部(靠近盘⽚轴⼼处),⼤量的使⽤备⽤扇区会使寻道时间增加,硬盘性能明显下降。
  这个参数在机械硬盘上是⾮常敏感的,⽽对于固态硬盘来说同样具有重要意义。闪存的寿命是正态
分布的,例如说MLC能写⼊⼀万次以上,实际上说的是写⼊⼀万次之前不会发⽣“批量损坏”,但某些单元可能写⼊⼏⼗次就损坏了。换⾔之,机械硬盘的盘⽚不会因读写⽽损坏,出现不良扇区⼤多与⼯艺质量相关,⽽闪存的读写次数则是有限的,因⽽损坏是正常的。所以固态硬盘在制造时也保留了⼀定的空间,当某个存储单元出现问题后即把损坏的部分隔离,⽤好的部分来顶替。这⼀替换⽅法和机械硬盘的扇区重映射是⼀个道理,只不过机械硬盘正常时极少有重映射操作,⽽对于固态硬盘是经常性的。
  在固态硬盘中这⼀项的数据会随着使⽤⽽不断增长,只要增长的速度保持稳定就可以。通常情况下,数据值=100-(100×被替换块/必需块总数),因此也可以估算出硬盘的剩余寿命。
  Intel固态硬盘型号的第⼗⼆个字母表⽰了两种规格,该字母为1表⽰第⼀代的50纳⽶技术的SSD,为2表⽰第⼆代的34纳⽶技术的SSD,如SSDSA2M160G2GN就表⽰是34nm的SSD。所以参数的查看也有两种情况:行到水穷处坐看云起时
  50nm的SSD(⼀代)要看当前值。这个值初始是100,当出现替换块的时候这个值并不会⽴即变化,⼀直到已替换四个块时这个值变为1,之后每增加四个块当前值就+1。也就是100对应0~3个块,1对应4~7个块,2对应8~11个块……
  34nm的SSD(⼆代)直接查看数据值,数据值直接表⽰有多少个被替换的块。
  06(006)读取通道余量 Read Channel Margin
  这⼀项功能不明,现在的硬盘也不显⽰这⼀项。
  07(007)寻道错误率 Seek Error Rate
  数据应为0,当前值应远⼤于与临界值。
  这⼀项表⽰磁头寻道时的错误率,有众多因素可导致寻道错误率上升,如磁头组件的机械系统、伺服电路有局部问题,盘⽚表⾯介质不良,硬盘温度过⾼等等。
  通常此项的数据应为0,但对希捷硬盘来说,即使是新硬盘,这⼀项也可能有很⼤的数据量,这不代表有任何问题,还是要看当前值是否下降。
  08(008)寻道性能 Seek Time Performance
  此项表⽰硬盘寻道操作的平均性能(寻道速度),通常与前⼀项(寻道错误率)相关联。当前值持续下降标志着磁头组件、寻道电机或伺服电路出现问题,但现在许多硬盘并不显⽰这⼀项。
  09(009)通电时间累计 Power-On Time Count (POH)
网上申请港澳通行证
  这个参数的含义⼀⽬了然,表⽰硬盘通电的时间,数据值直接累计了设备通电的时长,新硬盘当然应该接近0,但不同硬盘的计数单位有所不同,有以⼩时计数的,也有以分、秒甚⾄30秒为单位的,这由磁盘制造商来定义。
  这⼀参数的临界值通常为0,当前值随着硬盘通电时间增加会逐渐下降,接近临界值表明硬盘已接近预计的设计寿命,当然这并不表明硬盘将出现故障或⽴即报废。参考磁盘制造商给出的该型号硬盘的MTBF(平均⽆故障时间)值,可以⼤致估计剩余寿命或故障概率。
  对于固态硬盘,要注意“设备优先电源管理功能(device initiated power management,DIPM)”会影响这个统计:如果启⽤了DIPM,持续通电计数⾥就不包括睡眠时间;如果关闭了DIPM功能,那么活动、空闲和睡眠三种状态的时间都会被统计在内。
  0A(010)主轴起旋重试次数 Spin up Retry Count
  数据应为0,当前值应⼤于临界值。
  主轴起旋重试次数的数据值就是主轴电机尝试重新启动的计数,即主轴电机启动后在规定的时间⾥未能成功达到额定转速⽽尝试再次启动的次数。数据量的增加表⽰电机驱动电路或是机械⼦系统出现问题,整机供电不⾜也会导致这⼀问题。
  0B(011)磁头校准重试计数 Calibration Retry Count
  数据应为0,当前值应远⼤于与临界值。
  硬盘在温度发⽣变化时,机械部件(特别是盘⽚)会因热胀冷缩出现形变,因此需要执⾏磁头校准操作消除误差,有的硬盘还内置了磁头定时校准功能。这⼀项记录了需要再次校准(通常因上次校准失败)的次数。
  这⼀项的数据量增加,表⽰电机驱动电路或是机械⼦系统出现问题,但有些型号的新硬盘也有⼀定的数据量,并不表⽰有问题,还要看当前值和最差值。
  0C(012)通电周期计数 Power Cycle Count
  通电周期计数的数据值表⽰了硬盘通电/断电的次数,即电源开关次数的累计,新硬盘通常只有⼏次。
  这⼀项与启停计数(04)是有区别的,⼀般来说,硬盘通电/断电意味着计算机的开机与关机,所以经历⼀次开关机数据才会加1;⽽启停计数(04)表⽰硬盘主轴电机的启动/停⽌(硬盘在运⾏时可能多次启停,如系统进⼊休眠或被设置为空闲多少时间⽽关闭)。所以⼤多情况下这个通电/断电的次数会⼩于启停计数(04)的次数。
  通常,硬盘设计的通电次数都很⾼,如⾄少5000次,因此这⼀计数只是寿命参考值,本⾝不具指标性。
  0D(013)软件读取错误率 Soft Read Error Rate
  软件读取错误率也称为可校正的读取误码率,就是报告给操作系统的未经校正的读取错误。数据值越低越好,过⾼则可能暗⽰盘⽚磁介质有问题。
  AA(170)坏块增长计数 Grown Failing Block Count(Micron 镁光)
  读写失败的块增长的总数。
  AB(171)编程失败块计数 Program Fail Block Count
  Flash编程失败块的数量。
  AC(172)擦写失败块计数 Erase Fail Block Count
  擦写失败块的数量。
  AD(173)磨损平衡操作次数(平均擦写次数) / Wear Leveling Count(Micron 镁光)
  所有好块的平均擦写次数。
  Flash芯⽚有写⼊次数限制,当使⽤FAT⽂件系统时,需要频繁地更新⽂件分配表。如果闪存的某些区域读写过于频繁,就会⽐其它区域磨损的更快,这将明显缩短整个硬盘的寿命(即便其它区域的擦写次数还远⼩于最⼤限制)。所以,如果让整个区域具有均匀的写⼊量,就可明显延长芯⽚寿命,这称为磨损均衡措施。
  AE(174)意外失电计数 Unexpected Power Loss Count
  硬盘⾃启⽤后发⽣意外断电事件的次数。
  B1(177)磨损范围对⽐值 Wear Range Delta
  磨损最重的块与磨损最轻的块的磨损百分⽐之差。
  B4(180)未⽤的备⽤块计数 Unused Reserved Block Count Total(惠普)
  固态硬盘会保留⼀些容量来准备替换损坏的存储单元,所以可⽤的预留空间数⾮常重要。这个参数的当前值表⽰的是尚未使⽤的预留的存储单元数量。
  B5(181)编程失败计数 Program Fail Count
  ⽤4个字节显⽰已编程失败的次数,与(AB)参数相似。
  B5(181)⾮4KB对齐访问数 Non-4k Aligned Access(Micron 镁光)
  B6(182)擦写失败计数 Erase Fail Count