OCP NVME SSD规范解读-8.SMART日志要求-1

4.8.5章节SMART / Health Information Requirements详细规定了NVMe固态硬盘对SMART(Self-Monitoring, Analysis and Reporting Technology)和健康信息日志页面的支持要求,以确保设备能够准确报告其运行状态和预测潜在故障。

  1. SLOG-1:
    设备需要保证所有由本规范定义的DSSD特定日志页面上的数据在电源循环后依然保持不变,除非有特别说明。

  2. SLOG-2:
    所有计数器均应设计为饱和计数器,即当达到最大允许值时停止递增,而不会回滚到零。

  3. SLOG-3:
    DSSD日志页面中所有的字段都采用小端字节序格式存储。

  4. SLOG-4:
    规范中定义的所有标准化或归一化计数器(如磨损度等),出厂时默认为100%,表示设备出厂时的状态。1%代表设备可靠运行的最小阈值,当计数器降至0%时,意味着设备不再被认为是可靠的。

  5. SLOG-5:
    设备必须支持SMART / Health Information(标识符02h)日志页中的所有字段。

  6. SLOG-6:
    当执行获取SMART / Health Information(标识符02h)或SMART / Health Information Extended(标识符C0h)日志页面命令时,除了温度值外,不应导致除温度以外的SMART值更新。该操作应当是一个直接读取当前数据的简单过程,不应阻塞I/O操作。

  7. SLOG-7:
    除非另有规定,否则设备应在后台至少每十分钟更新一次SMART / Health Information(02h)和SMART / Health Information Extended(C0h)日志页面的值。

  8. SLOG-8:
    组合和原始温度传感器值应在访问日志页面时得到更新。

  9. SLOG-9:
    所有断言事件和控制器发起的日志捕获都需要一个与之关联的供应商特定“Reason Identifier”,用于唯一标识断言/控制器条件。

  10. SLOG-10:
    这一条款已经过时,并参考STD-LOG-23标准。

  11. SLOG-11:
    设备不得在任何情况下丢失备用能源故障信息、SMART / Health Information(标识符02h)的严重警告或SMART / Health Information Extended(标识符C0h)的严重警告,即使在电源循环或重置期间也不可丢失。

  12. SLOG-12:
    设备不应仅仅因为SMART/Health日志中的“Percentage Used”字段的值就设置SMART/Health关键警告。

此外,对于SMART / Health Information Extended(标识符C0h)这一扩展日志页面,它具有512字节大小,并有一系列功能需求和字段格式。

SMART-1: 该段内容描述了一个SMART属性或日志页面字段,它记录了写入到存储介质上的总字节数,也即是写入NAND的数据量。这个数值包括用户数据和元数据两部分,并且涵盖写入到用户区域(用于存储实际用户文件及应用数据)以及系统区域(通常用来存放设备内部管理和配置信息)的所有数据。

通过这个属性值可以计算出写入放大因子(Write Amplification Factor,简称WAF)。WAF是一个衡量固态硬盘在处理写入操作时实际执行的物理写入次数与主机发出逻辑写入请求次数之间比率的指标。例如,如果写入100GB的数据到SSD上,但由于垃圾回收、磨损均衡等因素,实际上可能需要对NVME SSD进行200GB的物理写入,那么WAF就是2.  

写放大WAF是NAND-based SSD寿命消耗的关键参数,WAF越大,寿命消耗越快,越接近1,则寿命消耗越慢,也是最理想的情况。

影响WAF的因素有很多:

  • SSD FTL算法的设计会影响写入放大的大小

  • Wear Leveling,WL磨损均衡:这一机制主要是通过均衡所有的闪存颗粒,从而延长整体的使用寿命,然而依旧是增加整体的写放大

  • Over-Provisioning,OP冗余空间:也会影响NAND写入的比例,最终影响写放大

  • Garbage Collection,GC垃圾回收:比如上面的例子,就是GC垃圾回收搬迁数据,擦除数据块后写入带来了整体写放大提升。

  • 业务读写的数据模型:随机写和顺序写对NAND的写入比例有非常大的影响,直接影响写放大的系数

  • 系统层的TRIM操作:会影响invalid无效数据是否在GC过程中搬迁,对写放大影响也有重要的作用。

SMART-2:需要从用户数据和元数据两部分读取NAND的数据总量。

