Appearance
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