SmartX分享:SMTX ZBS 中 RDMA 技术简介

目录

背景

我们清楚,分布式存储将利用网络作不同设备的互联。最基础的如TCP/IP的IP SAN,进阶的有FC SAN、IB等等。

SmartX 支持 10G以上的TCP/IP网络作为互联网络,同时也支持25G的RDMA网络。

那么什么是RDMA?

RDMA 是直接内存存取。指的是设备可以直接读写内存而无需经过CPU。

在 ZBS 中,会在两个层面使用到 RDMA 技术:

  • 存储接入网络:用于为块存储集群外部节点提供存储服务
  • 存储内部数据同步网络:用于块存储集群内各节点间数据交换的网络,该网络只能由集群内部使用

如何实现

存储网络是什么

首先我们要清楚一个概念,分布式存储与集中式存储最大的区别在于,需要保证在不同存储服务器中,如何保证数据的一致性和可靠性

基于网络进行数据同步是必须实现的要求。

我们常说的网络一般可以分类为:业务网络、管理网络、存储网络。而其上又可以细分管理网络(管理网络和iBMC/IPMI网络)、业务网络、存储网络等。

一般来说,存储节点直接用于传输数据,实现数据同步、修改的网络就是存储网络。在 ZBS 中,这个网络被称为存储内部数据同步网络

ZBS 要求最低 10G 以太网卡与交换机,采用标准TCP/IP。不过TCP/IP的机制导致其传输过程中,有很大一部分开销被报文校验、处理包等操作浪费掉了。

同时,不同速率存储介质的传输才是限制速率最大的因素。所以 RDMA 技术结合 25G 及以上网络规格,可以实现更好的效果。

TCP/IP

TCP/IP 的问题:

  • TCP/IP 协议栈处理带来的时延
    在接收/发送数据报文时,系统内核需要进行多次上下文切换,同时这些处理需要被复制转发(TCP/IP实际上并不是直接转发,都是复制转发)与协议的封装/解封装需要CPU处理这些操作,会导致时延。
  • TCP/IP 协议栈处理导致CPU消耗
    TCP/IP 需要主机CPU多次参与到协议栈的内存复制。因此每次的报文交互都会提高CPU负载。

RDMA

RDMA(Remote Direct Memory Access 直接内存存取)是一种允许计算机在网络上直接访问远程系统内存的技术,而不需要通过操作系统的干预或CPU的参与。数据可以在两个计算机之间快速、高效地传输,极大地减少了延迟和 CPU 负载。

RDMA 主要用于高速、低延迟的数据传输场景,比如高性能计算(HPC)、数据中心、存储网络和分布式系统等领域。

RDMA 工作原理

通过直接内存访问技术,数据从一个系统快速移动到远程系统的内存中,无需经过内核网络协议栈不需要经过中央处理器耗时的处理。

  • 零拷贝(Zero Copy)
    RDMA 允许网卡直接读取或写入内存,数据可以直接在内存之间传递,避免了数据操作系统的缓冲区之间的拷贝,实现了不同节点之间的分布式块存储服务直接通讯,有效降低延时。
  • 内核旁路(内核Bypass)
    RDMA 避免了传统传输过程中应用内存和内核之间的数据复制,在不需要任何内核参与的条件下,数据能够从应用内存发送到本地网卡并通过网络发送给远程网卡。内核旁路功能使得 RDMA 在大规模集群和分布式系统中表现出色,系统可以更轻松地处理大量节点之间的数据传输需求。
  • CPU 卸载(CPU Offload)
    RDMA 技术通过直接在网络适配器上执行数据传输和处理,在高带宽压力下对 CPU 占用极低,能够使 CPU 更专注于计算任务而非数据传输的管理,提高系统的吞吐量和效率。这种机制适用于高并发和大规模数据处理环境,可有效减轻系统瓶颈。

RDMA 的实现方案

  1. IB
    InfiniBand,专有协议,为实现RDMA提供了全栈架构,包括编程接口、2-4层协议、网卡接口、交换机等一整套RDMA解决方案。
    IB的编程接口也是RDMA编程接口的标准,RoCE和iWARP都是使用IB的接口进行编程。
    但由于专有协议,不开源。从协议到软硬件封闭,其性能虽然最优,但成本也最高,因为需要更换全套设备,包括网卡、光缆和交换机等。因此收费很贵,一根1m的IB线缆据说就收费上千元。
  2. RoCE
    RDMA over Converged Ethernet,将IB的接口封装在以太网上进行传输。
    RoCE分为RoCEv1和RoCEv2。v1包括网络层和传输层协议,不支持路由,使用较少;v2基于UDP/IP协议,可路由。
    RoCE 其较低的网络标头是以太网标头,其较高的网络标头(包括数据)是IB标头,这支持在标准以太网基础设施(交换机)上使用RDMA,只有网卡是特殊的。但是需要注意的是,由于基于UDP,所以需要网络是无损网络
  3. iWARP
    类似RocE,构建与TCP协议上。也允许在常规以太网上进行RDMA传输。
    但是iWARP不是直接继承于IB,而是有一套IETF的标准。

同时,RDMA需要设备厂商的生态支持(网卡、交换机)。主要是因为RDMA将传输的包处理从CPU卸载到了网卡上,所以需要特殊的网卡支持。

SmartX 的 ZBS 非常看好 RoCE 未来的发展。因此 ZBS 存储内部数据同步网络采用的是RoCEv2 的 RDMA 技术路线。

ZBS 支持 RDMA 的要求

ZBS 需要启用 RDMA ,目前仅支持 Mellanox Technologies 厂商的网卡。

交换机必须支持 L3 DSCP 流控或 Global Pause 流控。

缓存盘推荐使用NVMe SSD。

软件版本需要是标准版或企业版。

仅支持在新部署集群时启用RDMA功能。启用 RDMA 功能,不允许与其他系统网络共用虚拟分布式交换机也不支持 QOS。

双活集群不支持 RDMA 。

参考

  1. 基于 SmartX 分布式存储的 RDMA 与 TCP/IP 技术与性能对比
  2. SmartX 分布式存储产品组合介绍
相关推荐
ApacheSeaTunnel9 小时前
保姆级 SeaTunnel 入门!再学不会小编当场表演倒立敲代码
大数据·数据集成·seatunnel·技术分享·数据同步
tiantianuser17 小时前
RDMA设计37:RoCE v2 子系统模型设计
fpga开发·rdma·高速传输·cmac·roce v2
2401_841495644 天前
大数据技术:从技术革命到产业重构的核心引擎
大数据·边缘计算·实时计算·多模态·分布式存储·数据价值·大数据技术
ApacheSeaTunnel7 天前
告别手敲 Schema!SeaTunnel 集成 Gravitino 元数据 RestApi 这个新动作有点酷
大数据·ai·seatunnel·技术分享·数据同步·gravitino
yusur11 天前
边缘智算新引擎 DPU 驱动的算力革新
人工智能·科技·rdma·dpu
bandaoyu13 天前
【RDMA】infiniband IB 流控机制
rdma
bandaoyu13 天前
【RDMA】infinband诊断工具
rdma
tiantianuser14 天前
RDMA设计33:RoCE v2 接收模块
fpga开发·rdma·高速传输·cmac·roce v2
tiantianuser15 天前
RDMA设计31:RoCE v2 发送模块3
fpga开发·rdma·cmac·roce v2
tiantianuser16 天前
RDMA设计29:RoCE v2 发送及接收模块设计2
服务器·fpga开发·rdma·fpga设计·高速传输