当前位置: 首页 > news >正文

13. 初识 NVMe over RDMA

在上一节我们了解了 NVMe over Fabric ,这是一种高效的互联传输协议。本节我们所了解的 NVMe over RDMA 则是在其基础之上的具体传输实现。

RDMA通过RDMA QP(Queue Pair,队列组)实现NVMe Admin和I/O命令的传输,并定义了一组命令集用于支持命令包、回复包以及数据包的收发,包括RDMA_SEND、RDMA_SEND_INVALIDATE、RDMA_READ和RDMA_WRITE。

我们来看一个实际的例子。

步骤1 主机端使用RDMA_SEND命令发包,所发的包可以自带数据,或者带有指向数据的SGL地址。

步骤2 NVMe设备使用RDMA_READ命令从主机端读取数据,每个RDMA_READ命令都包括主机端的SGL地址和本地存储数据的内存地址。

步骤3 NVMe设备发送RDMA_SEND或者RDMA_SEND_INVALIDATE命令通知主机端传输结束。

步骤4 RDMA_READ和RDMA_SEND必须使用同一组RDMA QP。

RDMA最早在Infiniband传输网络上实现。Infiniband是一种专为RDMA设计的网络,它从硬件级别保证可靠传输,技术先进,但是价格高昂。

后来业界厂家把RDMA移植到传统以太网上,使得高速、超低延时、极低CPU占用率的RDMA技术得以部署在目前使用最广泛的以太网上。RDMA基于以太网分为iWARP(这不是一个缩写,大家可把它当作一个专有名词)和RoCE(RDMA over Converged Ethernet,基于聚合以太网的RDMA)两种技术。各RDMA网络协议栈的对比如下图所示。

目前RDMA网卡的主要玩家有博通、Chelsio、华为海思、英特尔、英伟达、美满科技,以及自成一派的亚马逊、Cornell和思科。除了Infiniband技术由英伟达一家独大之外,iWARP和RoCE v2阵营中多个厂商都有参与。

RoCE v2和iWARP的设计初衷都是在传统的以太网技术上实现RDMA,网络层它们都基于IP,只不过在传输层一个选择了UDP,一个选择了TCP。它们都兼容现有的以太网线缆、交换及路由设备,并且都提供软件实现的协议栈,相似的定位和功能意味着它们存在着竞争关系。

RoCE是在Infiniband Trade Association(IBTA)标准中定义的网络协议,允许通过以太网络使用RDMA。RoCE目前有如下两个版本。

  • RoCE v1:在以太网链路层之上用IB网络层代替了TCP/IP网络层,不支持IP路由功能,是一种链路层协议。

  • RoCE v2:基于UDP封装,支持路由功能,是一种网络层协议。 RoCE v1与RoCE v2报文格式对比如下所示。

  • Ethernet包头:包括源MAC地址和目的MAC地址。

  • IP包头:包括源IP地址和目的IP地址。

  • UDP包头:包括源端口号和目的端口号,其中目的端口号为4791。

  • Infiniband包头:Infiniband传输层的头部字段。

  • IB有效载荷:消息负载。

  • ICRC和FCS:分别对应冗余检测和帧校验。

iWARP比RoCE出现得晚一些,具备直接在标准TCP/IP网络上运行的优势iWARP在网卡端的延时是10~15μs,比RoCE要长,但是仍然比传统网卡要快几个数量级。iWARP的协议栈比RoCE复杂,两者对比如下所示。

RoCE和iWARP对比如下。

  • 性能方面:RoCE在性能方面更有优势,这主要体现在高带宽、低延时、低CPU占用率等方面。原因在于iWARP的初衷是基于现有的TCP传输层工作的,为了兼容原本的TCP应用,无法在传输层(或以下)区分RDMA报文或者普通TCP报文,这增加了报文处理的复杂度。硬件难以高效卸载RDMA相关的任务。与此相对应,RoCE可以通过UDP包直接识别出RDMA报文,这使得硬件卸载实现起来更加容易。

  • 传输服务:iWARP只支持可靠性连接传输服务,不支持广播RoCE支持不同的传输服务,包括可靠性连接、非可靠性数据报文,并支持广播

  • 扩展性:RoCE需要专门的交换机、网卡以及线缆的支持,一旦需要升级则牵一发动全身,故更加适合用于全新搭建的场景。相比之下iWARP可以直接使用原有的交换机,能够实现部署与硬件更新解耦。iWARP还支持纯软件方案,考虑到现在CPU性能越来越强大,这也不失为一种好的选择。

总体来说,RoCE更加流行,已经在全球多家云设备厂商部署,支持RoCE的厂商也比较多。RoCE在网卡端的延时为1~5μs,但是它要求是无损网络,这意味着交换机必须支持数据桥接和PFC(Priority Flow Control,基于优先级的流控机制)。这使得部署RoCE的过程比较复杂,同时扩展性也不是很好。如果要对其进行扩展需要大量有经验的网络维护人员,成本较高。

如果更关注延时而对扩展性要求不高,可以选RoCE,它的应用场景包括连接控制节点与NVMe磁盘阵列的环境,或者只有一到二层交换机的环境。如果延时是你要考虑的一个重要指标,但同时易于部署与扩展性也具有很高的优先级,iWARP是更好的选择——iWARP可以直接在现有网络环境上部署,而且可以很容易扩展(即使是远程数据中心)。一个著名的iWARP案例是微软的存储部署方案。

http://www.dtcms.com/a/423278.html

相关文章:

  • 分词和词向量的学习记录
  • QML学习笔记(二十)QML的自定义信号
  • 青岛网站建设方案咨询注册网站时审核是人工审核吗还是电脑审核
  • 【星海出品】直接映射方式
  • LeetCode 7.整数反转
  • 网站开发目前用的是什么语言seo相关ppt
  • C++ 函数指针、回调与 Lambda 全解析
  • UNIX下C语言编程与实践4-UNIX 编程环境搭建:三种安装方式(本机、虚拟机、网络终端)对比与实操
  • 辽宁平台网站建设公司万维网站注册
  • 网站建设div ass抖音代运营合作方案ppt
  • uni-app 开发H5软键盘会顶起底部内容的解决方案
  • Syslog日志集成搭建
  • 基于AI辅助工具的原创音乐创作实践研究——以Tunee首届音乐挑战赛作品《断掉的铜线》为例[特殊字符]
  • mysql数据库学习之用户权限管理(四)
  • 如何做网站网页流程粤icp备案号查询网官网
  • AI使用 Node.js modbus-serial 搭建一个可交互的 Modbus TCP 主站与从站 Demo
  • Websocket+cpolar:如何轻松实现服务远程访问?
  • 嵌入式Linux BootLoader全景图:主流选择与核心对比
  • 基于Springboot的DDD实战(不依赖框架)
  • 网站设计流程步骤网站网络资源建立
  • 不用宝塔用linux操作mysql
  • Nginx 服务器
  • 网站开发浏览器企业网站建设定位注意的问题
  • AI视频生成进入多镜头叙事时代!字节发布 Waver 1.:一句话生成 10 秒 1080p 多风格视频,创作轻松“一键”达!
  • 怎样创建网站吉洋大鼓免费广告发布平台
  • 【Python3教程】Python3高级篇之集成MongoDB
  • MongoDB源码分析慢日志:从配置到实现的完整解析
  • Bootloader核心原理与简单实现:从零写一个bootloader
  • MongoDB到关系型数据库:JSON字段如何高效转换?
  • 网站排名优化原理一个公司能备案多个网站吗