找回密码
 加入我们
搜索
      
查看: 1369|回复: 20

[网络] 【网卡卸载】有搞通过vDPA的大佬吗?

[复制链接]
发表于 2025-4-5 13:58 | 显示全部楼层 |阅读模式
想在PVE8上给CX6 DX(OCP)搞通vDPA来实现半虚拟化。



有搞通过的大佬吗?或者说这玩意是必须要DPDK,不能搞in kernel吗?
发表于 2025-4-7 10:49 | 显示全部楼层
用ovs offload就够了
 楼主| 发表于 2025-4-7 18:18 | 显示全部楼层
ksong 发表于 2025-4-7 10:49
用ovs offload就够了

用的是 OVS bridge + virtio 网卡 给虚拟机接入;
        •        虚拟机内是 标准的 virtio 网卡驱动(paravirtualized);
        •        虽然物理网卡(Mellanox CX6)+ OVS 支持 eswitch 硬件卸载,但:

virtio 本身是用户态 TAP 接口,OVS 无法将这种流量 offload 到硬件。

是这个情况吗?
发表于 2025-4-7 19:23 | 显示全部楼层
Dolfin 发表于 2025-4-7 18:18
用的是 OVS bridge + virtio 网卡 给虚拟机接入;
        •        虚拟机内是 标准的 virtio 网卡驱动(paravirtuali ...

不用网卡sr-iov的?
 楼主| 发表于 2025-4-7 20:22 来自手机 | 显示全部楼层
ksong 发表于 2025-4-7 19:23
不用网卡sr-iov的?

VM是Qutscloud,没mellanox驱动
发表于 2025-4-8 09:29 | 显示全部楼层
Dolfin 发表于 2025-4-7 20:22
VM是Qutscloud,没mellanox驱动

qnap不是有cx6网卡的吗,黑q没玩过
 楼主| 发表于 2025-4-8 09:34 | 显示全部楼层
ksong 发表于 2025-4-8 09:29
qnap不是有cx6网卡的吗,黑q没玩过

不是黑的,是给云上和虚拟化准备的系统。看能不能把QTS的驱动挪过来
发表于 2025-4-9 10:21 来自手机 | 显示全部楼层
有两个办法:1. 自己编译mellanox qnap驱动。2. 找一台qnap nas,把驱动copy出来
 楼主| 发表于 2025-4-9 14:24 | 显示全部楼层
summerq 发表于 2025-4-9 10:21
有两个办法:1. 自己编译mellanox qnap驱动。2. 找一台qnap nas,把驱动copy出来

可能2有希望,1的话内核头文件,依赖工具,编译环境都没有,完全不知从何下手
发表于 2025-4-9 21:40 来自手机 | 显示全部楼层
Dolfin 发表于 2025-4-9 14:24
可能2有希望,1的话内核头文件,依赖工具,编译环境都没有,完全不知从何下手 ...

我编译过。qnap开源的toolchain和kernel source都可以下载。但是mellanox不必这样,因为qts就自带了。只要找一台qnap的机器用ssh登陆了就能把ko文件提取出来。然后启动的时候做一个脚本自动modprobe就行
 楼主| 发表于 2025-4-10 03:24 | 显示全部楼层
summerq 发表于 2025-4-9 21:40
我编译过。qnap开源的toolchain和kernel source都可以下载。但是mellanox不必这样,因为qts就自带了。只 ...

有尝试从一台Intel的小物理机把mlx_compat.ko/mlx5_core.ko都挪过去并insmod了,但是绑定驱动可能出问题了,从CX3(mlx4_core.ko)到CX6都识别不了。
日志是这样:
  1. [  511.082187] mlx4_core: Mellanox ConnectX core driver v4.0-0
  2. [  511.082552] mlx4_core: Initializing 0000:00:10.0
  3. [  516.796903] mlx4_core 0000:00:10.0: DMFS high rate steer mode is: default performance
  4. [  516.797675] mlx4_core 0000:00:10.0: 63.008 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x8 link)
  5. [  578.497431] mlx4_core 0000:00:10.0: command 0x23 timed out (go bit not cleared)
  6. [  578.497916] mlx4_core 0000:00:10.0: device is going to be reset
  7. [  578.498280] mlx4_core 0000:00:10.0: crdump: FW doesn't support health buffer access, skipping
  8. [  579.521135] mlx4_core 0000:00:10.0: device was reset successfully
  9. [  579.521509] mlx4_core 0000:00:10.0: Failed to initialize queue pair table, aborting
  10. [  580.550377] mlx4_core: probe of 0000:00:10.0 failed with error -5
  11. [23126.069945] flush_memory.sh (2010): drop_caches: 3
  12. [23126.451160] flush_memory.sh (2674): drop_caches: 3
  13. [31409.537230] mlx4_core: Initializing 0000:00:10.0
  14. [31415.270188] mlx4_core 0000:00:10.0: DMFS high rate steer mode is: default performance
  15. [31415.270931] mlx4_core 0000:00:10.0: 63.008 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x8 link)
  16. [31478.347169] mlx4_core 0000:00:10.0: command 0x23 timed out (go bit not cleared)
  17. [31478.347659] mlx4_core 0000:00:10.0: device is going to be reset
  18. [31478.348014] mlx4_core 0000:00:10.0: crdump: FW doesn't support health buffer access, skipping
  19. [31479.371392] mlx4_core 0000:00:10.0: device was reset successfully
  20. [31479.371764] mlx4_core 0000:00:10.0: Failed to initialize queue pair table, aborting
  21. [31480.401071] mlx4_core: probe of 0000:00:10.0 failed with error -5
