OCP NVME SSD规范解读-3.NVMe管理命令-part2

2024-03-12 18:59

本文主要是介绍OCP NVME SSD规范解读-3.NVMe管理命令-part2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  1. NVMe-AD-8:在某些情况下(如Sanitize命令、Format NVM命令或TCG Revert方法后数据被清除),设备应允许读取已清除的LBAs而不产生错误,并在最后一次清除完成后,对未写入LBAs的读取返回所有零值给主机

  2. NVMe-AD-10:设备应支持Identify命令的UUID列表功能(CNS值17h)。

UUID是一个128位的数字,用于唯一标识信息或者对象。在NVMe SSD规范中,使用UUID是为了确保供应商特定的日志标识符和特性标识符能够访问到本规范中定义的功能,而不会意外地访问到其他供应商特定的、可能使用相同标识符的功能。

在规范中,定义了一个特定的UUID值(C194D55BE0944794A21D29998F56BE6Fh),这个UUID被包含在UUID List(NVMe-AD-10)中,并且其Identifier Association字段被设置为清除状态(00b)。

图片

Get Features和Set Features命令需要支持UUID Index功能。当使用这个特定的UUID或者一个零UUID Index,以及规范中使用的供应商特定的Feature Identifier时,这些命令将访问到规范中定义的供应商特定的特性。

Get Log Page命令也需要支持UUID Index功能。当使用这个特定的UUID或者一个零UUID Index,以及规范中使用的供应商特定的Log Page Identifier时,这个命令将访问到规范中定义的供应商特定的日志页。供应商特定的持久事件日志页也需要支持UUID Index功能。

  1. NVMe-AD-11:如果特定NVMe管理命令不使用Namespace Identifier(NSID),并且主机指定非零NSID,则控制器应以状态Invalid Field in Command中止命令。

  2. NVMe-AD-12:设备应支持Device Self-test命令。

  3. NVMe-AD-14/15/16:设备应支持Lockdown命令。Lockdown命令是NVMe管理命令集中的一个命令,主要用于安全和管理目的。当设备接收到Lockdown命令时,它会锁定指定的Admin命令或Features,限制对这些功能的访问或修改。

  4. NVMe-AD-17:"No-Deallocate Modifies Media After Sanitize"字段的设置是为了确保Sanitize操作后的数据安全性。当这个字段设置为01b时,即使Sanitize操作完成后,设备也不会再对已Sanitize的区域进行写入或修改操作。(nvme协议定义如下)

图片

这样的设计目的是防止在数据被Sanitize清除后,由于设备的内部操作或者意外情况,导致已经清除的数据区域被新的数据覆盖,从而可能影响数据的安全性和清除效果。通过禁止Sanitize操作后对媒体的额外修改,设备可以更好地保证Sanitize命令的执行效果,满足数据安全和隐私保护的需求。例如,在执行Crypto Erase(加密擦除)操作后,设置这个字段为01b可以确保解密密钥不会被再次写入或修改,从而确保被擦除的数据无法被恢复。

  1. NVMe-AD-18:这表示设备应在Identify Controller数据结构中的Sanitize Capabilities区域将No-Deallocate Inhibited位清零至0b。这个位主要影响设备在执行sanitize操作后的数据处理方式。

图片

与NVMe-AD-17正好相反,NVMe-AD-18要求设备不应禁止在sanitize操作后进行deallocations,也就是说,设备应该允许在sanitize操作完成后释放已擦除或覆盖的数据块。通过将No-Deallocate Inhibited位设置为0b,设备表明它支持并允许在sanitize操作后进行deallocations。

这一要求的意义在于确保设备在执行sanitize操作后能够有效地管理和回收存储资源,同时保持数据安全性和设备性能。通过遵循这一要求,设备可以更好地满足数据保护和存储管理的需求,特别是在需要频繁进行sanitize操作的高安全环境或特定应用场景中。

  1. NVMe-AD-19:
    如果设备在接收到Sanitize命令并成功完成操作后,无法返回全零(即使命令设置了No-Deallocate After Sanitize位为1b),设备应忽略不进行deallocations的请求,并执行deallocations操作。同时,设备应在Sanitize Status Log Page中将Sanitize Status字段设置为100b。

这表示在某些特定情况下,如果设备无法在sanitize操作成功完成后返回零(即无法确保已擦除的数据区域被填充为零),即使Sanitize命令设置了No-Deallocate After Sanitize位为1b(表示请求在sanitize操作后不进行deallocations),设备也应该执行deallocations。

在这种情况下,尽管主机请求不要进行deallocations,但由于设备无法保证返回零,为了数据的安全性和一致性,设备仍然会进行deallocations。同时,设备会在Sanitize Status Log Page中的Sanitize Status字段设置值为100b,以表明sanitize操作的特殊状态或异常情况。

图片

