I knew that we could check which pNIC a VM had been assigned to using ESXTOP and pressing n to look at the network info. (Unfortunately my lab where I took this screenshot only has a single NIC)
I went searching for the algorithm that is used to determine which pNIC is selected when a VM powers on and found the following:
Algorithm: (virtualPortID>>1) % numActiveNICs
Or in my basic understanding of maths notation:
pNIC selection = (virtualPortID / 2) modulo numActiveNICs
(modulo = Given
two positive numbers, a (the dividend) and n (the divisor), a modulo can be
thought of as the remainder, on division of a by n.)
As an example: A NIC team has vmnic3, vmnic4, vmnic5 (active in
this order).
Therefore vmnic3 = 0, vmnic4 = 1, vmnic5 = 2
So if we look at the port-ids on a vSwitch we can use this to work out which pNIC the VM will be assigned to.
/net/portsets/<vswitch>/ports/> ls
67108865/
67108873/ ===>
67108873 /2 = 33554436 modulo 3 = 0 (VM will use vmnic3)
67108874/ ===> 67108874 /2 = 33554437 modulo 3 = 1 (VM will use
vmnic4)
No comments:
Post a Comment