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模式是否一致。