RDMA 运维
内容提要
本文介绍RoCE、Soft RoCE与InfiniBand三种RDMA网络的配置与测试方法。RoCE需无损以太网并开启PFC,通过GID选择通信地址;Soft RoCE用软件模拟,适合开发但性能低;InfiniBand依赖子网管理器,性能最高。文中详述了安装工具、查看设备及使用ib_write_bw/lat进行带宽和延迟测试的步骤。
延伸解读
RoCE 依赖无损网络,PFC 是关键
RoCE 要求端到端无损网络,每台交换机建议开启 PFC。若中间经过未开 PFC 的普通交换机,RDMA 仍可用但速度会下降。多跳场景下更依赖 ECN/DCQCN 等流控机制。配置时需确保 MTU 和速率端到端一致,否则可能影响性能。
GID 选择决定通信地址
RoCE 使用 GID 标识通信地址,每个端口有 GID 表,通过 -x 参数选择索引。测试时需确保本地 -x 选对 GID,且远端 IP 可达。示例中 GID[5] 对应 RoCE v2 的 10.0.0.2,测试时使用 -x 5 即可。
Soft RoCE 适合开发,性能远低于硬件
Soft RoCE 用软件模拟 RoCE,适合开发联调,但性能远低于硬件 RoCE。示例中带宽仅 0.14 Gb/s,延迟约 535 微秒,而硬件 RoCE 带宽可达 23 Gb/s,延迟约 3.5 微秒。生产环境不建议使用 Soft RoCE。
InfiniBand 性能最高,但需子网管理器
InfiniBand 依赖子网管理器(SM)管理,端口需获得 LID 才能 Active。测试中带宽达 179.93 Gb/s,延迟约 2.56 微秒,性能优于 RoCE。但需注意不能混入以太交换机,且小网需自行运行 opensm 或使用交换机 SM。
Q&A
RoCE、Soft RoCE 和 InfiniBand 有什么区别?
RoCE 是基于以太网的 RDMA 技术,需要无损网络(开启 PFC),性能较高;Soft RoCE 是软件模拟的 RoCE,运行在普通以太网上,无需 PFC,但性能低,适合开发和联调;InfiniBand 是专用的 RDMA 网络,需要子网管理器(SM)管理,性能最高。
RoCE 网络部署时对交换机有什么要求?
RoCE 需要无损以太网,建议在路径上的每台交换机开启 PFC(优先级流控),多跳时更依赖 ECN/DCQCN。中间不能经过未开启 PFC 的普通交换机,否则性能会下降。
如何查看 RoCE 设备的 GID 信息?
使用命令 `ibv_devinfo -v -d <设备名> | grep -A3 GID` 可以查看 GID 表。例如,对于 mlx5_bond_0,输出会列出多个 GID 索引,每个索引对应不同的地址和 RoCE 版本。
Soft RoCE 如何创建和删除?
创建 Soft RoCE 设备使用命令 `rdma link add rxe0 type rxe netdev eth0`,其中 eth0 是绑定的普通网口。删除使用 `rdma link delete rxe0`。
InfiniBand 网络为什么需要子网管理器(SM)?
InfiniBand 网络必须由子网管理器(SM)管理,SM 负责分配 LID、配置路由等,节点只有在 SM 管理下端口才会变为 Active 状态。没有 SM,InfiniBand 网络无法正常工作。
如何使用 ib_write_bw 测试 RDMA 带宽?
首先确保两端设备正常,然后在服务端运行 `ib_write_bw -d <设备> -x <GID索引> --report_gbits`,在客户端运行 `ib_write_bw -d <设备> -x <GID索引> <服务端IP> --report_gbits`。例如,RoCE 测试中服务端和客户端分别使用 `ib_write_bw -d mlx5_bond_0 -x 5 --report_gbits` 和 `ib_write_bw -d mlx5_bond_0 -x 5 10.0.0.2 --report_gbits`。
Soft RoCE 的性能如何?
Soft RoCE 由于没有硬件 offload,性能远低于硬件 RoCE。例如,在示例中 Soft RoCE 的带宽仅为 0.14 Gb/sec,而硬件 RoCE 可达 23 Gb/sec,延迟也高得多(Soft RoCE 平均 535 微秒,硬件 RoCE 约 3.5 微秒)。因此 Soft RoCE 不适合生产环境。
InfiniBand 测试时如何确认端口状态?
使用 `ibstat <设备>` 命令查看端口状态,例如 `ibstat mlx5_0`,输出中 State 应为 Active,Base lid 应已分配。同时可以使用 `sminfo` 确认子网管理器可达。