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

IB、RocE、RDMA、TCP/IP:Scale-Out的基础

一、背景:分布式系统与 Scale-Out 架构

在讲解 Scale-Out(横向扩展)之前,先介绍一下分布式系统的概念。

当计算机系统发展成熟后,单一系统往往面临单点故障和性能瓶颈的问题。为解决这些问题,出现了两个主要发展方向:

一个方向是发展双控系统。 常见的是两个系统共享存储资源,工作在AA模式(Active-Active,主主模式) 或 AP模式(Active-Passive,主备模式)。以集中式双控存储 SAN 为例,存储的两个控制器通过 SAS 双端口 可访问同一组硬盘,故障时可在控制器间无缝切换。硬盘层面通过 RAID 技术 避免单点故障,从而实现端到端的高可用性。这种方式对硬件设计要求高,需考虑共享内存、SAS 双端口等定制化设计,因此成本较高。

另一个方向是发展分布式系统,如云计算、大数据 Hadoop、分布式文件系统 Lustre、分布式存储 Ceph 等。其主要特点是系统之间通过网络互联,节点可采用标准服务器硬件,无需定制。通过协议与软件,在不可靠的硬件之上构建可靠、可扩展的系统,是分布式系统的核心理念。因此硬件成本相对较低,但软件系统复杂度显著增加。

这种通过增加节点来扩展系统能力的方式,即为 Scale-Out(横向扩展)。

早期分布式系统多基于以太网上的 TCP/IP 协议 进行通信,节点间通信效率不高。因此,在一些非必须使用 TCP/IP 的场景中,通信协议逐渐转向 RDMA,其底层支持两种主要技术:InfiniBand 和 RoCEv2(基于增强型以太网)。

图1 从单一系统到分布式系统

二、InfiniBand 标准的起源

笔者最初接触 InfiniBand 是通过 Mellanox 公司,曾以为它是 Mellanox 私有的协议,后来查阅资料才知 InfiniBand(简称IB)是由标准组织制定的开放协议。

InfiniBand 起源于 1999 年,旨在解决服务器内部 PCIe 总线与外部网络(如千兆以太网)之间的性能瓶颈,其愿景是统一内部 I/O 与外部网络通信。

该标准由 InfiniBand Trade Association(IBTA) 维护,官网为https://www.infinibandta.org/。

IBTA 由以下两个早期 I/O 标准合并而成:

- 下一代 I/O(NGIO):由 Intel、Sun、Dell 等公司主导。

- 未来 I/O(Future I/O):由 IBM、HP、康柏(Compaq)等公司主导。

下图展示了当前 IBTA 的主要成员。值得注意的是,NVIDIA 于 2020 年以 69 亿美元收购了 Mellanox,这一布局显著强化了其在高性能网络与 AI 基础设施领域的地位。

图2 IBTA 组织成员

InfiniBand 最初目标宏大,希望同时取代服务器内部的板级总线(如 PCI)和外部网络(如以太网),用统一互联技术构建数据中心。然而,PCIe 和基于以太网的 TCP/IP 协议已建立强大生态,难以全面替代。因此,IB 最初的突破点选择了对网络性能要求极高的 高性能计算(HPC) 领域。

Mellanox 是早期将 IB 商业化并推向 HPC 市场的关键推动者。该公司成立于 1999 年,2001–2003 年推出了全球首批 InfiniBand 主机通道适配器(HCA)和交换芯片。首个重要落地系统是美国能源部的 ASCI Q 超级计算机(2003 年于洛斯阿拉莫斯国家实验室上线),该系统使用 Mellanox 的 InfiniBand 技术连接上万个 Alpha 处理器节点。

如今,InfiniBand 已不仅限于 HPC,更广泛用于 AI 大规模训练、云计算、云存储 等场景。例如存储领域的 NVMe over Fabric(NoF) 协议中的“Fabric”常指基于 InfiniBand 或RoCE的 RDMA 网络。

三、RDMA 是什么?

RDMA(Remote Direct Memory Access,远程直接内存访问) 是 InfiniBand 协议栈顶层的软件接口,为应用程序提供 verbs 调用接口,实现高效的数据传输。

在介绍 RDMA 之前,先理解 DMA(Direct Memory Access,直接内存访问) 的概念。

图3 DMA 操作示意

如图3所示,传统的数据操作需经过 CPU 读写,这会占用 CPU 资源。对于网络、存储这类数据量大的 I/O 设备,若所有数据都经 CPU 搬运,会导致 CPU 忙于数据传输而无法执行计算任务。

因此,大多数 PCIe I/O 设备(如网卡)内置 DMA 引擎。在图3示例中,网卡内部的 DMA 引擎在 CPU 驱动控制下,自动将数据从网卡缓冲区搬运到系统内存的指定位置。图中浅蓝色粗箭头表示控制通道,绿色粗箭头表示数据通道。

CPU 仅需通过驱动程序控制网卡,准备 DMA 描述符(如指定 RX/TX Ring 在内存中的地址),后续的数据收发则由 DMA 引擎自动完成。控制命令的数据量很小,与数据传输相比可忽略不计。

图3除了呈现DMA之外,左下角也同时呈现了网络数据传输与Linux内核TCP/IP协议的内存管理的关系,左下角的三个黄色框分别表示:

1. 用户态缓冲区:应用程序通过 socket 调用(如 send/recv)使用的内存地址。

2. 内核态缓冲区(sk_buff):Linux 内核 TCP/IP 协议栈使用的缓冲区。

3. 网卡 DMA 缓冲区(RX/TX Ring):驱动申请并提供给 DMA 引擎直接访问的内存区域。

