兵哥写这篇文章,是因为在测试的过程中看到了 SSD存在偶尔有性能下降的情况,经分析为S.M.A.R.T命令所导致,虽然这种情况看似不严重,但如果应用在诸如数据采集等关键性领域,有可能会导致丢失数据包的严重后果,当然,这个bug是可以修正的,先看图片:

S.M.A.R.T概述

S.M.A.R.T.(Self-Monitoring Analysis And Reporting Technology),意思为“自我检测分析与报告技术”,从名字也能看出其作用是故障预警,固态硬盘可以通过监测自身的健康状态,并将参数值反馈给监控软件或者操作系统,事实上,大部分的参数仅仅对工程师而言有意义,对于最终用户而言,只关注一些关键指标即可,如:新增坏块统计,剩余使用寿命,擦除次数等即可。

一些常用的测试软件也可以获取到SSD的S.M.A.R.T信息:

SSD主控厂商也会提供相应的工具:

经过多年HDD硬盘厂商的完善,S.M.A.R.T已经形成了一些标准,但对于SSD来说,大多数SATA协议的S.M.A.R.T都是自定义的,以至于每个厂商所提供的参数并不一致,但大体都会参考HDD S.M.A.R.T来设定。

SSD S.M.A.R.T信息保存在特定的区域中,由Firmware安排,有可能保存在OP区中,也有可能保存在任何FW工程师想要放置的地方,或者由单独的表来存放。

固态硬盘的S.M.A.R.T与HDD不完全相同,网络上常用的测试软件提供的S.M.A.R.T都是基于HDD设置的,SSD厂商通常会自行根据Nand Flash的特性设定S.M.A.R.T。

S.M.A.R.T各项参数释义

01 原始读取误码率Raw Read Error Rate
这项指标反馈了Nand Flash的初始健康状态,数据值包含了可校正的错误与不可校正错误;

09 通电时间累计 Power-On Hours
计量单位为小时,也可以以分钟、秒为计量单位,由SSD厂商自行定义,通常情况下活动、空闲和睡眠三种状态的时间都会被计算在内,有些SSD会通过一些电源管理功能的开启会将睡眠时间排除在外。此参数表示硬盘通电的累计时间,新硬盘当然应该接近0,但事实上SSD厂商在测试过程中已经使用数个小时甚至数十上百个小时,只是测试完毕后重新量产,参数又会归零。

0C 通电周期计数 Power Cycle Count
通电周期计数的数据值表示了硬盘通电/断电的次数,即电源开关次数的累计,新硬盘通常只有几次。 
固态硬盘的通断电与HDD不同,SSD通常会做大量的P/E cycle测试,军工、工业类SSD还需要做大量的异常通断电测试,以防止在异常掉电的情况下丢失映射表以及规避其他因掉电导致不可靠的因素,兵哥公司通常会进行3000次到10000次的异常掉电测试,但是,测试完毕,会对SSD重新量产,Power Cycel Count会被清空,用户看到的仍然是少量的通电次数。

B8 初始坏块计数 Initial Bad Block Count
每个Nand Flash出厂时都会有初始坏块,固件通过扫描每个Block的第一个和最后一个page Spare Area区域的0xFF标记,如果没有0xFF标志,则表示为坏块,坏块由固件进行统一管理,列入坏块表。

初始坏块的数量可以从某种程度上反映SSD的初始健康状态,初始坏块越多,健康状态相对来说就越差。

C3 编程失败块计数 Program Failure Block Count
编程失败会将此page所在的Block列为坏块,这类的坏块称为新增坏块或者使用坏块,坏块会被列入坏块管理表,每个Block都存在一定的擦写寿命,当编程识别以及擦除失败时,都会被列入坏块表进行管理,对于数据安全要求很高的领域来说,一次编程失败或者擦除失败或者读取失败都可以将此块列为坏块。

对应下面C4,擦除失败块计数,同样道理。

C4 擦除失败块计数 Erase Failure Block Count

解释同C3

C5 读取失败块计数 Read Failure Block Count

解释同C3

CA flash总的bit错误统计 Total Count of Error bits from flash

这个统计包括了编程干扰(Program Disturb)错误,读取干扰错误(Read Disturb)和擦除错误,可纠正和不可纠正的错误bit总数。

这个值看上去会非常大,尤其是ECC能力较弱的SSD,值会更大,配合CB参数,可以大概判断此SSD的纠错能力,值越大,说明纠错能力越差。

CB 读取扇区可纠正bit错误统计 Total Count of Read Sectors with correctable bits errors

这个统计只包括已经纠正的错误bit数量,用CA-CB就可以得出不可纠正的错误数量,CA和CB的差异越大,说明SSD的纠错能力越弱,SSD的寿命也会更短。

CD 最大PE次数Maximum PE Count

这个参数是根据Nand Flash的datasheet来设定的,事实上,nand Flash的PE次数要比datasheet规定的多,例如:给出的值是3000,等真正的计数达到3000时,剩余寿命会显示为0,但实际上SSD的健康状态可能还非常好,所以,此参数只能做为最为保险使用的参考。

CE 最小擦除总数Minimum Erase Count

最大、最小和平均擦除总数描述每个Block的擦除次数,最大和最小擦除次数差别越小,说明磨损平衡算法做的越好,平均擦除总数没有任何意义。

CF 最大擦除总数Maximum Erase Count

见CE解释

D0 平均擦除总数Avage Erase Count

见CE解释

D1 剩余寿命Remaining Life(%)

这个参数显示SSD的剩余寿命,参考CD的描述可知这个值仅仅是个参考值,并不真正代表SSD的寿命。

