固态硬盘的S.M.A.R.T详解
瑞耐斯写这篇文章,是因为在测试的过程中看到了 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来说,大多数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的寿命。
欢迎了解瑞耐斯固态硬盘:may@renice-tech.com
固态硬盘的S.M.A.R.T详解相关推荐
- SATA协议固态硬盘的S.M.A.R.T详解
兵哥写这篇文章,是因为在测试的过程中看到了 SSD存在偶尔有性能下降的情况,经分析为S.M.A.R.T命令所导致,虽然这种情况看似不严重,但如果应用在诸如数据采集等关键性领域,有可能会导致丢失数据包的 ...
- [SSD核心技术:FTL 1] 谁“偷“走了固态硬盘的容量? 预留空间 (OP )图文全解
声明 主页: 元存储的博客_CSDN博客 依公开知识及经验整理,如有误请留言. 个人辛苦整理,付费内容,禁止转载. 内容摘要 前言 1. 预留空间OP是什么? 2. 预留空间OP有什么好处? 3. O ...
- 计算机台式机硬盘,台式电脑硬盘和笔记本硬盘有什么区别【详解】
很多小伙伴存在这样一些疑问:笔记本硬盘可以装在台式电脑上吗?台式电脑硬盘和笔记本硬盘有啥本质分别?而关于这些问题要是不了解清楚的话是会有遗憾的,所以今天小编带大家了解相关的知识点,不懂的或者对此知识点 ...
- 骨干云池服务器SATA盘的RAID配置,用两块硬盘组建RAID0磁盘阵列简单教程(图文详解)...
传统硬盘由于工作原理的限制,在性能上的提升非常缓慢.而固态硬盘价格昂贵,短时间内难以被普通用户接受.因此采用两块或多块硬盘组建RAID磁盘阵列也成为了目前比较有性价比的硬盘性能提升解决方案.之前我们也 ...
- 台式计算机经常使用的硬盘是什么尺寸,台式电脑硬盘和笔记本硬盘有什么区别【详解】...
很多小伙伴存在这样一些疑问:笔记本硬盘可以装在台式电脑上吗?台式电脑硬盘和笔记本硬盘有啥本质分别?而关于这些问题要是不了解清楚的话是会有遗憾的,所以今天小编带大家了解相关的知识点,不懂的或者对此知识点 ...
- 硬盘内部硬件结构和工作原理详解
硬盘的外部物理结构 一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标.型号.序列号.生产日期.容量.参数和主从设置方法等.这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义. 硬盘 ...
- 计算机u盘 硬盘无法读取,硬盘无法识别怎么办的解决办法详解
一块正常使用中的硬盘,在重新安装系统时却提示找不到硬盘,相信有不少用户都遇到过这种问题.硬盘做为电脑中的重要存储设备,其重要性是不言而喻的,出现故障的频率想对于主板.显卡等板卡设备而言,并不算太高.然 ...
- 硬件(磁盘):机械硬盘内部硬件结构和工作原理详解
从理解磁盘IO开始 主轴让磁盘盘片转动,然后传动手臂可伸展让读取头在盘片上进行读写操作.每个盘片有两面,都可记录信息,所以一张盘片对应着两个磁头. 磁盘物理结构如下图: 硬盘的外部物理结构 一般硬盘正 ...
- 机械硬盘内部硬件结构和工作原理详解
硬盘的外部物理结构 一般硬盘正面贴有产品标签,主要包括厂家信息和产品信息,如商标.型号.序列号.生产日期.容量.参数和主从设置方法等.这些信息是正确使用硬盘的基本依据,下面将逐步介绍它们的含义. 硬盘 ...
最新文章
- 如何利用PyTorch中的Moco-V2减少计算约束
- 【9915】乘积最大
- using(别名)和range based for
- 架构师之路(1)---面向过程和面向对象
- 枚举类型用法_Mybatis-plus常见用法总结三
- chunk_split_PHP chunk_split()函数与示例
- 手机电子词典_网易有道入局,「智能化」能拯救电子词典这个「老古董」吗?...
- 汇编语言 HelloWorld (详细注释版)
- 强悍的 Linux —— grep 与 egrep
- Python入门--代码调式
- choices参数 MTV与MVC ajax contentType 序列化组件 自定义分页器...
- asp 读取 json 数据
- Maven 安装教程
- 用两个队列实现栈---用两个队列实现栈
- 企微主页_企业微信名片对外怎么显示官网和小程序?
- 第三届阿里巴巴全球数学竞赛落下帷幕,这届90后属实优秀!北大恐成最大赢家!
- 高中科幻作文关于计算机,高中科幻作文(精选5篇)
- 当前状态企业架构蓝图是什么?
- Day3 C - 士兵队列训练问题
- Linux CentOS7 同步时间的两种方式(npt 或者 rdate)
热门文章
- 统一调度平台V2.0
- Enable tracemalloc to get the object allocation traceback及ResourceWarning: unclosed file
- 矩阵理论(二)特征值分解和SVD分解
- 用c语言计算运费.c
- 立秋至,暑难消,e安在线信息安全快讯
- 如何评估社交网络中信息内容的价值呢?
- php 获取 拼音,php根据汉字获取拼音(php基于拼音搜索实现原理)
- 肥牛是不是牛肉,为什么?
- python实现批量修改图片颜色
- SOEM 源码解析 ecx_lookup_prev_sii