S.M.A.R.T.,全称为“Self-Monitoring Analysis and Reporting Technology”,即“自我监测、分析及报告技术”。是一种自动的硬盘状态检测与预警系统和规范。通过在硬盘硬件内的检测指令对硬盘的硬件如磁头、盘片、马达、电路的运行情况进行监控、记录并与厂商所设定的预设安全值进行比较,若监控情况将或已超出预设安全值的安全范围,就可以通过主机的监控硬件或软件自动向用户作出警告并进行轻微的自动修复,以提前保障硬盘数据的安全。除一些出厂时间极早的硬盘外,现在大部分硬盘均配备该项技术。

目录

[隐藏]

  • 1 历史
  • 2 运作原理
  • 3 检测属性
  • 4 在非ATA平台上的实现
    • 4.1 SCSI
    • 4.2 USB
  • 5 参考文献

[编辑]历史

最早期的硬盘监控技术起源于1992年IBM在为AS/400计算机的IBM9337硬盘阵列中的IBM 0662 SCSI2代硬盘驱动器之中,后来该技术被命名为Predictive Failure Analysis(故障预警分析技术),它是通过在固件中测量几个重要的硬盘安全参数和评估他们的情况。从物理硬盘发送到监控软件的结果中被限定两种结果:“硬盘安全”和“硬盘不久后会发生故障”。

不久,由微机制造商Compaq和硬盘制造商Seagate、Quantum和Conner提出了名为IntelliSafe的类似技术。通过该技术,硬盘会测量自身的的健康指标并将参量值传送给操作系统和用户的监控软件中,每个硬盘生产商有权决定哪些指标需要被监控和它们的安全阈值。

Compaq于1995早期将该项技术方案提交到Small Form Factor委员会进行标准化,该方案得到IBM、Seagate、Quantum、Conner和Western Digital所支持。由于IntelliSafe技术的灵活性,委员会接受了该方案,并正式更名S.M.A.R.T.技术,将其标准化并推广至ATA-3行业标准中。

[编辑]运作原理

该技术所需数据被存放在硬盘物理盘面最前面的磁道中,由硬盘制作商将相关管理程序和数据该磁道中,包括加解密程序,自监控程序,自修复程序等,主机的监控软件可以通过“SMART RETURN STATUS”的命令读取S.M.A.R.T.信息,且这些信息不允许被用户修改。

[编辑]检测属性

下面将列出一些S.M.A.R.T.的原始检测属性和含义。普遍为检测值越高性能越好。即使所有制造商都必须遵守共同的规则,但由于有些检测值在不同硬盘制造商中用不全相同的定义和计量方法而对于不同制作商来说检测值不全是越高越好,所以下面属性的指标只作一般参考。除外,各制造商也会根据自己需要添加一些自己专有的检测属性

