ActiveCluster: What Are Array Preference?
The Array Preference (aka Preferred Array) setting is a per-host setting that allows ActiveCluster arrays to provide guidance to each host on which of its paths are best to use for read and write operations. Communication is accomplished via ALUA protocol. Each host path ALUA property will be set to either Active/Optimized for the preferred (local) array paths or to Active/Non-Optimized for paths to the remote array. For hosts connected to both FlashArrays (aka Uniform Storage Access), using host array preferences ensures the lowest latency (shortest) paths are used for both read and write I/O to the local array. Setting an array preference will also eliminate write IO to stretched volumes having to cross the WAN links between sites twice (two round trips).
Uniform environments should enable Preferred Arrays, on the FlashArray in the host object details panel for each host, to avoid unnecessary read latency.
When To Set Array Preferences
The image below represents the logical paths that exist between the hosts and arrays, and the replication connection between the two arrays in a uniform access model. In uniform environments with significant distance (> 500 microseconds) between the two FlashArrays, the preferred-array setting should be applied to each host connected to one or more stretched volumes to ensure the host uses optimal paths to access storage. The more latency between sites the more this setting grows in importance for performance as it prevents hosts from performing reads over the longer distance connections between sites and avoids 2x WAN RTT latency on writes.
Uniform Storage Configuration (without Preferred Arrays enabled)
The image below represents a uniform storage configuration within a single site or campus environment. In this case, however, the preferred arrays option is not set. This means that the hosts will treat all paths equally, or according to whatever path selection policy the host is configured to use. This type of configuration may be used when the latency between the arrays is negligible ( < 500 microseconds) or of sufficiently short distance where any impact to performance is tolerable, such as between two racks in the same datacenter.
Non-Uniform Storage Configuration
For non-uniform storage access environments, shown in the image below, host preference offer no performance advantages or improvements. Each host only has paths to one array. In this environment, the preferred-array setting is not necessary. This configuration is used when host to array connectivity does not exist between sites.
How To Set Array Preferences
The Preferred Array setting can be modified using the kabob (3 vertical dots) at the top right corner of the Details pane for each Host. From the Pure1 GUI, click the Storage navigation button then select Hosts and click into the desired host.
Alternatively, from the Pure CLI, use the purehost command to specify the array that is co-located or closest to the host:
pureuser@somearray> purehost setattr --preferred-array <array name>