This post is written specifically with HP ProLiant DL360/380 G6/G7 in mind but the theory can be applied to other manufacturers with Broadcom iSCSI Hardware Adapters. It is assumed the reader has experience configuring the Software iSCSI adapter already and MPIO (for more information on this see http://cosonok.blogspot.com/2010/07/how-to-configure-iscsi-multipathing-on.html . Also, this applies to vSphere 4 (will post an update for vSphere 5 if/when required.)
Step 1: First identify which vmnics are associated with the Broadcom iSCSI Adapter vmhbas
From the vSphere client, select the host to be configured → Configuration tab → Storage Adapters → and under the device heading 'Broadcom iSCSI Adapter' the vmhba??s are listed
Example image below showing vmhba33,34,35,36 underneath 'Broadcom iSCSI Adapter'
Then via a putty connection to the host being configured, run the command below against each vmhba listed above to find which vmnic is associated with which vmhba
esxcli swiscsi vmnic list --adapter vmhba??
Example image below showing the command run against vmhba33
Generally the Broadcom iSCSI HBAs are associated with the NIC ports built into the system board, and a common association is as below:
vmhba33 associated with vmnic0
vmhba34 associated with vmnic1
vmhba35 associated with vmnic2
vmhba36 associated with vmnic3
Step 2: Create the iSCSI switch with iSCSI vmnics selected from the list
As per a typical configuration of the Software iSCSI Adapter and MPIO:
i: Create a vSwitch using from 1 to 4 of the vmnics found in Step 1
ii: For each vmnic create a VMkernel to be used for iSCSI traffic
iii: Edit the properties of each VMkernel created so that the Failover Order is set with only one active adapter and the rest unused
Step 3: Bond the iSCSI VMkernel's
For each iSCSI VMkernel, run the command
esxcli swiscsi nic add -n vmk? -d vmhba??
~ # esxcli swiscsi nic add -n vmk1 -d vmhba35
Note: the the VMkernel's active adapter must be associated with the correct vmhba for this to work otherwise will get the error “Errors: Failed to add nic.”
Run the below command to check the vmk? is bound to the vmhba??
esxcli swiscsi nic list -d vmhba??
Note: the remove command is simply
esxcli swiscsi nic remove -n vmk? -d vmhba??
Step 4: Configure Access to LUNs and Present to Host
i: Add the iSCSI Initiator Name of each Broadcom iSCSI HBA being used to the SAN Management Software, and allow access to required volumes
ii: On each Broadcom iSCSI HBA being used, in the vSphere Client Broadcom iSCSI HBA → Properties → Dynamic Discovery → Add Send Targets
Note: if an iSCSI Vmkernel is not bound to the vmhba in question, will see the warning “The host bus adapter is not associated with a vmknic. To configure targets the adapter should be associated with a vmknic.”
iii: Perform a Rescan All from the vSphere Client
Step 5: Configure Multipathing Path Selection Type
Finally for each device listed under Storage Adapters → Details → Devices
Right-click the device and select 'Manage Paths'
And check/amend the Path Selection is set to 'Round Robin (VMware)'
Note: Check with Storage Provider that this is supported first
Note 1: If the Software iSCSI adapter has already been configured, can disable this if intending to use the Broadcom iSCSI HBAs only.
Note 2: In theory, using the Broadcom iSCSI HBA will give a performance benefit as encapsulation of SCSI commands into iSCSI packets is being done by the HBA and not using the hosts CPU.