NVMe
文章平均质量分 85
古猫先生
长期混迹存储领域,先后供职于知名半导体外企和互联网存储研发,欢迎留言or私信交流~
展开
-
探究NVMe SSD HMB应用场景与影响-<续>
HMB方案通过优化的软件算法,减少对主机内存的访问延迟,提升读写性能,确保即使在无DRAM的情况下也能维持较高的IOPS性能。耐久性方面,通过智能的数据放置策略,减少写放大,延长SSD的使用寿命。通过控制HMB大小和队列深度,优化,可以平衡I/O性能与内存消耗,提高整体效率。HMB建议值(HMPRE):设定实际分配给HMB使用的主机内存容量,为设备提供最优性能的内存分配量。HMB最小值(HMMIN):确保设备正常工作的HMB的最低内存分配量,低于这个值可能影响性能。原创 2024-05-13 21:43:18 · 1205 阅读 · 0 评论 -
探究NVMe SSD HMB应用场景与影响
因此,在实际产品设计中,厂商会根据SSD的目标市场、性能要求和成本控制等因素综合决定DRAM缓存的大小,以达到最佳的性能与成本平衡。随着技术发展,有些高级的SSD也开始采用无DRAM设计,通过更智能的主控算法和利用NAND的一部分容量模拟DRAM功能,实现FTL表的高效管理,以适应更大容量、更低功耗及更经济的成本结构。对于超大规模数据中心用户来说,它们能够定制和控制自己的软件系统,从而通过调整应用程序和系统软件以充分利用SSD的内部架构,从而获得更好的性能表现。原创 2024-05-13 21:42:28 · 1089 阅读 · 0 评论 -
NVMe管理命令为何不用SGL?-2
然而,对于管理命令(Admin Commands),它们的目的通常是为了配置和控制NVMe设备的内部行为,而非传输大量的数据块。复杂性增加:引入SGL到Admin Commands的处理逻辑会增加驱动和固件的复杂性,因为原本这部分逻辑并不需要处理复杂的内存地址列表,而只需简单地将少量连续的物理地址传递给控制器。内存利用率:在许多应用场合,数据可能分布在不同的内存碎片中,SGL可以直接指向这些碎片,无需额外的数据复制和重组,提高了内存使用的灵活性和效率。原创 2024-03-05 23:06:03 · 1134 阅读 · 0 评论 -
NVMe管理命令为何不用SGL?-1
blk_rq_nr_phys_segments = 2,blk_rq_payload_bytes = 64k,那么,avg_seg_size = blk_rq_payload_bytes/blk_rq_nr_phys_segments=32K,这种情况avg_seg_size=sgl_threshold,那就可以采用SGL了。比如,函数nvme_map_data中有iod->use_sgl的结果可以觉得IO传输过程中是使用SGL还是PRP。不怕,NVMe给Host配备了两大"法宝":PRP和SGL。原创 2024-03-05 23:05:33 · 665 阅读 · 0 评论 -
IEEE SGL与NVMe SGL的区别?
简而言之,NVMe SGL(包括PRP和SGL Descriptor List)是针对NVMe SSD固态存储设备的特性专门优化的数据传输机制,能够在硬件层面提供更强的性能和效率,优于传统的IEEE SGL在其他类型的存储设备上的应用。总结起来,IEEE SGL和NVMe SGL都是为了提高数据传输效率而设计的,但NVMe SGL在NVMe SSD环境中进行了特别优化,能够更好地适应闪存存储设备的特性,并且在硬件层面提供了更多的灵活性和更好的性能。原创 2024-03-02 22:03:58 · 790 阅读 · 0 评论 -
NVME协议如何规避静默错误?
这意味着在面对静默数据损坏这一挑战时,业界正通过紧密协作和共享资源的方式,寻求更高效、更可靠的解决方案,以确保在快速发展的AI时代,计算系统的稳定性和数据完整性得到最大程度的保障。Host与SSD之间的数据交互是通过逻辑块(LBA,Logical Block Address) 进行的, 大小为512B, 1024B, 2048B, 4096B等,不过,为了SSD性能的最大化,现在Host一般采用4KB访问SSD,这也就是我们经常提到的"4K对齐"。Metadata前8个字节,原创 2024-02-26 23:28:34 · 1150 阅读 · 0 评论 -
NVMe TCG安全数据存储简介
Opal标准支持多个密钥层级,包括管理员SP(Admin SP)、用户锁SP(Locking SP)和多个锁定对象(Locking Objects),每个都有自己的身份验证机制。当写入数据到NVMe SSD时,驱动器将自动使用底层硬件加速引擎对数据进行加密,所使用的密钥是基于上述密钥管理体系派生出的数据加密密钥(DEK,Data Encryption Key)。在TCG Opal框架内,加密流程涵盖了从密钥生成、分配、加密写入到访问控制和审计跟踪等一系列操作,旨在构建一个高效、安全的自加密存储环境。原创 2024-01-22 20:43:48 · 1816 阅读 · 2 评论 -
浅析NVMe key per IO加密技术-3
Trusted Computing Group (TCG) 与 NVM Express共同合作开发了这项技术,并且TCG发布了相关的关键应用说明文档和规范,例如TCG Key Per I/O SSC v1.00 和 TCG Key Per I/O Application Note v1.00,这些文档为实施Key Per I/O功能提供了具体指导和技术细节。,并且已经或者正在被纳入到相应的技术标准中,表明该技术正逐渐成为业界公认的安全加密实践之一。原创 2024-01-11 19:38:54 · 1100 阅读 · 0 评论 -
浅析NVMe key per IO加密技术-2
在启用Key Per I/O功能并进行MEK所有权转移后,对于受Key Per I/O管控的命名空间而言,原先由存储设备生成的MEK将失效,转而采用主机提供的MEK;为每个Key Per I/O命名空间分配Key Tag的数量:确定每个支持Key Per I/O功能的命名空间可以使用的不同密钥标签数量,从而决定可并行使用多少个不同的MEK。为Key Per I/O启用额外的命名空间:如果需要增加更多命名空间来支持Key Per I/O功能,就需要在分配表中对其进行设置和授权。,即继续沿用原有的加密机制。原创 2024-01-11 19:38:00 · 1340 阅读 · 0 评论 -
浅析NVMe key per IO加密技术-1
它结合了XEX模式(eXtended eXclusive OR cipher mode)和Tweak概念,其中Tweak值是根据逻辑地址计算得出的一个附加参数,与每个数据块相关联,确保了相同数据在不同位置加密后的结果各异,从而避免了同一数据在物理存储上重复出现时的弱点。总结来说,AES-KW主要用于密钥管理和保护较小的数据块,而AES-XTS则专门设计用于大型文件系统、硬盘驱动器等场合的大规模数据加密,两者在目标用途、工作方式和安全特性上存在显著区别。用途:AES-KW主要用于加密其他密钥。原创 2024-01-11 19:37:06 · 1257 阅读 · 1 评论 -
NVMe over CXL技术如何加速Host与SSD数据传输?
总的来说,以上各种方案都旨在通过不同的策略和技术来加速Host与device之间的数据传输,以满足日益增长的高性能计算、大数据分析和实时应用的需求。选择哪种方案取决于具体的应用场景、硬件配置和性能目标。本文针对这几种方案,进行了原理介绍、优劣势对比以及适用场景。在现代计算环境中,优化Host(主机)与device(设备)之间的数据传输速度对于提升系统整体性能和效率至关重要。如果您看完有所受益,欢迎点击文章底部左下角“原创 2023-12-18 20:22:48 · 1813 阅读 · 0 评论 -
NVMe FDP会被广泛使用吗?
我们知道,固态硬盘的存储单元是由闪存颗粒组成的,无法实现物理性的数据覆盖,只能擦除然后写入,重复这一过程。因而,我们可以想象得到,在实际读写过程中,数据的读写势必会在闪存颗粒上进行多次的擦除写入,特别是当某些区块已经完全被塞满的情况下。,不同的应用程序写入了特定的物理空间,即使某个程序的数据删除,可以针对指定的物理空间执行擦除,减少了不必要的垃圾回收,降低了写放大,同时也避免了对前端IO的影响。写放大的降低,也会提升盘的使用寿命,让SSD可以使用更长的时间,这部分也会有35%的成本节省。原创 2023-11-06 23:09:29 · 1800 阅读 · 0 评论 -
Host掌控SSD内黑匣子的历史演进
但随着技术的不断发展,这个“黑盒子”正在被逐渐揭开,我们的主角——Open Channel、Multi-Stream、IO Determinism、ZNS、DPM(Data Placement Mode)和FDP(Flexible Data Placement)等技术,就是见证者和推动者。这些技术带来的不仅是性能的提升,更重要的是,它们让我们对SSD有了更深入的理解和更好的控制。在这个世界里,SSD不再是神秘的“黑盒子”,而是我们手中的利器,用来挑战存储的极限。原创 2023-09-27 14:16:56 · 1092 阅读 · 0 评论 -
NVMe IO数据传输如何选择PRP or SGL?
NVMe给Host配备了两大"法宝":PRP和SGL。这两个模型均可以帮助Host告知Controller数据在Host内存中的具体地址。原创 2023-01-08 19:53:43 · 3023 阅读 · 0 评论 -
浅析nvme原子写的应用场景
NVME协议家族,当前发展的已经非常庞大,来张nvme家族大合影。从最开始的NVME Base Spec,又延伸了更加专业聚焦的模块Command Set Spec、Transport Spec,NVME MI Spec等等。在Command Set Spec中,我们可以看到针对nvme设备相关的原子操作的定义相关参数。原子写的简单理解就是,一笔写操作,要不全部写入盘,要不全部未写入盘,不存在部分写入+部分未写入的情况,最大限度保证数据一致性。原创 2022-12-17 19:36:47 · 2021 阅读 · 0 评论 -
NVMe系列专题之七:E2E数据保护
Host与SSD之间的数据交互是通过逻辑块(LBA,Logical Block Address) 进行的, 大小为512B, 1024B, 2048B, 4096B等,不过,为了SSD性能的最大化,现在Host一般采用4KB访问SSD,这也就是我们经常提到的"4K对齐"原创 2022-10-04 22:20:16 · 929 阅读 · 0 评论 -
NVMe系列专题之六:电源管理
NVMe协议其中有一项优势,就是低功耗!为了达成这个目标,NVMe中加入了自动电源状态转换和动态电源管理机制。原创 2022-10-04 22:18:14 · 1563 阅读 · 1 评论 -
NVMe系列专题之五:中断机制
在NVMe Spec中规定,有四种中断类型:Pin-based Interrupt, Single Message MSI, Multiple Message MSI, MSI-X。我们一一介绍一下。原创 2022-10-04 22:17:19 · 1651 阅读 · 0 评论 -
NVMe系列专题之四:寻址模型PRP和SGL解析
我们现在讲的NVMe,主要是基于NVMe over PCIe展开的。在之前的文章中,我们提到了NVMe over PCIe系统中Host与Controller主要依靠PCIe TLPs(Memory Read/Wirte)进行信息的传递。原创 2022-10-04 22:16:05 · 1653 阅读 · 1 评论 -
NVMe系列专题之三:命令仲裁机制
在NVMe Spec没有规定Command存入SQ队列的执行顺序,Controller可以一次取出多个Command进行批量处理。一个SQ队列中的Command执行顺序是不固定,同时在多个SQ队列之间的Command执行顺序也不固定,这就涉及到了NVMe Spec定义的命令仲裁机制。原创 2022-10-04 22:14:03 · 1058 阅读 · 0 评论 -
NVMe系列专题之二:队列(Queue)管理
之前的文章中,我们提到了NVMe有一个很大的优势就是队列深度达到了64K,并且支持队列个数最大可达64K。所以呢,这里我们就先聊聊NVMe中队列相关的一些知识点。原创 2022-10-04 22:12:21 · 1739 阅读 · 1 评论 -
NVMe系列专题之一:NVMe技术概述
本文主要是对NVMe技术作一个概况性的介绍,后续文章会讲述NVMe的相关细节原创 2022-09-12 21:37:54 · 6366 阅读 · 0 评论 -
浅析企业级SSD Multi-Stream Write技术
企业级存储中经常提到一个关键性的词语"冷热数据分区"。比如Meta data肯定是热数据。把相同生命周期的数据打上标签,告诉SSD盘,SSD盘放置数据的时候,就可以分区存放,会大大减少垃圾回收的工作量。要实现这个功能,阵列软件必须有接口和SSD控制器通讯。除了自研SSD之外,还有一个办法,采用支持Multi-stream write(多流写)技术的SSD。原创 2022-09-08 00:09:04 · 783 阅读 · 0 评论 -
加权循环仲裁WRR特性对NVME SSD性能有什么影响?
我们介绍过NVME命令仲裁机制的原理,本文主要是介绍加权循环仲裁(WRR,Weighted Round Robin Arbitration)对NVME SSD性能的影响。原创 2022-09-07 23:59:22 · 692 阅读 · 0 评论 -
浅析PCI配置空间
在PCIe的拓扑结构中,最多支持256个Bus, 每条Bus最多支持32个Device,每个Device最多支持8个Function,所以,由Bus:Device:Function(BDF)构成了每个Function的唯一的"身份证号". 如下图,一个简单的PCIe拓扑结构中BDF分布:那么,这么多的Function,Host怎么知道他们具有什么本领?答案是,每个Fun原创 2017-12-15 09:55:37 · 8209 阅读 · 1 评论 -
PCIe SSD飞入寻常百姓家靠什么?
近几年,SSD发展势头凶猛,特别是消费级和企业级SSD均有显著的增长。在2017年第四季度,已经有超过50% notebook开始采用消费级SSD。另外,还有很多国产品牌撑起了消费级SSD零售重担。目前消费级市场上的SSD主要有两种,一种是SATA SSD,另外一种则是PCIe SSD。其中,SATA SSD仍然是市场主导。但是,与SATA SSD相比,PCIe SSD的性能有成倍的提升,原创 2017-10-14 19:23:36 · 1392 阅读 · 0 评论 -
小小的身体,大大的梦想|PCIe+NVMe不是SSD的专利,SD也想要!
在电脑PC端,基于PCIe/NVMe的固态硬盘的威力已经让大家见识了,现在消费级PCIe SSD的读写速度最快可以达到几个GB/s。 在手机端,UFS的速度也达到了GB/s级别的速度。难道,这个世界以后就是PCIe/NVMe,UFS的天下了吗?答案是:非也!我们先来看一组数据:上图中,给出一个很令人意外的数据,就是在2017年Q1出货的所有智能手机中,居然有97%的智能手机仍然有S原创 2017-10-09 09:54:31 · 2173 阅读 · 0 评论 -
数据中心的福音 | NVMe协议将增加IO Determinism功能
IO Determinism功能的引入NVMe Spec 1.3有一个新功能:多流写技术。具体操作是在每个I/O指令上加上一个标签,SSD则根据写入I/O的标签,把不同标签的资料放到不同的区域,借此让多流写入作业能有序的进行,进而实现冷热资料的分区存放,从而大幅改善垃圾回收的效率,让SSD能提供更好的性能,不受传统的垃圾回收作业的困扰。除了用于多流写入外,NVMe 1.3这种I/O标签的功原创 2017-09-11 09:44:14 · 2448 阅读 · 0 评论 -
NVMe SSD终于也有了这个“数据安全防护衣”!
在今年5月份发布的NVMe Spec 1.3中,对数据安全方面增加了一个“Sanitize”功能,如下图。其实,Sanitize清除功能并不是NVMe新创,SATA和SAS硬盘早已支持的这个功能,现在终于加入到NVMe协议上面了。当你手上有一块NVMe SSD不想使用或者想改换其他用途,为了保证SSD的数据不被泄露,你可能会想到用Secure Erase安全擦除的命令。原创 2017-09-06 09:41:18 · 4932 阅读 · 0 评论 -
独家发布 | Linux NVMe Driver学习笔记大合集
近期,存储随笔连载了10篇Linux NVMe Driver学习笔记,主要基于两大块的内容: 初始化和Block IO请求处理过程。我们通过两幅简图回顾一下前面的内容:初始化: 这个过程中主要调用了两个函数: nvme_init和nvme_probe.Block IO请求处理过程:更详细的内容,请参考具体文章:原创 2017-07-26 11:44:46 · 11157 阅读 · 0 评论 -
存储随笔《NVMe专题》大合集
存储随笔连续发布了PCIe专题和SATA专题的PDF版文档。今天,NVMe专题也顺利与大家见面了,望大家继续支持,请点击"阅读原文"下载PDF版。由于知识有限,如有不正确的地方,烦请指正!再次感谢大家的支持与鼓励!附录: NVMe专题文章列表(点击即可跳转)NVMe系列专题之一:NVMe技术概述NVMe系列专题之二:队列(Queue)原创 2017-07-26 11:42:26 · 13825 阅读 · 4 评论