目录

多队列网卡环境初始化

一、步骤总结

  1. 创建虚拟网卡(使用hyper-v管理器创建虚拟交换设备)
  2. 将虚拟网卡绑定到WSL(有开源组件能够将多网卡对WSL进行绑定)
  3. 需要设置网卡类型,用于多队列支持(暂无头绪) 1)可尝试虚拟机队列(VMQ),目前不在WSL的可配置范围内

由于wsl虚拟网卡相关资料较少,最后迁移到VMware上 WSL,VMware需要同时使用时,VMware的版本需要高一些,实测12.x不兼容,16.x能够兼容

一、配置修改 1)修改虚拟机的*.vmx文件进行网卡类型配置

# 默认是 e1000,修改为 vmxnet3
ethernet1.virtualDev = "vmxnet3"
# 通过设备编号确定网卡设备
ethernet1.pciSlotNumber = "160"

2)通过命令ethtool -i ens160查看是否支持vmxnet3驱动

lilac@lilac:~$ ethtool -i ens160
driver: vmxnet3
version: 1.6.0.0-k-NAPI

3)通过命令cat /proc/interrupts | grep ens160查看是否支持多队列

lilac@lilac:~$ cat /proc/interrupts | grep ens160
  56:      PCI-MSI 1572864-edge      ens160-rxtx-0
  57:      PCI-MSI 1572865-edge      ens160-rxtx-1
  58:      PCI-MSI 1572866-edge      ens160-rxtx-2
  59:      PCI-MSI 1572867-edge      ens160-rxtx-3
  60:      PCI-MSI 1572868-edge      ens160-rxtx-4
  61:      PCI-MSI 1572869-edge      ens160-rxtx-5
  62:      PCI-MSI 1572870-edge      ens160-rxtx-6
  63:      PCI-MSI 1572871-edge      ens160-rxtx-7
  64:      PCI-MSI 1572872-edge      ens160-event-8

如果你此时已经OK了,下面部分就可以略过…

二、故障排查 当VMware Tools没有正确安装时,vmxnet3驱动不会自动加载。如果虚拟机的VMware Tools无法成功安装,可以尝试以下方法。

1)查看系统是否含有vmxnet3的模块及依赖

lilac@lilac:~$ modprobe vmxnet
modprobe: FATAL: Module vmxnet not found in directory /lib/modules/5.15.0-105-generic
lilac@lilac:~$ modprobe vmxnet3

我的系统中不包含vmxnet,包含vmxnet3,故没有错误提示。

2)配置模块开机时自启动

echo "vmxnet3" >> /etc/modules

touch /etc/modules-load.d/vmxnet3.conf
echo "vmxnet3" >> /etc/modules-load.d/vmxnet3.conf

上述两种方式都可以配置,区别在于/etc/modules-load.d目录下,可以将不同的模块加载需求分隔在不同的文件中,更灵活,适合更复杂的配置场景。

3)查看是否成功加载

lilac@lilac:~$ lsmod | grep vmxnet3
vmxnet3                69632  0

4)还可以检查一下虚拟机的启动日志

lilac@lilac:~$ sudo dmesg | grep vmxnet3
[    3.250013] VMware vmxnet3 virtual NIC driver - version 1.6.0.0-k-NAPI
[    3.258411] vmxnet3 0000:03:00.0: # of Tx queues : 8, # of Rx queues : 8
[    3.267111] vmxnet3 0000:03:00.0 eth0: NIC Link is Up 10000 Mbps
[    3.273888] vmxnet3 0000:0b:00.0: # of Tx queues : 8, # of Rx queues : 8
[    3.281820] vmxnet3 0000:0b:00.0 eth1: NIC Link is Up 10000 Mbps
[    3.393161] vmxnet3 0000:0b:00.0 ens192: renamed from eth1
[    3.431638] vmxnet3 0000:03:00.0 ens160: renamed from eth0
[  164.117435] vmxnet3 0000:0b:00.0 ens192: intr type 3, mode 0, 9 vectors allocated
[  164.117723] vmxnet3 0000:0b:00.0 ens192: NIC Link is Up 10000 Mbps
[  164.123494] vmxnet3 0000:03:00.0 ens160: intr type 3, mode 0, 9 vectors allocated
[  164.123700] vmxnet3 0000:03:00.0 ens160: NIC Link is Up 10000 Mbps

此时已经大功告成了!