数据在用户态、内核态和网卡缓冲区之间往往需要多次拷贝,这也是 TCP/IP 协议效率较低 的原因之一。Linux 内核虽持续优化(如零拷贝技术),但完全消除拷贝仍需解决内存管理等多重挑战。具体做到什么程度,需要查看对应的Linux内核与网络驱动程序的实现。

RDMA 将 DMA 思想扩展到跨系统通信。两台主机通过网络传输数据时,CPU 仅需下发控制命令,实际数据传输由网卡上的 RDMA 引擎 自动完成(图4、图5中浅蓝色为控制流,绿色为数据流)。

目前支持 RDMA 的网卡仍为 PCIe 设备,数据搬运通过 PCIe 总线进行。在现代计算机体系中,内存地址与 PCIe 映射地址统一编址,因此 RDMA 的源地址和目的地址既可以是系统内存,也可以是 PCIe 设备内存(如 GPU 显存)。

图4展示了两系统内存间的 RDMA 传输,图5展示了两个 GPU 显存间的 RDMA 传输。

值得强调的是,InfiniBand 原生的 RDMA 可实现端到端的零拷贝。应用程序的 send/recv 缓冲区可直接作为 RDMA 操作的缓冲区,无需经过内核协议栈和多层缓冲区拷贝,从而大幅提升效率。

图4 系统内存间的 RDMA 传输

图5 GPU 显存间的 RDMA 传输

四、InfiniBand、RoCE 及 RDMA

随着 InfiniBand 在 HPC 领域的成功,其应用逐渐扩展至 AI 大规模训练等领域,RDMA 的高效性也得到广泛认可。

IB 协议栈采用分层设计,其上层的 RDMA 协议也可由其他底层协议承载,由此诞生了 RoCE(RDMA over Converged Ethernet),即基于增强以太网的 RDMA 实现。

协议栈对比如图6所示:

- 黄色部分为 IB 与 RoCE 共同支持的 RDMA 上层协议。

- 下方分别为 IB 原生协议栈和 RoCEv2(基于 UDP/IP 的增强以太网协议栈)。

图6 IB 与 RoCE 协议栈对比

图7概括了 IB 的核心技术优势,图8对比了 IB 与 RoCE 的主要区别。

总体而言:

- InfiniBand 是原生一体化的协议栈,提供最优的 RDMA 实现,具备低延迟、高可控性和端到端拥塞控制等优势。

- RoCEv2 是在以太网上实现 RDMA 的次优方案,其通过 PFC/ECN 实现无损传输,使用 UDP 简化协议处理,但延迟和可控性略逊于 IB。其优势在于基于普及的以太网硬件,成本低、组网灵活。然而,RoCE 对无损网络设计要求高,部署和维护复杂度不低,对运维团队提出较大挑战。

图7 IB 核心技术优势(图片来源:千问)

图8 IB 与 RoCE 总体对比(图片来源:千问)

小结

在 AI Scale-Out 架构中,RDMA 已成为提升节点间通信效率的关键技术。InfiniBand 以其原生一体化设计提供最优性能,尤其适用于超算与大规模AI训练;RoCEv2 则凭借以太网生态优势,在企业云与存储网络中广泛部署。选择时需综合考虑性能、成本、运维复杂度与生态兼容性。随着 AI 与云计算的深度融合,高效、可扩展的网络互联技术将持续演进,支撑下一代分布式智能系统的发展。

http://www.cnnetsun.cn/news/131500.html

相关文章:

  • Gemini 3学生身份验证,免费使用一年!详细教程
  • Blynk物联网开发完整指南:零基础快速构建智能硬件项目
  • 基于“Smishing Triad”事件的短信钓鱼攻击机制与防御体系研究
  • 基于Python的实时新闻抓取与分析系统
  • 掌握Pikafish象棋引擎:从零开始的智能分析实战指南
  • Mermaid.js数学公式渲染技术深度解析
  • Windows ISO 补丁集成脚本完整指南
  • 当网站提示“不安全”:SSL证书,你的数字护身符
  • FileLocator Pro v9.3.3544便携版:高效文件搜索工具
  • VTLA: Vision-Tactile-Language-Action Modelwith Preference Learning for InsertionManipulation
  • 端子焊接焊点检测愁?智能视觉方案 99.99% 检出率,告别人工显微镜目测难题!
  • 2025 技术解析:智能指纹变异技术底层实现与抗关联逻辑
  • 红帽系:升级gcc4.8为gcc为7.5版本
  • Scrcpy安卓投屏工具:5分钟快速上手指南
  • fs.promises 深入全面讲解
  • Delphi逆向工程:从入门到精通的完整工具指南
  • 从理论到工程落地:构建高效量子-经典Agent协同的7个关键阶段
  • 【智能家居Agent设备兼容难题】:破解主流设备接入壁垒的5大核心技术方案
  • 【每日算法】LeetCode 17. 电话号码的字母组合
  • Twitch掉落自动获取工具:告别手动挂机的智能解决方案
  • 百考通AI:您的智能开题导师,一键生成完美开题报告,让科研之路赢在起点!
  • 如何快速搭建StaMPS:InSAR数据处理完整实战指南
  • 百度网盘下载限速如何彻底解决?Mac用户专属的3步加速方案
  • 传感器数据融合失败?根源竟在初始外参校准(内附工业级校准流程图)
  • 物流仓储分拣效率瓶颈全解析(Agent智能优化大揭秘)
  • WorkTool企业微信自动化工具:从零开始的完整实战指南
  • 你还在用遗传算法?量子Agent已实现全局最优路径动态生成!
  • MCP DP-420图Agent性能调优实战:9个关键指标详解与3倍响应加速秘技
  • 【紧急避坑指南】:云边协同部署中Agent任务分配的4大致命错误
  • 【教育测评Agent自动批改揭秘】:如何用AI实现99%准确率的智能评分系统