上文:详解:什么是NVMe?
自NVM Express工作组发布第一个版本的NVMe标准以来,已经过去了将近十年,NVMe也越来越多地应用到固态存储中。但是,NVMe本身有一定的局限性,它最适合的是服务器内或直接连接存储的设备连接。而企业需要的是通过网络无缝连接闪存,释放性能优势,并取代传统的以磁盘为中心的SAN技术,例如iSCSI和光纤通道。NVMe-over-Fabrics(NVMe-oF)的出现就是为了做到这一点。 什么是NVMe over Fabrics?
NVMe over Fabrics也称为NVMe-oF,它是一个相对较新的协议规范,旨在使用NVMe通过网络结构将主机连接到存储。NVMe over Fabrics协议定义了使用各种通用的传输层协议来实现NVMe功能的方式。
鉴于上述存储协议存在性能等各方面的瓶颈,以及出于对未来NVM存储功能要求的需要,NVMe over Fabrics协议应运而生。NVMe over Fabrics把NVMe协议在单系统时代提供的高性能、低延迟和低协议负担的优势进一步发挥到了NVMe存储系统互连结构中。 NVMe over Fabrics的优势
NVMe-oF在性能、扩展能力、易用性方面都具备优势,包括:
网络延迟低
能够处理并行请求
提高和优化性能,包括存储阵列性能
减少服务器端OS存储堆栈的长度
高速
高度可扩展;
支持NVMe主机启动器与存储系统之间同时存在多条路径
能够一次从许多主机和存储子系统发送和接收命令。 NVMe over Fabrics与NVMe
NVMe是运行在某种接口上的通信协议,用于规范计算机与存储设备的数据传输。与SCSI和SATA协议相比,NVMe标准将访问时间缩短了几个数量级。
NVMe支持64,000个队列,每个队列深度最多为64,000个命令。所有I/O命令以及随后的响应均在同一处理器内核上运行,从而将多核处理器置于高度并行状态。不需要I/O锁定,因为每个应用程序线程都有一个专用队列。
基于NVMe的设备使用PCIe串行扩展插槽进行数据传输,这意味着不需要专门的硬件控制器来路由网络存储流量。使用NVMe,基于主机的PCIe SSD可以更有效地将数据传输到存储目标或子系统。
NVMe和NVMe over Fabrics之间的主要区别之一是用于发送和接收命令或响应的传输映射机制。 NVMe-oF使用基于消息的模型在主机和目标存储设备之间进行通信。NVMe将通过PCIe接口协议将命令和响应映射到主机中的共享内存。
NVMe over Fabric支持把NVMe映射到多个Fabrics传输选项,主要包括FC、InfiniBand、RoCE v2、iWARP和TCP。其中InfiniBand、RoCE v2(可路由的RoCE)、iWARP是理想的Fabric,原因在于它们支持RDMA。
那么为什么支持RDMA在选择NVMe over Fabric时就具有先天优势? 支持RDMA的NVMe over Fabrics
RDMA是两台计算机之间的内存到内存的传输机制。数据从一个内存地址空间发送到另一个内存地址空间,无需调用操作系统或处理器。这样的优势是开销低、查询访问快、响应时间短,延迟通常以微秒(μs)为单位。
RDMA对于NVMe over Fabrics协议的便利性体现在下面几个方面: