1. 搭建RoCEv2实验环境

任务目标

在一台装有支持RoCEv2网卡(如Mellanox ConnectX系列)的Ubuntu 22.04/24.04服务器上,完成以下配置:安装网卡驱动与RDMA软件栈、将网络接口配置为RoCEv2模式、验证两台机器间的RDMA基本连通性。

环境与依赖

  • 硬件:Mellanox ConnectX-4/5/6/7网卡(或其他支持RoCEv2的RDMA网卡)
  • 操作系统:Ubuntu 22.04/24.04 LTS(内核≥5.15)
  • 软件包:rdma-core、ibutils2、perftest、ethtool、iproute2
  • 驱动:NVIDIA/Mellanox OFED驱动(若系统自带mlx5_core驱动可跳过安装,直接验证)

实施步骤

1. 安装驱动与RDMA软件栈

Ubuntu官方内核已包含mlx5_core驱动,多数情况下无需单独安装OFED。若网卡未被识别,则需从NVIDIA官网下载匹配的OFED驱动安装。基础软件包安装命令:

sudo apt update
sudo apt install -y rdma-core ibutils2 perftest ethtool

2. 确认网卡与驱动状态

# 查看RDMA设备是否被识别
rdma link show
# 预期输出示例:link mlx5_0/1 state ACTIVE physical_state LINK_UP

# 查看网卡接口名(如ens2f0np0)
ip link show | grep -E "^[0-9]+:.*(ens|enp)"

3. 配置RoCEv2模式

RoCEv2使用UDP/IP封装,需将网卡RoCE模式设置为v2,并确保接口有IP地址且处于up状态:

# 设置RoCE模式为v2(以mlx5_0为例,接口名以实际为准)
sudo rdma link set mlx5_0 roce_enable=2

# 配置IP地址(示例:192.168.1.1/24,按实际网络规划修改)
sudo ip addr add 192.168.1.1/24 dev ens2f0np0
sudo ip link set ens2f0np0 up

# 确认RoCE模式生效
rdma link show mlx5_0
# 预期输出中应包含 roce_enable: 2

4. 验证基本连通性

在两台机器上分别执行上述配置(IP分别为192.168.1.1和192.168.1.2),然后进行验证:

# 在机器1上执行ping测试(验证IP层连通)
ping -c 3 192.168.1.2

# 在机器1上运行RDMA带宽测试(服务端)
ib_write_bw -d mlx5_0

# 在机器2上运行客户端(连接机器1)
ib_write_bw -d mlx5_0 192.168.1.1

验证方法与判定标准

  • 驱动识别:rdma link show能列出状态为ACTIVE的mlx5设备,说明驱动与硬件正常。
  • RoCEv2模式:rdma link show输出中roce_enable值为2,表示已启用RoCEv2。
  • IP连通性:ping命令能收到回复,说明底层网络配置正确。
  • RDMA连通性:ib_write_bw客户端能连接服务端并显示带宽数据,即证明RoCEv2数据通路正常。若看到类似"throughput"的数值输出,表示RDMA通信成功。

常见问题

  • rdma link show无设备:检查网卡是否被系统识别(lspci | grep Mellanox),若未识别需安装OFED驱动。
  • roce_enable设置失败:确认使用root权限,且网卡驱动为mlx5_core。
  • ib_write_bw连接超时:检查两端IP是否互通、防火墙是否放行UDP端口,以及两端RoCE模式是否一致。