【硬件相关】RDMA网络类别及基础介绍

2024-03-03 06:36

本文主要是介绍【硬件相关】RDMA网络类别及基础介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 一、前言
      • 1、RDMA网络协议
      • 2、TCP/IP网络协议
    • 二、RDMA类别
      • 1、IB
      • 2、RoCE
      • 3、iWARP
    • 三、RDMA对比
      • 1、优缺点说明
        • a、性能
        • b、扩展性
        • c、维护难度
      • 2、总结说明

一、前言

roce-vs-infiniband-vs-tcp-ip
RoCE、IB和TCP等网络的基本知识及差异对比

分布式存储常见网络协议有TCP/IP和RDMA两种,传统TCP/IP协议无法满足高性能计算、AIGC大模型分析等高并发、低时延应用,通常会采用RDMA来满足高吞吐、低延时的网络通信要求。
传统TCP/IP网络通信使用内核发送消息,这种通信方式有较高的数据移动和数据复制开销,现有数据中心一般采用RDMA网络通信,降低了读写时延和服务器CPU资源占用,但RDMA协议对网络丢包非常敏感,0.01的丢包率会使得RDMA吞吐率下降为0,无损成为RDMA网络重要需求之一,通常要求丢包率在1e-05(十万分之一)以下。
在这里插入图片描述

1、RDMA网络协议

RDMA,即Remote Direct Memory Access(远端直接内存访问),它能够使得网络中的两台主机直接在内存中交换数据,而不依赖与任何一台主机的处理器、缓存和操作系统,可以直接通过网络接口访问内存数据,无需操作系统的介入,降低数据处理过程中的延迟。
它将收/发包的工作卸载(offload)到了网卡上,不需要像TCP/IP协议一样使系统进入内核态,减少了拷贝、封包解包等等的开销。这样大大降低了以太网通信的延迟,减少了通讯时对CPU资源的占用,缓解了网络中的拥塞,让带宽得到更有效的利用,从而在支持RDMA的系统之间实现更快的数据传输速率和更低的延迟。
RDMA网络协议具备以下优势:

  • 零拷贝(Zero-copy) :应用程序能够直接执行数据传输,在不涉及到网络软件栈的情况下。数据能够被直接发送到缓冲区或者能够直接从缓冲区里接收,而不需要被复制到网络层。
  • 内核旁路(Kernel bypass) :应用程序可以直接在用户态执行数据传输,不需要在内核态与用户态之间做上下文切换。
  • 不需要CPU干预(No CPU involvement) :应用程序可以访问远程主机内存而不消耗远程主机中的任何CPU。远程主机内存能够被读取而不需要远程主机上的进程(或CPU)参与。远程主机的CPU的缓存(cache)不会被访问的内存内容所填充。
  • 消息基于事务(Message based transactions):数据被处理为离散消息而不是流,消除了应用程序将流切割为不同消息/事务的需求。
  • 支持分散/聚合条目(Scatter/gather entries support):RDMA原生态支持分散/聚合。也就是说,读取多个内存缓冲区然后作为一个流发出去或者接收一个流然后写入到多个内存缓冲区里去。

在这里插入图片描述

2、TCP/IP网络协议

TCP/IP,即Transmission Control Protocol/Internet Protocol(传输控制协议/网络协议),用于互联网上互联网络设备,它确定数据应该如何打包、寻址、传输、路由和接收;TCP/IP 非常重视两台计算机之间的精确数据传输,如果系统在一次性发送消息时遇到问题,则必须再次发送整个消息。
此外,TCP/IP 的功能分为四个不同的层次: 数据链路层、互联网层、传输层和应用层。数据必须经过这四层,然后才能在另一端接收。然后CP/IP 将通过以相反的顺序传递层来重新组装数据,并将其呈现给接收方。通过这种方式,可以通过升级某些层而不是整个系统来提高数据中心的性能或安全性。

二、RDMA类别

RDMA有以下三种类别

1、IB

IB,即Infiniband,是一种专门为RDMA设计的网络,从硬件级别保证网络无损,提供极高的带宽和极低的时延,但是成本高,需要支持IB的网卡和交换机。
Infiniband交换机是特定厂家提供的专用产品(主流厂商有NVIDIA(Mellanox)、Intel、Cisco、HPE 等),采用私有协议,而目前绝大多数环境均采用IP以太网络,采用Infiniband无法满足互通性需求,同时封闭性架构存在厂商锁定问题。

2、RoCE

基于Soft-RoCE可实现不支持RoCE网卡主机具备RoCE网络协议通信能力,配置过程详见Chapter 2. Configuring RoCE

RoCE,即RDMA over Converfied Ethernet,基于以太网实现的RDMA网络,它允许数据从一台主机传输到另一台主机,减少了CPU的操作负载。消耗的资源比 iWARP 少,支持的特性比 iWARP 多,可以使用普通的以太网交换机(需要支持无损以太网技术),但是需要支持RoCE的网卡。
RoCE目前有两个版本

  • RoCE v1:是一种链路层协议,使用RoCE v1协议通信的双方必须在同一个二层网络内,允许在同一个广播域下的任意两台主机直接访问
  • RoCE v2:是一种网络层协议,使用RoCE v2协议的包可以被三层路由,具有更好的扩展性,基于UDP协议封装,允许不同广播域下的主机通过三层访问

