Native iSCSI multi-pathing in vSphere 4 provides superior bandwidth performance by aggregating network ports. Configuring iSCSI multi-pathing requires at least two network ports on the virtual switch. The following steps must be performed on each ESX or ESXi server individually.
- Create a second VMkernel port on the virtual switch for iSCSI.
- For each VMkernel port on the virtual switch assign a different physical network adapter as the active adapter. This ensures the multiple VMkernel ports use different network adapters for theirI/O. Each VMkernel port should use a single physical network adapter and not have any standby adapters.
- From the command line, bind both VMkernel ports to the software iSCSI adapter. The vmk# and vmhba## must match the correct numbers for the ESX or ESXi server and virtual switch you are configuring, for example:
Once configured correctly, perform a rescan of the iSCSI adapter. An iSCSI session should be connected for each VMkernel bound to the software iSCSI adapter. This gives each iSCSI LUN two iSCSI paths using two separate physical network adapters. As an example refer to figure below for NIC teaming tab for VMkernel properties.
vmkiscsi-tool -V -a vmk0 vmhba36 vmkiscsi-tool -V -a vmk1 vmhba36
To achieve load balancing across the two paths, datastores should be configured with a path selection policy of round robin. This can be done manually for each datastore in the vSphere client or ESX can be configured to automatically choose round robin for all datastores. To make all new datastores automatically use round robin, configure ESX to use it as the default path selection policy from the command line:
It is important to note that native vSphere 4 multi-pathing cannot be used with configurations that utilize more than one subnet and VIP (virtual IP). Multiple paths cannot be routed across those subnets by the ESX/ESXi 4 initiator.
esxcli corestorage claiming unclaim --type location esxcli nmp satp setdefaultpsp --satp VMW_SATP_DEFAULT_AA --psp VMW_PSP_RR esxcli corestorage claimrule load esxcli corestorage claimrule run