【RDMA】设置网卡默认PFC和ECN-在DSCP基于QoS模式下为Linux驱动程序配置ROCE

文章介绍了在DSCP基于QoS的模式下,如何为Linux驱动的RoCE配置服务质量,包括设置网卡的默认PFC和ECN,以及如何在RDMA-CM上设定ToS/DSCP值。这些配置涉及到使用MLNX_OFED,Mellanox设备,并且部分命令是非持久性的,需要重启或设备重置来应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

在DSCP基于QoS模式下为Linux驱动程序配置ROCE--设置网卡默认PFC和ECN

如何在RDMA-CM QP上设置发出消息的ToS/DSCP值


在DSCP基于QoS模式下为Linux驱动程序配置ROCE--设置网卡默认PFC和ECN

翻译自:RoCE Configuration for Linux Drivers in DSCP-Based QoS Mode (nvidia.com)

说明:
本文提供了在安装了MLNX_OFED和Mellanox设备的情况下,针对丢包网络中运行RoCE的DSCP-based QoS模式的配置示例。

备注:

QoS参数在QP创建时进行设置。在使用RDMA-CM时,可以为由RDMA-CM创建的QP设置QoS参数。

下面的一些配置步骤是永久性或临时性。对于永久性配置,运行mlxconfig后,需要执行设备重置(mlxfwreset)或主机重启。

配置

第1步 - 设置QoS参数
将DSCP(L3)设置为网卡的信任模式

# mlnx_qos -i <interface> --trust dscp

[可选] 为所有RoCE流量设置ToS为106(DSCP 26)(注:此命令是非持久的)

# echo 106 > /sys/class/infiniband/<mlx-device>/tc/1/traffic_class

[可选] 将RDMA-CM的ToS设置为106(DSCP 26)(注:此命令是非持久的)

# cma_roce_tos -d <mlx-device> -t 106

[可选] 启用TCP流量的ECN功能(注:此命令是非持久的)

# sysctl -w net.ipv4.tcp_ecn=1

注解:

<interface> 是指父接口(例如ens2f0)

<vlan-interface> 是指VLAN接口(例如ens2f0.100)

<mst-device> 是指MST设备(例如/dev/mst/mt4115_pciconf0)

<mlx-device> 是指mlx设备(例如mlx5_0)

参考资料

RoCE部署的推荐网络配置示例
以太网交换机解决方案
如何在RDMA-CM QP上设置出口ToS/DSCP

如何在RDMA-CM QP上设置发出消息的ToS/DSCP值

HOWTO SET EGRESS TOS/DSCP ON RDMA-CM QPS 

 翻译自:HowTo Set Egress ToS/DSCP on RDMA-CM QPs (nvidia.com)

描述
本文介绍了配置RDMA-CM QP的ToS/DSCP的命令。此功能从MLNX_OFED 4.0及更高版本开始支持,并支持ConnectX-4适配器。

参考资料

RDMA/RoCE解决方案:

新增了一个RDMA-CM configfs条目,允许用户选择RDMA-CM QP的默认TOS。这对于希望在不更改代码的情况下控制TOS字段的用户非常有用。其他使用rdma_set_option API显式设置TOS的应用程序不受影响,仍然可以按预期工作,并覆盖configfs的值。

要配置TOS,用户可以使用MLNX_OFED 4.0中的cma_roce_tos脚本。

使用示例:

# cma_roce_tos -d <ib_device> -t <tos>

注意:TOS字段为8位,而DSCP字段为6位。要设置DSCP值为X,需要将该值乘以4(向左移位2位)。例如,要设置DSCP值为24,(24x4=96)。将TOS位设置为96。

注意:如果运行perftest包(例如ib_send_bw),运行此命令将更改-T选项(TOS默认值)。换句话说,如果使用此命令,则无需运行-T <tos>。

注意:ECN配置不同,通过sysfs或mlxconfig完成,参见:HowTo Configure DCQCN (RoCE CC) values for ConnectX-4 (Linux)。:ESPCommunity

注意:确保将默认的RDMA CM模式更改为RoCE v2,请参见HowTo Set the Default RoCE Mode When Using RDMA CM。:ESPCommunity

注意:此命令不是持久的。

注意:配置新的ToS/DSCP值仅会影响新创建的QP。确保重新启动应用程序或更新连接以查看效果。

参考资源链接:[Mellanox VMA Library for Linux: User Manual](https://wenku.youkuaiyun.com/doc/ut60q1bit6?utm_source=wenku_answer2doc_content) 要实现GPU Direct RDMA通信,首先需要确保你的硬件操作系统环境支持这一特性。具体来说,需要使用支持RDMA网卡,如Mellanox的ConnectX系列,并且确保已经安装了支持RDMA的驱动软件栈。对于Mellanox VMA库,它是构建在RDMA之上的用户态协议栈,通过该库可以更加方便地实现高性能网络通信。 配置Mellanox VMA库以支持GPU Direct RDMA通信,首先你需要访问Mellanox官方网站下载最新版本的VMA库相关的软件包。接着,按照《Mellanox VMA Library for Linux: User Manual》中提供的安装指南进行安装。在安装过程中,确保你的系统内核支持RDMA,并且已经加载了`ibuverbs``rdma-core`等相关内核模块。 配置步骤通常包括: 1. 设置环境变量,如`RDMAV_HCA`,以指定使用的HCA(Host Channel Adapter)。 2. 确保GPURDMA设备的资源访问权限,比如修改设备的权限设置,以便应用程序可以访问。 3. 配置Mellanox VMA库的相关参数,可以通过环境变量或者在代码中进行设置,以启用GPU Direct RDMA特性。 示例代码片段如下(代码、配置步骤、环境变量设置、VMA API使用,此处略): 在示例代码中,我们将展示如何初始化VMA库,并创建一个RDMA通信环境。通过合理配置,可以使VMA库利用GPU Direct RDMA来加速数据传输,从而为需要大量网络I/O的应用提供高性能的网络解决方案。 完成以上步骤后,你可以运行一些示例程序来验证配置是否成功,并观察网络通信的性能提升。如果在配置过程中遇到任何问题,可以参考《Mellanox VMA Library for Linux: User Manual》中的故障排查部分,或寻求Mellanox社区的支持。 一旦你掌握了如何使用Mellanox VMA库来配置GPU Direct RDMA通信,你将能够为你的应用程序带来显著的性能改进。为了进一步提升你的网络编程能力,建议深入学习《Mellanox VMA Library for Linux: User Manual》,这份手册提供了丰富的知识点实战案例,帮助你更好地理解应用RDMA技术。 参考资源链接:[Mellanox VMA Library for Linux: User Manual](https://wenku.youkuaiyun.com/doc/ut60q1bit6?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值