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

news/2024/12/24 6:55:20 标签: RDMA, 分布式存储, 块存储, SmartX, 技术分享

目录

  • 背景
  • 如何实现
  • 存储网络是什么
  • 参考

背景

我们清楚,分布式存储将利用网络作不同设备的互联。最基础的如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_32">RDMA

RDMA(Remote Direct Memory Access 直接内存存取)是一种允许计算机在网络上直接访问远程系统内存的技术,而不需要通过操作系统的干预或CPU的参与。数据可以在两个计算机之间快速、高效地传输,极大地减少了延迟和 CPU 负载。
RDMA 主要用于高速、低延迟的数据传输场景,比如高性能计算(HPC)、数据中心、存储网络和分布式系统等领域。

RDMA__35">RDMA 工作原理

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

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

在这里插入图片描述

RDMA__49">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 技术路线。

RDMA__71">ZBS 支持 RDMA 的要求

ZBS 需要启用 RDMA ,目前仅支持 Mellanox Technologies 厂商的网卡。
交换机必须支持 L3 DSCP 流控或 Global Pause 流控。
缓存盘推荐使用NVMe SSD。
软件版本需要是标准版或企业版。
仅支持在新部署集群时启用RDMA功能。启用 RDMA 功能,不允许与其他系统网络共用虚拟分布式交换机也不支持 QOS。
双活集群不支持 RDMA

参考

  1. 基于 SmartX 分布式存储RDMA 与 TCP/IP 技术与性能对比
  2. SmartX 分布式存储产品组合介绍

http://www.niftyadmin.cn/n/5797454.html

相关文章

【NI国产替代】基于国产FPGA+全志T3的全国产16振动+2转速(24bits)高精度终端采集板卡

16振动2转速(24bits)高精度终端采集板卡 采用AG16KF256国产FPGAT3国产ARM全国产化 的处理器架构,设计分为2块板,一块底板, 一块核心板,底板负责16路信号2路转速的 采集,信号的滤波&#xff0…

软件测试之压力测试【详解】

压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力,并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试,并评估软件在极端…

GCDWebServer 使用指南

GCDWebServer 使用指南 GCDWebServer The #1 HTTP server for iOS, macOS & tvOS (also includes web based uploader & WebDAV server) [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/gc/GCDWebServer 项目介绍 GCDWebServer 是一个现代且轻量级的基于…

Linux系统编程——理解系统内核中的信号捕获

目录 一、sigaction() 使用 信号捕捉技巧 二、可重入函数 三、volatile关键字 四、SIGCHLD信号 在信号这一篇中我们已经学习到了一种信号捕捉的调用接口:signal(),为了深入理解操作系统内核中的信号捕获机制,我们今天再来看一个接口:si…

Leetcode打卡:考场就坐

执行结果:通过 题目: 855 考场就坐 在考场里,有 n 个座位排成一行,编号为 0 到 n - 1。 当学生进入考场后,他必须坐在离最近的人最远的座位上。如果有多个这样的座位,他会坐在编号最小的座位上。(另外&am…

重温设计模式--单例模式

文章目录 单例模式(Singleton Pattern)概述单例模式的实现方式及代码示例1. 饿汉式单例(在程序启动时就创建实例)2. 懒汉式单例(在第一次使用时才创建实例) 单例模式的注意事项应用场景 C代码懒汉模式-经典…

2024-05-18 前端模块化开发——ESModule模块化

目录 1、认识 ES Module2、ES Module基本使用3、export关键字 3.1、导出方式一——直接导出3.2、导出方式二——通过as起别名3.3、导出方式三——定义的时候就直接导出 4、import关键字 4.1、导入方式一——直接导入4.2、导入方式二——通过as起别名4.3、导入方式三——可以给…

VBA技术资料MF243:利用第三方软件复制PDF数据到EXCEL

我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。“VBA语言専攻”提供的教程一共九套,分为初级、中级、高级三大部分,教程是对VBA的系统讲解&#…