RoCEv2网络部署----Mellanox网卡配置

2023-12-01 03:30

本文主要是介绍RoCEv2网络部署----Mellanox网卡配置,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mellanox 网卡配置RoCEv2步骤,

1. 设置RDMA CM 模式v2
cma_roce_mode -d mlx5_1 -p 1 -m 2
检查RDMA CM的RoCE模式
在这里插入图片描述
2. 开启 DCQCN 在priority 3
echo 1 > /sys/class/net/ens1np0/ecn/roce_np/enable/3
echo 1 > /sys/class/net/ens1np0/ecn/roce_rp/enable/3
DCQCN优先级为priority 3
在这里插入图片描述

3. 设置CNP DSCP or 802p (PCP) priority
echo 48 > /sys/class/net/ens1np0/ecn/roce_np/cnp_dscp
echo 6 > /sys/class/net/ens1np0/ecn/roce_np/cnp_802p_prio
设置CNP dscp 和802p(PCP),dscp=48
在这里插入图片描述
4. 设置网卡QoS
查看网卡默认当前配置
mlnx_qos -i ens1np0 网卡当前配置
在这里插入图片描述

设置队列3 PFC,后面打流测试让RoCEv2流量跑在队列3中,
mlnx_qos -i ens1np0 -f 0,0,0,1,0,0,0,0 开启priority 3 pfc

在这里插入图片描述

默认priority 0 对应tc1,priority 1 对应tc0,调整成一一对应,看实际情况也可以不调整。
mlnx_qos -i ens1np0 -p 0,1,2,3,4,5,6,7 设置priority和tc对应关系

在这里插入图片描述
一般默认的协议报文跑在队列7,CNP dscp=48 跑在队列6,所以这两个队列优先调度,其它0-5轮询调度,RoCEv2流量在队列3可以加大权重。
mlnx_qos -i ens1np0 -s ets,ets,ets,ets,ets,ets,strict,strict -t 10,10,10,50,10,10,0,0 设置出向队列调度,tc7,tc6严格优先级,tc0-5按权重轮询
在这里插入图片描述

一般队列6和7流量不会很大,可以适当设置限速。
mlnx_qos -i ens1np0 -r 0,0,0,0,0,0,30,20 队列限速
在这里插入图片描述

网卡优先级类型默认802p(PCP),改成dscp。
mlnx_qos -i ens1np0 --trust=dscp 设置接口信任dscp
在这里插入图片描述
5. 网络交换机上配置相应的队列3 FPC,ECN
网络设备如何部署,可以参考这篇文章RoCEv2网络部署实践一起看。

使用ib_send_bw 命令可以打流测试,参数加上 -T 96 可以设置RoCEv2流量的TOS 96 也就是dscp=24 对应priority 3
client 端:
ib_send_bw -d mlx5_1 --report_gbits -F --run_infinitely -R -T 96 192.168.1.99
server 端:
ib_send_bw -d mlx5_1 --report_gbits -F --run_infinitely -R -T 96
在这里插入图片描述
5. wireshark抓包
Priority 3 开启ecn能力的流量,ecn=10,dscp=24
在这里插入图片描述过滤ip.dsfield.ecn == 0x3 ,拥塞置位的ecn报文
在这里插入图片描述
过滤 infiniband.bth.opcode == 0x81,CNP报文 dscp=48

在这里插入图片描述

这篇关于RoCEv2网络部署----Mellanox网卡配置的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/439618

相关文章

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

nginx 负载均衡配置及如何解决重复登录问题

《nginx负载均衡配置及如何解决重复登录问题》文章详解Nginx源码安装与Docker部署,介绍四层/七层代理区别及负载均衡策略,通过ip_hash解决重复登录问题,对nginx负载均衡配置及如何... 目录一:源码安装:1.配置编译参数2.编译3.编译安装 二,四层代理和七层代理区别1.二者混合使用举例

Java JDK1.8 安装和环境配置教程详解

《JavaJDK1.8安装和环境配置教程详解》文章简要介绍了JDK1.8的安装流程,包括官网下载对应系统版本、安装时选择非系统盘路径、配置JAVA_HOME、CLASSPATH和Path环境变量,... 目录1.下载JDK2.安装JDK3.配置环境变量4.检验JDK官网下载地址:Java Downloads

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Spring Boot spring-boot-maven-plugin 参数配置详解(最新推荐)

《SpringBootspring-boot-maven-plugin参数配置详解(最新推荐)》文章介绍了SpringBootMaven插件的5个核心目标(repackage、run、start... 目录一 spring-boot-maven-plugin 插件的5个Goals二 应用场景1 重新打包应用

Java中读取YAML文件配置信息常见问题及解决方法

《Java中读取YAML文件配置信息常见问题及解决方法》:本文主要介绍Java中读取YAML文件配置信息常见问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录1 使用Spring Boot的@ConfigurationProperties2. 使用@Valu

Jenkins分布式集群配置方式

《Jenkins分布式集群配置方式》:本文主要介绍Jenkins分布式集群配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装jenkins2.配置集群总结Jenkins是一个开源项目,它提供了一个容易使用的持续集成系统,并且提供了大量的plugin满

如何在Ubuntu 24.04上部署Zabbix 7.0对服务器进行监控

《如何在Ubuntu24.04上部署Zabbix7.0对服务器进行监控》在Ubuntu24.04上部署Zabbix7.0监控阿里云ECS服务器,需配置MariaDB数据库、开放10050/1005... 目录软硬件信息部署步骤步骤 1:安装并配置mariadb步骤 2:安装Zabbix 7.0 Server

SpringBoot线程池配置使用示例详解

《SpringBoot线程池配置使用示例详解》SpringBoot集成@Async注解,支持线程池参数配置(核心数、队列容量、拒绝策略等)及生命周期管理,结合监控与任务装饰器,提升异步处理效率与系统... 目录一、核心特性二、添加依赖三、参数详解四、配置线程池五、应用实践代码说明拒绝策略(Rejected