一、S.M.A.R.T简介
S.M.A.R.T是硬盘自动检测、分析以及报告的一种技术,其全称为“Self-Monitoring Analysis and Reporting Technology”。 它能对硬盘的磁头单元、硬盘温度、盘片表面介质材料、马达及其驱动系统、硬盘内部电路等进行监测,及时分析并预报硬盘可能发生的问题。 日常的硬盘检测中我们常常会通过S.M.A.R.T表的一些信息来帮助了解硬盘的一些实际状况。不过有一点需要注意,我们不能简简单单的根据S.M.A.R.T表来判断一个硬盘是否正常。因为一个硬盘正常接入PC后才能读到S.M.A.R.T表,如果无法被PC识别的话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技术是一种预警技术,并不是万能的,它只能对渐发性的故障进行监测,如硬盘的主轴马达逐渐磨损,在彻底损坏之前,盘片运转的声音出现异常,S.M.A.R.T技术即可进行预警。对于一些突发性的故障,如电路板芯片烧毁,突发的撞击导致磁头、介质损坏等,S.M.A.R.T技术是无能为力的。
三、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技术规定有专门的检测参数。由于硬盘结构、性能和定位上的不同,除了ATA-3标准规定的参数外,厂家可以根据自己产品的特性提供不同的S.M.A.R.T检测参数,用户可以通过查看这些参数来了解自己硬盘的健康状况。
由于ATA标准不断更新,不同型号产品也会有所不同。其中S.M.A.R.T技术规定的几个主要检测属性如下表所示:
ID | 英文名 | 中文译名 | 说明 |
0x01 | read error rate | 底层数据读取错误率 | 存储器从一个硬盘表面读取数据时发生的错误率。原始值由于不同厂商的不同计算方法而有所不同,其十进制值往往无意义的。一般来说有数值意味着磁头已出现问题了。 |
0x02 | Throughput Performance | 读写通量性能 | 通常是硬盘读写性能的测量值,如果其值有变动,有可能硬盘出现了问题。 |
0x03 | Spin-Up Time | 盘片启动时间 | 盘片由静止启动加速到稳定正常运行速度的平均所需时间。 |
0x05 | Reallocated Sector Count | 重定位扇区计数 | 记录由于损坏而被映射到无损的后备区的扇区计数。当硬盘出现损坏扇区时,可以通过将其物理空间指向到特定的无损区域进行重映射修复,从而出现坏扇区的硬盘仍可使用。但当高过一定数值后,后备区消耗殆尽而无法再重映射修复时,这些坏扇区就会显现出来且无法自行修复。除外由于要要求磁头读取这些坏扇区时专门再移动到后备区读写数据,对硬盘读写性能也有影响。 |
0x07 | Seek Error Rate | 寻道错误率 | (该属性是特定制造商才有的)磁头寻找磁道由于机械问题而出错几率,有多种原因可能引致出错,如:磁头伺服构件,盘体过热,或损坏。于不同厂商的不同计算方法而有所不同,其十进制值往往无意义的。 |
0x08 | Seek Time Performance | 寻道性能 | 每次寻道时间的平均值,该值短期内迅速减少,有可能硬盘出现了问题。 |
0x09 | Power-On Hours | 硬盘加电时间 | 硬盘自出厂以来加电启动的统计时间,单位为小时(或根据制造商设定为分钟或秒),一般用户以该值判定硬盘是否被使用过。 |
0x0a | Spin Retry Count | 电机起转重试 | 主轴电机在一次加速至正常速度失败后尝试重新继续加速到正常运行速度的统计数,该值改变时意味着硬盘的机械部件已经出现问题了。 |
0x0b | Recalibration Retries | 磁头校准重试 | 磁头在一次运行失败时尝试校准至正常状态的统计数,该值改变时意味着硬盘的机械部件已经出现问题了。 |
0x0d | Soft Read Error Rate | 软件读取错误率 | 操作系统读取数据时的出错率。 |
0xbc | Command Timeout | 通信超时 | 由于无法连接至硬盘而终止操作的统计数,一般为0,如果远超过0,则可能电源问题,数据线接口氧化或更严重的问题。 |
0xc4 | Reallocation Event Count | 重定位事件计数 | 记录已重映射扇区和可能重映射扇区的事件计数。 |
0xc5 | Current Pending Sector Count | 等候重定的扇区计数 | 记录了不稳定的扇区的数量。 |
0xc6 | Uncorrectable Sector Count | 无法校正的扇区计数 | 记录肯定出错的扇区数量。 |
0xc9 | Soft Read Error Rate | 逻辑读取错误率 | 记录脱轨错误。 |
S.M.A.R.T技术通过各项属性的Threshold(阈值)、Attribute(属性值)、Worst(最大错误值)、Date(实际值)和Status(属性状态)对硬盘性能进行综合判断。但不同厂家、不同型号的产品,其属性描述不尽相同,在应用过程中只需了解属性值的含义即可。