这一要求的意义在于确保设备在执行sanitize操作后能够提供一致和可靠的数据清除效果,即使在某些硬件限制或异常情况下也能保证数据的安全性。通过遵循这一要求,设备可以更好地满足数据保护和安全合规的需求,特别是在需要严格的数据擦除和销毁的环境中。

  1. NVMe-AD-22:
    设备出厂时,应在Sanitize Status Log Page中的Sanitize Status字段清除为000b,表示NVM子系统从未进行过sanitize操作,并且Global Data Erased位在Sanitize Status字段中设置为1b,表示全局数据已被擦除。

图片

  1. NVMe-AD-24:
    设备应在Identify Controller数据结构中的Asynchronous Event Request Limit字段报告至少为4的值。这表示设备支持至少同时处理4个异步事件请求。

这项要求主要涉及到设备对非易失性内存(NVM)进行格式化的功能。Format NVM命令是一种高级的管理命令,用于在固态硬盘(SSD)上重新初始化或清除特定命名空间的数据。

NVMe-AD-24要求设备支持按命名空间基础执行Format NVM命令,这意味着设备应该能够针对每个独立的命名空间进行格式化操作,而不是同时影响所有命名空间。在Identify Controller数据结构中的Format NVM Attributes字段的位0和位1被设置为00b,这表示设备支持按命名空间进行格式化。

图片

Format NVM命令通常包括几种不同的erase模式,如User Data Erase(仅清除用户数据)、Cryptographic Erase(使用加密技术清除数据)等。特别是在设备退役、转售或更换时,这些erase模式可以帮助提高数据安全性和保护用户隐私。

当主机发送一个Format NVM命令到设备时,设备会根据指定的erase模式和命名空间来执行格式化操作。这个过程可能包括清除namespace中的所有LBA(逻辑块地址)映射、删除用户数据、重置元数据信息以及更新Namespace Utilization(NUSE)等。

Namespace Utilization (NUSE)是NVMe设备中一个重要的概念,用于表示命名空间中当前已分配的逻辑块数量。这些逻辑块已经被分配给数据存储,正在进行读写操作或者已经包含有效数据。

图片

NCAP(Namespace Capacity)是指命名空间的总容量,即可以分配的最大逻辑块数量。而NUSE则是实际已经分配和使用的逻辑块数量,它始终小于或等于NCAP。

NUSE的值是动态变化的。当在命名空间中写入新的数据时,NUSE的值会增加;当删除或覆盖已有数据时,如果设备支持数据压缩或者垃圾回收功能,那么NUSE的值可能不会立即减少,因为被删除或覆盖的数据所在的物理块可能仍然被标记为已使用,直到被设备的后台处理程序进行清理和重用。

通过查询NVMe Identify Namespace数据结构中的相应字段,可以获取到命名空间的NUSE信息。

比如,在一个200GB的设备上,执行Format NVM命令进行用户数据擦除后,NUSE会被设置为零,表示所有逻辑块都没有被分配和使用。然后,每当向设备写入1GB的数据,NUSE的值就会增加相应的逻辑块数量,同时设备的使用数据也会相应地显示已使用的存储容量。

图片

  1. NVMe-AD-25:
    如果发生了报告启用的异步事件,并且没有未完成的Asynchronous Event Request命令,控制器应保留这些异步事件类型的事件信息,并在未来对Asynchronous Event Request命令的响应中使用这些信息。排队的重复异步事件应只报告一次。

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

精彩推荐:

  • 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版正式发布!

这篇关于OCP NVME SSD规范解读-3.NVMe管理命令-part2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/802265

相关文章

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

30常用 Maven 命令

Maven 是一个强大的项目管理和构建工具,它广泛用于 Java 项目的依赖管理、构建流程和插件集成。Maven 的命令行工具提供了大量的命令来帮助开发人员管理项目的生命周期、依赖和插件。以下是 常用 Maven 命令的使用场景及其详细解释。 1. mvn clean 使用场景:清理项目的生成目录,通常用于删除项目中自动生成的文件(如 target/ 目录)。共性规律:清理操作

MySQL高性能优化规范

前言:      笔者最近上班途中突然想丰富下自己的数据库优化技能。于是在查阅了多篇文章后,总结出了这篇! 数据库命令规范 所有数据库对象名称必须使用小写字母并用下划线分割 所有数据库对象名称禁止使用mysql保留关键字(如果表名中包含关键字查询时,需要将其用单引号括起来) 数据库对象的命名要能做到见名识意,并且最后不要超过32个字符 临时库表必须以tmp_为前缀并以日期为后缀,备份

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

MCU7.keil中build产生的hex文件解读

1.hex文件大致解读 闲来无事,查看了MCU6.用keil新建项目的hex文件 用FlexHex打开 给我的第一印象是:经过软件的解释之后,发现这些数据排列地十分整齐 :02000F0080FE71:03000000020003F8:0C000300787FE4F6D8FD75810702000F3D:00000001FF 把解释后的数据当作十六进制来观察 1.每一行数据

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。