OCP NVME SSD规范解读-13.Self-test自检要求

图片

4.10节Device Self-test Requirements详细描述了数据中心NVMe SSD自检的要求,这一部分规范了设备自身进行各种健康检查和故障检测的过程。自检对于确保SSD的正常运行和提前预防潜在故障至关重要。

图片

在进行设备自检时,设备应当确保不对用户数据造成破坏,即除了读取用户数据外,自检过程不会导致数据丢失或损坏。例如,即使在进行读取操作时产生轻微的读取干扰,只要这种影响极小,就不被视为破坏性行为。

此外,针对设备自检(Device Self-test)的重新执行情况,规范做出了特别说明。例如,在连续两次执行自我测试时,如果第二次测试发生在第一次成功完成后不久,则第二次的Media Check Extended应当检查不同的逻辑块地址(LBAs),并在必要时进行循环扫描,以覆盖尽可能多的存储区域,避免每次测试重复同一部分而导致某些潜在问题遗漏。

具体来说,如果一个设备拥有10000h分配的LBAs(即总共有10000个逻辑块地址),但在指定的设备自检完成时间内只能扫描到其中的6000h(即6000个逻辑块地址),那么设备自检的执行将采取分批扫描的方式。

  • 首次设备自我测试运行时,将扫描从LBAs 0h到5FFFh的部分;

  • 紧接着下一次运行时,将接着扫描从LBAs 6000h到BFFFh的部分;

  • 随后的下一轮测试将开始于C000h的LBAs,并在达到地址上限后,循环回到0h继续扫描直到1FFFh,然后依次类推。

这样做的目的在于,即使在有限的测试时间内无法一次性扫描完全部的LBAs,也能确保每次执行都能检查到新的、尚未被上次测试覆盖到的存储区域,从而逐步全面地检测存储设备的健康状况。通过这种循环交错的扫描方式,设备自我测试能够实现对存储介质的有效分段式检查,有利于早期发现潜在故障,确保数据的安全性和存储系统的稳定性。

对于SMART/Health Information的检查,规定在自检中,如遇到温度阈值超标的情况,不应导致测试失败,因为这通常是风扇或系统故障引起的,而非SSD本身的问题。在自检操作中,将忽略SMART/Health Information日志页面中Critical Warning bit 1(温度警告位)的影响。

图片

在进行扩展设备自检时,设备制造商需要提供一个最小的逻辑块地址(LBA)数量要求,以便主机写入足够的数据,以促使设备自检操作能读取到所有物理非易失性存储单元(如NAND闪存芯片)。

最后,针对特定的设备自自检代码(Device Self-test Code, STC),规范规定了设备在给定时间内至少要完成哪些测试段。例如,对于STC为1h或Eh的设备自检操作,至少需要包括segments 1到3和8的测试,并尽可能在指定完成时间内完成segments 4到7的测试。

图片

当设备正在进行自检的过程中,如果由于同时存在的主机IO活动等原因导致未能在指定的完成时间内完成整个自检操作,设备不应因此报错或终止测试。相反,设备应尽可能在分配的完成时间内完成尽可能多的自检部分(device self-test segments)。

这意味着在并发I/O活动或其他资源竞争条件下,即使无法在预定的时间内彻底完成所有的测试内容,SSD也要尽力去执行尽可能多的测试环节,而不是立即放弃测试。这样的设计确保了在实际运行环境中的自检能够具有更强的鲁棒性和实用性。

  • 鲁棒性指的是一个系统在面对内部错误、外部干扰、边界条件、异常输入或不利环境条件时,仍然能够保持稳定运行并维持预期功能的能力。在数据中心NVMe SSD的语境下,鲁棒性表现为即便在复杂的、高负载的服务器环境中(如存在大量并发的I/O活动),设备的自检功能也能够在各种不利条件下坚持执行,并不会因为未能在规定的完成时间内完成全部测试就失效或崩溃。这种设计确保了SSD在实际运用中能够应对不可预测的挑战,保持稳定性和可靠性。

  • 实用性则反映了设备或系统在现实场景中能够有效解决问题和满足用户需求的程度。对于数据中心NVMe SSD的自检功能来说,实用性强意味着即使在理想测试条件不具备的情况下(如受到并发I/O活动影响),设备仍能够部分执行自我测试,尽可能多地获取到有价值的信息。这样一来,即便在繁忙的生产环境中,系统管理员也可以通过执行自我测试得到关于SSD健康状况的部分反馈,从而做出及时的决策和维护措施。

结合这两点来看,数据中心NVMe SSD的自检功能设计既要确保在复杂、动态的IT环境中保持稳健运行,不受临时条件约束,又要能够提供实际可用的、有助于系统运维的测试结果。

小编每日撰文不易,如果您看完有所受益,欢迎点击文章底部左下角“关注”并点击“分享”、“在看”,非常感谢!