SMART-3:该段内容描述的是NVMe SSD中与用户NAND块退役相关的SMART属性。RAW计数(Raw count)是一个数值字段,位于字节地址37:32处,记录由于任何原因导致退役的用户NAND块总数。这些原因可能包括编程失败、擦除失败或其他事件,意味着这些NAND块因不可恢复的错误或达到使用寿命极限而无法再用于存储有效数据。

与此同时,规范还定义了一个归一化值(Normalized value),位于字节地址39:38,用来表示剩余可用用户备用NAND块的百分比。出厂时,这个归一化值被设置为十六进制64h,相当于100%的可用性。这意味着在设备出厂时,所有用户备用块都是可用状态。

需要注意的是,用于记录归一化值的空间是2个字节(对应16位),而RAW计数占用的空间则是6个字节(对应48位)。这样设计可以提供足够大的计数范围来追踪大量的NAND块操作,并以一个相对较小的归一化值表示总体健康状况的百分比。当设备出厂后,RAW计数会被清零,开始累积实际使用过程中的NAND块退役情况。

SMART-4:与SMART-3类似,区别是针对的系统区域的NAND坏块总数

SMART-5:这个这段内容描述了NVMe固态硬盘中与数据恢复相关的一个SMART属性。该属性记录了在NAND闪存中为了恢复数据而调用XOR操作的总次数。XOR是用于错误校验和数据修复的一种常见算法。

这个计数涵盖了所有从NAND闪存进行读取操作时的数据恢复尝试,无论这些尝试最终成功与否。这意味着每当由于硬件故障、噪声干扰或其他原因导致数据完整性受到威胁时,如果系统使用了包含XOR在内的纠错机制尝试恢复数据,则该计数会增加。

当设备出厂时,这一数据恢复计数会被清零。这样确保了每个新出厂的设备具有相同的初始状态,并且使用者可以从零开始跟踪设备在其生命周期内因数据错误而进行的恢复尝试次数。这对于评估SSD性能稳定性和预测潜在寿命非常有用。

SMART-6:记录了不可纠正读错误的数量,即那些无法通过标准纠错机制(如ECC,LDPC,XOR)修复的读取操作。这个计数反映了NAND闪存单元出现的严重错误状况,可能预示着设备潜在的健康问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/357198.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用Docker安装Jenkins,并能够在该Jenkins中使用Docker

1. 构建Dockerfile 试错1 参考https://medium.com/manav503/how-to-build-docker-images-inside-a-jenkins-container-d59944102f30 按照文章里所介绍的,实现在Jenkins容器环境中依然能够调用Docker,需要做到以下几步 下载Jenkins镜像将环境中的docke…

设计模式——2_0 职责链(Chain of Responsibility)

楼下一个男人并得要死,那家隔壁的一家唱着留声机,对面是弄孩子。楼上有两人狂笑;还有打牌声,河中的船上有女人哭她死去的母亲。人类的悲欢并不相通,我只觉得他们吵闹 ——鲁迅 定义 使多个对象都有机会处理请求&#…

Go语言中HTTP代理的请求和响应过程

在Go语言中,HTTP代理的实现涉及对请求和响应的拦截、转发和处理。下面将详细介绍这个过程。 请求过程: 客户端发起请求:客户端(例如浏览器或其他应用程序)发送HTTP请求到代理服务器。建立连接:代理服务器…

fgets函数和fputs函数的使用

----由于本人使用的是大白话来讲解fgets和fputs函数的使用,所以可能有些部分可能会有些不准确(见谅),如果想十分严谨的了解fgets和fputs函数,可以移步其他文章。 -----那么不废话,直接开始 1.fgets函数 &a…

专栏:数据库、中间件的监控一网打尽

前言 对于数据库、中间件的监控,目前社区里最为完善的就是 Prometheus 生态的各个 Exporter,不过这些 Exporter 比较分散,不好管理,如果有很多目标实例需要监控,就要部署很多个 Exporter,要是能有一个大一…

Linux系统Shell脚本-----------正则表达式 、grep、 sed

一、正则表达式 1.前言 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。在Linux中也就是代表我们定义的模式模板&…

SAI实例研究(3)

实例3 creature.id 16295(smart_script.entryorguid)的SAI设置: 共分为0和1两个事件阶段 第0阶段: 第1条(id 0) 当 creature 刷新时(event_type 11),creature 对自身&#xff0…

【网络】传输层TCP协议 | 三次握手 | 四次挥手

