IT评测·应用市场-qidao123.com技术社区

标题: RDMA栈架构 [打印本页]

作者: 莱莱    时间: 2025-4-16 18:54
标题: RDMA栈架构
一、RDMA基础知识

        远程直接内存访问(RDMA,Remote Direct Memory Access),指可以或许访问(即读写)远程机器的内存。有多种支持 RDMA 的网络协议,包罗:Infiniband、RoCE 和 iWARP。
1.RDMA技能架构与焦点组件

   一、架构分层与焦点组件

  RDMA(Remote Direct Memory Access)技能通过绕过内核协议栈零复制机制实现高效数据传输,其架构分为用户空间内核空间两部分,焦点组件和流程如下:
  

  
  1. 用户空间组件

  
  
  2. 内核空间组件

  
  
  3. Linux内核与用户空间交互

  
  
  二、RDMA技能优势与实现原理

  1. 高带宽

  
  2. 低耽误

  
  3. 跳过内核(Kernel Bypass)

  
  4. 减少CPU负担

  
  
  三、协议对比:RoCE vs. iWARP vs. Infiniband

  特性InfinibandRoCEiWARP网络介质专用InfiniBand网络以太网(需支持DCB/PFC)TCP/IP网络耽误<1μs2~5μs10~50μs适用场景HPC超算中央数据中央(融合网络)跨广域网企业应用设置复杂度高(需专用互换机)中(需优化QoS)低(兼容现有网络)  示例
  
  
  四、典范应用场景

  1. 分布式存储

  
  2. 高性能计算(HPC)

  
  3. 人工智能训练

  
  
  五、挑战与限制

    
2.具体数据结构以及使用

具体 API 定义包罗在内核文件如下:

        头文件ib_verbs.h中包罗的函数和结构可供如下内容使用:
        1.RDMA栈本身
        2.RDMA设备的低级驱动程序
        3.作为消耗者使用RDMA栈的内核模块
   一、焦点数据结构与API解析

  头文件 ib_verbs.h 是RDMA内核开发的焦点,定义了RDMA协议栈的关键数据结构操作接口。以下结合代码片断重点解析:
  1. 焦点数据结构

  
  1. extern struct workqueue_struct *ib_wq;        // 通用工作队列
  2. extern struct workqueue_struct *ib_comp_wq;   // 完成事件工作队列
复制代码
        作用:异步处置惩罚RDMA操作(如发送/接收哀求、完成变乱通知)。
        示例:当网卡完成数据传输后,通过ib_comp_wq触发用户态回调函数。
  二、使用场景与案例解析

  1. RDMA栈本身

  功能:实现RDMA协议的焦点逻辑,包罗连接管理、内存注册、队列对(QP)操作等。
关键API与操作
  
  案例:Kubernetes容器网络
  
  
  2. RDMA设备的低级驱动程序

  功能:驱动物理网卡(如Mellanox ConnectX系列),实现硬件与RDMA栈的交互。
关键API与操作
  
  案例:Mellanox网卡驱动优化
  
  
  3. 作为消耗者使用RDMA栈的内核模块

  功能:其他内核模块(如存储、网络协议)调用RDMA接口实现高性能数据传输。
关键API与操作
  
  案例:NVMe over Fabrics (NVMe-oF)
  
           内核的RDMA栈全部代码位于内核树:CM(通讯管理器)、verbs(内核verbs)等等。



二、Infiniband基础

