A: Preferred Server and Preferred Path Settings
Without ALUA Enabled
If hosts are registered without ALUA support, the Preferred Server and Preferred Path settings will serve no function. All DataCore Servers and their respective Front End (FE) paths are considered ‘equal’.
It is up to the host’s own Operating System or Failover Software to determine which DataCore Server is its preferred server.
With ALUA Enabled
Setting the Preferred Server to ‘Auto’ (or an explicit DataCore Server), determines the DataCore Server that is designated ‘Active Optimized’ for host IO. The other DataCore Server is designated ‘Active Non-Optimized’.
If for any reason the Storage Source on the preferred DataCore Server becomes unavailable, and the Host Access for the virtual disk is set to Offline or Disabled, then the other DataCore Server will be designated the ‘Active Optimized’ side. The host will be notified by both DataCore Servers that there has been an ALUA state change, forcing the host to re-check the ALUA state of both DataCore Servers and act accordingly.
If the Storage Source on the preferred DataCore Server becomes unavailable but the host Access for the virtual disk remains Read/Write, for example if only the Storage behind the DataCore Server is unavailable but the FE and MR paths are all connected or if the host physically becomes disconnected from the preferred DataCore Server (e.g., Fibre Channel or iSCSI Cable failure) then the ALUA state will not change for the remaining, ‘Active Non- optimized’ side. However, in this case, the DataCore Server will not prevent access to the host, nor will it change the way READ or WRITE IO is handled compared to the ‘Active Optimized’ side, but the host will still register this DataCore Server’s Paths as ‘Active Non-Optimized’ which may (or may not) affect how the host behaves generally.
Also see:
Preferred Servers and Preferred Paths from:
https://docs.datacore.com/SSV-WebHelp/Port_Connections_and_Paths.htm
In the case where the Preferred Server is set to ‘All’, then both of the DataCore Servers are designated ‘Active Optimized’ for host IO.
All IO requests from a host will use all Paths to all DataCore Servers equally, regardless of the distance that the IO must travel to the DataCore Server. For this reason, the ‘All’ setting is not normally recommended. If a host has to send a WRITE IO to a ‘remote’ DataCore Server (where the IO Path is significantly distant compared to the other ‘local’ DataCore Server), then the WAIT times accrued by having to send the IO not only across the SAN to the remote DataCore Server, but for the remote DataCore Server to mirror back to the local DataCore Server and then for the mirror write to be acknowledged from the local DataCore Server to the remote DataCore Server and finally for the acknowledgement to be sent to the host back across the SAN, can be significant.
The benefits of being able to use all Paths to all DataCore Servers for all virtual disks are not always clear cut. Testing is advised.
For Preferred Path settings it is stated in the SANsymphony Help:
A preferred front-end path setting can also be set manually for a particular virtual disk. In this case, the manual setting for a virtual disk overrides the preferred path created by the preferred server setting for the host.
So for example, if the Preferred Server is designated as DataCore Server A and the Preferred Paths are designated as DataCore Server B, then DataCore Server B will be the ‘Active Optimized’ Side not DataCore Server A.
In a two-node Server group there is usually nothing to be gained by making the Preferred Path setting different to the Preferred Server setting and it may also cause confusion when trying to diagnose path problems, or when redesigning your DataCore SAN regarding host IO Paths.
For Server Groups that have three or more DataCore Servers, and where one (or more) of these DataCore Servers shares Mirror Paths between other DataCore Servers setting the Preferred Path makes more sense.
So, for example, DataCore Server A has two mirrored virtual disks, one with DataCore Server B, and one with DataCore Server C and DataCore Server B also has a mirrored virtual disk with DataCore Server C then using just the Preferred Server setting to designate the ‘Active Optimized’ side for the host’s virtual disks becomes more complicated. In this case the Preferred Path setting can be used to override the Preferred Server setting for a much more granular level of control.