目录 一、概述 2.1 运输层的作用引出 2.2 传输控制协议TCP 简介 2.3 TCP最主要的特点 2.4 TCP连接 二、TCP报文段的首部格式 三、TCP的运输连接管理 3.1 TCP的连接建立(三次握手) 3.2 为什么是三次握手? 3.3 为何两次握手不可以呢? 3.4 TCP的…

ChatGPT4 比 ChatGPT3.5 强在了那里?

刚开始的时候我还在纠结,一个月20 刀的ChatGPT4 ,到底值不值这个价钱?使用过后发现,诶嘛真香。因为 GPT4 比 GPT3.5 多了太多功能,特别是识图能力,用好的话效率翻倍。 1. 看图写代码 ChatGPT4 相比 ChatG…

colab使用自己数据集进行模型训练的方法汇总

在 Google Colab 上使用自己的数据集进行模型训练。Colab 允许通过多种方式上传数据,包括直接从本地计算机上传、从 Google Drive 加载或通过网络链接下载,从github导入等。 GitHub导入 使用以下的代码将github上的文件克隆到colab的当前目录下 !git …

除了Adobe之外,还有什么方法可以将Excel转为PDF?

前言 Java是一种广泛使用的编程语言,它在企业级应用开发中发挥着重要作用。而在实际的开发过程中,我们常常需要处理各种数据格式转换的需求。今天小编为大家介绍下如何使用葡萄城公司的的Java API 组件GrapeCity Documents for Excel(以下简…

vue3使用AntV G6 (图可视化引擎)历程[三]

上期回顾:历程[二]描述了节点抽离自定义节点并做数据静态渲染。下面这篇继续描述节点升级版的模块化抽离以及动态数据渲染 官网地址:https://g6-next.antv.antgroup.com/manual/introduction “antv/g6”: “^4.8.24” 一、 案例效果 二、自定义节点的模…

第九节HarmonyOS 常用基础组件14-DataPanel

1、描述 数据面板组件,用于将多个数据占比情况使用占比图进行展示。 2、接口 DataPanel(options:{values: number[], max?: numner, type?: DataPanelType}) 3、参数 参数名 参数类型 必填 描述 values number[] 是 数据值列表,最多含9条数…

SpringCloud微服务常见问题

1 微服务 返回面试宝典 问题1 SpringCloud常见组件有哪些? SpringCloud包含的组件很多,有很多功能是重复的,其中最常见的组件包括: 注册中心组件:Eureka、Nacos等;负载均衡组件:Ribbon&…

Spring Security的入门案例!!!

一、导入依赖 <dependencies><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--security--><dependency><groupId>…

如何获得《幻兽帕鲁》隐藏帕鲁唤夜兽?13000个配种配方查询 幻兽帕鲁Steam好评率还在涨 Mac苹果电脑玩幻兽帕鲁 Crossover玩Windows游戏

《幻兽帕鲁》是一款Steam平台热门游戏&#xff0c;开放式大陆和养成式冒险结合&#xff0c;成为2024首款热门游戏&#xff0c;不过由于官方仅发布了Windows版的游戏客户端&#xff0c;Mac用户无法直接玩&#xff0c;好在有Crossover这样的神器&#xff0c;让苹果电脑也能玩上《…

OCP NVME SSD规范解读-8.SMART日志要求-2

SMART-7&#xff1a; 软错误ECC计数可能是记录了被第一级ECC&#xff08;比如LDPC Hard Decode&#xff09;成功纠正过的读取错误次数。这意味着数据恢复成功&#xff0c;但依然表明存储介质出现了某种程度上的可靠性下降。 LDPC码是一种基于稀疏矩阵的纠错码&#xff0c;它由…

WebGL 入门:开启三维网页图形的新篇章(下)

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

go基础-垃圾回收+混合写屏障GC全分析

垃圾回收(Garbage Collection&#xff0c;简称GC)是编程语言中提供的自动的内存管理机制&#xff0c;自动释放不需要的对象&#xff0c;让出存储器资源&#xff0c;无需程序员手动执行。 Golang中的垃圾回收主要应用三色标记法&#xff0c;GC过程和其他用户goroutine可并发运行…

高端车规MCU的破局之路

目录 1 低质量的无效内卷 2 高端车规MCU产品共性 2.1 支持标定测量 2.2 低延迟通信加速 2.3 完备的网络安全解决方案 2.4虚拟化 3 国产替代的囚徒困境 1 低质量的无效内卷 近几年&#xff0c;车规MCU国产替代的呼声此消彼长&#xff0c;但仍然集中在低端产品。 从产…