Soft-RoCE部署及通信测试
Soft-RoCE
是一种基于软件的RoCE(RDMA over Converged Ethernet)实现。RoCE是一种在以太网上实现RDMA(Remote Direct Memory Access)的技术,它允许数据在网络中直接传输,而无需CPU的干预,从而提高了数据传输的效率和性能。传统的RoCE实现需要专用的网络适配器和交换机,而Soft-RoCE则允许使用普通的以太网适配器和交换机来实现RDMA。Soft-RoCE通常通过内核模块的形式提供,可以在Linux系统上使用。
环境
操作系统:
Windows10+Ubuntu20.04*2(虚拟机)
软件:
VmWare Workstation 16 Pro 16.2.4
虚拟机*2
ubuntu-20.04.3-desktop-amd64
测试步骤
部署RDMA软件栈
确认内核是否支持RXE
cat /boot/config-$(uname -r) | grep RXE
如果CONFIG_RDMA_RXE的值为y或者m,表示当前的操作系统可以使用RXE。
安装用户态动态链接库
sudo apt-get install libibverbs1 ibverbs-utils librdmacm1 libibumad3 ibverbs-providers rdma-core
dpkg -L libibverbs1 //查看包内容
安装完成后查看ibv_devices
安装其他工具
- iproute2
sudo apt-get install iproute2
iproute2是用来替代net-tools软件包的,是一组开源的网络工具集合,比如用更强大ip命令替换了以前常用的ifconfig。我们需要其中的rdma工具来对RXE进行配置。一般的操作系统都已经包含了,安装也很简单:
- perftest
sudo apt-get install perftest
克隆虚拟机
注意:需要选择完整克隆
配置网络模式
两台虚拟机均选择NET模式(N):用于共享主机的IP地址
查看两台虚拟机IP地址
查看Windows主机虚拟网卡IP地址:
这里需要注意如果没在同一网段的话需要更改虚拟机网阔模式为自定义,自定义i选择虚拟网卡
查看两台虚拟机与Windows主机网络连通性
配置RXE网卡
加载内核驱动,modprobe会自动加载其他驱动。
sudo modprobe rdma_rxe
用户态配置
sudo rdma link add rxe0 type rxe netdev ens33
注意这里的rxe_0是RDMA的设备名,可任意取名,ens33为虚拟机的网络设备名,可在 配置网络格式 步骤查看,每个虚拟机可能存在差异
使用ibv_devices查看设备列表
查看虚拟RDMA设备简略信息
ibv_devinfo -d <网卡名称>
注意:步骤配置RXE网卡,两台虚拟机都需要完成。
其他相关命令
删除RDMA内核模块
sudo rdma link delete <rxe name>
其中rxe name为ibv_devices显示的rxe设备名称
查看RDMA连接状态
rdma link show
更改MTU包大小
sudo ifconfig <网卡名称> mtu <MTU包大小>
显示所有RDMA网口的所有信息
ibv_devinfo -v
查看链路类型
ibstat
查看网络中infiniband设备
ibnodes
验证端到端 RDMA 通讯是否在用户空间应用程序中正常工作
server
ibping -S -C mlx4_0 -P 1
client
ibping -c 10000 -f -C mlx4_0 -P 1 -L 49
rping
rping是RDMA的一个示例程序,属于RDMA连接管理库librdmacm。可用于测试两个RDMA节点间的连通性。
rping是一个工具,包含在 librdmacm-utils中,并发送 RDMA 流量。rping与所有 RDMA 驱动的协议(InfiniBand、RoCE 和 iWARP)相关。
server
eddy@eddy:~$ rping -s -v -P
server ping data: rdma-ping-0: ABCDEFGHIJKLMNOP
server ping data: rdma-ping-1: BCDEFGHIJKLMNOPQ
server ping data: rdma-ping-2: CDEFGHIJKLMNOPQR
server ping data: rdma-ping-3: DEFGHIJKLMNOPQRS
server ping data: rdma-ping-4: EFGHIJKLMNOPQRST
server ping data: rdma-ping-5: FGHIJKLMNOPQRSTU
server ping data: rdma-ping-6: GHIJKLMNOPQRSTUV
server ping data: rdma-ping-7: HIJKLMNOPQRSTUVW
server ping data: rdma-ping-8: IJKLMNOPQRSTUVWX
server ping data: rdma-ping-9: JKLMNOPQRSTUVWXY
eddy@eddy:~$
client
eddy@eddy:~$ rping -c -a 192.168.159.131 -C 10 -v -S 30
ping data: rdma-ping-0: ABCDEFGHIJKLMNOP
ping data: rdma-ping-1: BCDEFGHIJKLMNOPQ
ping data: rdma-ping-2: CDEFGHIJKLMNOPQR
ping data: rdma-ping-3: DEFGHIJKLMNOPQRS
ping data: rdma-ping-4: EFGHIJKLMNOPQRST
ping data: rdma-ping-5: FGHIJKLMNOPQRSTU
ping data: rdma-ping-6: GHIJKLMNOPQRSTUV
ping data: rdma-ping-7: HIJKLMNOPQRSTUVW
ping data: rdma-ping-8: IJKLMNOPQRSTUVWX
ping data: rdma-ping-9: JKLMNOPQRSTUVWXY
eddy@eddy:~$
🎇
🥐
👷♂️
参考资料
【RDMA】RDMA通信测试工具|perftest_bandaoyu的博客-CSDN博客_rdma测试
【RDMA】RDMA通信测试工具|perftest_bandaoyu的博客-CSDN博客_rdma测试
RDMA Soft-RoCE实验操作
15. RDMA之RoCE & Soft-RoCE - 知乎 (zhihu.com)
Soft-ROCE的简单实验
配置 InfiniBand 和 RDMA 网络 Red Hat Enterprise Linux 8 | Red Hat Customer Portal
SoftRoCE实践
Understanding InfiniBand Software Commands - Sun Datacenter InfiniBand Switch 648 Topic Set (oracle.com) Infiniband软件命令及解析。
Ubuntu Manpage: rdma-link - rdma link configuration rdma-link - rdma 链接配置。
How To Enable, Verify and Troubleshoot RDMA (force.com)
Soft-RoCE | Runsisi’s Blog
SoftRoCE实践_迷之印记的博客-CSDN博客_soft-rdma perftest
RDMA,InfiniBand_郑泽林的博客-CSDN博客
RDMA] RDMA 初步使用操作 - 知乎 (zhihu.com) ibping测试RDMA