This is just a quick reference to create a multiplathing iSCSI setup…
Create two virtual kernel switches, one called “iSCSI-1″ and the other called “iSCSI-2″ (and so on if you have more nics)
Then per kernel portgroup ensure that only one of the nics is active. For the “iSCSI-1″ portgroup configure it to override the virtual switch settings and move nic 0 to active and nic 1 to unused. For the “iSCSI-2″ portgroup configure it to override the virtual switch settings and move nic 1 to active and nic 0 to unused.
Now you have to run some esxcli commands to gel things together…. alt-f1 on the esxi console and type “unsupported” followed by your root password. The following is the command i have to run to get both my portgroups to work together on the iscsi hba…. (you can check your vmk number from the networking config screen)
esxcli swiscsi nic add -n vmk1 -d vmhba33
esxcli swiscsi nic add -n vmk2 -d vmhba33
For each target then change the path selection method to “round-robin”.
Go back to storage adapters and click “rescan”
If you want all future iSCSI targets to automatically use round-robin you must also run the following from commandline… (this is for our HP Lefthand, your “storage array type” may be different. Its listed under your target details). Basically sets round robin as a default for this type of array. In general you should do this first before presenting any LUNs etc, else you may have to bounce your box.
esxcli nmp satp setdefaultpsp –satp VMW_SATP_DEFAULT_AA –psp VMW_PSP_RR
Want iSCSI in opensolaris?
Grab SUNWiscsitgt via package manager.
enable the server via svcadm;
svcadm enable iscsitgt
create your zfs iscsi pool; (this command will limit iscsi drive to 500GB in size)
zfs create -V 500G tank/iscsi
set isci on via zfs command;
zfs set shareiscsi=on tank/iscsi
check that target is up and running;
iscsitadm list target -v
Done. Should be able to connect via ip from another machine. I have not covered CHAP or any client side configuration. Assumed isolated LAN.

One of the best articles i have found on this subject is here : http://blog.scottlowe.org/2008/07/16/understanding-nic-utilization-in-vmware-esx/
There is some additional information here on setting up an etherchannel on the cisco side : http://blog.scottlowe.org/2006/12/04/esx-server-nic-teaming-and-vlan-trunking/
This can be handy if you need a single VM to use both physical nics in a load-balanced manner – both outbound and inbound. Of course its not really that simple though. This will really only add a benefit if the VM is communicating to multiple destinations (using ip hash – a single destination from a single VM with one IP will always be limited to the same physical nic).
switch(config)#int port-channel 1
switch(config-if)#description NIC team for ESX server
switch(config-if)#int gi0/1
switch(config-if)#channel-group 1 mode on
switch(config-if)#int gi0/2
switch(config-if)#channel-group 1 mode on
As per the article ensure you are using the same etherchannel method. The first command shows your current load-blance method, the 2nd command changes it to ip hash.
show etherchannel load-balance
port-channel load-balance src-dst-ip
Another solution is to use multiple iSCSI paths. This is newly supported within vSphere, see this post on setting up multiple paths : http://goingvirtual.wordpress.com/2009/07/17/vsphere-4-0-with-software-iscsi-and-2-paths/
Here is another good article on iSCSI within vSphere : http://www.delltechcenter.com/page/A+“Multivendor+Post”+on+using+iSCSI+with+VMware+vSphere
Some important points on using EMC Clariion with vSphere : http://virtualgeek.typepad.com/virtual_geek/2009/08/important-note-for-all-emc-clariion-customers-using-iscsi-and-vsphere.html