Home > ESXi, vSphere > HOWTO: Force VMware ESXi to re-order NIC ports to maintain standards

HOWTO: Force VMware ESXi to re-order NIC ports to maintain standards

In some situations, different classes of ESXi hosts will number their PCI slots and thus their NIC’s and ports differently.  This is especially true in the case with 10GbE NIC’s being available in Low Profile PCIe cards and older NIC’s such as 4x 1GbE NIC’s being typically normal profile.  As the slot number affects the port numbering, if you cannot physically place a card in an appropriate slot to change the order, you must change the NIC order manually inside of ESXi.  Note that this is not ideal, as a reinstallation will require this update to be done, to maintain standards – and is easy to forget.

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2019871

This VMware KB article, 2019871 documents the process.  At a high level:

1) Use a program such as WinSCP to browse the remote file system via SSH

2) Edit the /etc/vmware/esx.conf file

3) Look for the following original lines, and modify the order to suit:

ORIGINAL:

/etc/vmware # cat esx.conf | grep vmnic | grep device

/device/000:001:00.0/vmkname = “vmnic0”

/device/000:001:00.1/vmkname = “vmnic1”

/device/000:001:00.2/vmkname = “vmnic2”

/device/000:001:00.3/vmkname = “vmnic3”

/device/000:006:00.0/vmkname = “vmnic4”

/device/000:006:00.1/vmkname = “vmnic5”

/device/000:007:00.0/vmkname = “vmnic6”

/device/000:007:00.1/vmkname = “vmnic7”

/device/000:068:00.0/vmkname = “vmnic8”

/device/000:068:00.1/vmkname = “vmnic9”

RENUMBERED:

/etc/vmware # cat esx.conf | grep vmnic | grep device

/device/000:001:00.0/vmkname = “vmnic0”

/device/000:001:00.1/vmkname = “vmnic1”

/device/000:001:00.2/vmkname = “vmnic2”

/device/000:001:00.3/vmkname = “vmnic3”

/device/000:006:00.0/vmkname = “vmnic6”

/device/000:006:00.1/vmkname = “vmnic7”

/device/000:007:00.0/vmkname = “vmnic8”

/device/000:007:00.1/vmkname = “vmnic9”

/device/000:068:00.0/vmkname = “vmnic4”

/device/000:068:00.1/vmkname = “vmnic5”

What you are seeing is the PCI BUS/Device/Node/Port ID in the 000:068:00:01 numbering.  You can also clearly see from the numbering, WHY the NIC’s came up in the original order, as these are in numerical order.

4) Save the file

5) Reboot the host

6) Verify your NIC’s are correct:

RENUMBERED:

clip_image002

REFERENCE HOST:

clip_image004

7) If necessary, alter the NIC’s assigned to a vSwitch.  As you can see above, the vSwitch-VM on our RENUMBERED HOST was originally using vmnic6 and vmnic7 – but after the reboot, to be similar to the REFERENCE HOST, this should be vmnic8/vmnic9 as the physical ports have not changed, but the numbering has.

And finally a quick caveat – this probably isn’t fully supported.  As such, make sure you know why you’re doing this and what could happen if you make these changes.  Personally, I like having everything match, even if I have different classes, brand or generations of hardware.  Virtualization is supposed to abstract us from the hardware, and this is one of the many ways we can take advantage of it.

Advertisements
Categories: ESXi, vSphere
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: