全文概览
在生成式AI和大数据时代,存储系统的性能和效率变得至关重要。传统的SATA和SAS接口已经无法满足现代数据中心对高吞吐量和低延迟的需求。NVMe(非易失性内存 express)作为一种新兴的存储接口,正在逐步取代这些传统接口,特别是在大容量存储系统中。本文深入探讨了NVMe接口在HDD(硬盘驱动器)中的应用,分析了其如何通过统一存储堆栈、优化拓扑结构以及引入新技术(如eBPF、CMB、HMB等)来提升存储系统的性能、降低功耗和总拥有成本(TCO)。通过多个实际案例和技术细节,本文为读者展示了NVMe接口如何推动存储技术的革新,并为未来的数据中心和AI应用提供了强有力的支持。
NVMe存储接口整合 讨论了NVMe接口如何取代传统的SATA和SAS接口,推动大容量存储系统的现代化。 介绍了NVMe委员会的技术规划,包括eBPF计算程序、命令持续时间限制(CDL)和弹性容量等。 NVMe-HDD统一存储堆栈与TCO效率 分析了NVMe-HDD如何通过统一存储堆栈减少服务器DAS与JBOD存储的TCO和功耗。 探讨了CPU/GPU直连、数据压缩和计算存储等技术在NVMe-HDD中的应用。 NVMe简化硬盘拓扑结构 展示了NVMe如何通过消除SAS和SATA专有硅片,简化存储拓扑结构,提升系统效率。 介绍了从SAS/SATA到NVMe的拓扑结构演变过程。 NVMe-oF驱动初始化流程与CMB应用 详细描述了NVMe-oF驱动的初始化流程,包括队列创建、数据缓冲区分配和RDMA密钥生成。 探讨了控制器内存缓冲区(CMB)在减少Fabric延迟和优化数据传输中的作用。 NVMe-HDD直连验证与JBOD扩展方案 介绍了NVMe-HDD直连验证的过程,包括UEFI固件和操作系统内核的验证。 讨论了JBOD扩展方案中的数据路径验证和硬件组件的安全性。 总结:NVMe-HDD优化存储系统 总结了NVMe-HDD系统优化的关键要点,包括性能提升、功耗优化和容量利用率。 强调了统一架构、HMB、CMB等技术对存储系统整体性能的提升。 阅读收获
了解NVMe接口如何取代传统SATA和SAS接口,推动大容量存储系统的现代化。 掌握NVMe-HDD的统一存储堆栈,理解其如何通过优化拓扑结构和引入新技术(如eBPF、CMB、HMB)来提升系统性能和降低TCO。 认识NVMe-oF驱动的初始化流程,了解其在数据传输和Fabric延迟优化中的关键作用。 探索NVMe-HDD直连验证和JBOD扩展方案,理解其在确保存储系统安全性和扩展性中的重要性。
NVMe 存储接口整合
图片讨论了关于NVMe存储接口整合的进展,特别是在OCP NVMe HDD规范方面。该规范已在2022年由多个活跃成员共同推动。讨论的重点是通过NVMe协议取代传统的SATA接口,以现代化和整合大容量存储系统。不同的消费者、驱动供应商、系统供应商和生态系统公司正参与这一转型过程。
NVMe 存储接口整合
讨论了NVMe委员会针对未来NVMe硬盘的功能规划,包含了多个正在进行中的技术开发,如eBPF计算程序、命令持续时间限制(CDL)以及弹性容量(用于重用)。
还提到,原生SOC三模端口(支持SAS、SATA和NVMe)对未来过渡非常重要。此外,展示了三个EDU阶段的进展,表明产品化可能在2027至2028年间发生,届时将有大量市场需求推动该技术的发展。
===
HDD的额外功能规划:
NVMe委员会TPAR 4091 计算程序(eBPF) ——进行中NVMe委员会TPAR 4144 命令持续时间限制(CDL) ——进行中NVMe委员会TPAR 4149 弹性容量(用于重用) ——进行中原生SOC三模(SAS,SATA和NVMe)端口 是过渡所必需的EDU1 – OCP演示2022 —— 因SATA连接器规范合规问题被推迟EDU2 – 2023年采样 —— 通过80% 驱动程序 Linux 和 MSFT供应商SIE测试EDU3 – 正在开发中 —— NVMe2.0,增加了到2025年第二季度可能实现的固件功能产品化预计在2027到2028年之间实现,关键CSP的市场需求推动 关于 eBPF
eBPF (Extended Berkeley Packet Filter) 是一种非常强大的内核级技术,起初用于网络数据包过滤,但它的功能已经大大扩展到操作系统内核的其他方面。eBPF允许程序在操作系统内核中执行代码,而无需更改内核源代码或加载内核模块。这种方法提供了一种高效、安全的方式来扩展操作系统的功能。
主要特点和应用:
高效的性能 :eBPF 程序运行在内核中,可以直接访问内核数据结构,但它们会经过验证以确保不会引入不安全的操作。 由于eBPF是在内核级别运行,它能够提供比传统用户空间应用程序更高的性能,尤其是在处理网络流量、性能监控和安全分析时。 灵活性和扩展性 :虽然最初是为了网络包过滤而设计的,eBPF现在被广泛用于性能监控、安全、调试、Tracing、流量管理等多个领域。 eBPF程序可以通过"钩子"插入到内核的多个不同位置(例如,系统调用、网络栈、进程生命周期等),这使得它能在不需要修改内核源代码的情况下扩展操作系统的功能。 eBPF的工作原理 :
程序加载 用户空间的应用程序通过特定的API将eBPF程序加载到内核中。这些程序通过BPF
系统调用机制与内核交互。验证 eBPF程序加载后,由内核中的BPF验证器进行安全性检查,确保它们不会引发系统崩溃或其他安全问题。执行 在符合安全规则后,eBPF程序会在内核中某个“钩子”位置被触发,并执行所定义的操作。
NVMe-HDD统一存储堆栈与TCO效率
提供超过50%的服务器DAS与JBOD存储特定硅片TCO(总拥有成本)和功耗的减少 基于标准的硅片、操作系统堆栈、驱动程序和软件 SSD和HDD的统一数据静态存储、数据传输中和验证安全架构整合 CPU/GPU直连优化功率、带宽、数据压缩和计算存储等 通过NVMe-HDD控制器内存缓冲区(CMB)DPU/RNIC硬件加速实现高效的NVMeoF与GPU直连 使用NVMe主内存缓冲区(HMB)优化HDD性能和功率,并提高IOP、带宽、排队和重建性能效率 双驱动器HDD支持IOP、带宽、排队和重建性能的提高 下方3组图,详细说明SAS/SATA 接口向 PCIe 接口转型过程差异,从左往右依次来看:
左1 说明, SAS/SATA 接口需要有专用的芯片,因此接口成本比较高; 左2 说明,SAS/SATA 与 PCIe 接口的路径差异,传统接口多一个 定制的 IOC 驱动器; 左3 说明,两者在IO路径上的差异,PCIe 的IO路径更精简。
NVMe简化硬盘拓扑结构
通过消除传统的SAS和SATA专有硅片及驱动程序,NVMe提供了统一的驱动程序/操作系统堆栈,适用于HDD和SSD。这种简化的架构有助于支持多驱动器并优化NVMe-oF(NVMe over Fabrics)的可组合性。随着技术的发展,拓扑结构从使用SAS和SATA硬盘的复杂连接过渡到未来采用NVMe硬盘的简化系统,带来了更高的效率和扩展性。
===
拓扑结构演变 :
初始阶段 :CPU/DPU/GPU → SAS控制器 → SAS扩展器 → SAS硬盘 在此结构中,SAS控制器和扩展器连接多个SAS硬盘。 过渡阶段 :CPU/DPU/GPU → CPU集成至SATA桥接芯片 → SATA硬盘 在此阶段,CPU与SATA桥接芯片集成,连接多个SATA硬盘。 未来阶段 :CPU/DPU/GPU → 三模控制器 → PCIe交换机 → NVMe硬盘 未来,采用NVMe硬盘,通过三模控制器和PCIe交换机实现数据传输,简化了存储拓扑。
PoC 案例
演示了PCIe Gen4 IOMs设备,支持NVMe over Fabrics(NVMe-oF)x16 RNICs的应用。
该演示通过连接SFF8674铜缆展示了数据传输,并展示了PCIe交换机和硬盘阵列的连接。展品包括2U-3.5” NVMe-HDD POC JBOD以及相关的硬件架构。
NVMe-oF驱动初始化流程
流程图展示了在NVMe-oF驱动目标初始化的过程中,目标驱动程序如何创建必要的队列、数据缓冲区以及RDMA密钥等,客户端通过发现过程连接到目标并获取所有相关信息,以便进行数据传输。
整个流程涉及到管理和IO队列的创建、数据缓冲区的分配以及密钥的生成,确保客户端能够正确地访问和操作目标设备。
===
目标驱动程序在目标内存中创建队列对(Queue Pairs) 目标驱动程序创建数据缓冲区以进行IO传输 目标驱动程序为RDMA创建密钥: 客户端通过发现过程连接到目标 客户端获取目标创建的所有密钥,并且获得数据缓冲区的物理地址
控制器内存缓冲区(CMB)
图展示控制器内存缓冲区(CMB)增强功能及其在存储系统中的作用。
CMB能够通过RNIC硬件(远程网络接口控制器)引擎将命令和数据直接传输到存储控制器,从而减少Fabric附加的存储设备的成本。此外,还介绍了硬盘驱动器(HDD)对于CMB的低需求,以及如何通过硬件和NVMe硅片支持高效的数据传输和命令处理。
===
关键增强功能:
当前在大多数RNIC中得到支持 CMB允许命令和数据直接通过RNIC硬件引擎传输到存储控制器 减少了与Fabric附加的Bunch of Drives(FBOD)设备的总拥有成本(TCO) 实现概述:
HDDs(硬盘驱动器)需要一个非常小的CMB(8-16MB),这是因为其较低的IOPS(每秒输入输出操作数) 硬件支持将内部CMB DRAM暴露给主机PCIe总线 NVMe硅片支持从内部DRAM获取命令/数据 控制器内存缓冲区CMB的应用价值
优化数据传输 :NVMe V1.2引入了控制器内存缓冲区(CMB),旨在通过减少NAND和DRAM之间的数据复制来优化数据传输。CMB能够分配在CXL主机定向内存(HDM)地址空间中,使得处理器只获取所需的流量单元(FLITs),从而减少不必要的数据传输,提高效率。提升存储与内存的结合 :通过将存储和内存结合,CMB能够解决资源分配中的竞争条件,类似于NVDIMM-N的DRAM持久性,提升数据的持久性和访问速度。支持高效的内存访问 :CXL通过允许使用CXL.mem协议在相同的PCIe物理接口上进行高效的内存访问,解决了CMB的性能限制,使得存储与内存的合并成为可能。相关文章推荐
图展示了NVMe-oF GPU-Direct在存储系统中逐步演变的过程。随着硬件架构的变化,系统在减少延迟和开销方面变得更加高效:
在最初的拓扑中,使用了RNIC、CPU和SAS设备,但由于使用了CPU的内存和SAS扩展器,这带来了较高的延迟和开销。 随着DPU(数据处理单元)的引入,系统的计算和内存处理得到了更高效的卸载,减少了延迟和CPU负担。 在最新的拓扑中,通过引入NVMe HDD CMB(控制器内存缓冲区)并直接将HDD和SSD连接到RNIC,进一步减少了PCIe交换机的开销,从而显著降低了Fabric延迟。 ===
RNIC + CPU + SAS启用的NVMe-oF GPU-Direct驱动程序 :RNIC + CPU + 内存 + SAS IOC + SAS扩展器的开销 大约10微秒的Fabric延迟开销 使用CPU的DRAM来管理NVMe队列和数据缓冲区 DPU + NVMe HDD启用的NVMe-oF驱动程序 :DPU + PCIe交换机的开销 大约5微秒的Fabric延迟开销 100%卸载CPU、DRAM和SAS硅片 使用DPU的DRAM来管理NVMe队列和数据缓冲区 RNIC + NVMe HDD CMB启用的NVMe-oF驱动程序 :2-3微秒的Fabric延迟开销 100%卸载CPU/DPU的DRAM和SAS/交换机硅片 使用NVMe HDD CMB来管理NVMe队列和数据缓冲区 直接将HDD和SSD连接到RNIC,消除PCIe交换机的开销
元数据存储的问题
图讨论了HDD存储在旋转介质上的元数据带来的问题,主要指出了空间浪费和读取速度慢等问题。硬盘在启动时需要读取大量的元数据,这不仅增加了启动时间,还占用了可用于存储数据的空间。
内容:
所有硬盘驱动器(HDD)的关键轨道索引信息表和磁头校准元数据目前存储在旋转介质中,浪费了存储空间。 在HDD启动并准备好数据传输之前,硬盘必须从旋转介质中读取所有这些数据。 这导致了系统启动时的旋转时间较长,并且消耗了客户可见的数据介质轨道。
NVC(非易失性缓存)
图介绍了HDD在断电情况下如何使用NVM存储DRAM写缓存数据(NVC),并说明了旋转能量转化为电力后消耗的主要资源是NOR和NAND写操作。由于有限的旋转能量和较慢的存储速度,NVC容量受到限制,这导致了较高的延迟并降低了写密集型应用的性能。
内容:
硬盘驱动器(HDD)必须在断电条件下将所有的DRAM写缓存数据存储在NVM(非易失性存储器)中,因此产生了NVC(非易失性缓存)这个术语。 NVC数据存储利用了旋转盘片中存储的旋转能量,将其转化为电力,主要被慢速的NOR和NAND写操作消耗。 由于有限的旋转能量和较小/较慢的HDD NOR/NAND存储,这限制了HDD的NVC容量,进而增加了延迟并降低了写密集型应用程序的性能。
主机内存缓冲的应用价值
图讨论了HMB如何通过加速HDD的启动时间、释放元数据扇区以及提高HDD的NVC容量,从而在提高性能的同时降低功耗,优化HDD的整体性能和总拥有成本(TCO)。通过将元数据存储在HMB中而非旋转介质中,可以显著减少启动时间,并支持无活动磁盘的节能应用。
===
企业数据中心存储服务器通常配备BBU(Battery Backup Unit,电池备份单元),并具有大容量DRAM、快速NVMe SSD和/或超电容支持的NVDIMMs。 NVMe驱动程序为存储域中的每个HDD创建主机内存缓冲区(HMB)窗口,NVMe驱动程序将每个唯一的HDD序列号元数据填充到每个HDD的HMB中,从而使HDD能够启动。A. 通过释放元数据扇区,可以为客户提供更多存储容量。 B. HMB中的HDD元数据通过Byte/RDMA访问,比旋转介质中的访问要快得多,从而大大加速了启动时间,因此HDD的启动时间可以缩短到2到3秒,这对于重新启用大规模节能的无活动磁盘(MAID)温存储应用至关重要。 C. 如果HDD从服务器中被移除或盗窃,则没有元数据就无法读取。 HDD的NVC可以是已记录的或单次存储的,存储在这些CPU/DPU NVM的HMB分区中,而不是HDD的较慢NOR或NAND中,从而使得HDD的NVC容量大幅增加,降低延迟、提高性能并减少功耗。
NVMe-HDD 直连验证
图展示了通过直接连接的NVMe硬盘驱动器进行设备验证的过程。
验证采用现有的标准方法,在操作系统启动前由UEFI固件进行验证,启动后则由操作系统内核进行验证,支持热插拔硬盘的检测。图中还列出了几个涉及的协议与标准,包括MCTP、SPDM和DOE。
===
使用与当前数据路径验证相同的模型:NVMe 内带 SECURITY IN/OUT MCTP(管理组件传输协议)通过 VDM(供应商定义消息) SPDM(安全协议与数据模型)通过 DOE(文档对象交换,提议中) 操作系统启动前: 操作系统启动后:
JBOD 扩展方案 图展示了JBOD NVMe-HDD拓扑结构的验证方式。
数据路径通过“in-band”和“out-of-band”两种方式进行验证,外部验证可在设备层或应用设备层进行。JBOD系统通过简单的硬件组件,如BMC和PCIe交换机,来确保设备访问的隔离性,保证验证过程的安全性。
===
数据路径:存储系统通过数据路径将HDD呈现给主机。 “In-band”(NVMe命令集) “Out-of-band”(VDM或DOE) 主机使用以下方式进行直接验证: Sideband:存储系统通过sideband桥接验证路径与数据路径。 用于带外管理的BMC(基板管理控制器) 智能/非智能PCIe交换机 外部验证在设备级别(通过设备)或设备级别(通过passthrough)进行。 必须使用最简单的JBOD硬件组件来实现: 存储系统在验证过程中管理设备访问,以实现隔离。
总结:NVMe-HDD 优化存储系统
图概述了NVMe-HDD系统优化的关键要点,包括提高性能、优化功耗和容量利用率,强调了统一架构对提高存储效率的影响,并介绍了各种技术,如主机内存缓冲区(HMB)、控制器内存缓冲区(CMB)以及更灵活的数据放置方式等,这些都能显著提升HDD和SSD的整体性能和可用性。
===
在达到优化的容量利用率、减少功耗、提高性能和降低总拥有成本(TCO)的效率目标之前,需要客户和供应商的重大贡献。 统一的NVMe SSD和HDD架构可以充分利用以下特性:用HMB空间分配替代sNAND或iNAND 更大的HMB支持更好的NVC性能 通过HMB基于RDMA的头部和媒体元数据表释放更多用户数据容量 更快的硬盘驱动器启动时间与HMB基于快速元数据表的读取 HDD将失去在元数据丢失的情况下找到其轨道的能力,从而需要超级安全的擦除 利用现有的3.5”存储机箱背板/连接器,减少IOM组件 数据压缩在NVMe SSD和HDD上都能取得最佳效果 启用增强的多执行器支持与命名空间(NS)现有操作系统支持 优化离线/在线HDD重命名/ADR,具有弹性容量或NS管理 使用SPDM和MCTP通过VDM/DOE验证进行设备身份验证 控制器内存缓冲区(CMB)启用NVMe-oF/TCP和GPU-Direct AI简化 主机内存缓冲区(HMB)提高性能并减少功耗 主机管理的区域命名空间(ZNS)非常适合SMR 命令持续时间限制(CDL)质量服务优化 灵活的数据放置(FDP)应用友好的数据放置 使用eBPF的计算存储应用程序 延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
NVMe接口的广泛应用是否会彻底淘汰SATA和SAS接口?在未来的数据中心中,传统接口是否还有存在的必要? 如何进一步优化NVMe-HDD的TCO和功耗?除了现有的技术(如CMB、HMB),还有哪些创新技术可以应用于NVMe-HDD系统? NVMe-oF在AI和大数据应用中的潜力如何?随着AI和大数据的发展,NVMe-oF是否能够成为未来存储系统的标准? 原文标题:Optimizing HDD Interface in the Generative AI Era