查看原文
其他

NVM Express发布新版NVMe规范,全面支持AI、云、客户端和企业级存储应用

常华Andy Andy730
2025-01-01

NVM Express组织近日发布了三项新规范和八项更新规范,大幅增强了NVMe技术在现代计算环境中的应用能力,同时简化了开发流程,缩短了产品上市时间。

NVM Express技术工作组主席Peter Onufryk表示:“NVMe技术从最初面向PCIe SSD的单一规范,已发展成涵盖近十项规范的技术体系,包括多个命令集,支持所有主要传输方式,并规范化存储的诸多方面。目前NVMe技术的应用范围持续扩大,成功地在统一架构下整合了客户端、云计算、AI和企业级存储应用。NVMe技术前景广阔,我们正在推进75项新的授权技术提案。”

此次发布的新规范包括NVMe引导规范、子系统本地内存命令集和计算程序命令集。更新的规范涵盖NVMe 2.1基础规范、多个命令集规范、传输规范以及NVMe管理接口规范。这些规范文件旨在加快和简化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的启动流程。

实现方法

NVMe-oF的网络启动机制主要通过以下几个步骤实现:
UEFI和ACPI扩展:
  • 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设备与其他类型的设备在同一个大型光纤网络中共存。

多路径支持

NVMe-oF分区支持多路径连接,提高了可用性和冗余性:
  • 在预启动阶段,通过尝试下一个UEFI启动变量实现冗余。
  • 在操作系统运行时,multipathd守护进程读取所有命名空间信息以实现多路径连接。

安全性考虑

虽然分区提供了基本的隔离,但未来的发展方向包括在内核驱动程序中增加对NVMe-oF安全性的支持,以进一步确保数据传输的安全性。

管理和监控

NVMe-oF分区可以通过各种管理工具进行配置和监控,使管理员能够灵活地控制存储资源的访问和使用。

-----

增强主机管理加密功能,实现每I/O级别的细粒度加密。

机管理加密密钥

这项功能允许主机系统直接管理NVMe存储设备的加密密钥,而不是依赖存储设备自身管理密钥。主要特点包括:
  • 增强安全性:主机可以完全控制密钥的生成、存储和轮换,减少了对存储设备固件的信任依赖。
  • 灵活性:允许使用企业级密钥管理系统(KMS)来集中管理多个存储设备的密钥。
  • 合规性:有助于满足某些行业规定要求主机控制加密密钥的合规要求。

高度细粒度加密(每I/O一个密钥)

这是一种先进的加密方案,为每个I/O操作使用唯一的加密密钥。主要特点包括:
  • 极高安全性:即使单个I/O的密钥被破解,也不会影响其他数据。
  • 性能优化:可以针对不同类型的I/O操作使用不同强度的加密,平衡安全性和性能。
  • 细粒度控制:允许对特定的数据块或I/O流应用不同的加密策略。

实现机制

  • 密钥派生:使用主密钥和I/O特定参数(如逻辑块地址)动态生成每个I/O的唯一密钥。
  • 硬件加速:利用NVMe控制器中的专用加密引擎实现高性能加密/解密。
  • 密钥缓存:在控制器中缓存最近使用的密钥,减少密钥生成开销。

应用场景

  • 高安全性要求的环境:如金融、政府和军事领域。
  • 多租户云存储:为不同租户或数据类型提供隔离的加密保护。
  • 合规性要求严格的行业:满足数据保护法规的细粒度加密要求。

-----

提升安全性,包括支持TLS 1.3协议、DH-HMAC-CHAP集中认证实体,以及数据清除后的介质验证。

支持TLS 1.3

TLS 1.3是传输层安全协议的最新版本,为NVMe-oF提供了更强大的安全保护:
  • 改进的握手过程:减少了握手所需的往返次数,提高了连接建立的速度。
  • 增强的加密算法:使用更安全的加密套件,如ChaCha20-Poly1305。
  • 前向保密:每个会话使用唯一的密钥,即使长期密钥泄露也不会影响过去的通信。
  • 0-RTT模式:允许客户端在首次往返中发送加密数据,进一步减少延迟。
