本帖最后由 r-MT 于 2021-1-21 01:29 编辑
洋垃圾改造的Mellanox的ConnectX-3万兆网卡,几乎所有主流系统都能免驱以及相关的驱动,在群辉和威联通上都免驱。便宜,咸鱼上单口才6-70元,双口卡在100左右(是MCX341A单口卡破解成MCX342A双口卡),加根直连线带模块50左右,双卡总成本200左右就能让你的威联通nas和电脑进行万兆的互联。缺点esxi不能sr-iov,设置sr-iov过程比较繁琐,单口卡vf最多设置成8个。 通过在qnap开启sr-iov进行直通vf,低成本的万兆卡不仅让你的qnap和电脑之间进行万兆的互联,而且qnap创建的虚拟机直通vf后也全跑在万兆网上。通过在qnap虚拟机上安装op,在千兆网和万兆网的互联的同时,可以提供拨号路由,或者只做旁路去广告翻Q等
一.固件开通sr-iov,直通vf给虚拟机。 大概流程:固件开通sr-iov,修改grub、修改驱动加载添加vf,修复qnap系统自带的libnl库,安装虚拟机补丁直通vf。 1.1ConnectX-3首先需要固件上开通sr-iov。 Win10下载安装官方驱动和固件工具 官方驱动
固件工具
2个都安装一下
windows powershell管理员运行
mlxconfig -d /dev/mst/mt4099_pciconf0 q
开通sr-iov设置命令
mlxconfig -d /dev/mst/mt4099_pciconf0 setSRIOV_EN=1 NUM_OF_VFS=8
#SRIOV_EN=1 开通 NUM_OF_VFS=8设置8个vf
顺便把guid也修正了 查看固件的mac和guid
flint -d /dev/mst/mt4099_pci_cr0 -qq q
如果看到guid也全是ffff
flint -d /dev/mst/mt4099_pci_cr0 -guidAABBCC0300DDEEFE sg
AABBCCDDEEFF是你mac地址
重启后 换上一张卡再次运行设置命令,把2张卡固件的sr-iov全开通。
1.2把一张ConnectX-3插qnap上,和win10实体机直连,直接免驱认出,固件版本最好是4.1以上,53b 53d 882 872等带pcie插槽的机型,修改grub,修改驱动加载
修改qnap的引导盘grup文件,添加pci=realloc
linux /boot/bzImage root=/dev/ram0 rw pci=realloc console=tty0
2个都加上
修改ConnectX-3驱动加载添加vf,下载附件的load_lan_module.sh,解包qnap固件覆盖固件包/etc/init.d/load_lan_module.sh,重新打包,也可以自行修改如下红字为新增,修改2个部分
(1)
echo "/sbin/insmod $module_file"${MULTI_PORTS}" (ret=$ret)" >>$LOG_FILE else insert_mt27500modules() { /sbin/depmod /sbin/modprobe mlx_compat /sbin/modprobe mlx4_core port_type_array=2,2 num_vfs=6,0,0 probe_vf=0,0,0log_num_mgm_entry_size=-1 # /sbin/modprobe mlx4_core msi_x=0 /sbin/modprobe mlx4_en /sbin/modprobe mlx5_core } check_viddid_to_insert_module() { for viddid in "${VIDDID_LIST[@]}"
PS:这个双口破解卡在qnap里面最多只能设置成合计6个vf+2个pf,超过就会出错,一个都建立不了 num_vfs=6,0,0就是在端口1建立6个vf或者也可以改成num_vfs=3,3,0,就是2个端口分别虚拟3个vf。
(2)然后在下面
"/lib/modules/misc/mlx4_en.ko" "/lib/modules/misc/mlx5_core.ko" ) # check_viddid_to_insert_module (此行删除或注释掉) insert_mt27500modules ############################## I40E VIDDID_LIST=( 80861583 #Ethernet Controller XL710 for 40GbE * 2QSFP+ 80861572 #Ethernet Controller XL710 for 10GbE * 4 SFP+
重新打包固件重启
运行/sbin/lspci
已经出现6张vf网卡了
1.3修复威联通自带的libnl库
qnap的libnl库有问题,会导致直通SR-IOV VF网卡失败,解包固件删除/lib/目录下面所有“libnl-”开头的文件,把附件lib.tgz解压后全部拷贝进/lib/目录,在linux下解压用cp -a -d 复制进固件/lib目录,或者用tar zxvf./lib.tgz -C 指定目录固件目录 重新打包固件重启 rm -f ./xxx/lib/libnl-* tar zxf ./lib.tgz -C ./xxx/
1.4 安装虚拟机补丁直通vf网卡给虚拟机 以我为例model.ini里面填主卡MT27500 Family [ConnectX-3]的pcie插槽数值0000:00:01.0。然后运行补丁 [ PT PCIE SLOT ] PTSLOTS = 3 SLOT_1 = 0000:00:01.0 SLOT_2 = 0000:00:01.1 SLOT_3 = 0000:00:1c.7
虚拟机Ubuntu18.04或者win10等,然后把其中的一个MT27500/MT27520Family [ConnectX-3/ConnectX-3 Pro Virtual Function]直通给虚拟机,注意不是直通MT27500 Family[ConnectX-3]
虚拟机Win10 Ubuntu等linux的话一样要安装上述的官方Mellanox官方驱动,才能正确使用识别vf网卡,今年新出的openwrt内核已经直接免驱vf驱动。
附件下载连接
|