1.根本概念

        InfiniBand技能不是用于我们常见的网络连接,重要目标是用于服务器端的连接,InfiniBand技能应用于服务器与服务器、服务器跟存储设备。通过InfiniBand传输数据时,数据是以数据包的方式传输,这些数据包会组合成一条一条信息。这些信息操作方式可能作为远程直接内存存取的读写程序。
   一、InfiniBand 的根本概念

  InfiniBand(直译是“无线带宽“”技能,”简称 IB)是一种专为高性能计算计划的网络通讯标准,焦点目标是实现高吞吐量低耽误。它广泛应用于超级计算机、数据中央和分布式存储体系,可以或许高效连接服务器、存储设备等硬件。
  
  二、速率优势:全双工 vs. 半双工

    
  三、虚拟高速公路与虚拟通道

    
  四、InfiniBand 的焦点优势总结

  特性InfiniBand传统 PCI/PCI-X传输模式全双工(双向同步)半双工(单向瓜代)耽误极低(微秒级)较高扩展性支持大规模集群互连限于本地总线连接适用场景高性能计算、分布式存储传统服务器内部设备连接  2.InfiniBand硬件组件_编址

        InfiniBand根其他互联技能一样,它的规范页描述多种硬件组件,其中一些事数据包端点(数据的始发站大概目标地),有些会在子网或子网之间转发数据包。
        常见组件 :主机信道适配器(HCA)、互换机、路由器。
        Infiniband编址:组件唯一是GUID,全球唯一的64位值。GID用于表示端点端口或组播组。LID是一个16位值,子网管理器给每个子网端口都分配一个LID。
   一、GUID(全局唯一标识符)

  GUID(Global Unique Identifier)是 InfiniBand 网络中用于标识硬件组件的基础唯一标识符,具有全局唯一性和永世性。
  1. 分类与功能

  
  2. 作用

  
  
  二、GID(全局标识符)

  GID(Global Identifier)是端口的逻辑标识符,用于在全局范围内寻址端口。它与子网相关,可动态生成。
  1. 生成规则

  
  2. 应用场景

  
  
  三、LID(本地标识符)

  LID(Local Identifier)是子网内的本地地点,由子网管理器动态分配,仅在同一子网内有用。
  1. 分配规则

  
  2. 示例场景

  
  
  四、GUID、GID、LID 的关系与区别

  标识符作用范围唯一性生成方式示例GUID全局硬件唯一,永世硬件固化结点GUID: 0x0002c9030020abcdGID全局子网相关,动态子网前缀 + 端口GUIDfe80::0002:c903:0020:abceLID子网内子网内唯一,动态子网管理器分配单播 LID: 0x001  
  五、实际应用案例

  场景:高性能计算集群

    3.InfiniBand功能_数据包

InfiniBand 协议功能:


   一、队列键(Q_Key)

  Q_Key(Queue Key) 是 InfiniBand 中用于验证不可靠通讯的密钥,确保只有授权的队列对(QP)可以接收数据。
  1. 焦点作用

  
  2. 应用场景

  
  3. 设置示例

  
  
  二、虚拟通道(Virtual Lanes, VL)

  虚拟通道(VL) 是一种在物理链路上划分逻辑通道的机制,用于隔离差别优先级的流量并分配资源。
  1. 焦点功能

  
  2. 实现原理

  
  3. 应用示例

  
  
  三、服务等级(Service Level, SL)

  服务等级(SL) 是 InfiniBand 中定义流量优先级的参数,支持 16 个等级(0~15),通过映射到 VL 实现服务质量(QoS)。
  1. QoS 实现机制

  
  2. 实际应用

  
  
  四、故障切换(Failover)

  故障切换 是 InfiniBand 中实现路径冗余的机制,答应为连接的 QP 定义主路径和备用路径。
  1. 工作原理

  
  2. 实现优势

  
  3. 示例场景

  
  
  五、关键机制对比与协同

  机制焦点功能协同关系Q_Key验证不可靠通讯权限确保组播/单播消息的安全性VL隔离优先级流量,分配物理资源通过 SL 映射实现 QoSSL定义流量优先级依赖 VL 实现资源分配故障切换提供路径冗余,保障通讯连续性依赖子网管理器动态调解路径  4.使用RDMA和InfiniBand的两台主机的通讯流程

   一、场景描述

  假设有两台主机 A 和 B,通过 InfiniBand 网络互连,目标是实现 主机 A 直接向主机 B 的内存写入数据(RDMA Write 操作)。以下是具体通讯流程:
  
  二、通讯流程步调

  1. 初始化网络环境

  
  
  2. 注册内存地区(Memory Region, MR)

  
  
  3. 创建通讯队列对(Queue Pair, QP)

  
  
  4. 主机 A 发起 RDMA Write 操作

  
  
  5. 数据通过 InfiniBand 网络传输

  
  
  6. 主机 B 接收数据

  
  
  


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4