在NVMe-oF中实现TLS 1.3可以显著提高数据传输的安全性和性能。

DH-HMAC-CHAP的集中式认证验证实体

DH-HMAC-CHAP(Diffie-Hellman Hash-based Message Authentication Code Challenge Handshake Authentication Protocol)是一种安全的认证方法。NVMe规范引入了集中式认证验证实体:
  • 集中管理:简化了认证过程的管理,提高了可扩展性。
  • 增强安全性:集中式实体可以实施更严格的安全策略和监控。
  • 减少复杂性:降低了每个存储设备单独管理认证的复杂性。
  • 支持多租户:便于在云环境中为不同租户提供隔离的认证服务。

擦除后介质验证

这是一项重要的数据安全功能,用于确保数据在被删除后无法恢复:
  • 完整性验证:在存储设备执行擦除操作后,进行介质验证以确保数据已被彻底删除。
  • 合规性支持:满足某些行业对数据销毁的严格要求。
  • 可审计性:提供擦除操作的验证报告,便于审计和合规性检查。
  • 灵活性:可以针对不同安全级别的数据应用不同的验证策略。

-----

增强管理功能,如高可用性带外管理、I3C接口管理、带外管理异步事件通知,以及从底层NVM子系统物理资源动态创建导出NVM子系统的能力。

高可用性带外管理支持

  • 目的:提高存储系统的可靠性和可用性。
  • 实现:允许多个管理控制器同时连接到NVMe设备,实现冗余和负载均衡。
  • 优势:
    • 减少单点故障风险。
    • 支持无中断维护和升级。
    • 提高管理操作的响应速度和可靠性。

I3C管理支持

  • 背景:I3C(Improved Inter-Integrated Circuit)是一种新的低功耗、高速串行通信协议。
  • 实现:通过I3C总线进行NVMe设备的管理和控制。
  • 优势:
    • 相比传统I2C,提供更高的带宽和更低的功耗。
    • 支持热插拔和动态地址分配。
    • 适用于移动和嵌入式系统中的NVMe设备管理。

带外管理异步事件

  • 功能:允许NVMe设备主动向管理系统报告重要事件和状态变化。
  • 实现:定义了一套异步事件通知机制,包括事件类型、严重程度等。
  • 优势:
    • 提高管理系统对存储设备状态的实时感知能力。
    • 支持更快速的故障检测和响应。
    • 便于实现主动式存储管理和预测性维护。

动态创建导出的NVM子系统

  • 概念:从底层NVM子系统物理资源动态创建和导出逻辑NVM子系统。

  • 实现:提供API和命令集,允许管理软件动态配置和管理NVM子系统。

  • 优势:

    • 提高存储资源利用率和灵活性。

    • 支持多租户环境下的资源隔离和动态分配。

    • 便于实现软件定义存储(SDS)和存储虚拟化。

这些管理增强功能共同提供了以下优势:
  • 提高了NVMe存储系统的可管理性和可靠性。
  • 支持更灵活和动态的存储资源管理。
  • 适应现代数据中心和云环境的需求。
  • 为存储管理软件提供了更强大的功能支持。


--【本文完】---

近期受欢迎的文章:

  1. VMware内存分层技术:从NVMe分层到CXL加速器

  2. NVMe计算型存储:从应对勒索病毒到提升带宽

  3. 2024年数字存储与内存展望(二):闪存、DRAM、NVMe、NVMe-oF、CXL、计算型存储

  4. NVMe-oC:CXL SSD的全新理念(PPT)

  5. 解析FDP:在SSD市场的应用前景(附PPT)



更多交流,可添加本人微信

(请附姓名/单位/关注领域)

继续滑动看下一个
Andy730
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存