专栏名称: SDNLAB
SDNLAB是专注网络创新技术的先锋媒体和实践平台,涵盖SDN、NFV、CCN、软件定义安全、软件定义数据中心等相关领域,提供新闻资讯、技术交流、在线实验、行业分析、求职招聘、教育培训、方案咨询、创业融资等多元服务。
目录
相关文章推荐
江西日报  ·  万乐天一人独揽2金!江西队闪耀2025年全国 ... ·  16 小时前  
中国航务周刊  ·  开幕倒计时10天!第五届中国(东疆)航运产业 ... ·  2 天前  
江西日报  ·  江西一风景名胜区总体规划有调整! ·  昨天  
51好读  ›  专栏  ›  SDNLAB

NVMe over RDMA:高性能存储网络的革新之路

SDNLAB  · 公众号  ·  · 2024-09-19 15:20

正文

请到「今天看啥」查看全文



1.3.3 RDMA

RDMA是一种网络协议,允许计算机在网络中直接访问另一台计算机的内存,而无需远程计算机的操作系统参与。这减少了CPU的负担,降低了延迟,并提高了数据传输效率。

在NVMe-oF中,RDMA可以通过多种网络技术实现,如InfiniBand、RDMA over Converged Ethernet(RoCE)和Internet Wide Area RDMA Protocol(iWARP)。

RDMA的优势在于其极低的延迟和高吞吐量,适合高性能计算和数据中心环境。使用RDMA的NVMe-oF需要支持RDMA的网络硬件和适配器,这可能需要额外的投资和配置。

1.4 基于RDMA 的 NVMe-oF

1.4.1 RDMA支持协议

RDMA技术支持三类协议,分别为InfiniBand(IB),RDMA over Converged Ethernet(RoCE)和internet Wide Area RDMA Protocol(iWARP),三类协议使用相同的RDMA标准。

1.4.1.1 InfiniBand

InfiniBand是一种基于InfiniBand架构的RDMA技术,它提供了一种基于通道的点对点消息队列转发模型,每个应用都可通过创建的虚拟通道直接获取本应用的数据消息,无需其他操作系统及协议栈的介入。InfiniBand架构的应用层采用了RDMA技术,可以提供远程节点间RDMA读写访问,完全卸载CPU工作负载;网络传输采用了高带宽的传输;链路层设置特定的重传机制保证服务质量,不需要数据缓冲。

InfiniBand必须运行在InfiniBand网络环境下,必须使用IB交换机及IB网卡才可实现。

1.4.1.2 RoCE

RoCE技术支持在以太网上承载IB协议,实现RDMA over Ethernet。RoCE与InfiniBand技术有相同的软件应用层及传输控制层,仅网络层及以太网链路层存在差异。

RoCE v1协议:基于以太网承载RDMA,只能部署于二层网络,它的报文结构是在原有的IB架构的报文上增加二层以太网的报文头,通过Ethertype 0x8915标识RoCE报文。

RoCE v2协议:基于UDP/IP协议承载RDMA,可部署于三层网络,它的报文结构是在原有的IB架构的报文上增加UDP头、IP头和二层以太网报文头,通过UDP目的端口号4791标识RoCE报文。RoCE v2支持基于源端口号hash,采用ECMP实现负载分担,提高了网络的利用率。

Figure 3为RoCE的协议栈:

Figure3:RoCE协议栈

1.4.1.3 iWARP

iWARP协议是IETF基于TCP提出的,因为TCP是面向连接的可靠协议,这使得iWARP在面对有损网络场景(可以理解为网络环境中可能经常出现丢包)时相比于RoCE v2和IB具有更好的可靠性,在大规模组网时也有明显的优势。但是大量的TCP连接会耗费很多的内存资源,另外TCP复杂的流控等机制会导致性能问题,所以从性能上看iWARP要比UDP的RoCE v2和IB差。

1.4.2 RDMA与NVMe-oF的结合

上面章节介绍了NVMe-oF的传输协议,其中NVMe over RDMA又可以根据RDMA本身支持的协议而分为多个 RDMA Transport。Figure 4为不同RDMA协议作为transport支持NVME-oF的情况。

Figure4: 基于RDMA的Transport

1.4.2.1 NVMe-oF的传输之选

  • 低延迟:RDMA技术通过直接内存访问,减少了CPU的参与,从而显著降低了数据传输的延迟。这对于需要高吞吐量和低延迟的存储应用至关重要。

  • 高带宽:RDMA支持高速网络,如InfiniBand和100GbE,能够提供高带宽,满足大规模数据传输的需求。

  • 减少CPU负载:传统的网络通信需要CPU参与数据包的处理,而RDMA允许数据直接在内存之间传输,减少了CPU的负载,提高了系统的整体效率。







请到「今天看啥」查看全文