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

相关文章

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Spring Boot Interceptor的原理、配置、顺序控制及与Filter的关键区别对比分析

《SpringBootInterceptor的原理、配置、顺序控制及与Filter的关键区别对比分析》本文主要介绍了SpringBoot中的拦截器(Interceptor)及其与过滤器(Filt... 目录前言一、核心功能二、拦截器的实现2.1 定义自定义拦截器2.2 注册拦截器三、多拦截器的执行顺序四、过

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

springboot的controller中如何获取applicatim.yml的配置值

《springboot的controller中如何获取applicatim.yml的配置值》本文介绍了在SpringBoot的Controller中获取application.yml配置值的四种方式,... 目录1. 使用@Value注解(最常用)application.yml 配置Controller 中

springboot中配置logback-spring.xml的方法

《springboot中配置logback-spring.xml的方法》文章介绍了如何在SpringBoot项目中配置logback-spring.xml文件来进行日志管理,包括如何定义日志输出方式、... 目录一、在src/main/resources目录下,也就是在classpath路径下创建logba

Android使用java实现网络连通性检查详解

《Android使用java实现网络连通性检查详解》这篇文章主要为大家详细介绍了Android使用java实现网络连通性检查的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录NetCheck.Java(可直接拷贝)使用示例(Activity/Fragment 内)权限要求

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

Nginx概念、架构、配置与虚拟主机实战操作指南

《Nginx概念、架构、配置与虚拟主机实战操作指南》Nginx是一个高性能的HTTP服务器、反向代理服务器、负载均衡器和IMAP/POP3/SMTP代理服务器,它支持高并发连接,资源占用低,功能全面且... 目录Nginx 深度解析:概念、架构、配置与虚拟主机实战一、Nginx 的概念二、Nginx 的特点

2025最新版Android Studio安装及组件配置教程(SDK、JDK、Gradle)

《2025最新版AndroidStudio安装及组件配置教程(SDK、JDK、Gradle)》:本文主要介绍2025最新版AndroidStudio安装及组件配置(SDK、JDK、Gradle... 目录原生 android 简介Android Studio必备组件一、Android Studio安装二、A