InfiniBand 专题【左扬精讲】—— InfiniBand 上层:协议、传输与管理层
InfiniBand 专题【左扬精讲】—— InfiniBand 上层:协议、传输与管理层
在上一单元中,我们深入探讨了InfiniBand网络层的传输机制与流量控制原理。
作为高性能互连网络的基石,InfiniBand不仅仅是一套物理和传输规范,更构建了完整的五层协议栈。本单元我们将视线从 "怎么传" 转向 "传什么" 和 "怎么管",聚焦于InfiniBand架构中的上层(Upper Layer)。
上层是InfiniBand与主机应用打交道的入口,所有用户态应用通过上层的接口与InfiniBand结构交互。理解上层的设计哲学,是掌握InfiniBand生态的关键。本单元将围绕三大核心职责展开:上层协议、管理服务协议、以及软件传输动词。
InfiniBand 上层协议 RDMA MPI IPoIB SRP
InfiniBand 架构(5层)
├── 物理层(Physical Layer) ← 第1层:电气/光学信号
├── 链路层(Link Layer) ← 第2层:帧封装、VL、CRC
├── 网络层(Network Layer) ← 第3层:路由、LID
├── 传输层(Transport Layer) ← 第4层:QP、可靠/不可靠服务
└── 上层(Upper Layer) ← 第5层:协议、API、管理 ★ 本单元重点
学习重点提示
本篇深入探讨 InfiniBand 上层的核心知识。以下是每个主题你需要掌握的深度说明:
上层定义与三层职责(What & How & Why):
- What:上层是 InfiniBand 五层架构的第五层(最顶层),是主机应用与 InfiniBand 结构交互的唯一入口,由上层协议、管理服务协议、软件传输动词三大职责组成
- How:能说出上层的架构位置(传输层之上、应用层之下);理解三大职责的协作关系——传输动词是应用接口,上层协议提供语义,管理服务维护子网健康
- Why:理解"为什么需要上层"——没有上层,应用必须直面 QP、VL、RDMA 操作码等硬件细节;上层解耦了硬件能力与业务语义,实现协议兼容与生态复用
MPI 消息传递接口(What & How & Why):
- What:MPI(Message Passing Interface)是用于分布式并行计算的库接口标准,是 HPC 领域事实上的通信标准
- How:能区分 MPI 与 IB 的关系——MPI 可以在多种网络运行,IB 为 MPI 提供最优底层传输;理解 MPI 点对点通信(Send/Receive)如何映射到 IB 的可靠连接服务
- Why:理解"为什么 HPC 首选 MPI over IB"——IB 的亚微秒级延迟和硬件卸载能力,使 MPI 应用能实现传统网络无法达到的性能
IPoIB 协议封装(What & How & Why):
- What:IPoIB(IP over InfiniBand)是将 TCP/IP 数据包封装在 IB 协议栈之上的技术,使 TCP/IP 应用能利用 IB 网络
- How:能说出 IPoIB 的封装原理(TCP/IP → IB 传输层 → IB 网络层);理解其与原生 IB 协议的区别——透明但有封装开销
- Why:理解"为什么需要 IPoIB"——企业存在大量存量 TCP/IP 应用,IPoIB 实现零修改迁移;适合对性能不极致敏感的场景
通道语义与内存语义动词(What & How & Why):
- What:通道语义(rdma_post_send/receive)要求双方用户显式参与;内存语义(rdma_post_write/read)允许单方直接读写远程内存
- How:能画出两种语义的通信流程图;理解通道语义类似 TCP 的 send/receive 模型,内存语义是 RDMA 独有的 One-Sided 操作
- Why:理解"为什么两种语义缺一不可"——通道语义适合请求-响应模式(如 RPC),内存语义适合 HPC 的 One-Sided 操作(如矩阵区块同步),两者覆盖不同场景
SRP 与 iSER 存储协议(What & How & Why):
- What:SRP(SCSI RDMA Protocol)实现块设备远程访问;iSER(iSCSI Extensions for RDMA)是 iSCSI over RDMA 协议
- How:能说出两者都利用 RDMA 实现零拷贝;理解 SRP 的 Pull/Push 模式(写操作 = 目标读取发起方内存)
- Why:理解"为什么存储协议能实现零拷贝"——传统 iSCSI 受限于 TCP/IP 的多次内存拷贝;RDMA 让 HCA 直接 DMA 到应用缓冲区,消除中间拷贝
子网管理与常规服务(What & How & Why):
- What:子网管理使用 SMP(Subnet Management Packet),目标 QP 为 QP0,走 VL15;常规服务使用 GMP(General Management Packet),目标 QP 为 QP1,走 VL0
- How:能区分两者在目标队列对、虚拟通道、流量控制上的差异;理解 SMP 的三个识别要素(有效载荷含 MAD、目标 QP=0、VL15)
- Why:理解"为什么 SMP 不受流控约束"——子网管理需要快速响应(如故障检测),即使网络拥塞也不能被阻塞;否则子网故障无法及时处理
阅读前提 & 建议:
- 前置知识:建议了解链路层基础(LID 寻址、VL 机制),本篇在传输层基础上扩展上层概念
- 不涉及的内容:具体 API 编程细节、Open Fabrics Alliance 库函数实现
- 深度预期:学完本篇后,你能理解上层三大职责的协作关系,能回答"为什么需要子网管理走 VL15",能区分通道语义与内存语义的使用场景
- 后续延伸:可靠性机制(可靠连接/不可靠连接)→ 拥塞控制(PFC/ECN)→ IB 在 HPC/AI 集群中的应用
一、上层概述:定义与职责
What — InfiniBand上层是什么?
上层(Upper Layer)是InfiniBand架构的第五层,也是最接近主机应用的一层。在OSI七层模型的类比中,上层类似于传输层以上的各层(会话层、表示层、应用层),负责高层协议语义和数据表达。
从架构定位看,上层是主机应用与InfiniBand结构交互的唯一入口。所有用户态程序不直接操作InfiniBand的硬件细节,而是通过上层的接口规范与HCA(Host Channel Adapter)通信。
Why — 为什么需要上层?
问题一:硬件能力与应用需求之间的鸿沟
InfiniBand底层(物理层到传输层)提供的是裸的数据传输能力:可靠的字节流或消息传递。但应用需要的是更高层的语义,比如文件访问(存储协议)、并行计算通信(MPI)、标准网络编程接口(TCP/IP)。
没有上层会发生什么?
-
- 应用开发者必须直接面对QP(Queue Pair)、RDMA操作码、VL(Virtual Lane)等底层概念
- 每种应用都需要重新实现连接管理、可靠性保证等通用功能
- 无法复用现有的生态系统(如HPC领域的MPI库、存储领域的SCSI协议)
问题二:协议兼容性的需求
企业环境中存在大量基于TCP/IP构建的应用。将这些应用迁移到InfiniBand需要付出巨大改造成本。IPoIB等上层协议允许应用"零修改"地利用InfiniBand的高性能。
上层承担三大核心职责,它们相互协作,共同为应用提供完整的服务:
上层职责
├── 上层协议(Upper Layer Protocols)
│ ├── 原生IB协议
│ ├── RDMA协议(RDMA over IB)
│ ├── MPI(消息传递接口)
│ ├── IPoIB(IP over InfiniBand)
│ ├── SRP(SCSI RDMA Protocol)
│ ├── iSER(iSCSI Extensions for RDMA)
│ └── SDP、NFSRDMA等
│
├── 管理服务协议(Management Protocols)
│ ├── 子网管理(Subnet Management)
│ │ └── SMP(Subnet Management Packet)
│ └── 常规服务(General Services)
│ └── GMP(General Management Packet)
│
└── 软件传输动词(Software Transport Verbs)
├── 通道语义(Channel Semantics)
│ ├── rdma_post_send # 发送数据
│ └── rdma_post_receive # 接收数据
└── 内存语义(Memory Semantics)
├── rdma_post_write # 写入远程内存
└── rdma_post_read # 读取远程内存
三层职责的协作方式:应用通过传输动词发起操作请求,上层协议负责解释这些请求并映射到底层传输服务,管理服务则确保整个子网的健康运行。
本节小结
-
- 上层定义:InfiniBand第五层,介于传输层与用户应用之间
- 三大职责:上层协议(提供语义)、管理服务(维护子网)、传输动词(应用接口)
- 设计意图:解耦硬件能力与业务语义,实现协议兼容与生态复用
二、上层协议:支持哪些协议
2.1 上层协议的职责范围
What — 上层协议是什么?
上层协议定义了数据如何被组织和解释。它们位于传输层之上,将应用数据封装成InfiniBand传输层能够处理的格式,或将InfiniBand的能力暴露给特定的生态系统(如HPC、存储)。
上层协议的一个关键特性是:InfiniBand架构本身不限制上层协议的数量。理论上任何协议都可以在InfiniBand上运行,这为生态扩展提供了极大灵活性。
2.2 MPI(Message Passing Interface)
What — MPI是什么?
MPI是用于分布式并行计算的库接口标准。在高性能计算(HPC)领域,MPI是事实上的通信标准,几乎所有超级计算机和HPC集群都支持MPI。
MPI不是InfiniBand独有的,但InfiniBand为MPI提供了最优的底层传输支持。当MPI over InfiniBand时,可以充分发挥IB的低延迟和高带宽优势。
Why — 为什么MPI对InfiniBand重要?
问题:MPI如何利用InfiniBand的原生能力?
MPI标准定义了点对点通信(Send/Receive)和集体通信(Broadcast、Gather、AllReduce等)两大类操作。当在InfiniBand上实现MPI时:
-
- 点对点通信可以映射到IB的RDMA操作,实现零拷贝数据传输
- 集体通信(如AllReduce)是HPC的核心操作,IB的硬件加速能显著提升性能
- MPI的语义与IB的可靠连接服务天然契合
没有InfiniBand支持的MPI会发生什么?
-
- 只能使用TCP/IP以太网,受限于软件协议栈开销
- 延迟通常在数十微秒级别,而非IB的亚微秒级
- 带宽受限于以太网速率(通常25Gbps以下)
2.3 IPoIB(IP over InfiniBand)
What — IPoIB是什么?
IPoIB是一种在InfiniBand网络上运行基于TCP/IP协议的技术。它的原理是:将TCP/IP数据包简单封装在InfiniBand协议栈之上,使TCP/IP应用能够利用InfiniBand网络结构进行通信,而无需修改应用代码。
Why — 为什么需要IPoIB?
问题:如何让存量TCP/IP应用享受IB的性能?
企业数据中心的TCP/IP应用数量巨大,重写这些应用使用原生IB协议成本过高。IPoIB提供了透明迁移路径:
-
- 应用看到的仍是标准TCP/IP套接字接口
- 操作系统自动将IP流量路由到IB网络
- 无需修改应用代码即可获得IB的性能收益
IPoIB的局限:封装带来额外开销,且仍受TCP/IP语义约束,无法完全发挥RDMA优势。对于性能敏感型应用,建议使用原生IB协议或SDP。
2.4 SRP(SCSI RDMA Protocol)
What — SRP是什么?
SRP(SCSI RDMA Protocol)允许一台计算机通过RDMA访问另一台计算机连接的存储设备。SRP定义了如何与存储服务协作的规范,实现远程设备访问。
SRP的工作模式与传统的SCSI协议有本质区别:
-
- 写操作:用户向目标写入数据时,目标系统执行从发起方(客户端)的读取操作(Pull模式)
- 读操作:用户发起读取请求时,目标系统执行向发起方的写入操作(Push模式)
Why — SRP的零拷贝优势
问题:传统存储访问的数据拷贝路径
传统iSCSI over TCP/IP的数据路径涉及多次内存拷贝:
-
- 应用缓冲区 → 内核协议栈缓冲区 → 网络驱动 → 目标端重复
- 每跳涉及至少2次内存拷贝
SRP的改进:利用RDMA直接内存访问,数据可以从应用缓冲区直接传送到存储设备,绕过操作系统内核:
-
- 零拷贝:数据直接DMA到/从应用缓冲区
- 低CPU开销:CPU不参与数据移动
- 低延迟:消除软件协议栈开销
2.5 iSER(iSCSI Extensions for RDMA)
What — iSER是什么?
iSER(iSCSI Extensions for RDMA)是基于InfiniBand的存储设备使用的iSCSI over RDMA协议。iSER是iSCSI协议的扩展,将iSCSI的控制平面保留在TCP上,而将数据平面卸载到RDMA。
Why — iSER相比SRP的设计权衡
iSER的核心改进:
-
- 启用零拷贝RDMA,将传输层CRC计算卸载到硬件
- 基于消息边界而非流式传输,消除传统iSCSI和TCP瓶颈
- 高性能存储连接、降低CPU开销
- 数据直接传入传出SCSI缓冲区,无中间数据拷贝
iSER相比SRP的优势:
-
- 提供更多管理功能(继承自iSCSI的成熟生态)
- 兼容现有iSCSI管理软件和工具
- 支持更复杂的存储拓扑(如多路径)
2.6 上层协议对比
| 协议 | 类型 | 核心能力 | 典型场景 | RDMA支持 |
|---|---|---|---|---|
| MPI | 计算通信 | 点对点/集体通信 | HPC集群、分布式训练 | 原生 |
| IPoIB | 网络协议 | TCP/IP透明传输 | 存量应用迁移 | 封装后间接 |
| SRP | 存储协议 | 远程块设备访问 | 存储区域网络 | 原生 |
| iSER | 存储协议 | iSCSI over RDMA | 企业存储 | 原生 |
| SDP | 套接字协议 | 高性能Socket接口 | 数据库、消息队列 | 原生 |
| NFSRDMA | 文件系统协议 | NFS over RDMA | 分布式文件系统 | 原生 |
协议选择建议:这些协议并非互斥,可以根据应用场景同时使用。例如,HPC集群可能同时运行MPI(计算通信)和SRP/iSER(存储访问)。
本节小结
-
- MPI:HPC领域标准,InfiniBand提供最优传输层
- IPoIB:TCP/IP应用的透明迁移路径
- SRP/iSER:存储协议,利用RDMA实现零拷贝
- 协议共存:InfiniBand支持多种上层协议,可按需组合
三、管理服务协议:子网管理与常规服务
3.1 子网管理(Subnet Management)
What — 子网管理是什么?
子网管理定义了特定管理功能的消息和协议。InfiniBand网络由若干子网组成,每个子网独立管理。子网管理协议具有许多独特属性和能力。
子网管理使用特殊的MAD(Management Datagram),称为SMP(Subnet Management Packet)。SMP有三个关键识别要素:
-
- 有效载荷:包含特殊类型的MAD
- 目标QP:定向到QP0(这是SMP独有的特征)
- 虚拟通道:使用VL15(二进制111,十六进制0xF)
Why — 为什么SMP使用QP0和VL15?
QP0的专属性质:
-
- QP0是InfiniBand规范保留的特殊队列对,专门用于子网管理
- 所有SMA(Subnet Management Agent)通过QP0接收和处理SMP
- 普通应用无法使用QP0,保证管理流量的隔离
VL15的优先级机制:
-
- VL15是最高优先级的虚拟通道,专门分配给SMP
- SMP不受传统流量控制约束:当VL15中有SMP待发送时,立即发送,无延迟
- 这确保管理命令能够快速传达,即使在网络拥塞时也不被耽搁
没有这种优先机制会发生什么?
-
- 子网管理命令可能被用户流量阻塞
- 网络故障时无法及时感知和处理
- 子网配置变更需要等待数据传输完成
SMP支持两种路由方式:
SMP 路由
├── 基于LID路由(LID-based Routing)
│ ├── SMP通过目标节点的LID寻址
│ └── 由网络交换机根据LID表转发
│
└── 直接路由(Direct Route)
├── 用于端到端通信(如主机到交换机)
├── 路由信息嵌入在SMP中
└── 绕过LID查找,效率更高
两种路由方式的选择取决于网络拓扑和管理需求。LID路由适合大规模子网,直接路由适合特定场景的优化。
3.2 常规服务(General Services)
What — 常规服务是什么?
常规服务使用通用管理包(GMP,General Management Packet),即MAD(Management Datagram)。与子网管理相比,常规服务面向更广泛的管理功能。
常规服务的识别要素:
-
- 有效载荷:数据包载荷包含GMP
- 目标QP:定向到QP1,每个端口都有QP1
- 虚拟通道:使用除15外的任何VL,默认使用VL0
所有在QP1上接收的GMP由常规服务代理(GSA,General Services Agent)处理。
Why — QP1 vs QP0的设计分离
分离的设计意图:
-
- QP0(SMP):专用于子网拓扑管理,与网络基础设施直接相关
- QP1(GMP):面向一般管理服务,如性能监控、错误管理、配置服务等
流量控制差异:
-
- SMP(QP0/VL15):不受流控约束,立即发送
- GMP(QP1/VL0):像普通数据包一样受流量控制
这种差异是合理的:子网管理需要快速响应(如故障检测),而常规服务可以容忍轻微延迟。
3.3 子网管理与常规服务对比
| 特性 | 子网管理(SMP) | 常规服务(GMP) |
|---|---|---|
| 目标QP | QP0 | QP1 |
| 虚拟通道 | VL15(高优先级) | VL0(默认)/其他VL |
| 流量控制 | 不受约束,立即发送 | 遵循标准流量控制 |
| 路由方式 | LID路由或直接路由 | 基于QP和LID的标准路由 |
| 处理代理 | SMA(Subnet Management Agent) | GSA(General Services Agent) |
| 典型用途 | 拓扑发现、交换机配置、路径管理 | 性能监控、错误报告、配置服务 |
本节小结
-
- 子网管理(SMP):使用QP0和VL15,不受流控约束,保证管理优先级
- 常规服务(GMP):使用QP1和VL0,遵循标准流量控制
- 设计分离:两层管理服务职责分明,避免相互干扰
四、软件传输动词:应用接口规范
4.1 动词的定义与角色
What — 软件传输动词是什么?
软件传输动词(Software Transport Verbs)是描述应用程序如何从消息服务请求动作的规范概念。动词是应用程序到HCA和InfiniBand结构的软件接口。
InfiniBand规范完整定义了动词集合,这些动词作为应用API规范的基础。但规范的职责是定义概念和语义,实际的API实现由Open Fabrics Alliance等组织提供开源实现。
Why — 为什么需要动词抽象?
问题:应用如何与IB硬件交互?
如果没有动词抽象,应用开发者需要:
-
- 理解IB的详细协议规范
- 处理硬件寄存器访问
- 手动管理工作队列(Work Queue)和完成队列(Completion Queue)
动词的价值:
-
- 提供语义清晰的操作接口(send、receive、write、read)
- 隐藏硬件实现细节
- 标准化API,便于不同厂商的IB硬件兼容
4.2 通道语义动词
What — 通道语义是什么?
通道语义(Channel Semantics)要求通信双方用户都显式参与数据传输。这种模式类似于TCP的send/receive模型。
通道语义动词:
-
- rdma_post_send:发送方主动将数据发送到远程节点
- rdma_post_receive:接收方必须预先 posting 接收缓冲区
数据传输过程:发送方发起send请求后,数据从本地缓冲区复制到远程节点的预置接收缓冲区。整个过程中,接收方需要提前准备好缓冲区。
通道语义通信流程
1. 接收方 Posting
接收方 → rdma_post_receive(本地缓冲区) → HCA
↓
2. 发送方 Posting
发送方 → rdma_post_send(数据, 目标地址) → HCA
↓
3. 数据传输
发送方HCA ──RDMA Write/Send──→ 接收方缓冲区
↓
4. 完成通知
接收方HCA → CQ(完成队列)→ 接收方感知数据到达
特点:接收方必须先准备好缓冲区,否则发送方无法发送数据(类似TCP的listen模式)。
4.3 内存语义动词
What — 内存语义是什么?
内存语义(Memory Semantics)允许直接读写远程内存,而无需远程节点的显式参与。这种模式是RDMA的核心能力。
内存语义动词:
-
- rdma_post_write:从主动用户内存写入被动用户内存(Push模式)
- rdma_post_read:从被动用户内存读取到主动用户内存(Pull模式)
关键点:被动方(远程节点)无需 posting 任何操作,数据移动完全由主动方控制。
内存语义通信流程(以Write为例)
1. 主动方直接发起
主动方 → rdma_post_write(本地缓冲区, 远程地址, 长度) → HCA
↓
2. 硬件执行
主动方HCA ──RDMA Read/Write──→ 远程节点的指定内存地址
↓
3. 完成通知
主动方HCA → CQ → 主动方感知操作完成
(远程节点完全无感知,除非配置MR验证等)
特点:单向数据移动,远程节点零参与,这使得内存语义特别适合高性能计算中的One-Sided操作。
4.4 通道语义 vs 内存语义对比
| 对比维度 | 通道语义 | 内存语义 |
|---|---|---|
| 动词 | rdma_post_send, rdma_post_receive | rdma_post_write, rdma_post_read |
| 双方参与 | 需要(发送方+接收方都要posting) | 单向(仅主动方posting) |
| 类比 | TCP send/receive | RDMA直接内存访问 |
| 数据方向 | 双向(需配对操作) | 单向(主动方控制方向) |
| 典型应用 | 消息传递、请求-响应模式 | 分布式内存访问、栅栏同步 |
| 编程复杂度 | 中等(需协调双方) | 较低(无需远程配合) |
编程选择:通道语义适合双向通信场景(如客户端-服务器模型),内存语义适合高性能计算中常见的One-Sided操作(如矩阵运算的区块同步)。
本节小结
-
- 动词定义:应用程序与IB硬件交互的标准化接口
- 通道语义:双方显式参与,类似TCP的send/receive模型
- 内存语义:单方控制,直接读写远程内存,是RDMA的核心优势
- 实际实现:Open Fabrics Alliance提供开源的Verbs API库
五、FAQ:20组高频问题
以下是关于InfiniBand上层的常见问题解答,帮助读者快速查漏补缺:
Q1. InfiniBand上层在五层架构中扮演什么角色?
上层是应用与IB硬件交互的唯一入口,负责协议语义和数据表达。上层位于传输层之上,将底层的数据传输能力封装成应用友好的接口。没有上层,应用必须直面QP、VL等硬件细节。
Q2. 上层与传输层的主要区别是什么?
传输层处理可靠传输机制(QP服务类型、重传策略),上层处理协议语义和数据解释。传输层关心的是"怎么可靠地传",上层关心的是"传的是什么"。
Q3. 为什么InfiniBand不限制上层协议的数量?
这是架构设计的选择,确保最大灵活性。InfiniBand专注于提供高性能传输能力,而将协议定义权交给生态系统。任何基于消息的数据交换都可以作为上层协议运行。
Q4. MPI与IB是什么关系?
MPI是通信接口标准,IB是物理传输层。MPI可以在多种网络(以太网、Omni-Path等)上运行,但IB为MPI提供了最优性能。HPC领域通常选择IB作为MPI的底层网络。
Q5. IPoIB相比原生IB协议有什么优势和劣势?
优势是应用零修改即可迁移,劣势是性能有损失。IPoIB将IP流量封装在IB上,透明但有开销。对于性能敏感的应用,建议使用原生IB协议。
Q6. SRP和iSCSI的主要区别是什么?
SRP使用纯RDMA数据传输,iSCSI over TCP/IP。SRP可以实现零拷贝和更低延迟,但功能上不如iSCSI完善。iSER是折中方案:保留iSCSI管理能力,数据平面使用RDMA。
Q7. 为什么SRP的写操作是从发起方读取而非写入?
这是RDMA的Pull/Push模式设计。SRP写操作时,目标设备执行从发起方的内存读取数据(Pull模式)。这种设计简化了目标端存储系统的写入流程。
Q8. 什么是零拷贝?为什么RDMA能实现零拷贝?
零拷贝指数据从应用缓冲区到网络的传输过程不经过CPU拷贝和内核缓冲区。RDMA的内存语义允许HCA直接访问用户空间内存,绕过操作系统,实现真正的零拷贝。
Q9. QP0、QP1与普通QP有什么区别?
QP0/QP1是保留的管理队列对,普通QP用于应用数据传输。QP0专用于子网管理(SMP),QP1用于常规服务(GMP),普通应用不能使用这两个队列。
Q10. 为什么SMP使用VL15而不是其他VL?
VL15是最高优先级通道,专为管理流量设计。VL15有专属的流控机制,SMP可随时发送无需等待信用值。这确保即使网络拥塞,管理命令也能及时传达。
Q11. SMP为什么不受传统流量控制约束?
因为子网管理需要快速响应。如果SMP也遵循标准流控,在拥塞时会被用户流量阻塞,导致子网故障无法及时处理。
Q12. 通道语义和内存语义的核心区别是什么?
通道语义需要双方参与,内存语义只需主动方参与。通道语义类似TCP(send/receive配对),内存语义是RDMA独有的One-Sided操作(直接读写远程内存)。
Q13. 什么场景适合使用通道语义?
适合双向通信、请求-响应模式、消息传递类应用。如MPI的点对点通信、RPC调用、数据库客户端-服务器交互等场景。
Q14. 什么场景适合使用内存语义?
适合高性能计算中的One-Sided操作。如分布式矩阵运算的区块更新、栅栏同步、分布式共享内存访问等。
Q15. InfiniBand verbs API与Open Fabrics Alliance是什么关系?
OFA提供开源的verbs实现。InfiniBand规范定义动词的概念和语义,OFA提供实际的API库(libibverbs)实现,让应用能够使用verbs接口编程。
Q16. 为什么SMP支持两种路由方式(LID路由和直接路由)?
不同场景有不同优化需求。LID路由适合大规模网络的标准管理通信,直接路由适合端到端场景的效率优化(如主机到直接连接的交换机)。
Q17. GMP和SMP可以走相同的VL吗?
GMP不能走VL15,只能用其他VL。VL15是SMP的专属通道。如果GMP也走VL15,会与管理流量竞争,违背优先级设计初衷。
Q18. 子网管理与常规服务可以合并吗?
架构上分离是合理的设计选择。子网管理涉及网络拓扑,需要最高优先级;常规服务是辅助性管理。分离简化了实现,也避免了相互干扰。
Q19. 为什么HPC集群首选MPI over IB而不是IPoIB?
性能差异显著。MPI可以充分利用IB的原生RDMA能力,实现微秒级延迟。IPoIB受TCP/IP语义约束,延迟通常高出一个数量级。
Q20. 学习上层需要掌握多少动词?
核心是4个:send、receive、write、read。其他动词是这4个的变体或扩展。理解通道语义与内存语义的区别,就掌握了verbs的核心概念。
FAQ小结
- 上层是应用与IB交互的唯一入口,职责包括协议、管理、API
- QP0/QP1是管理专用队列,VL15是管理专用通道
- 通道语义需双方参与,内存语义只需主动方参与
- 协议选择取决于场景:HPC用MPI,存储用SRP/iSER,迁移用IPoIB
六、下期预告
下期预告
下一单元我们将深入探讨InfiniBand的可靠性机制,包括:
-
- 可靠连接服务:如何保证端到端数据传输的可靠性
- 重传机制:丢包后的恢复策略与超时管理
- 流量控制:Credit-based机制的深入分析
- 死锁避免:多VL环境下的死锁预防策略
这些内容将帮助读者理解InfiniBand如何实现"既快又可靠"的网络通信。

浙公网安备 33010602011771号