1.1、存储协议的挑战
之前的存储系统都是面向机械硬盘而设计的。早期的全闪或是混闪存储系统中很多是在使用传统的存储技术——SATA SSD,这类存储基于AHCI(Advanced Host Controller Interface,高级主机控制器接口)命令协议。而AHCI是为机械硬盘而生,采用AHCI的SATA III总线只允许数据传输速度达到600MB/s。
Common Buses speed
|
||
Bus
|
Raw data rate
|
Data Rate
|
SCSI
|
2.56 Gbit/s
|
320 MB/s
|
STAT III
|
6 Gbit/s
|
600 MB/s
|
InfiniBand
|
10 Gbit/s
|
0.98 GB/s
|
10G FC
|
10.52 Gbit/s
|
1.195 GB/s
|
PCIe 4.0
|
16.0 GT/s
|
31.508 GB/s
|
PCIe 5.0
|
32.0 GT/s
|
63.015 GB/s
|
1.2、关于NVM Express
NVM Express 是一个由定义、管理和营销NVMe技术的科技行业领导者组成的非营利性联盟。NVM Express® (NVMe®) 规范定义了主机软件如何通过 PCI Express® (PCIe®)、RDMA、TCP 等多种传输方式与非易失性内存进行通信。它是所有外形尺寸(U.2、M.2、AIC、EDSFF)的固态硬盘(SSD)的行业标准。

NVMe Base Specification:定义一个基础标准化的协议,用于主机软件(比如操作系统)与各种非易失性内存子系统(如SSD等)进行交互。这些传输方式包括通过内存和消息来进行数据交换
NVMe-MI Specification:一个可选的管理接口规范,这个接口可以用于对NVMe子系统进行额外的管理和控制,比如设备监控、日志记录等功能
NVMe I/O Command Set Specification:扩展了基本规范,例如特定的命令、状态代码和数据结构,这些扩展在基础协议之上增加了功能,使之更加完善和具体。
NVMe Transport Specification:定义了如何将基础协议应用于不同的传输介质(如PCIe、CXL、RDMA等)。这是数据中心技术NVMe关于网络性能优化经常讨论和提及的技术,所以 NVMe-OF,NVMe Over RDMA 等等都是指的传输层Transport这一层的技术。
1.3、NVMe协议
在探讨NVMe-oF之前,我们先来了解一下NVMe协议。硬盘驱动器包括串行连接的SCSI(SAS)和串行ATA(SATA),所有操作系统都使用SAS和SATA协议与这些设备通信。SAS使用SCSI命令,该命令在1986年由美国国家标准协会正式采用。NVMe协议最新版本的规范 NVMe 2.1 规范于 2024 年 8 月 6 日发布。
NVMe相对于SATA:
SATA(AHCI)
|
NVMe
|
|
背景
|
为HDD设计
|
为SSD设计
|
最大队列数量
|
1
|
64K
|
最大队列深度
|
32
|
64K
|
通信延迟
|
每条命令读取4次寄存器,约2.5微秒延迟
|
精简调用方式,不频繁调用寄存器操作,延迟为AHCI的一半或更少
|
数据传输
|
SATA III
|
PCIe
|
多核处理能力
|
对多核处理支持有限
|
可同时从多核处理器接收命令和优先处理请求
|
功耗管理
|
基本功耗管理
|
自动功耗切换和能耗管理
|
并行处理
|
处理能力较低
|
并行处理能力强
|
与传统的存储协议(如SATA或SAS)相比,NVMe协议支持并行I/O操作,无需进程间锁定,从而大大提高了效率。
NVMe协议通过使用更高效的命令队列,SCSI在规范中有250多个命令,而相比之下,NVMe的规范只有13个命令,其中有3个专用于I / O。
NVMe协议优化了会话交互,单次数据传输仅需一次往返和两次交互,相较于SCSI的两次往返和四次交互,极大地减少了交互次数。NVMe相比SCSI协议 可以减少40%的主机网络协议开销。
2.1、什么是NVMe-oF
NVMe协议最初设计为直接连接主机和存储设备之间的本地连接,对于跨网络的存储访问并不适用。这就引入了NVMe-oF技术。

NVMe over Fabrics(简称NVMe-oF) 扩展了NVMe规范在PCIe总线上的实现,定义了使用各种通用的传输层协议来实现NVMe功能的方式,把NVMe映射到多物理网络传输通道,实现高性能的存储设备网络共享访问。
2.2、NVMe-oF的优势
灵活性:NVMe-oF 有助于将存储从计算中分离出来,从而允许动态分配资源。NVMe-oF将NVMe的优势扩展到整个网络结构,使数据中心能够通过高速、低延迟网络充分利用基于NVMe的存储设备的潜力。此外NVMe-oF通过提供统一的存储协议简化了存储管理,该协议可以跨各种存储设备和网络结构使用。
性能:NVMe-oF 专为低延迟数据访问而设计,并提供高传输速度。它利用了 NVMe 协议,该协议本质上针对闪存设备进行了优化。NVMe-oF对数据中心存储架构最显著的影响之一是性能的显著提升。
这种性能对于需要实时数据处理和高速数据访问的应用程序(如大数据分析、人工智能和数据库应用程序)至关重要。NVMe-oF提高了资源利用率,使服务提供商和组织能够更有效地管理其存储、计算和 GPU 资源。
可扩展性:NVMe-oF 具有高度可扩展性,适用于小型和大型存储环境。NVMe-oF允许无缝扩展存储容量和性能,使数据中心能够满足不断增长的数据需求,而不会影响性能或效率。NVMe-oF正在通过提供前所未有的性能、可扩展性和效率来改变数据中心存储架构。
2.3、ExponTech WDS对NVMe-oF的支持
华瑞指数云的WDS产品采用了全用户态的NVMe驱动实现,并全面支持NVMe-oF。

华瑞指数云ExponTech WDS当前已经全面实现NVMe-oF(RDMA、TCP/IP、FC)全协议栈的产品化,NVMe-oF 在 WDS 中这几个形态区别仅体现在外部客户端使用哪种协议接入。

NVMe-oF 协议客户端标识为 initiator 端,服务端为 Target 端,NVMe-oF 协议中使用NQN 来作为协议通讯双方的标识等。
NVMe-oF 定义了 Subsystem(子系统,相当于 SCSI 体系下的 Target)和 Namespace(命名空间,类似于 SCSI 体系下的 LUN)专有标准。NVMe-of 可以支持 initiator + Namespace 这样更小的链路控制粒度。
NVMe-oF 在路径策略选择上(协议原生支持 Multipath)是通过 ANA(Asymmetric Namespace Access)机制指定 Target 链路优先级,再由客户端结合优先级与自身的链路状态探测结果选择 I/O 具体路径。
3.1 实验室测试数据(25G网卡)
3.2.1 环境信息
存储集群由 3 节点组成,安装 WDS 3.2版本,所有存储解决的硬件配置相同,节点环境信息如下:
硬件类型 |
配置 |
CPU |
2 * IntelR XeonR Silver 4216 CPU @ 2.10GHz |
内存 |
256G |
硬盘 |
|
存储网卡 |
Mellanox Technologies MT27710 Family [ConnectX-4 Lx] 25GbE |
接入网卡 |
Mellanox Technologies MT27710 Family [ConnectX-4 Lx] 25GbE |
计算节点安装Centos操作系统,使用 FIO(3.7)测试工具,硬件环境信息如下:
硬件类型 |
配置 |
CPU |
IntelR XeonR Silver 4314 CPU @ 2.40GHz |
内存 |
256G |
网卡 |
Mellanox Technologies MT27710 Family [ConnectX-4 Lx] 25GE |
3.2.2 性能数据
在相同的测试环境和测试方法下,使用NVMe over RDMA接入协议进行性能验证。测试基于单卷(单节点性能,测试1个三副本卷)和多卷(集群性能,对于3节点集群,将测试3 个三副本卷)的存储基准性能(4K 随机 I/O,1M 顺序 I/O)。
3.2.2.1 单卷性能

3.2.2.2 多卷性能

3.2.3 测试结论
通过以上基准测试数据,可以看到, 使用 NVMe over RDMA 作为接入协议,可以取得极高的性能输出,其表现为高随机IOPS和大顺序带宽,以及极低的延时表现。
3.2 SPC-1测试数据(100G 网卡)
在SPC-1的测试中位居第一。(点击文字查看榜单详情)

SPC-1 榜单:https://www.storageperformance.org/benchmarks/results/spc1-spc1e

WDS在2720W IOPS的条件下,0.217ms的平均时延低于前排名第一和第二的传统集中式全闪存储系统。
WDS 在长时间测试过程中,时延表现非常稳定,平滑无抖动,体现了强大的低时延稳定性。
本文详细描述了NVMe-oF接入协议,以及对存储带来收益的思考。通过原理介绍和WDS产品的实际验证数据,希望给读者一个全面的视角来理解NVMe-oF给存储带来的收益。
媒体报道 | 36氪专访华瑞指数云:SDS进入2.0时代,渐进式迭代以10年为周期


