Skip to content

RoCE 无损网络参数配置 ​

配置并检查 RoCE 网络的 PFC、ECN、DSCP、队列与 ARP 参数。

返回网卡配置索引 | 上一篇:RoCE 网卡 IP 地址配置 | 下一篇:MXRDMA 网卡配置


RoCE网卡还需要配置PFC/ECN拥塞及队列等参数。

定海网卡无损配置请参考 4.2.3.5章节。

云脉网卡无损配置请参考 4.2.4.5章节。

手动配置 ​

创建文件名为init.sh的脚本,并赋予执行权限。

bash
touch init.sh
chmod +x ./init.sh

脚本示例如下:

#!/bin/bash
# 设置ens2np0/ens3np0(通过ibdev2netdev查看可获得)QOS信任模式为DSCP
mlnx_qos -i ens2np0 --trust=dscp
mlnx_qos -i ens3np0 --trust=dscp

# 开启queue5的pfc,ecn功能(使用queue5,需跟交换机配置对齐)
mlnx_qos -i ens2np0 --pfc 0,0,0,0,0,1,0,0
mlnx_qos -i ens3np0 --pfc 0,0,0,0,0,1,0,0
echo 1 > /sys/class/net/ens2np0/ecn/roce_np/enable/5
echo 1 > /sys/class/net/ens2np0/ecn/roce_rp/enable/5
echo 1 > /sys/class/net/ens3np0/ecn/roce_np/enable/5
echo 1 > /sys/class/net/ens3np0/ecn/roce_rp/enable/5

#  设置CNP使用queue6,对应优先级值为48,由于网卡值默认为48,因此该步骤可不用配置
echo 48 > /sys/class/net/ens2np0/ecn/roce_np/cnp_dscp
echo 48 > /sys/class/net/ens3np0/ecn/roce_np/cnp_dscp

# 设置ToS(DSCP) 值,设置网卡mlx5_0/mlx5_1发出的报文携带ToS(DSCP)值为160(160对应queue5)
cma_roce_tos -d mlx5_0 -t 160
cma_roce_tos -d mlx5_1 -t 160
echo 160 > /sys/class/infiniband/mlx5_0/tc/1/traffic_class
echo 160 > /sys/class/infiniband/mlx5_1/tc/1/traffic_class

# 重新学习arp表,配置只答复对应网卡的arp响应
sysctl -w net.ipv4.tcp_ecn=1
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.accept_local=1
ip neigh flush all
#!/bin/bash
# 网卡列表(通过ibdev2netdev查看可获得)
ens="ens2np0 ens3np0"
mlxs="mlx5_0 mlx5_1"
for ens1 in ${ens}
do
mlnx_qos -i ${ens1} --trust=dscp --pfc 0,0,0,0,0,1,0,0
echo 1 > /sys/class/net/${ens1}/ecn/roce_np/enable/5
echo 1 > /sys/class/net/${ens1}/ecn/roce_rp/enable/5
done

for mlx1 in ${mlxs}
do
cma_roce_tos -d ${mlx1} -t 160
echo 160 > /sys/class/infiniband/${mlx1}/tc/1/traffic_class
done

sysctl -w net.ipv4.tcp_ecn=1
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2
sysctl -w net.ipv4.conf.all.accept_local=1
ip neigh flush all

在服务器上设置开机自启动。

以ubuntu 系统举例:

创建开机自启动文件:

bash
cd /etc/systemd/system/
touch roceinit.service

其中,” roceinit.service”中的内容添加为:

[Unit]
Description=roceinit service

[Service]
Type=simple
ExecStart=/***/init.sh #修改为实际目录

[Install]
WantedBy=multi-user.target

然后执行如下命令使能开机自启动:

chmod +x /***/init.sh
sudo systemctl daemon-reload
sudo systemctl enable roceinit #开机自启动
sudo systemctl start roceinit #启动配置
sudo systemctl status roceinit -l #查看状态

检查配置有效性 ​

可用如下方法查看是否使能了配置

  • 查看是否开启了网卡的queue5的PFC
bash
sudo mlnx_qos -i ens2np0

结果要显示:Priority trust state: dscp ,并且PFC configuration priority 5 为1

检查配置有效性

  • 查看是否开配置了网卡发出报文的的ToS(DSCP) 值为160
bash
sudo cma_roce_tos -d mlx5_0

检查配置有效性

bash
cat /sys/class/infiniband/mlx5_0/tc/1/traffic_class

检查配置有效性

  • 查看是否使能了queue5的ECN功能(1为使能)
bash
cat /sys/class/net/ens2f0np0/ecn/roce_np/enable/5
cat /sys/class/net/ens2f0np0/ecn/roce_rp/enable/5

检查配置有效性


返回网卡配置索引 | 上一篇:RoCE 网卡 IP 地址配置 | 下一篇:MXRDMA 网卡配置