Skip to content

vmnic/vmhba sequence changed in ESXi 5.5

Looks like VMware has made a small but momentous change to the vmnic/vmhba numbering with the release of vSphere ESXi 5.5. In previous versions, the vmnic numbering was always determined by the the PCI ID. After adding a new ESXi Host to a Cluster that has been updated from ESXi 5.1 to ESXi 5.5 i noticed that the vmnic numbering was inconsistent although all host were identical. The newly installed host has a different vmnic to PCI ID assignment compared to the hosts that have been updated from ESXi 5.1:


To confirm that, i did a clean install of both versions on the same hardware:

  • VMware-VMvisor-Installer-5.5.0-1331820.x86_64.iso
  • VMware-VMvisor-Installer-5.1.0-799733.x86_64.iso

The result was the same. ESXi 5.1 has a different vmnic numbering compared to ESXi 5.5. After verifying that in the DCUI i discovered a possible reason behind that different numbering. It seems that the first priority for the numbering sequence is now the Slot Number:



11 thoughts on “vmnic/vmhba sequence changed in ESXi 5.5”

    1. In my environment, it appears to be slot and then mac. For example,

      Slot 0
      vmnic0 AC:00:00:00:00:18
      vmnic1 AC:00:00:00:00:1C

      Slot 1
      vmnic2 2C:00:00:00:00:54
      vmnic3 2C:00:00:00:00:55

      If it was purely MAC, vmnic2 & 3 should come first.

  1. Hi, I have trouble with this when applying my host-profile.

    Any suggestions?

    What about rolling pool upgrade? Imho couldn't work in this case!?

    1. If you want to add hosts more frequently i would suggest to change all hosts to the new numbering. Installing 5.1 and upgrading to 5.5 might help, but takes a lot of time.

  2. Thanks for your blog post! Both myself and VMWare referenced it during some troubleshooting after replacing a blade (Cisco UCS B200 M2 with B200 M3) in our chassis. I tried to rename the vmnic by editing the esx.conf file to no success. As has been pointed out those changes are lost on reboot. I worked with VMWare and we came up with this method to re-assign the vmnic alias to the correct slot:

    #localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias list (lists the bus address and the alias for the vmnic's and hba's)

    localcli --plugin-dir /usr/lib/vmware/esxcli/int/ deviceInternal alias store --alias=vmnic0 --bus-type=pci --bus-address=p0000:06:00.0 (to change the alias assignment to the correct bus address)

    I made notes companing the information from UCS manager and vCenter. Essentially i mapped the buss address to the MAC address and the vmnic alias. I used that info to change it accordingly in ESXi (from a putty session to each host that was affected).

    In our case the bus address matched the pci slot sequentially, example:
    p0000:06:00.0 - lowest slot
    p0000:0b:00.0 - highest slot

    Next steps for me is to figure out how to assign the vNIC's in the correct order in our template in UCS Manager.

  3. ran into this issue again when moving some M2 blades from our Prod site to our DR site. On the M2 blades the pci slot order is a litte different:

    s00000001:03.00 - lowest slot
    s00000001:08.00- highest slot

  4. We have an autodeploy environment, with HP blades and vsphere 5.5 installed on them.

    the host profiles were configured with vmnic 128-133
    in the cluster 9 out of 16 hosts are getting vmnic 0-5

    Any idea why are they getting these numbers ? eventhough the profile are being copies from each other on Oneview (meaning the nic order is the same )

Leave a Reply

Your email address will not be published. Required fields are marked *