一、IB网络基础回顾:InfiniBand架构概述、链路层与网络层、子网管理器(SM)角色
各位同学,咱们今天先不急着上手配多路径。做网络的人都知道,基础不牢,地动山摇。InfiniBand这东西,说白了就是为高性能计算量身定做的互联技术。我最早接触IB是在一个超算项目里,当时客户要求延迟低于1微秒,以太网怎么调都差口气,换了IB才搞定。嗯,咱们就从最核心的架构说起。
1.1 InfiniBand架构概述
IB网络的核心思想,就是把计算节点、存储设备和网络设备通过高速通道连起来。它不像以太网那样分层复杂,而是走了一条「精简高效」的路子。
我个人习惯把IB架构拆成三块来看:
- 端节点(HCA):就是服务器上的IB网卡,负责把数据从主机内存搬到网络上。我记得第一次调HCA参数时,发现它的DMA引擎比CPU搬运快了一个数量级。
- 交换节点(Switch):负责数据转发,不参与计算。IB交换机比以太网交换机简单,因为它不需要处理复杂的路由协议。
- 链路(Link):物理连接,常见的有4x和12x两种宽度,速率从SDR到NDR一路升级。
关键点:IB网络是通道导向的,数据在发送前先建立一条逻辑通道(QP),后续所有报文都走这条通道。这跟以太网的「无连接」模式完全不同。
你想想看,为什么HPC领域都爱用IB?因为它的RDMA机制让数据可以直接从一台机器的内存搬到另一台,完全绕过CPU。我在项目中见过,同样的MPI程序,用IB比用TCP快了三倍以上。
1.2 链路层与网络层
IB协议栈分两层:链路层和网络层。很多人搞混,我简单说说。
链路层(Link Layer)
链路层负责同一子网内的数据传输。它定义了:
- LID(Local Identifier):16位地址,由子网管理器分配。每个端口一个LID,类似以太网的MAC地址。
- 数据包格式:IB包有LRH(本地路由头),里面包含源LID和目的LID。
- 流控机制:基于信用的流控,防止丢包。我曾经遇到过一个问题,交换机缓冲区配小了,导致性能上不去,调大信用值就解决了。
网络层(Network Layer)
网络层负责跨子网的通信。它引入了:
- GID(Global Identifier):128位地址,基于IPv6格式。说白了就是跨子网时用的「门牌号」。
- GRH(Global Routing Header):当数据需要跨子网时,才带上这个头。
避坑指南:我曾经在配置多子网时,忘了给HCA分配GID,结果跨子网通信死活不通。后来查了半天,发现是SM没配好全局路由。记住:同子网用LID,跨子网必须用GID。
这里有个对比表格,方便你理解:
| 层次 | 地址类型 | 作用范围 | 典型应用 |
|---|---|---|---|
| 链路层 | LID(16位) | 同一子网 | 单子网内通信 |
| 网络层 | GID(128位) | 跨子网 | 多子网互联 |
1.3 子网管理器(SM)角色
SM是IB网络的「大脑」。没有它,IB网络就是一盘散沙。我刚开始学IB时,觉得SM就是个配置工具,后来才发现它干的活远不止这些。
SM的核心职责包括:
- 发现拓扑:SM通过SMP(子网管理包)扫描所有节点和交换机,构建出完整的网络拓扑图。
- 分配LID:给每个端口分配唯一的LID。我记得有一次SM挂了,所有端口LID丢失,整个网络直接瘫痪。
- 计算路由:根据拓扑和策略,计算出最优路径。这就是多路径路由的基础。
- 监控状态:实时检测链路状态,发现故障后重新计算路由。
注意:SM可以运行在交换机上,也可以运行在主机上。生产环境中,我建议至少部署主备两个SM。主SM挂了,备SM能立刻接管。我曾经见过一个客户只配了一个SM,交换机重启后网络起不来,折腾了两小时。
SM的工作流程大致是这样的:
- 启动后,SM发送SMP包发现所有设备。
- 收集完拓扑后,SM计算路由表。
- 将路由表下发到每个交换机的转发引擎。
- 持续监控,如果链路变化,重新计算并下发。
你想想看,为什么SM这么重要?因为IB的转发是无状态的,交换机不维护连接状态,全靠SM下发的转发表。一旦SM出问题,交换机就不知道把数据往哪送了。
核心结论:SM决定了IB网络的可用性和性能。多路径路由的优化,本质上就是让SM算出一条更聪明的路。
本章知识体系图
下面这张图展示了IB网络的核心层次和SM的角色定位,我手绘的,凑合看:
这张图里,SM横跨链路层和网络层,因为它既要管LID分配(链路层),又要管跨子网路由(网络层)。说白了,SM就是IB网络的「总管家」。
个人经验:我建议你在学习多路径路由之前,先搞清楚SM的工作机制。因为多路径的本质,就是让SM在计算路由时,不再只走一条最短路径,而是把流量分散到多条等价路径上。后面几章我们会详细展开。
好了,基础就回顾到这里。记住三个核心点:IB是通道导向的、链路层用LID网络层用GID、SM是网络的大脑。这些概念后面会反复用到。
公众号:蓝海资料掘金营,微信deep3321