开启SRIOV功能

参考https://www.jianshu.com/p/a101bd367312

1、查看Roce网卡

lspci -vvvv | grep -i ethernet
在这里插入图片描述
确认RoCE能力:lspci -s af:00.0 -vvv | grep Capabilities
有一行包含SR-IOV则表示支持SRIOV:
在这里插入图片描述
查看 /sys/class/net//device/sriov_numvfs 或者 mlx5_num_vfs是否存在并显示虚拟函数的数量。
interface可以使用ibdev2netdev查看:
在这里插入图片描述
在这里插入图片描述
另外cat /sys/bus/pci/devices/<device_id>/sriov_totalvfs命令查看设备支持的最大虚拟化功能(VFs)数量。如果返回的数字大于0,说明设备支持SR-IOV特性。

检查打开SRIOV

如果不支持SRIOV,需要确认以下是否打开:

1、BIOS的SRIOV选项是否开启

可以使用ipmitool远程操作

2、cat /etc/default/grub中是否包含intel_iommmu=on iommu=pt pci=assign-busses

在这里插入图片描述
如果没有,则修改后重启,在/boot/grub/grub.cfg中可以看到:
在这里插入图片描述

3、查看mst设备是否配置mst status,若不存在则执行mst start

在这里插入图片描述
mst start重启后不生效,可以使用crontab -e添加:

@reboot sleep 60 && mst start

然后配置mlxconfig -d <mst_device> s SRIOV_EN=1(这一步是ConnectX3的步骤,X6不用)
在这里插入图片描述

4、查询VF状态

mlxconfig -d /dev/mst/mt4123_pciconf0 q
在这里插入图片描述
如果未启用VF,则开启:mlxconfig -d /dev/mst/mt4123_pciconf0 set SRIOV_EN=1 NUM_OF_VFS=4
在这里插入图片描述

5、查看并修改网卡VF数量

cat /sys/class/net/ens6np0/device/sriov_numvfs
在这里插入图片描述
这样重启后会失效,可以将命令写到crontab :

crontab  -e
@reboot sleep 90 && echo 4 > /sys/class/net/ens6np0/device/sriov_numvfs

6、完成并验证

这时就可以看到VF设备:
在这里插入图片描述

7、验证传输带宽

通过rdma link可以看到设备和接口的对应关系:
在这里插入图片描述
通过ifconfig查看接口的IP,然后:

server:  ib_send_bw -d mlx5_0  --report_gbits  
client: ib_send_bw -d mlx5_0 --report_gbits 192.168.x.x

本例中mlx5_0是PF的设备,IP也是PF的IP;如果需要指定rocev2,需要查看其对应的GID:show_gids
通过-x {gid}指定

传输带宽不足

如果跟实际能力差别较大,可以确认下pcie的能力:
lspci -n -d 15b3:101b -vvv | grep -i width
在这里插入图片描述
然后计算带宽:8G8128/130(pcie3.0的编码方式为128b/130b)=64G

pcie的版本查看:

dmidecode 
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