SATA协议固态硬盘的S.M.A.R.T详解相关推荐

  1. 固态硬盘的S.M.A.R.T详解

    瑞耐斯写这篇文章,是因为在测试的过程中看到了 SSD存在偶尔有性能下降的情况,经分析为S.M.A.R.T命令所导致,虽然这种情况看似不严重,但如果应用在诸如数据采集等关键性领域,有可能会导致丢失数据包 ...

  2. 服务器磁盘IO是什么意思?SATA和固态硬盘的性能差异

    服务器磁盘IO是什么意思?SATA和固态硬盘的性能差异 服务器磁盘IO概念 SATA和固态硬盘概念 固态硬盘(SSD)的优点与不足 一.固态硬盘的优点 A.数据存取速度快 B.经久耐用.防震抗摔 C. ...

  3. 旧主板怎么样用pcie扩展卡M.2 NVME协议固态硬盘装系统以及升级WIN11系统教程

    之前旧主板怎么样用pcie扩展卡M.2 NVME协议固态硬盘装系统以及升级WIN11系统教程,从而提升电脑运行速度. 准备工具 1.制作系统文件:https://hao.0660hf.com/2600 ...

  4. [SSD核心技术:FTL 1] 谁“偷“走了固态硬盘的容量? 预留空间 (OP )图文全解

    声明 主页: 元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言. 个人辛苦整理,付费内容,禁止转载. 内容摘要 前言 1. 预留空间OP是什么? 2. 预留空间OP有什么好处? 3. O ...

  5. 骨干云池服务器SATA盘的RAID配置,用两块硬盘组建RAID0磁盘阵列简单教程(图文详解)...

    传统硬盘由于工作原理的限制,在性能上的提升非常缓慢.而固态硬盘价格昂贵,短时间内难以被普通用户接受.因此采用两块或多块硬盘组建RAID磁盘阵列也成为了目前比较有性价比的硬盘性能提升解决方案.之前我们也 ...

  6. 计算机台式机硬盘,台式电脑硬盘和笔记本硬盘有什么区别【详解】

    很多小伙伴存在这样一些疑问:笔记本硬盘可以装在台式电脑上吗?台式电脑硬盘和笔记本硬盘有啥本质分别?而关于这些问题要是不了解清楚的话是会有遗憾的,所以今天小编带大家了解相关的知识点,不懂的或者对此知识点 ...

  7. 台式计算机经常使用的硬盘是什么尺寸,台式电脑硬盘和笔记本硬盘有什么区别【详解】...

    很多小伙伴存在这样一些疑问:笔记本硬盘可以装在台式电脑上吗?台式电脑硬盘和笔记本硬盘有啥本质分别?而关于这些问题要是不了解清楚的话是会有遗憾的,所以今天小编带大家了解相关的知识点,不懂的或者对此知识点 ...

  8. spi协议时序图和四种模式实际应用详解

    大家好,我是无际. 上个章节我们讲解了spi接口定义,今天我们更加深入讲解下spi协议时序图和spi四种模式的用法. 刚开始接触单片机开发时,最怕就是看时序图,对于我来说就是奇怪的知识. 特别是SPI ...

  9. 计算机u盘 硬盘无法读取,硬盘无法识别怎么办的解决办法详解

    一块正常使用中的硬盘,在重新安装系统时却提示找不到硬盘,相信有不少用户都遇到过这种问题.硬盘做为电脑中的重要存储设备,其重要性是不言而喻的,出现故障的频率想对于主板.显卡等板卡设备而言,并不算太高.然 ...

最新文章

  1. ABAP 7.53 中的ABAP SQL(原Open SQL)新特性
  2. PHP数组的访问方法有几种,数组常用方法有哪些
  3. Hadoop:HDFS的概念理解和体系架构-成都加米谷大数据分享
  4. (转) RabbitMQ学习之发布/订阅(java)
  5. 【Java从0到架构师】SQL 多表查询
  6. 二叉树的创建及各种遍历
  7. oracle extract类型,Oracle中extract()函数
  8. IT要发掘有价值应用
  9. 惠普打印机驱动下载安装后不能使用,驱动人生解决方案
  10. Java期末考试题(个人押题版)
  11. headers信息修改
  12. Linux命令之md5sum的作用以及使用方法(md5是什么?)
  13. 新盲盒交友源码搭建Soul2.3正版免公众号免备案域名支持个人支付
  14. FairyGUI基础学习笔记
  15. python 学习爬取哔哩哔哩今日热门的前100个视频
  16. 利用Java抓取网页数据
  17. obd 与服务器 通讯协议,经典   OBD-2是什么及接口针脚定义和通信协议
  18. 音频文件 数据库存储_刚哥谈架构 (六) 谈谈数据库架构
  19. APP运营,多么痛的领悟!
  20. asp毕业设计——基于asp+access的校园新闻发布管理系统设计与实现(毕业论文+程序源码)——新闻发布管理系统

热门文章

  1. 3D模型欣赏:《死亡搁浅》角色Porter 次世代 现实主义 【3D游戏建模教程】
  2. Sparrow: 适用于细粒度tasks低延迟调度的去中心化无状态分布式调度器
  3. 统计建模与R软件(绪论)
  4. Airtest入门案例-操作网易云音乐
  5. 百分百背后是百度电商的悲哀
  6. 爬取网易云热门音乐歌单
  7. 《我在这里爱你》(聂鲁达)
  8. Unity多人游戏简单实例(一)快速入门
  9. 房产行业怎么做数据分析?
  10. 第二章 一种操作系统的诞生