复制代码


是必须要开机时候加载吗,还有也不知道这有没有版本差异,或者要求特定的Firmware,或者Qutscloud有硬性限制。。。

点评

看起來是firmware不兼容驅動  发表于 2025-4-10 10:54
发表于 2025-4-10 09:57 来自手机 | 显示全部楼层
你等会 我给你抓一下log。我这边是mlx5的驱动,对应网卡是cx4/5/6。cx3你别用,问题很多(mlx4驱动)
 楼主| 发表于 2025-4-10 10:16 | 显示全部楼层
summerq 发表于 2025-4-10 09:57
你等会 我给你抓一下log。我这边是mlx5的驱动,对应网卡是cx4/5/6。cx3你别用,问题很多(mlx4驱动) ...

是物理威还是VM威?
发表于 2025-4-10 10:52 | 显示全部楼层
本帖最后由 summerq 于 2025-4-10 10:56 编辑
Dolfin 发表于 2025-4-10 10:16
是物理威还是VM威?


我是物理機器,型號h1288x

1. 内核5.10.60
  1. [admin@tvs-h1288x ~]# uname -a
  2. Linux tvs-h1288x 5.10.60-qnap #1 SMP Fri Mar 21 00:14:44 CST 2025 x86_64 GNU/Linux
复制代码


2. 啓動信息包含mlx5,沒有mlx4
  1. [admin@tvs-h1288x ~]# dmesg | grep mlx5
  2. [   26.577751] mlx5_core 0000:02:00.0: firmware version: 14.30.1004
  3. [   26.583824] mlx5_core 0000:02:00.0: 15.752 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x2 link at 0000:00:01.1 (capable of 63.008 Gb/s with 8.0 GT/s PCIe x8 link)
  4. [   26.844911] mlx5_core 0000:02:00.0: E-Switch: Total vports 66, per vport: max uc(1024) max mc(16384)
  5. [   26.860271] mlx5_core 0000:02:00.0: Port module event: module 0, Cable plugged
  6. [   26.872230] mlx5_core 0000:02:00.0: mlx5_fw_tracer_start:815:(pid 3478): FWTracer: Ownership granted and active
  7. [   26.892349] mlx5_core 0000:02:00.1: firmware version: 14.30.1004
  8. [   26.903634] mlx5_core 0000:02:00.1: 15.752 Gb/s available PCIe bandwidth, limited by 8.0 GT/s PCIe x2 link at 0000:00:01.1 (capable of 63.008 Gb/s with 8.0 GT/s PCIe x8 link)
  9. [   27.170359] mlx5_core 0000:02:00.1: E-Switch: Total vports 66, per vport: max uc(1024) max mc(16384)
  10. [   27.187202] mlx5_core 0000:02:00.1: Port module event: module 1, Cable plugged
  11. [   27.214237] mlx5_core 0000:02:00.0: MLX5E: StrdRq(0) RqSz(1024) StrdSz(256) RxCqeCmprss(0)
  12. [   27.491718] mlx5_core 0000:02:00.0: Supported tc offload range - chains: 4294967294, prios: 4294967295
  13. [   27.510403] mlx5_core 0000:02:00.1: MLX5E: StrdRq(0) RqSz(1024) StrdSz(256) RxCqeCmprss(0)
  14. [   27.793892] mlx5_core 0000:02:00.1: Supported tc offload range - chains: 4294967294, prios: 4294967295
  15. [  133.497222] mlx5_core 0000:02:00.1 eth5: Link down
  16. [  133.735955] mlx5_core 0000:02:00.0 eth4: Link up
复制代码


3. 查看loaded modules,包含以下幾個驅動模塊
  1. [admin@tvs-h1288x ~]# lsmod | grep mlx5
  2. mlx5_ib               380928  0
  3. ib_uverbs             126976  1 mlx5_ib
  4. ib_core               299008  9 isert_scst,ib_iser,rdma_cm,ib_cm,iw_cm,bnxt_re,mlx5_ib,ib_uverbs,mlx4_ib
  5. mlx5_core            1323008  1 mlx5_ib
  6. mlx_compat             16384 12 ib_iser,rdma_cm,ib_cm,iw_cm,bnxt_re,mlx5_ib,ib_uverbs,mlx4_ib,ib_core,mlx5_core,mlx4_en,mlx4_core
复制代码


4. 查看驅動位置
  1. [admin@tvs-h1288x 5.10.60-qnap]# ls -l /lib/modules/5.10.60-qnap/mlx*
  2. -rw-r--r-- 1 admin administrators  644112 2025-03-21 03:34 /lib/modules/5.10.60-qnap/mlx4_core.ko
  3. -rw-r--r-- 1 admin administrators  234144 2025-03-21 03:34 /lib/modules/5.10.60-qnap/mlx4_en.ko
  4. lrwxrwxrwx 1 admin administrators      58 2025-04-10 10:34 /lib/modules/5.10.60-qnap/mlx4_ib.ko -> /share/ZFS2_DATA/.qpkg/AdvancedNetDriver/driver/mlx4_ib.ko
  5. -rw-r--r-- 1 admin administrators 2463208 2025-03-21 03:34 /lib/modules/5.10.60-qnap/mlx5_core.ko
  6. lrwxrwxrwx 1 admin administrators      58 2025-04-10 10:34 /lib/modules/5.10.60-qnap/mlx5_ib.ko -> /share/ZFS2_DATA/.qpkg/AdvancedNetDriver/driver/mlx5_ib.ko
  7. -rw-r--r-- 1 admin administrators   22608 2025-03-21 03:34 /lib/modules/5.10.60-qnap/mlx_compat.ko
复制代码