3、iWARP

iWARP,即internet Wide Area RDMA Protocol,基于TCP实现的RDMA网络,它使用TCP来实现可靠的数据传输,但由于TCP协议限制,其性能上丢失了大部分RDMA的优势。相比RoCE,在大型组网的情况下,iWARP的大量TCP连接会占用大量的内存资源,对系统规格要求更高。可以使用普通的以太网交换机,但是需要支持iWARP的网卡。
RDMA

在这里插入图片描述

三、RDMA对比

类别RoCEIBiWARP
性能低(受TCP影响)
扩展性
稳定性
维护难度
投入成本
网络设备以太网交换机IB交换机以太网交换机
网卡要求支持RoCE支持IB支持iWARP
标准编制IBTA(InfiniBand Trade Association)IBTA(InfiniBand Trade Association)IETF(Internet Engineering Task Force)

1、优缺点说明

a、性能
  • RoCE提高了企业数据中心的速度和能力,在不更换以太网基础设施情况下降低总体成本
  • Infiniband使用串行链路和总线一次1bit地发送数据,从而实现更快、更有效的通信
  • iWARP提供了与RoCE类似的低延迟和高吞吐量的传输能力,但性能略逊于 InfiniBand 和 RoCE
b、扩展性

三种RDMA网络协议都具有很高的可扩展性和灵活性,其中Infiniband协议扩展性最高,Infiniband一个子网可以支持成千上万个节点,它提供了相对简单和可扩展架构,通过Infiniband路由器创建几乎无限的集群大小。

c、维护难度

三种RDMA网络协议中,其中Infiniband维护难度及成本最高,Infiniband需要采购特定厂家生产的IB网卡和IB交换机,使用了私有协议作为专用网络技术,无法继承用户在IP网络运维的积累;
当前Infiniband市场空间占比很少,业内有经验的运维人员严重缺乏,网络一旦出现故障,无法及时修复,运营成本极高,目前基于传统以太网承载RDMA(RoCE v2)成为RDMA大规模应用的必要趋势。

2、总结说明

  • 对于追求最高性能的网络通信,无疑首选是Infiniband
  • 对于追求更高性能、更易于管理和成本有限的网络通信,无疑首选是RoCE

这篇关于【硬件相关】RDMA网络类别及基础介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/768767

相关文章

关于Maven生命周期相关命令演示

《关于Maven生命周期相关命令演示》Maven的生命周期分为Clean、Default和Site三个主要阶段,每个阶段包含多个关键步骤,如清理、编译、测试、打包等,通过执行相应的Maven命令,可以... 目录1. Maven 生命周期概述1.1 Clean Lifecycle1.2 Default Li

C#实现获取电脑中的端口号和硬件信息

《C#实现获取电脑中的端口号和硬件信息》这篇文章主要为大家详细介绍了C#实现获取电脑中的端口号和硬件信息的相关方法,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 我们经常在使用一个串口软件的时候,发现软件中的端口号并不是普通的COM1,而是带有硬件信息的。那么如果我们使用C#编写软件时候,如

numpy求解线性代数相关问题

《numpy求解线性代数相关问题》本文主要介绍了numpy求解线性代数相关问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 在numpy中有numpy.array类型和numpy.mat类型,前者是数组类型,后者是矩阵类型。数组

Python实现NLP的完整流程介绍

《Python实现NLP的完整流程介绍》这篇文章主要为大家详细介绍了Python实现NLP的完整流程,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 编程安装和导入必要的库2. 文本数据准备3. 文本预处理3.1 小写化3.2 分词(Tokenizatio

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

MySQL中my.ini文件的基础配置和优化配置方式

《MySQL中my.ini文件的基础配置和优化配置方式》文章讨论了数据库异步同步的优化思路,包括三个主要方面:幂等性、时序和延迟,作者还分享了MySQL配置文件的优化经验,并鼓励读者提供支持... 目录mysql my.ini文件的配置和优化配置优化思路MySQL配置文件优化总结MySQL my.ini文件

Java实现任务管理器性能网络监控数据的方法详解

《Java实现任务管理器性能网络监控数据的方法详解》在现代操作系统中,任务管理器是一个非常重要的工具,用于监控和管理计算机的运行状态,包括CPU使用率、内存占用等,对于开发者和系统管理员来说,了解这些... 目录引言一、背景知识二、准备工作1. Maven依赖2. Gradle依赖三、代码实现四、代码详解五

Redis的Hash类型及相关命令小结

《Redis的Hash类型及相关命令小结》edisHash是一种数据结构,用于存储字段和值的映射关系,本文就来介绍一下Redis的Hash类型及相关命令小结,具有一定的参考价值,感兴趣的可以了解一下... 目录HSETHGETHEXISTSHDELHKEYSHVALSHGETALLHMGETHLENHSET

如何安装HWE内核? Ubuntu安装hwe内核解决硬件太新的问题

《如何安装HWE内核?Ubuntu安装hwe内核解决硬件太新的问题》今天的主角就是hwe内核(hardwareenablementkernel),一般安装的Ubuntu都是初始内核,不能很好地支... 对于追求系统稳定性,又想充分利用最新硬件特性的 Ubuntu 用户来说,HWEXBQgUbdlna(Har

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit