这篇文章上次修改于 1054 天前,可能其部分内容已经发生变化,如有疑问可询问作者。

前段时间重新安装最新版本ESXi以后发现改esx.conf的方法失效了,查阅相关文档后找到了解决方法,特此记录。

# 查看当前网卡分配别名情况
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias list

# 运行结果
Bus type  Bus address            Alias
--------  ---------------------  -----
pci       p0000:01:00.0          vmnic0
pci       s00000001:00.00        vmnic3
pci       s00000003:00.00        vmnic5
pci       p0000:02:00.0          vmnic1
pci       p0000:06:00.0          vmnic2
pci       p0000:00:17.0          vmhba0
pci       s00000002:00.00        vmnic4
logical   pci#s00000001:00.00#0  vmnic3
logical   pci#p0000:01:00.0#0    vmnic0
logical   pci#p0000:00:17.0#0    vmhba0
logical   pci#p0000:02:00.0#0    vmnic1
logical   pci#p0000:06:00.0#0    vmnic2
logical   pci#s00000002:00.00#0  vmnic4
logical   pci#s00000003:00.00#0  vmnic5

打开网页管理端后台,依次用网线插拔每个网口就能知道正确的顺序应该是怎么样的,按照正确顺序重新定义每个网卡的Bus address即可,以下是命令示例。

# 为了保险起见建议尽量一次性全部修改完,即使本来就是正确的也重新定义一下,避免出现重启后依然乱序的问题。
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type pci --alias vmnic0 --bus-address p0000:01:00.0
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type pci --alias vmnic1 --bus-address p0000:02:00.0
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type pci --alias vmnic2 --bus-address s00000001:00.00
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type pci --alias vmnic3 --bus-address s00000002:00.00
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type pci --alias vmnic4 --bus-address s00000003:00.00
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type pci --alias vmnic5 --bus-address p0000:06:00.0

# 以下是修改bus-type参数为logical,跟上面一样一一对应即可。
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias vmnic0 --bus-address pci#p0000:01:00.0#0
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias vmnic1 --bus-address pci#p0000:02:00.0#0
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias vmnic2 --bus-address pci#s00000001:00.00#0
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias vmnic3 --bus-address pci#s00000002:00.00#0
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias vmnic4 --bus-address pci#s00000003:00.00#0
localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --bus-type logical --alias vmnic5 --bus-address pci#p0000:0600.0#0

修改完后重启生效。