5. 把驅動copy到pc上,查看信息,發現依賴於mlx_compat
  1. modinfo ./mlx5_core.ko
  2. filename:       /root/./mlx5_core.ko
  3. version:        5.3-1.0.0
  4. license:        Dual BSD/GPL
  5. description:    Mellanox 5th generation network adapters (ConnectX series) core driver
  6. author:         Eli Cohen <eli@mellanox.com>
  7. srcversion:     EE17538ED0C8BBC10B43015
  8. alias:          pci:v000015B3d0000A2DCsv*sd*bc*sc*i*
  9. alias:          pci:v000015B3d0000A2D6sv*sd*bc*sc*i*
  10. alias:          pci:v000015B3d0000A2D3sv*sd*bc*sc*i*
  11. alias:          pci:v000015B3d0000A2D2sv*sd*bc*sc*i*
  12. alias:          pci:v000015B3d00001021sv*sd*bc*sc*i*
  13. alias:          pci:v000015B3d0000101Fsv*sd*bc*sc*i*
  14. alias:          pci:v000015B3d0000101Esv*sd*bc*sc*i*
  15. alias:          pci:v000015B3d0000101Dsv*sd*bc*sc*i*
  16. alias:          pci:v000015B3d0000101Csv*sd*bc*sc*i*
  17. alias:          pci:v000015B3d0000101Bsv*sd*bc*sc*i*
  18. alias:          pci:v000015B3d0000101Asv*sd*bc*sc*i*
  19. alias:          pci:v000015B3d00001019sv*sd*bc*sc*i*
  20. alias:          pci:v000015B3d00001018sv*sd*bc*sc*i*
  21. alias:          pci:v000015B3d00001017sv*sd*bc*sc*i*
  22. alias:          pci:v000015B3d00001016sv*sd*bc*sc*i*
  23. alias:          pci:v000015B3d00001015sv*sd*bc*sc*i*
  24. alias:          pci:v000015B3d00001014sv*sd*bc*sc*i*
  25. alias:          pci:v000015B3d00001013sv*sd*bc*sc*i*
  26. depends:        mlx_compat
  27. name:           mlx5_core
  28. vermagic:       5.10.60-qnap SMP mod_unload
  29. parm:           guids:charp
  30. parm:           node_guid:guids configuration. This module parameter will be obsolete!
  31. parm:           num_of_groups:Eswitch offloads number of big groups in FDB table. Valid range 1 - 1024. Default 15 (uint)
  32. parm:           debug_mask:debug mask: 1 = dump cmd data, 2 = dump cmd exec time, 3 = both. Default=0 (uint)
  33. parm:           prof_sel:profile selector. Valid range 0 - 3 (uint)
  34. parm:           probe_vf:probe VFs or not, 0 = not probe, 1 = probe. Default = 1 (bool)
复制代码


6. 我自己試過,此驅動可以兼容原廠connectx-4 LX,connectx-6 LX,connectx-6 DX
 楼主| 发表于 2025-4-10 13:25 | 显示全部楼层
  1. [hasselsmb1@Qnap-cloud /]$ dmesg | grep -i mlx
  2. [   91.182692] mlx5_core 0000:00:10.0: firmware version: 14.32.1900
  3. [   91.183120] mlx5_core 0000:00:10.0: 63.008 Gb/s available PCIe bandwidth (8.0 GT/s PCIe x8 link)
  4. [   91.190514] mlx5_core 0000:00:10.0: handle_hca_cap:701:(pid 0): log_max_qp value in current profile is 18, changing it to HCA capability limit (17)
  5. [   91.486051]  mlx5_init_clock+0x1e4/0x6c0 [mlx5_core]
  6. [   91.486379]  mlx5_load_one+0x6c8/0x1640 [mlx5_core]
  7. [   91.486699]  init_one+0x1ee/0x560 [mlx5_core]
  8. [   91.489599]  __init_backport+0x11a/0x1000 [mlx5_core]
  9. [   91.499181] Modules linked in: mlx5_core(O+) mlx_compat(O) dummy br_netfilter bridge stp xt_connmark ip6table_filter ip6_tables xt_conntrack xt_TCPMSS xt_LOG xt_set ip_set_hash_netiface ip_set_hash_net ip_set xt_MASQUERADE xt_REDIRECT iptable_nat nf_nat xt_policy xt_mark qelf(PO) 8021q uvcvideo videobuf2_v4l2 videobuf2_vmalloc videobuf2_memops videobuf2_common snd_usb_caiaq snd_usb_audio snd_usbmidi_lib snd_seq_midi snd_rawmidi fnotify(O) nfsd nfsd_qlog udf isofs iTCO_wdt vfio_pci irqbypass vfio_virqfd vfio exfat ufsd(PO) jnl(O) cdc_acm pl2303 usbserial ipv6 rndis_host cdc_ether qm2_i2c(O) virtio_net net_failover failover virtio_scsi virtio_blk cirrusfb cirrus intel_ips drbd lru_cache flashcache(O) dm_tier_hro_algo dm_thin_pool dm_bio_prison dm_persistent_data hal_netlink(O) hailo_pci(O) apex(C) gasket(C) r8152(O) usbnet mii igb e1000e mv14xx(O) mpt3sas(O) raid_class k10temp uas usb_storage xhci_pci xhci_hcd usblp uhci_hcd ehci_pci ehci_hcd
