I see this question popping up a lot, so I thought I’d just throw up this quick blog entry with the command that’s necessary to set the load balancing policy for a VMware ESX vSwitch.
In VMware ESX 3.5 U2 (which users should be using if at all possible, now that it’s validated by Microsoft), the command to do this is vmware-vim-cmd:
vmware-vim-cmd /hostsvc/net/vswitch_setpolicy
–nicteaming-policy=loadbalance_ip vSwitch1
This command sets the vSwitch to use “Route based on ip hash”. To set the vSwitch back to “Route based on the originating virtual port ID”, use this command:
vmware-vim-cmd /hostsvc/net/vswitch_setpolicy
–nicteaming-policy=loadbalance_srcid vSwitch1
Obviously, users will need to replace vSwitch1 with the appropriate vSwitch that needs to be configured. Note that this command is a bit different than in earlier versions, which used vimsh.
I hope this is useful!
Tags: ESX, Networking, Virtualization, VMware


6 comments
Comments feed for this article
Trackback link
http://blog.scottlowe.org/2008/09/05/setting-vmware-esx-vswitch-load-balancing-policy-via-cli/trackback/
Friday, September 5, 2008 at 11:23 am
Pingback from VMware ESX, NIC Teaming, and VLAN Trunking with HP ProCurve - blog.scottlowe.org - The weblog of an IT pro specializing in virtualization, storage, and servers
Friday, September 5, 2008 at 12:38 pm
Duncan
Keep in mind that if you want to do a scripted install you will need to setup the server that it can have atleast 2 active nics. from the installer normally if you add a nic and set the switch to load balancing on ip you would still only have 1 active nic.
i used the following for the second vswitch (0001), so i set the value “1″ to “two” in the esx.conf file:
/bin/sed -e ’s/net\/vswitch\/child\[0001\]\/teamPolicy\/maxActive = \”1\”/net\/vswitch\/child\[0001\]\/teamPolicy\/maxActive = \”2\”/g’ /tmp/esx.conf.bak >> /etc/vmware/esx.conf
Friday, September 5, 2008 at 12:51 pm
slowe
Good point, Duncan! Thanks for adding that information to the conversation.
Saturday, September 6, 2008 at 7:45 am
ccassel
Is there any difference between modifying the esx.conf and adding two active nics using vswitch_setpolicy or portgroup_set from vmware-vim-cmd? I’ve been doing it like this in my post script, which works as far as I can tell:
esxcfg-vswitch -a vSwitch2
esxcfg-vswitch -L vmnic4 vSwitch2
esxcfg-vswitch -L vmnic6 vSwitch2
esxcfg-vswitch -L vmnic8 vSwitch2
vmware-vim-cmd hostsvc/net/refresh
vmware-vim-cmd hostsvc/net/vswitch_setpolicy –nicorderpolicy-active=vmnic4,vmnic6 –nicorderpolicy-standby=vmnic8 –nicteaming-policy=loadbalance_ip vSwitch2
Friday, September 26, 2008 at 2:02 pm
Jay
I would like to set up multiple vSwitches to utulize one physical nic. I am unable to locate how to add an ip to a second, thrid, or fourth nic and assign that nic to an active state. Can you help ?
Friday, September 26, 2008 at 3:37 pm
slowe
ccassel,
I’m not aware of any difference, other than modifying esx.conf is strongly discouraged.
Jay,
AFAIK there is no way to do it. A physical NIC (pNIC) can be bound to only one vSwitch at a time. The opposite–binding multiple pNICs to a single vSwitch–is easily accomplished via the command line above.
Hope this helps!