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

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

目录

在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。确保重新启动应用程序或更新连接以查看效果。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux设置RDMA需要遵循以下步骤: 1. 安装RDMA驱动和RDMA工具包 在Linux上安装RDMA驱动和RDMA工具包可以使用以下命令: ``` sudo apt-get install rdma-core libibverbs-dev librdmacm-dev ibutils ``` 2. 配置RDMA网卡Linux配置RDMA网卡需要编辑网络配置文件,并确保以下内容: ``` DEVICE <device_name> ONBOOT yes IPADDR <ip_address> NETMASK <netmask> NETWORK <network_address> BROADCAST <broadcast_address> MTU <mtu> BOOTPROTO none USERCTL no ``` 其中,<device_name>是RDMA网卡的名称,<ip_address>是RDMA网卡的IP地址,<netmask>是子网掩码,<network_address>是网络地址,<broadcast_address>是广播地址,<mtu>是最大传输单元。 3. 配置IB服务 在Linux配置IB服务需要编辑IB服务配置文件,并确保以下内容: ``` IBPORTS=1 ``` 其中,IBPORTS指定了IB端口的数量。 4. 配置RDMA服务 在Linux配置RDMA服务需要编辑RDMA服务配置文件,并确保以下内容: ``` SERVICE_NAME=rdma DAEMON=/usr/sbin/rdma DAEMON_ARGS="-d" LOCKFILE=/var/lock/subsys/$SERVICE_NAME ``` 其中,SERVICE_NAME指定了RDMA服务的名称,DAEMON指定了RDMA服务的运行命令,DAEMON_ARGS指定了RDMA服务的命令行参数,LOCKFILE指定了RDMA服务的锁文件路径。 5. 启动RDMA服务 在Linux上启动RDMA服务可以使用以下命令: ``` sudo service rdma start ``` 6. 配置RDMA应用程序 在Linux配置RDMA应用程序需要使用RDMA工具包中的命令行工具,如ibv_rc_pingpong、ibv_ud_pingpong等。具体配置方法需要参考相应的RDMA应用程序文档。 总之,RDMALinux下的配置需要注意以下几点:安装RDMA驱动和RDMA工具包、配置RDMA网卡配置IB服务、配置RDMA服务、启动RDMA服务、配置RDMA应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值