Since vSphere provides ALUA support and enables Round-Robin I/O via the default PSP, here are the steps to migrate from a non-ALUA to an ALUA configuration and enabe the Round-Robin algorithm using a NetApp disk array.
1) Make sure you're running a supported ONTAP version such as any version above 7.3.1
FAS2020A> version
NetApp Release 7.3.1.1: Mon Apr 20 22:58:46 PDT 2009
2) Enable the ALUA flag on the ESX igroups on each NetApp controller
FAS2020A> igroup show -v vmesx_b
vmesx_b (FCP):
OS Type: vmware
Member: 21:00:00:1b:32:10:27:3d (logged in on: vtic, 0b)
Member: 21:01:00:1b:32:30:27:3d (logged in on: vtic, 0a)
ALUA: No
FAS2020A> igroup set vmesx_b alua yes
FAS2020A> igroup show -v vmesx_b
vmesx_b (FCP):
OS Type: vmware
Member: 21:00:00:1b:32:10:27:3d (logged in on: vtic, 0b)
Member: 21:01:00:1b:32:30:27:3d (logged in on: vtic, 0a)
ALUA: Yes
3) VMotion the VMs to another host in the Cluster and reboot the ESX host
4) After the Reboot, the SATP will change to VMW_SATP_ALUA and the PSP to VMW_PSP_MRU.
5) You will need to change the PSP to VMW_PSP_RR. There are 2 options
a) With the NetApp ESX Host Utilities Kit 5.1
1a) #/opt/netapp/santools/config_mpath -m-a CtlrA:username:password -a CtlrB:username:password2a) You will get a message to Reboot the hostb) Manually1a) # esxcli nmp satp setdefaultpsp --satp VMW_SATP_ALUA--psp VMW_PSP_RR2a) Reboot
6) On the ESX Host verify the new setting per device
# esxcli nmp device
naa.60a9800050334b356b4a51312f417541
Device Display Name: NETAPP Fibre Channel Disk (naa.60a9800050334b356b4a51312f417541)
Storage Array Type: VMW_SATP_ALUA
Storage Array Type Device Config: {implicit_support=on;explicit_support=off;explicit_allow=on;alua_followover=on;{TPG_id=2,TPG_state=AO}{TPG_id=3,TPG_state=ANO}}
Path Selection Policy: VMW_PSP_RR
Path Selection Policy Device Config: {policy=rr,iops=1000,bytes=10485760,useANO=0;lastPathIndex=3: NumIOsPending=0,numBytesPending=0}
Working Paths: vmhba2:C0:T2:L1, vmhba1:C0:T2:L1


This is interesting, but I don't really understand what ALUA is, or why I should use it.
There doesn't seem to be much online about ALUA at all.
I though ALUA (Asymmetric LUN Unit Access) was all about having multiple active paths to a LUN, but as this post mentions, the native PSP in ESX4 will do round robin I/O even if ALUA is not enabled on the storage system...so what exactly is ALUA all about?
Posted by: JD | September 01, 2009 at 05:17 AM
Hi,
ALUA Definition from the Spec:
"Asymmetric logical unit access occurs when the access characteristics of one port may differ from those of another
port. SCSI target devices with target ports implemented in separate physical units may need to designate differing
levels of access for the target ports associated with each logical unit. While commands and task management
functions (see SAM-3) may be routed to a logical unit through any target port, the performance may not be optimal,
and the allowable command set may be less complete than when the same commands and task management functions are routed through a different target port."
You are correct in pointing out that one can set Round-Robin with ESX 4, however, in that scenario, on Active/Active/Assymetric arrays, you will be sending I/O to a LUN down ALL its available paths. Some of these paths will be direct paths to the LUN, while others will be indirect. By indirect, I mean, sending I/O to a LUN thru Port 3 on Controller B, even though the LUN is owned by Controller A.
An array that supports ALUA, advertizes the path State (Active-Optimized, Active-Unoptimized, Unavailable, Standby) to the Host. Any Host MP software that supports ALUA will then Implement its Load Balancing Algorithm(s) and sent I/O down to the paths advertized as Active-Optmized only.
Active/Active/Assymetric Arrays: NetApp, Clariion, HP EVA, LSI and its IBM rebranded arrays. There are more, i just don't remember all of them.
Posted by: Nick Triantos | September 01, 2009 at 05:59 AM
I think you mean "# esxcli nmp device list" in step 6.
Posted by: Todd Roberts | November 12, 2009 at 06:01 AM