用ESXi运行虚拟化系统是一个成熟的方案。一个主要的缺点是,大多数主板只有一个千兆网络适配器,当你希望用esxi做软路由时,你完全希望有额外的网卡。如果主板只有一个网口,怎么办呢?这时我们可以添加usb网卡。usb网卡安装方便,并且安装驱动比较简单。

但是esxi里安装usb网卡时,有一个非常大的缺陷,就是当你重启esxi主机时,usb网卡会丢失。表现为无法删除、无法添加usb网卡,这时usb网卡无法使用。解决方法是,恢复网络管理,重新添加。

有没有一种方法,把usb网卡永久的添加到esxi主机呢?方法是有的。

一,下载usb网卡驱动

https://flings.vmware.com/usb-network-native-driver-for-esxi

二,安装驱动

# esxcli software vib install -d /path/ESXi700-VMKUSB-NIC-FLING-39035884-component-16770668.zip

如果是esxi 7.0则用下面的命令

# esxcli software component apply -d /path/ESXi700-VMKUSB-NIC-FLING-39035884-component-16770668.zip

三,查看usb网卡设备

# esxcli network nic list |grep vusb |awk '{print $1, $8}'

如果插上了usb网卡,会有以下信息出现

vusb0 00:23:54:8c:43:45
vusb1 a0:ce:c8:cd:3d:5d

四,现在,可以通过在vmkusb_nic_fling模块中添加以下选项,使当前的usb网卡映射持久化,就是说,重启后usb网卡照样可以使用。

# esxcli system module parameters set -p "vusb0_mac=00:23:54:8c:43:45 vusb1_mac=a0:ce:c8:cd:3d:5d" -m vmkusb_nic_fling

请注意,必须不回所有的usb网卡,用空格作为分隔符。如果你想添加额外的映射,你必须包括所有以前的选项,否则它将覆盖以前的选项。也就是说,如果之前有一个网卡,已映射了,现在要添加第二个,那个这条命令,就是把两个网卡写上,否则,新的网卡会覆盖旧的网卡信息。

使用esxcli system module parameters list -m vmkusb_nic_fling来验证一下

# esxcli system module parameters list -m vmkusb_nic_fling
Name                        Type    Value              Description
--------------------------  ------  -----------------  -----------
usbCdromPassthroughEnabled  int                        Enable USB CDROM device for USB passtrough: 0 No, 1 Yes
vusb0_mac                   string  00:23:54:8c:43:45  persist vusb0 MAC Address: xx:xx:xx:xx:xx:xx
vusb1_mac                   string  a0:ce:c8:cd:3d:5d  persist vusb1 MAC Address: xx:xx:xx:xx:xx:xx
vusb2_mac                   string                     persist vusb2 MAC Address: xx:xx:xx:xx:xx:xx
vusb3_mac                   string                     persist vusb3 MAC Address: xx:xx:xx:xx:xx:xx
vusb4_mac                   string                     persist vusb4 MAC Address: xx:xx:xx:xx:xx:xx
vusb5_mac                   string                     persist vusb5 MAC Address: xx:xx:xx:xx:xx:xx
vusb6_mac                   string                     persist vusb6 MAC Address: xx:xx:xx:xx:xx:xx
vusb7_mac                   string                     persist vusb7 MAC Address: xx:xx:xx:xx:xx:xx

可以看到两个usb网卡的mac地址了,说明添加成功了,这个时候,重启esxi试一下还在不在。

五,如果你想添加所有的usb网卡,又不知道每个usb网卡对应的mac地址时,又想让这些网卡不丢失,只需使用下面的单行代码。这个命令是列出所有usb网卡,用脚本读出mac,自动写入系统。

# esxcli system module parameters set -p "$(esxcli network nic list |grep vusb |awk '{print $1 "_mac=" $8}' | awk 1 ORS=' ')" -m vmkusb_nic_fling

原文

Tips for using USB Network Adapters with VMware ESXi

9 对 “在Esxi中使用usb网卡的技巧”的想法;

  1. 真是号文章,谢谢博主,感谢你的分享,让我这个小白又学到了一招,非常受用,感谢!

  2. 博主您好,感谢您的分享。遇到个奇怪的问题跟您请教一下。我按照教程添加了8156b的2.5G-usb网卡也可以正常使用。但是系统重启动或者遇到断电再启动esxi会发现vswitch里面usb网卡消失了,需要重新添加回来才行。不知道您有没有遇到这个情况。

    1. 还没有解决,每次重启动只能重新手动再分配一下网卡。我觉得如果有autoexec之类的地方可以用命令行设置一下就好了。不过暂时没找到解决办法。

  3. 还没有解决,每次重启动只能重新手动再分配一下网卡。我觉得如果有autoexec之类的地方可以用命令行设置一下就好了。不过暂时没找到解决办法。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注