NVM Express发布新版NVMe规范,全面支持AI、云、客户端和企业级存储应用
NVM Express组织近日发布了三项新规范和八项更新规范,大幅增强了NVMe技术在现代计算环境中的应用能力,同时简化了开发流程,缩短了产品上市时间。
NVM Express技术工作组主席Peter Onufryk表示:“NVMe技术从最初面向PCIe SSD的单一规范,已发展成涵盖近十项规范的技术体系,包括多个命令集,支持所有主要传输方式,并规范化存储的诸多方面。目前NVMe技术的应用范围持续扩大,成功地在统一架构下整合了客户端、云计算、AI和企业级存储应用。NVMe技术前景广阔,我们正在推进75项新的授权技术提案。”
此次发布的新规范包括NVMe引导规范、子系统本地内存命令集和计算程序命令集。更新的规范涵盖NVMe 2.1基础规范、多个命令集规范、传输规范以及NVMe管理接口规范。这些规范文件旨在加快和简化NVMe架构的开发过程。
支持PCIe NVMe控制器在NVM子系统之间实时迁移(Live Migration)。 引入主机指示数据放置(host-directed data placement)技术,简化SSD生态系统集成,并保持与先前NVMe规范的向后兼容性。 支持将部分主机处理任务卸载至NVMe存储设备。 为NVMe over Fabrics(NVMe-oF)提供网络引导机制。 支持NVMe over Fabrics分区(zoning)功能。 增强主机管理加密功能,实现每I/O级别的细粒度加密。 提升安全性,包括支持TLS 1.3协议、DH-HMAC-CHAP集中认证实体,以及数据清除后的介质验证。 增强管理功能,如高可用性带外管理、I3C接口管理、带外管理异步事件通知,以及从底层NVM子系统物理资源动态创建导出NVM子系统的能力。
Source: https://nvmexpress.org/nvm-express-releases-nvm-express-specifications-to-unify-ai-cloud-client-and-enterprise-storage/
-----
支持PCIe NVMe控制器在NVM子系统之间实时迁移(Live Migration)。
背景与动机
PCIe NVMe控制器的实时迁移(Live Migration)是NVM Express正在开发的一项新功能,旨在支持虚拟机(VM)在数据中心内的无缝迁移。实时迁移的主要动机包括数据中心维护、负载均衡以及提高系统的高可用性和灵活性。
实现方法
预复制阶段:在此阶段,数据从源NVMe控制器复制到目标NVMe控制器,确保数据的一致性和完整性。 命名空间迁移:将命名空间从源控制器迁移到目标控制器。 停止和复制阶段:在短暂停止源控制器的操作后,完成最后的数据复制,并将控制权交给目标控制器。
技术细节
控制器状态管理:在迁移过程中,源控制器会被置于静态状态,以确保数据的一致性和安全性。目标控制器在接管后继续处理数据请求,确保迁移过程对用户透明。 虚拟内存地址管理:迁移过程中需要处理虚拟内存地址的转换和管理,以确保数据访问的连续性和一致性。 日志条目时序:在迁移过程中,需要精确管理日志条目的时序,以确保数据的一致性和完整性。
应用场景
数据中心维护:在数据中心进行维护时,可以将VM迁移到其他NVMe子系统,避免服务中断。 负载均衡:通过实时迁移,可以将负载从高负载服务器迁移到低负载服务器,实现资源的优化配置。 高可用性:在系统故障或紧急情况下,可以快速迁移VM,确保系统的高可用性。
-----
引入主机指示数据放置(host-directed data placement)技术,简化SSD生态系统集成,并保持与先前NVMe规范的向后兼容性。
NVMe规范中新的主机导向数据放置(host-directed data placement)技术,即灵活数据放置(Flexible Data Placement, FDP)功能:
FDP是NVMe规范中新增的一项功能,旨在优化SSD的数据放置策略,同时简化生态系统集成并保持向后兼容性。以下是FDP的主要特点和优势: 简化的数据放置机制:FDP引入了“回收单元”(Reclaim Unit)的概念,允许主机直接指定数据在SSD内的物理位置。这比之前的NVMe Streams和分区命名空间(ZNS)方法更加灵活和直观。 降低写放大:通过优化数据放置,FDP可以显著降低写放大因子(WAF),在某些工作负载下甚至可以实现WAF=1。这意味着SSD只需执行主机请求的写入操作,无需额外的内部数据移动。 提高性能和降低功耗:由于减少了垃圾回收(GC)的频率,FDP可以显著提高SSD的性能并降低功耗。例如,在某些SSD上启用FDP可以实现高达43.6%的功耗降低。 向后兼容性:FDP设计时考虑了与现有NVMe规范的兼容性,这意味着不支持FDP的旧系统仍然可以使用支持FDP的SSD,只是无法利用其优化功能。 灵活的实现:FDP允许主机根据数据的预期生命周期(短期、中期、长期或极长期)提供“写入提示”。这使得SSD控制器可以更智能地管理数据放置。 多种应用场景:FDP适用于各种工作负载,从简单的循环FIFO到大区域释放再到概率性覆写等。这种灵活性使得FDP能够适应不同的应用需求。 生态系统集成:FDP的设计简化了主机端的实现,同时为SSD厂商提供了优化空间。这有助于整个存储生态系统的协同发展和性能提升。
-----
支持将部分主机处理任务卸载至NVMe存储设备。
背景与动机
随着数据量的增加和对高性能存储需求的提升,传统的存储架构面临着主机CPU负载过高、延迟增加和能效降低等挑战。将部分主机处理任务卸载到NVMe存储设备上,可以有效缓解这些问题,提高系统整体性能和效率。
实现方法
NVMe存储设备支持卸载的主要方法包括:
计算型存储(Computational Storage):通过在存储设备中集成计算能力,直接在存储设备上处理数据。这种方法减少了数据在主机和存储设备之间的传输,降低了延迟。例如,计算型存储设备可以执行数据压缩、解压缩、错误校正和重复数据删除等任务。 基础设施处理单元(Infrastructure Processing Unit, IPU):IPU是一种硬件加速器,可以将存储工作负载从主机CPU卸载到IPU上。IPU可以处理NVMe/TCP通信任务、数据封装和解封装等操作,从而释放主机CPU资源,提高系统性能和能效。 FPGA加速:使用FPGA实现存储加速,可以卸载主机CPU的密集计算任务,如错误校正和重复数据删除。FPGA加速器通过NVMe主控制器接口规范提供存储加速功能,现有的驱动程序和存储工具可以用于测试和部署加速卡。
技术细节
NVMe/TCP通信任务卸载:NVMe/TCP通信涉及将NVMe命令和数据封装在TCP传输协议中。卸载这些操作到专用硬件上,可以显著降低主机CPU的负载,提高系统性能和CPU利用率。 数据移动优化:通过将非CPU应用任务卸载到硬件加速器上,可以更高效地执行数据移动操作,减少延迟并提高整体吞吐量。 控制器内存缓冲区(Controller Memory Buffer, CMB):利用CMB可以在远程加速中使用NVMe over Fabrics,进一步优化数据处理和传输。
应用场景
数据中心和云计算:在大规模数据中心和云计算环境中,卸载主机处理任务可以显著提高系统的可扩展性和性能。例如,企业和云数据中心采用NVMe/TCP技术,通过卸载存储工作负载,可以支持更多的并发连接和存储设备。
高性能计算(HPC):在HPC环境中,计算型存储可以减少数据传输次数,提高关键数据应用的响应时间。
数据库和AI:计算型存储设备可以加速数据库操作和AI模型的推理过程,提高处理效率。
-----
为NVMe over Fabrics(NVMe-oF)提供网络引导机制。
背景与动机
NVMe over Fabrics(NVMe-oF)提供了一种高性能、低延迟的存储解决方案,但其原始规范缺乏从以太网等网络启动的能力。为了解决这一问题,多家厂商和组织合作开发了一种新的网络启动机制,旨在标准化并简化NVMe-oF的启动流程。
实现方法
UEFI设备路径扩展:为支持NVMe-oF启动,UEFI系统规范增加了设备路径扩展,使得启动加载程序可以识别并加载来自NVMe-oF命名空间的数据。 ACPI NVMe启动固件表(nBFT):ACPI规范增加了nBFT,用于在预操作系统(Pre-OS)环境中传递启动设备信息到操作系统。这类似于iSCSI的iBFT表。
配置网络接口:在BIOS中启用NVMe-oF并配置网络接口,包括设置网络合格名称(NQN)和子系统地址。这些设置使得服务器能够通过网络发现控制器,查询并连接到目标端口。 NVMe-oF发现日志页(DLP):使用DLP来记录和传递网络存储子系统的连接信息,确保操作系统能够正确识别和连接到启动设备。
预启动(Pre-Boot):在系统启动时,BIOS会根据配置的NQN和子系统地址,通过网络连接到NVMe-oF目标设备,并加载启动加载程序。 操作系统启动:启动加载程序会读取nBFT中的信息,并将控制权交给操作系统。操作系统利用这些信息继续引导过程,挂载根文件系统并完成启动。
技术细节
多路径支持:在预启动阶段,多路径机制通过尝试下一个UEFI启动变量实现冗余和高可用性。在操作系统运行时,multipathd守护进程会读取nBFT中的所有命名空间信息,以实现多路径连接。
安全性:未来的研究方向包括在内核驱动程序中增加对NVMe-oF安全性的支持,以确保数据传输的安全性。
应用场景
数据中心和企业环境:在大规模数据中心中,网络启动机制可以简化服务器部署和管理,提高系统的灵活性和可扩展性。 高性能计算(HPC):通过网络启动,HPC系统可以更高效地利用存储资源,减少数据传输延迟。 云计算和虚拟化:网络启动机制可以支持虚拟机的快速部署和迁移,提高云计算环境的资源利用率。
-----
支持NVMe over Fabrics分区(zoning)功能。
分区的目的
将NVMe设备与其他类型设备隔离。 在NVMe设备之间形成多个分组。 创建NVMe设备和FCP设备的选择性分组。
分区方法
设备全球名称(WWN)分区。 目标驱动分区(TDZ)。 [D,I]分区。
这些方法在交换机层面的实现与现有FCP和FICON设备支持没有区别。
分区创建
命令行界面。 SANnav管理软件。 Web工具。 Brocade Network Advisor。
此外,NVMe设备本身可以使用TDZ模式创建对等分区。
与传统FC分区的兼容性
NVMe-oF分区与传统光纤通道(FC)分区在概念和实现上是兼容的。这允许NVMe设备与其他类型的设备在同一个大型光纤网络中共存。
多路径支持
在预启动阶段,通过尝试下一个UEFI启动变量实现冗余。 在操作系统运行时,multipathd守护进程读取所有命名空间信息以实现多路径连接。
安全性考虑
虽然分区提供了基本的隔离,但未来的发展方向包括在内核驱动程序中增加对NVMe-oF安全性的支持,以进一步确保数据传输的安全性。
管理和监控
NVMe-oF分区可以通过各种管理工具进行配置和监控,使管理员能够灵活地控制存储资源的访问和使用。
-----
增强主机管理加密功能,实现每I/O级别的细粒度加密。
主机管理加密密钥
增强安全性:主机可以完全控制密钥的生成、存储和轮换,减少了对存储设备固件的信任依赖。 灵活性:允许使用企业级密钥管理系统(KMS)来集中管理多个存储设备的密钥。 合规性:有助于满足某些行业规定要求主机控制加密密钥的合规要求。
高度细粒度加密(每I/O一个密钥)
极高安全性:即使单个I/O的密钥被破解,也不会影响其他数据。 性能优化:可以针对不同类型的I/O操作使用不同强度的加密,平衡安全性和性能。 细粒度控制:允许对特定的数据块或I/O流应用不同的加密策略。
实现机制
密钥派生:使用主密钥和I/O特定参数(如逻辑块地址)动态生成每个I/O的唯一密钥。 硬件加速:利用NVMe控制器中的专用加密引擎实现高性能加密/解密。 密钥缓存:在控制器中缓存最近使用的密钥,减少密钥生成开销。
应用场景
高安全性要求的环境:如金融、政府和军事领域。 多租户云存储:为不同租户或数据类型提供隔离的加密保护。 合规性要求严格的行业:满足数据保护法规的细粒度加密要求。
-----
提升安全性,包括支持TLS 1.3协议、DH-HMAC-CHAP集中认证实体,以及数据清除后的介质验证。
支持TLS 1.3
改进的握手过程:减少了握手所需的往返次数,提高了连接建立的速度。 增强的加密算法:使用更安全的加密套件,如ChaCha20-Poly1305。 前向保密:每个会话使用唯一的密钥,即使长期密钥泄露也不会影响过去的通信。 0-RTT模式:允许客户端在首次往返中发送加密数据,进一步减少延迟。
DH-HMAC-CHAP的集中式认证验证实体
集中管理:简化了认证过程的管理,提高了可扩展性。 增强安全性:集中式实体可以实施更严格的安全策略和监控。 减少复杂性:降低了每个存储设备单独管理认证的复杂性。 支持多租户:便于在云环境中为不同租户提供隔离的认证服务。
擦除后介质验证
完整性验证:在存储设备执行擦除操作后,进行介质验证以确保数据已被彻底删除。 合规性支持:满足某些行业对数据销毁的严格要求。 可审计性:提供擦除操作的验证报告,便于审计和合规性检查。 灵活性:可以针对不同安全级别的数据应用不同的验证策略。
-----
增强管理功能,如高可用性带外管理、I3C接口管理、带外管理异步事件通知,以及从底层NVM子系统物理资源动态创建导出NVM子系统的能力。
高可用性带外管理支持
目的:提高存储系统的可靠性和可用性。 实现:允许多个管理控制器同时连接到NVMe设备,实现冗余和负载均衡。 优势: 减少单点故障风险。 支持无中断维护和升级。 提高管理操作的响应速度和可靠性。
I3C管理支持
背景:I3C(Improved Inter-Integrated Circuit)是一种新的低功耗、高速串行通信协议。 实现:通过I3C总线进行NVMe设备的管理和控制。 优势: 相比传统I2C,提供更高的带宽和更低的功耗。 支持热插拔和动态地址分配。 适用于移动和嵌入式系统中的NVMe设备管理。
带外管理异步事件
功能:允许NVMe设备主动向管理系统报告重要事件和状态变化。 实现:定义了一套异步事件通知机制,包括事件类型、严重程度等。 优势: 提高管理系统对存储设备状态的实时感知能力。 支持更快速的故障检测和响应。 便于实现主动式存储管理和预测性维护。
动态创建导出的NVM子系统
概念:从底层NVM子系统物理资源动态创建和导出逻辑NVM子系统。
实现:提供API和命令集,允许管理软件动态配置和管理NVM子系统。
优势:
提高存储资源利用率和灵活性。
支持多租户环境下的资源隔离和动态分配。
便于实现软件定义存储(SDS)和存储虚拟化。
提高了NVMe存储系统的可管理性和可靠性。 支持更灵活和动态的存储资源管理。 适应现代数据中心和云环境的需求。 为存储管理软件提供了更强大的功能支持。
--【本文完】---
近期受欢迎的文章:
更多交流,可添加本人微信
(请附姓名/单位/关注领域)