ALUA parameters in ESXi Server
search cancel

ALUA parameters in ESXi Server

book

Article ID: 310442

calendar_today

Updated On:

Products

VMware vSphere ESXi

Issue/Introduction

  • This article provides information about Asymmetric Logical Unit Access (ALUA) Modes on the ESXi Server.
  • ALUA is a feature of an external storage and when connected to ESXi server,  it can be configured to operate in different modes.

This article assists in the understanding modes and related parameters.

Environment

VMware vSphere ESXi 6.x
VMware vSphere ESXi 7.x
VMware vSphere ESXi 8.x

Resolution

ALUA is a feature that allows storage arrays to provide different paths for I/O operations based on their state (active or non-active).
 
It ensures that I/O is directed to the optimal path, improving performance and failover behavior.
 
ALUA devices can operate in below modes.
  • implicit_support=on
    This parameter shows whether or not the device supports implicit ALUA. You cannot set this option as it is a property of the LUN.

  • explicit_support=on
    This parameter shows whether or not the device supports explicit ALUA. You cannot set this option as it is a property of the LUN.

  • explicit_allow
    This parameter shows whether or not the user allows the SATP to exercise its explicit ALUA capability if the need arises during path failure. This only matters if the device actually supports explicit ALUA (that is, explicit_support is on). This option is turned on using the esxcli command enable_explicit_alua and turned off using the esxcli command disable_explicit_alua.

  • alua_followover
    This parameter shows whether or not the user allows the SATP to exercise the follow-over policy, which prevents path thrashing in multi-host setups. This option is turned on using the esxcli command enable_alua_followover and turned off using the esxcli command disable_alua_followover.           
    ALUA_followover=on—This enables the ALUA followover option on the host. 

  • action_OnRetryErrors=off—This option is set to off by default. This means that when and I/O on that path returns an error indicating the I/O can be retried, the path remains in an on state even after the I/O is retried indefinitely. When this option is set to on, the path eventually, after a certain timeout, is marked dead

 

Below command displays the ALUA Mode.
 
#esxcli storage nmp device list -d naa.*******************
 
You see output similar to:
naa.**********************:
   Device Display Name: ***** Fiber Channel Disk (naa.**********************)
   Storage Array Type: VMW_SATP_ALUA
   Storage Array Type Device Config: {implicit_support=on; explicit_support=off; explicit_allow=on; alua_followover=on; action_OnRetryErrors=off; {TPG_id=100
1,TPG_state=ANO}{TPG_id=1000,TPG_state=AO}}
   Path Selection Policy: VMW_PSP_RR
   Path Selection Policy Device Config: {policy=rr,iops=1000,bytes=10485760,useANO=0; lastPathIndex=5: NumIOsPending=0,numBytesPending=0}
   Path Selection Policy Device Custom Config:
   Working Paths: vmhba4:C0:T34:L62, vmhba3:C0:T28:L62, vmhba3:C0:T31:L62, vmhba4:C0:T33:L62
   Is USB: false

 

Below command can be run to check the AAS(Asymmetric Access State) with TPG ID and state where, TPG_state = ANO means Active/Non-Optimized and TPG_state = AO means Active/Optimized.
 
#esxcli storage nmp path list -d naa.****************************

 

fc.20000010********:10000010********-fc.200800a0********:200600a0********-naa.************************:
   Runtime Name: vmhba3:C0:T30:L30
   Device: naa.************************
   Device Display Name: ***** Fibre Channel Disk (naa.************************)
   Group State: active
   Array Priority: 0
   Storage Array Type Path Config: {TPG_id=1001,TPG_state=AO,RTP_id=7,RTP_health=UP}
   Path Selection Policy Path Config: PSP VMW_PSP_RR does not support path configuration.

 

fc.20000010********:10000010********-fc.200800a0********:200300a0********-naa.************************:
   Runtime Name: vmhba4:C0:T30:L42
   Device: naa.************************
   Device Display Name: ***** Fibre Channel Disk (naa.************************)
   Group State: active unoptimized
   Array Priority: 0
   Storage Array Type Path Config: {TPG_id=1000,TPG_state=ANO,RTP_id=4,RTP_health=UP}
   Path Selection Policy Path Config: PSP VMW_PSP_RR does not support path configuration.

 

TPG_id—This field shows the target port group ID. If the LUN is accessible via more than one target port group. 

TPG_state—This field shows the AAS of the TPG. Notice that TPG_id 1001 is in AO AAS, whereas TPG_id 1000 is in ANO AAS. Based on this configuration, I/O is sent to TPG_id.

 
Notes:

Target Port Groups (TPG) allow path grouping and dynamic load balancing. Each port in the same TPG has the same port state, which can be one of these:

    • Active/Optimized
    • Active/Non-Optimized
    • Standby
    • Unavailable
    • In-transition
  • Active indicates that the LUN is active on a TPG. If the LUN is not active, a failover would have to be requested to the storage processor to make it active.

  • Optimized has the best performance. This is reported by the storage processor as per its current internal organization of paths/cache.

  • Non-Optimized allows I/O but with sub-optimal performance.
  • Transitioning—The TPG AAS is in the process of switching from one state to another.

  • While the TPG is in this state, receiving requests from the initiators return BUSY or a CHECK CONDITION with sense key NOT READY and ASC (additional sense code) LOGICAL UNIT NOT ACCESSIBLE or ASYMMETRIC ACCESS STATE TRANSITION.

  • Standby—This state is similar to a passive SP in a non-ALUA configuration and on certain ALUA-capable arrays. It returns a CHECK CONDITION with sense key NOT READY.

  • Unavailable—This AAS is usually seen when the TPG’s access to the LUN is restricted as a result of hardware errors or other SCSI device limitations. A TPG in this state is unable to transition to AO or ANO until the error subsides.