说明
表示数值越高越好
表示数值越低越好
重要项:红色底 当超出安全范围会对性能严重影响
ID ID十六进制值 英文名 中文译名 最优 说明
1 0x01 read error rate 底层数据读取错误率
存储器从一个硬盘表面读取数据时发生的错误率。原始值由于不同厂商的不同计算方法而有所不同,其十进制值往往无意义的。一般来说有数值意味着磁头已出现问题了。
2 0x02 Throughput Performance 读写通量性能
通常是硬盘读写性能的测量值,如果其值有变动,有可能硬盘出现了问题。
3 0x03 Spin-Up Time 盘片启动时间
盘片由静止启动加速到稳定正常运行速度的平均所需时间。
4 0x04 Start/Stop Count 电机起停次计数
一个盘片启动关闭周期的统计值,只有硬盘从完全断电中启动或从睡眠模式恢复,盘片主轴电机被启动时才会记一次数。
5 0x05 Reallocated Sector Count 重定位磁区计数
记录由于损坏而被映射到无损的后备区的磁區计数。当硬盘出现损坏磁區时,可以通过将其物理空间指向到特定的无损区域进行重映射修复,从而出现坏磁區的硬盘仍可使用。但当高过一定数值后,后磁區消耗殆尽而无法再重映射修复时,这些坏磁區就会显现出来且无法自行修复。除外由于要要求磁头读取这些坏磁區时专门再移动到后备区读写数据,对硬盘读写性能也有影响。
6 0x06 Read Channel Margin 信道读取余量   读取数据时信道可用的余量,该属性没制定任何功用。
7 0x07 Seek Error Rate 寻道错误率   (该属性是特定制造商才有的)磁头寻找磁道由于机械问题而出错几率,有多种原因可能引致出错,如:磁头伺服构件,盘体过热,或损坏。于不同厂商的不同计算方法而有所不同,其十进制值往往无意义的。
8 0x08 Seek Time Performance 寻道性能
每次寻道时间的平均值,该值短期内迅速减少,有可能硬盘出现了问题。
9 0x09 Power-On Hours 硬盘加电时间
硬盘自出厂以来加电启动的统计时间,单位为小时(或根据制造商设定为分钟或秒),一般用户以该值判定硬盘是否被使用过。
10 0x0a Spin Retry Count 电机起转重试
主轴电机在一次加速至正常速度失败后尝试重新继续加速到正常运行速度的统计数,该值改变时意味着硬盘的机械部件已经出现问题了。
11 0x0b Recalibration Retries 磁头校准重试
磁头在一次运行失败时尝试校准至正常状态的统计数,该值改变时意味着硬盘的机械部件已经出现问题了。
12 0x0c Power Cycle Count 设备开关计数   该属性表示硬盘电源充分开/关循环计数。
13 0x0d Soft Read Error Rate 软件读取错误率
操作系统读取数据时的出错率。
183 0xb7 SATA Downshift Error Count SATA降级运行计数   Western Digital 和 Samsung 特有属性,记录由于兼容问题导致降低SATA传输级别运行的计数。
184 0xb8 End-to-End error 终端校验出错
HP专有S.M.A.R.T.(SMART IV)技术的一个特有属性,记录硬盘从盘片读取数据到高速缓存后再传输到主机时数据校验出错的次数。
185 0xb9 Head Stability 磁头稳定性   Western Digital特有属性
186 0xba Induced Op-Vibration Detection     Western Digital特有属性
187 0xbb Reported Uncorrectable Errors 报告不可纠正错误
硬件ECC无法恢复的错误计数。
188 0xbc Command Timeout 通信超时
由于无法连接至硬盘而终止操作的统计数,一般为0,如果远超过0,则可能电源问题,数据线接口氧化或更严重的问题。
189 0xbd High Fly Writes 磁头写入高度
硬盘进行写入时对磁头高度进行监控以提供额外的保障。当磁头处于不正常高度进行写入时,写入操作会被终止,原有数据重写入或者将该扇区重映射到安全区域。该属性是统计值。
190 0xbe Airflow Temperature 气流温度
Western Digital特有属性,计量硬盘内气流温度,和检测项0xc2相似。
191 0xbf G-sense Error Rate 加速度错误率
计量可能对硬盘做成损害的冲击次数。
192 0xc0 Power-off Retract Count 电源关闭磁头收回计数
计量磁头在没有加电时不移进硬盘的值。
193 0xc1 Load Cycle Count 磁头升降计数
计量磁头在加电时移进/移出硬盘周期的值。
194 0xc2 Temperature 温度
计量硬盘的温度
195 0xc3 Hardware ECC Recovered 硬件ECC恢复   (特定原始值)
196 0xc4 Reallocation Event Count 重定位事件计数
记录已重映射扇区和可能重映射扇区的事件计数。
197 0xc5 Current Pending Sector Count 等候重定的扇区计数
记录了不稳定的扇区的数量。
198 0xc6 Uncorrectable Sector Count 无法校正的扇区计数
记录肯定出错的扇区数量。
199 0xc7 UltraDMA CRC Error Count UltraDMA通讯CRC错误
记录硬盘通讯时发生的CRC错误。
200 0xc8 Multi-Zone Error Rate 多区域错误率
写入一个区域时发现的错误的计数。
200 0xc8 Write Error Rate 写入错误率
Fujitsu的特别属性,写入一个区域时发现的错误的计数。
201 0xc9 Soft Read Error Rate 逻辑读取错误率
记录脱轨错误。
202 0xca Data Address Mark errors 数据地址标记错误
记录数据地址标记错误(或制造商特定的计数)
203 0xcb Run Out Cancel 用完取消
ECC错误计数
204 0xcc Soft ECC Correction 逻辑ECC纠正
记录由软件ECC更正的错误计数。
205 0xcd Thermal Asperity Rate 热嘈率
记录高温导致的出错记数。
206 0xce Flying Height 飞行高度   记录磁头的飞行高度。飞得太低会增加磁头撞毁的机会,飞得太高增加读写错误的机会。
207 0xcf Spin High Current 主轴电机浪涌电流计数
记录主轴电机运转时浪涌电流的次数。
208 0xd0 Spin Buzz     记录由于电力不足而启动主轴电机的蜂鸣声次数。
209 0xd1 Offline Seek Performance 离线寻址效能   在其内部测试硬盘的寻址能力表现。
210 0xd2   (没定性,出现在Maxtor 6B200M0 200GB 和Maxtor 2R015H1 15GB 的硬盘中)
211 0xd3 Vibration During Write 写操作震动   记录写入操作的震动数。
212 0xd4 Shock During Write 写操作冲击   记录写入操作时的冲击数。
220 0xdc Disk Shift 盘体偏移
记录盘体由于冲击或温度导致偏离主轴的相对距离。
221 0xdd G-Sense Error Rate 加速计出错率
从外部诱发的冲击和振动产生的错误计数。
222 0xde Loaded Hours 数据加载时间   数据读取时所花费的时间。(磁头移动时间)
223 0xdf Load/Unload Retry Count 加载/卸载重试次数   磁头改变位置时所需时间。
224 0xe0 Load Friction 负载摩擦
读写时由于机械摩擦做成的阻力。
225 0xe1 Load/Unload Cycle Count 加载/卸载循环计数
总负载周期计数。
226 0xe2 Load 'In'-time 磁头   磁头加载所需总时间(不包括在停泊区的花费)。
227 0xe3 Torque Amplification Count 扭矩放大计数
尝试来补偿盘片的速度变化的计数。
228 0xe4 Power-Off Retract Cycle 断电缩回周期
切断电源后电磁枢自动缩回的时间计数。
230 0xe6 GMR Head Amplitude GMR磁头振幅   磁头振幅计数(磁头反复正反向运动距离)。
231 0xe7 Temperature 硬盘温度
记录硬盘温度。
232 0xe8 Endurance Remaining 耐久性剩余   磁盘可使用周期与设计可使用周期的百分比。
232 0xe8 Available Reserved Space 可用保留空间   Intel固态硬盘报告的可提供的预留空间占作为一支全新的固态硬盘预留空间的百分比。
233 0xe9 Power-On Hours 加电时间   处于开机状态的小时数。
233 0xe9 Media Wearout Indicator 介质耗损指标   Intel固态硬盘报告的NAND刷写寿命,全新时值为100,最低值为1,其跌幅随NAND的擦除周期增加而在0到最大额定周期范围减少。
240 0xf0 Head Flying Hours 磁头飞行时间   磁头处于定位中的时间。
240 0xf0 Transfer Error Rate 传输错误率   在数据传输时连接被重置的次数计数。(Fujitsu特有属性)
241 0xf1 Total LBAs Written LBA写入总数   LBA写入总数计数。
242 0xf2 Total LBAs Read LBA读取总数   LBA读取总数计数,部分S.M.A.R.T.检测程序会把原始值显示为负数,这是因为该原始值为48位,而不是32位的。
250 0xfa Read Error Retry Rate 读取错误重试率
从磁盘读取时的错误计数。
254 0xfe Free Fall Protection 自由跌落保护
对“自由落体事件”检测计数。

[编辑]在非ATA平台上的实现

[编辑]SCSI

硬盘的传输端口平台主要分为ATA和SCSI两个平台。作为一种硬盘的检测技术,理论上都能在两个平台上实现的,但由于两个平台也存在巨大的不同,S.M.A.R.T.在SCSI上的实现和在ATA的实现上也有所不同。首先,作为ATA上的专有规范,S.M.A.R.T.对ATA系统的干预要比SCSI更明显,S.M.A.R.T.对SCSI更多是起到检测的作用,即使在检测到磁盘有故障时,其只是报告监控端,要人为地处理故障。其次,由于SCSI平台的硬盘比ATA的更为复杂,所以其检测属性也比ATA的多和复杂准确,如包括对盘片和驱动电路版的温度检测(ATA多只对盘片温度检测),对电压的检测等。

[编辑]USB

在USB标准中,USB不能用于计算机内部储存设备的基本总线(如ATA,SCSI等),其本身没有为S.M.A.R.T.提供传输数据的途径。在使用ATA硬盘,以USB为传输端口的移动硬盘中,即使硬盘内S.M.A.R.T.仍然运作,但没办法直接向系统提供S.M.A.R.T.的数据。现在新的移动硬盘的内部驱动转换电路已经能以一些方法将硬盘内S.M.A.R.T.的数据通过USB传输到系统或监控程序中读取。

S.M.A.R.T.相关推荐

  1. 秀一下以前搜房soufun发贴机的发帖群发日志!!呵呵..

    秀一下以前搜房soufun论坛发贴机的发帖群发日志!!呵呵.. QQ 1163551688 "2009-11-28 18:00:06 562","qwerty00789& ...

  2. 给定一个 n X n 的矩阵 和 R,求旋转 90 X R 度以后的矩阵

    1. 问题 [例题]循环输入,每组数据先输入一个 n(n<=10),然后 n 行 n 列数据代表一个矩阵, 每个数据为一个整数,然后再给出一个数字 R,输出这个矩阵按照顺时针旋转 90 X R ...

  3. python二进制打开(rb)和文本格式打开(r)什么区别?

    使用 open() 函数以文本格式打开文件和以二进制格式打开文件,唯一的区别是对文件中换行符的处理不同. 在 Windows 系统中,文件中用 "\r\n" 作为行末标识符(即换行 ...

  4. \r \r\n \t的区别

    \n 软回车:       在Windows 中表示换行且回到下一行的最开始位置.相当于Mac OS 里的 \r 的效果.       在Linux.unix 中只表示换行,但不会回到下一行的开始位置 ...

  5. adb install -r ,-d 等的解释

    adb install -r 替换已存在的应用程序,也就是说强制安装 adb install -l 锁定该应用程序 adb install -t 允许测试包 adb install -s 把应用程序安 ...

  6. Android Studio – Cannot resolve symbol ‘R’

    Android Studio – Cannot resolve symbol 'R' 解决方法: Build -> Clean Project Tools -> Android -> ...

  7. android R文件丢失解决方法

    今天下载一个demo导入之后发现一个问题,提示导入的R包只有系统默认的 没有项目的,可以看下图 这种情况出现呢不多,但是出现了我就记录下,这个先看看R文件是不是还在 点击Gen包 查看 看看R文件是不 ...

  8. VS Code go 插件安装失败 r.declReader.Reset undefined

    在安装完 VS Code 后开始安装 go 的插件发现有如下错误 wohu@wohu:~/GoCode/src$ go install github.com/nsf/gocode # github.c ...

  9. Uva 3767 Dynamic len(set(a[L:R])) 树套树

    Dynamic len(set(a[L:R])) Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 https://uva.onlinejudge.org/in ...

  10. R 语言爬虫 之 cnblog博文爬取

    Cnbolg Crawl a). 加载用到的R包 ##library packages needed in this case library(proto) library(gsubfn) ## Wa ...

最新文章

  1. js中WebSocket
  2. Py之moviepy:python库之moviepy的简介、安装、使用方法详细攻略
  3. 5分钟了解Mockito
  4. 多线程启动定时器 会等待上一次执行完成?_Java多线程
  5. su sudo gksudo-转
  6. jQuery DOM操作之查找结点
  7. matplotlib读取png文件错误ValueError: invalid PNG header
  8. ffmpeg音频格式转换
  9. 管理者,最重要的100句话
  10. NTFS Change Journal(USN Journal)详解
  11. 成功将 戴尔灵越燃7000 II 改装Win7
  12. Autofac之类型注册
  13. SpringBoot2.0学习笔记 使用Actualor监控项目运行状态
  14. 如何突破LinkedIn领英限制,导出非好友邮箱等社交方式
  15. lpk提权-----dll注入
  16. 3D打印喷嘴大小如何选择0.2-0.5mm喷嘴
  17. 怎么将Java中的小瓶子删掉_AcWing 1224. 交换瓶子 JAVA O(n)
  18. CAN总线的终端电阻为什么常用120Ω?
  19. 网页宽度自动适应手机屏幕宽度的实现代码(viewport)
  20. 【图】Dijkstra(迪杰特斯拉)算法、左神Java版

热门文章

  1. 蚂蚁金服、滴滴们掀起A/H上市潮,它们能打破折溢价的烦恼吗?
  2. php调用lol数据库,计算lol战斗力
  3. matlab hold on解释,Matlab中的hold on 怎么不起作用了啊?程序如下:
  4. 算法训练-二进制加法
  5. 这个城市最安静的声音 - Suzy
  6. IDEA集成Docker插件实现项目打包镜像一键部署与Docker CA加密认证
  7. 计算机表格单元格合并,excel表格数据拆分和合并单元格-excel中如何将已经合并的单元格拆分,并将该单元格......
  8. 运行CCleaner时出现问题
  9. 一个刁刁的卡片样式广告轮播
  10. 互联网web直播点播平台EasyDSS如何将部分数据从t_lives表迁移到其他数据库?