当前位置: 首页 > article >正文

Soft-RoCE部署及通信测试

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

在这里插入图片描述

安装其他工具

  1. iproute2
sudo apt-get install iproute2

iproute2是用来替代net-tools软件包的,是一组开源的网络工具集合,比如用更强大ip命令替换了以前常用的ifconfig。我们需要其中的rdma工具来对RXE进行配置。一般的操作系统都已经包含了,安装也很简单:

  1. 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


http://www.kler.cn/a/17200.html

相关文章:

  • Java面向对象编程进阶之包装类
  • 4.4 软件设计:UML顺序图
  • pySpark乱码
  • 图片画廊 day2 (可复制源码)
  • k8s集群安装(kubeadm)
  • 1小时构建Vue3知识体系之vue的生命周期函数
  • 全方位揭秘!大数据从0到1的完美落地之运行流程和分片机制
  • MySQL 表操作
  • asp.net基于web的校园美食派送配送系统
  • 数据恢复软件EasyRecovery16下载安装步骤教程
  • SpringBoot 中的加密模块
  • 辞了外包,上岸字节我落泪了,400多个日夜没人知道我付出了多少....
  • 【C语言】typedef关键字
  • RocketMQ 底层实现原理
  • 神秘的IP地址8.8.8.8地址到底是什么?为什么会被用作DNS服务器地址呢?
  • GPT详细安装教程-GPT软件国内也能使用
  • JVM学习(九):堆
  • 海思芯片(hi3536av100)启动模式选择
  • Linux centos搭建web服务器
  • 利用Google Colab免费使用GPU服务器详细攻略
  • 自动驾驶中地图匹配定位技术总结
  • Web常见漏洞描述及修复建议
  • 基于YOLOv5的目标检测系统详解(附MATLAB GUI版代码)
  • vue+springboot 实现人脸识别方向
  • windows 下Node.js 版本管理工具
  • Java方法引用:提高代码可读性和可维护性