复制代码


换了CX4 LX,Dmesg看起来没啥问题



  1. [hasselsmb1@Qnap-cloud driver]$  ls -l /sys/bus/pci/drivers/mlx5_core/
  2. total 0
  3. lrwxrwxrwx 1 admin administrators 0 2025-04-10 13:06 0000:00:10.0 -> ../../../../devices/pci0000:00/0000:00:10.0/
复制代码


驱动绑定,也没啥问题



就是看不到网口。。。固件也更新了。驱动就启动了mlx5_core 和mlx_compat


发表于 2025-4-11 02:39 来自手机 | 显示全部楼层
Dolfin 发表于 2025-4-10 13:25
换了CX4 LX,Dmesg看起来没啥问题



udev更新一把试试:
网卡驱动加载完后等个3-5秒,然后
udevadm control --reload-rules && udevadm trigger
发表于 2025-4-11 03:13 | 显示全部楼层
本帖最后由 幻想国度 于 2025-4-11 06:12 编辑

我发现好几次了,别人回答完你的问题,你是不是又要把主楼删除成“问题已解决,感谢chh”了?

别人花费时间帮助你解决完问题,就把问题删掉,不让后来者搜索到帮助下一个人,这么干疑似有点吃独食了。

幸好这种人只有一个,都这么干这个论坛不如关门得了。
 楼主| 发表于 2025-4-13 00:58 | 显示全部楼层
幻想国度 发表于 2025-4-11 03:13
我发现好几次了,别人回答完你的问题,你是不是又要把主楼删除成“问题已解决,感谢chh”了?

别人花费时 ...

呦,你都发现好几次了,可真是大聪明,
动动手指看看我分享过多少东西。
你一毛线主题没有的人,可真是只吃食,不产食啊
发表于 2025-4-13 10:23 | 显示全部楼层
想要模拟virtio直接上bf2方便又便宜

再说把储存跑vm上内存性能稀烂,根本没法用
 楼主| 发表于 2025-4-17 11:04 | 显示全部楼层
本帖最后由 Dolfin 于 2025-4-17 11:05 编辑
summerq 发表于 2025-4-11 02:39
udev更新一把试试:
网卡驱动加载完后等个3-5秒,然后
udevadm control --reload-rules && udevadm trigg ...


QutsCloud 直通网卡


你说的调优我也尝试了几次,QutsCloud还是无法识别设备,包括CX4 LX / CX6 DX,我不知道是不是我拷贝的mlx5_core.ko相关的驱动包有问题,或者还有什么别的依赖。

现在就是QutsCloud无法识别直通过来的ConnectX 网卡,只能识别出PVE桥接过来的VirtIO网卡,DPDK+VDPA 可能带来更好的性能,同时还能热迁移VM。


VDPA尝试


最好能在PVE上可以解决掉VDPA的情况,然后把VDPA VirtIO网卡给到威联通虚拟机。PVE 8.2 装上OFED驱动后一通操作,创建出来的SF也不能被VDPA mgmtdev识别,果断放弃。

后面做了个套娃,PVE - Rocky 9.5(直通了CX6) - Ubuntu 22,由Rocky做VDPA VirtIO网卡给 Ubuntu。

在Ubuntu下使用FIO对磁盘性能做测试,对比项是来自桥接的VirIO网卡和VDPA VirtIO网卡(in kernel VDPA / OVS 硬件卸载)。


SMB 挂载来自Windows Server的远程磁盘,VDPA性能惨不忍睹,只有常规的一半,就不放出来了,

后面挂载 NVMe-OF-TCP,顺序大文件读取有7%,4k随机读取有15%左右的性能提升。

Screenshot 2025-04-17 at 10.40.44.png


您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-18 20:09 , Processed in 0.015900 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表