精彩推荐:

  • 如何突破SSD容量提升的瓶颈?

  • 固态存储是未来|浅析SSD架构的演进与创新技术

  • 论文解读:NAND闪存中读电压和LDPC纠错码的高效设计

  • 华为新发布磁电存储“王炸”,到底是什么?

  • 关于SSD LDPC纠错能力的基础探究

  • 存储系统如何规避数据静默错误?

  • PCIe P2P DMA全景解读

  • 深度解读NVMe计算存储协议

  • 对于超低延迟SSD,IO调度器已经过时了吗?

  • 浅析CXL P2P DMA加速数据传输的原理

  • HDD回暖于2024,与SSD决战于2028

  • SSD固态硬盘的黄金原则:抱最高的希望,做最坏的打算

  • PCIe 6.0生态业内进展分析总结

  • 详细解读QLC SSD无效编程问题

  • NVMe SSD IO压力导致宕机案例解读

  • 浅析PCIe 6.0功能更新与实现的挑战

  • 过度加大SSD内部并发何尝不是一种伤害

  • FIO测试参数与linux内核IO栈的关联分析

  • PCIe surprise down异常与DPC功能分析

  • 过度加大SSD内部并发何尝不是一种伤害

  • NVMe over CXL技术如何加速Host与SSD数据传输?

  • 为什么QLC NAND才是ZNS SSD最大的赢家?

  • SSD在AI发展中的关键作用:从高速缓存到数据湖

  • 浅析不同NAND架构的差异与影响

  • SSD基础架构与NAND IO并发问题探讨

  • 字节跳动ZNS SSD应用案例解析

  • SSD数据在写入NAND之前为何要随机化?

  • 深度剖析:DMA对PCIe数据传输性能的影响

  • NAND Vpass对读干扰和IO性能有什么影响?

  • HDD与QLC SSD深度对比:功耗与存储密度的终极较量

  • NVMe SSD:ZNS与FDP对决,你选谁?

  • 如何通过优化Read-Retry机制降低SSD读延迟?

  • 关于硬盘质量大数据分析的思考

  • 存储系统性能优化中IOMMU的作用是什么?

  • 全景解析SSD IO QoS性能优化

  • NVMe IO数据传输如何选择PRP or SGL?

  • 浅析nvme原子写的应用场景

  • 多维度深入剖析QLC SSD硬件延迟的来源

  • 浅析PCIe链路LTSSM状态机

  • 浅析Relaxed Ordering对PCIe系统稳定性的影响

  • 实战篇|浅析MPS对PCIe系统稳定性的影响

  • 浅析PCI配置空间

  • 浅析PCIe系统性能

  • 存储随笔《NVMe专题》大合集及PDF版正式发布!

图片

如果您也想针对存储行业分享自己的想法和经验,诚挚欢迎您的大作。
投稿邮箱:Memory_logger@163.com (投稿就有惊喜哦~)

《存储随笔》自媒体矩阵

图片

更多存储随笔科普视频讲解,请移步B站账号

图片

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【人工智能】Gitee AI 天数智芯有奖体验开源AI模型,一定能有所收货,快来体验吧

大家好,我是全栈小5,欢迎阅读小5的系列文章。 这是《人工智能》系列文章,每篇文章将以博主理解的角度展开讲解。 目录 前言两大赛道天数智芯1.模型地址2.天数智芯专区3.选择模型4.模型详情页5.部署模型6.成功部署7.执行例子8.移除模型 千模盲…

03python注释与输入函数

Python 注释的作用: 注释可用于解释 Python 代码。 注释可用于提高代码的可读性。 在测试代码时,可以使用注释来阻止执行。 注释可以放在一行的末尾,Python 将忽略该行的其余部分: 实例1 print("Hello, World!") #打印输出Hello,World print(9-3) #输出9…

【mybatis】objectwrapper解读

简介 在 MyBatis 中,ObjectWrapper 是一个关键的接口,用于详细封装了对象的属性信息。ObjectWrapper 主要用于内部操作,它抽象了对象的属性操作,使得 MyBatis 能够统一处理原生类型、Bean 对象以及 Map 集合等。 类图展示 主要功…

Vue组件封装方案对比——v-if方式与内置component方式

近期在准备搭建一个通用组件库,而公司现有的各个系统也已有自己的组件库只是没抽离出来,但是目前有两套不同的组件封装方案,所以对于方案的选择比较困惑,于是对两种方式进行了对比,结合网上找到的一些开源组件库进行分…

抖音店铺规划运营管理计划数据分析工作表

【干货资料持续更新,以防走丢】 抖音店铺规划运营管理计划数据分析表 部分资料预览 资料部分是网络整理,仅供学习参考。 抖音小店运营规划工作表格(完整资料包含以下内容) 目录 1. 抖店运营管理决策表:该表格用于记…

三维指静脉生物识别成像设备设计和多视图验证研究

