RXE RDMA测试学习环境搭建

测试环境信息

在ubuntu20.04.6 LTS (Focal Fossa)上建立RXE学习环境。

安装工具和依赖

sudo apt install automake libtool
sudo apt install libibverbs-dev libibmad-dev librdmacm-dev libibumad-dev libpci-dev
sudo apt-get install libibverbs1 ibverbs-utils librdmacm1 libibumad3 ibverbs-providers rdma-core perftest infiniband-diags

创建RXE RDMA设备

RXE是RoCEv2的软件实现,它基于UDP协议,使用普通网卡收发IB报文,所以IB设备需要和网卡绑定。首先确认网卡名字,这里使用enp3s0这张网卡,执行如下命令建立RXE设备连接。

sudo modprobe rdma_rxe rdma_cm ib_umad
sudo rdma link add rxe_0 type rxe netdev enp3s0

测试RXE设备

server执行:

$ ib_send_bw -d rxe_0

client执行:

$ ib_send_bw -d rxe_0 localhost

RXE驱动架构

为了提高驱动程序的安全性、灵活性、性能和兼容性,RDMA实现包含KMD 和 UMD 两个重要组件,它们分别负责不同的任务和运行在不同的模式下。RXE是RDMA的软件实现,当然也要符合RDMA驱动的一般设计规则。

RXE的用户态代码路径:rdma-core/providers/rxe/

RXE的内核代码路径:kernel/driver/infiniband/sw/rxe/


总结

RXE的RDMA实现很早就开源在内核主线,想要深入理解RDMA工作原理结合测试用例分析内核代码实现。

参考文章

百度安全验证

结束

<think>嗯,用户问的是如何在Ubuntu 24.04上配置基于以太网的RDMA。首先,我需要回忆一下RDMA的基本知识,以及它在Linux系统中的配置步骤。RDMA(远程直接内存访问)允许计算机之间直接访问内存,绕过操作系统,这对高性能计算和低延迟应用很重要。基于以太网的RDMA通常指的是RoCE(RDMA over Converged Ethernet),分为RoCE v1和RoCE v2,其中v2使用UDP协议,支持路由。 接下来,我需要考虑Ubuntu 24.04的特定情况。可能涉及的步骤包括硬件兼容性检查、安装必要的驱动和软件包、配置网络参数、加载内核模块,以及测试验证。根据引用中的信息,用户之前遇到了安装howdy和Python2的问题,但这里可能需要参考其他资料,不过现有的引用可能没有直接相关的内容。不过,系统引用的例子中提到了安装软件包和解决依赖问题,这可能对安装RDMA相关工具有帮助。 首先,硬件方面,用户需要支持RDMA的网卡,比如Mellanox的ConnectX系列。需要确认网卡型号,并确保有对应的驱动。Ubuntu通常包含开源驱动,但可能需要安装厂商特定的驱动或固件。 然后是软件部分,可能需要安装RDMA的核心库和用户空间工具,比如rdma-core包。安装命令可能是sudo apt install rdma-core。此外,可能需要安装ibverbs-providers,这是提供不同RDMA实现的库,比如mlx4和mlx5对应Mellanox的硬件。 网络配置方面,需要确保以太网接口启用RoCE。可能需要设置适当的MTU(通常为4096或更大),启用PFC(优先级流量控制)和ECN(显式拥塞通知)以确保无损网络。配置这些可能需要修改网络管理工具的配置文件,比如Netplan或systemd-networkd。 内核模块方面,需要加载相关的模块,如rdma_rxe(软RDMA模块)或者mlx4/mlx5相关的模块。如果使用软RDMA,可能需要通过rxe_cfg工具配置。 测试部分,可以使用ibv_devices和ibv_devinfo命令检查RDMA设备是否被识别,使用ib_send_bw等性能测试工具验证功能。 可能遇到的问题包括驱动不兼容、软件包缺失、网络配置错误等。例如,用户可能需要添加特定的软件源来获取最新驱动,或者手动编译驱动。此外,网络设置中的MTU不匹配或交换机配置不当也会导致问题。 还要考虑到Ubuntu 24.04可能较新,某些软件包可能还在更新中,需要确认rdma-core和相关工具的版本是否支持。如果遇到依赖问题,可以参考引用[3]中处理Python2不可用的方法,检查是否有替代包或第三方源可用。 总结步骤大致如下: 1. 确认硬件兼容性。 2. 安装必要的驱动和软件包。 3. 配置网络参数和内核模块。 4. 测试和验证RDMA功能。 需要确保每个步骤都有具体的命令和配置示例,方便用户操作。另外,可能还需要指导用户如何检查日志或使用诊断工具排查问题,比如dmesg或ibstat。</think>### 配置Ubuntu 24.04中RDMA over Ethernet的步骤 #### 1. **确认硬件兼容性** - RDMA over Ethernet(通常指RoCE v2)需要支持该技术的网卡,例如Mellanox ConnectX系列或部分Intel网卡。 - 检查网卡型号和驱动支持: ```bash lspci | grep -i ethernet ``` #### 2. **安装RDMA相关软件包** - 安装`rdma-core`和依赖项: ```bash sudo apt update sudo apt install rdma-core ibverbs-providers libibverbs-dev librdmacm-dev ``` - 若需使用软RDMA(Soft-RoCE),安装`rxe`工具: ```bash sudo apt install linux-modules-extra-$(uname -r) rdma-core-rxe ``` #### 3. **配置网络参数** - **设置MTU**(建议4096): ```bash sudo ip link set dev <网卡名> mtu 4096 ``` - **启用ECN和PFC**(需交换机支持): ```bash # 示例(具体参数需根据网络环境调整) echo 1 | sudo tee /sys/class/net/<网卡名>/ecn/roce_enable ``` #### 4. **加载内核模块** - 加载`rdma_rxe`模块(软RDMA): ```bash sudo modprobe rdma_rxe ``` - 若使用硬件RDMA,加载对应驱动(如`mlx4_core`、`mlx5_core`): ```bash sudo modprobe mlx5_core ``` #### 5. **配置Soft-RoCE(可选)** - 初始化`rxe`接口: ```bash sudo rxe_cfg add <网卡名> sudo rxe_cfg status ``` #### 6. **验证RDMA功能** - 检查RDMA设备是否识别: ```bash ibv_devices ibv_devinfo ``` - 测试性能(需两台主机): ```bash # 服务端 ib_send_bw # 客户端 ib_send_bw <服务端IP> ``` #### 7. **持久化配置** - 修改`/etc/modules`以自动加载内核模块: ```text rdma_rxe mlx5_core ``` - 配置Netplan或NetworkManager以固定MTU和网络参数。 --- ### 常见问题解决 - **驱动问题**:若硬件未识别,尝试更新固件或从厂商官网下载驱动[^1]。 - **性能低下**:检查MTU、ECN/PFC配置,并确保交换机支持RoCE[^2]。 - **软件包依赖错误**:若遇到安装问题,可添加`universe`仓库: ```bash sudo add-apt-repository universe sudo apt update ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

papaofdoudou

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值