After having esx 3.x deployed, we noticed quiet fast that network based storage can’t be multipathed and load-balanced really. There are a small number of tricks using LACP, channeling.. but… This does not help at all. The following article describes in detail, why VI 3.x can’t load balance the IP based storage traffic.
Introduced among vSphere 4, the iSCSI stack has been pimped not too bad! It does support MPIO as we know that from FC storage adapters.
Here is the how to article from Duncan.
I tested this in my lab using openfiler as iSCSI Target, and it works perfectly!! The IO is balanced over two vmkernels in fact. As long as openfiler also supports multiple tcp sessions to the same target lun, ESX 4.x does it too. The round robin feature which directs each 1000 IOs to another available path is also officially supported in vSphere 4. Consider to manually split up your paths, as the round robin setting does in fact not use more than one path parallel (1000 IOs -> path1, 1000 IOs -> path 2 and back again)
And here’s another leading edge presentation from Nicholas Travers (EMC)