One question that crops up from time to time is, “How do I determine which physical port is used for my VM traffic when I configure Originating Virtual Port ID or Mac Hash?”

When you configure a Port Group (or Distributed Virtual Port Group) with either of these load balancing algorithms, ESX hashes *each* virtual port or mac address to *one* of the available vmnics in the NIC team. The idea is that the VMs are balanced over the available vmnics in the team. For example, if we had 20 VMs on a NIC team with four vmnics, we should have five VMs allocated per vmnics.

With vSphere, we’re enhanced esxtop to show which vmnic is used by which VM, (or vmkernel and service console). A screen capture is shown below. I used explicit failover order for the service console (vswif0) and vmkernel ports (iSCSI, FT, VMotion) to ensure deterministic use of vmnic0 and vmnic2. The Port Groups supporting the VMs were configured using “Originating Virtual Port ID” load balancing over vmnic1 and vmnic3. As you can see, in my example, XP_VM1 and XP_VM3 hashed to vmnic1 and the others to vmnic3.


Note: this is included in vSphere. To use it, run “esxtop” from the ESX console and then type “n

(btw, you can quickly get up to speed on the major new VMware vDS and Cisco Nexus 1000V features here)