ALUA stands for “Asymmetric Logical Unit Access”, as per t10 SCSI-3 specifications (www.t10.org/cgi-bin/ac.pl?t=f&f=spc3r23.pdf). ALUA occurs when the access characteristics of one port may differ from those of another port. In English this means the LUN could be seen via both storage processors as an active but only one of them owns the Lun. Hence there will be optimized and unoptimized paths, the I/O is allowed to the LUN.
But the performance of the owner Storage Processor is better than that of the non-owner Storage Processor. To allow the initiators to identify which targets would provide the best I/O, the ports on each Storage Processor are grouped together into target port groups. Each target port group is given a distinctive “state” (asymmetric access state [AAS]), that denotes the optimization of ports on one SP compared to ports on the other SP (for example, active-optimized versus active-non-optimized).
Target Port Groups
A target port group is defined as a set of target ports that are in the same target port asymmetric access state at all times. A target port group asymmetric access state is defined as the target port asymmetric access state common to the set of target ports in a target port group. The grouping of target ports is vendor specific.
Target port Group Support
Target port Group Support provides a method for determining the access characteristics of a path to a LUN through a target port. Target Port Group Support is often used with arrays that handle load balancing and failover within the Storage Processors. Target Port Groups allows path grouping. Each port in the same Target Port Group has the same port state, which can be one of the following state:
Some storage arrays might not support some of the latter three states.
Asymmetric Access State(AAS)
Ports in an ALUA TPG can be in the same AAS at all times with respect to a given LUN. TPG’s AAS are reported to the initiators in response to the REPORT TPGS command. The TPG descriptor is reported in byte 1 of that response.
Possible states are as follows:
- Active-optimized (AO)—Ports are on the owner SP and provided the best I/O to the LUN.
- Active-non-optimized (ANO)—Ports are on the non-owner SP. I/O to the LUN is less optimal compared to AO AAS.
ESXi 6 sends the I/O to TPGs that are in AO AAS, but if they are not available, I/O is sent to TPGs that are in ANO AAS. If the storage array receives sustained I/O on TPGs that are in ANO AAS, the array transitions the TPG’s state to AO AAS. Who makes that change depends on the ALUA management mode of the storage array