文章目录 三维指静脉生物识别成像设备设计和多视图验证研究总结摘要介绍多视角指静脉识别模型结构内容特征编码Transformer(CFET)主导特征选择模块(DFSM) 实验和结果数据集实施细节视角研究池化层的作用消融实验和SOTA方法比较 论文: Study of 3D Finger Vein Biometrics on I…

Linux——进程通信(三)命名管道

前言 我们在之前学习了匿名管道与匿名管道的应用——进程池,但是匿名管道的通信,需要有血缘关系的进程(通过fork创建的进程们),如果我想让两个毫不相干的进程进行通信,可以采样命名管道的方式(…

Go语言中的锁与管道的运用

目录 1.前言 2.锁解决方案 3.管道解决方案 4.总结 1.前言 在写H5小游戏的时候,由于需要对多个WebSocket连接进行增、删、查的管理和对已经建立连接的WebSocket通过服务端进行游戏数据交换的需求。于是定义了一个全局的map集合进行连接的管理,让所有…

80后深圳设计师原创设计 妙解中小学生午休难题

3月17日至21日,深圳国际智能家居博览会在宝安国际会展中心举办。智慧校园展区成为焦点,吸引了众多目光。智荟康科技展出的午休课桌椅产品,为解决中小学生“趴睡”问题而研发,创新实用,在智慧校园展区中备受好评。 &…

Leetcode 79. 单词搜索

心路历程: 做完这道题才发现是回溯,一开始想的是递归,判断完第i个字符后,只需要挨个判断第i1个字符在不在第i个字符的邻域。后来发现由于不能重复使用元素,所以需要维护一个visited列表,并且在遍历所有可能…

蓝桥杯---代分数

import java.util.Scanner;public class top4 {//全排列分数的那个题目//首先进行n个数的全排列//然后将这n个数字拆分为3个数字,即插入两个板子//然后判断等式是否成立(判断条件就是在if里面去进行相关的判断是吗??)s…

Spring项目部署到linux上

目录 一、环境配置 1、数据准备 2、程序配置文件修改 二、打包项目 三、上传jar包到服务器 四、开放端口号 五、运行程序 六、查看日志 七、常见问题 1、服务未启动 2、端口号已被占用 3、端口未开放 一、环境配置 1、数据准备 需要先在linux环境下的数据库中创建…

Go语言之函数、方法、接口

一、函数 函数的基本语法: func 函数名(形参列表)(返回值列表) {执行语句...return 返回值列表 } 1.形参列表:表示函数的输入 2.函数中的语句:表示为了实现某一功能的代码块 3.函数可以有返回…

【Linux】进程排队的理解进程状态的表述僵尸进程和孤儿进程的理解

一、进程排队的理解 进程不是一直运行的,进程可能会在等待某种软硬件资源。即使把进程加载到CPU中,也不是一直会运行的。而进程排队,一定是在等待某种软硬件资源(可以是CPU,键盘,磁盘,网卡等等设…

rabbitmq-spring-boot-start配置使用手册

rabbitmq-spring-boot-start配置使用手册 文章目录 1.yaml配置如下2.引入pom依赖如下2.1 引入项目resources下libs中的jar包依赖如下2.2引入maven私服依赖如下 3.启动类配置如下4.项目中测试发送消息如下5.项目中消费消息代码示例6.mq管理后台交换机队列创建及路由绑定关系如下…

深入探讨Python中的文件操作与文件IO操作【第141篇—Python实现】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 深入探讨Python中的文件操作与文件IO操作 在Python编程中,文件操作和文件IO操作…

ES集群和分片以及脑裂

文章目录 概要一、概念二、节点角色三、master节点脑裂四、参考 概要 在工作中不可避免会用到ES,而用到ES就不得使用其集群模式了。 单节点的话不得不面临两个重大缺陷:单点故障(高可用)和海量数据存储搜索。 ES通过集群模式解决…

JSR规范系列(6)——Jakarta EE 9 规范

Jakarta EE 9 规范 Jakarta EE 9 规范 JSR规范系列(1)——Java版本、JSR规范和JCP社区流程概述 JSR规范系列(2)——JavaSE规范、JavaEE规范、JSR规范全面整理——截止201908 JSR规范系列(3)——Java EE 6规…

● 647. 回文子串 ● 516.最长回文子序列 ● 动态规划总结篇

● 647. 回文子串 1.dp数组含义。 之前的题目,差不多都是求什么就怎么定义dp数组,最后返回dp的最后一个元素。但是这里如果定义一维数组dp[i]是[0,i]范围的回文子串的个数的话,怎么根据dp[i-1]得到dp[i]?发现很难找到递归关系…

Linux之gcc_makefile

一、提要 1. 预处理(进行宏替换) 2. 编译(生成汇编) 3. 汇编(生成机器可识别代码) 4. 链接(生成可执行文件或库文件) 五六十年代,我们编程大多是二进制编程,也就是使用打孔纸带喂给机器 再往后&…