k8s RoCE SRIOV环境搭建
确认RoCE能力:lspci -s af:00.0-vvv | grep Capabilities。有一行包含SR-IOV则表示支持SRIOV,1、查看Roce网卡。
开启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
更多推荐
所有评论(0)