Why do multipath -ll and multipath.conf display different values?
Applies to
- Ontap 9
- SAN
- Multipath Utility
Answer
- The output for the "features" parameter in
multipath -ll
is slightly different from the recommended settings. It is because NetApp has recommended to use 2 features, and the host takes these 2 features and adds up one more making it total 3 features undermultipath -ll
output. - Target asks OS for details and what we see in
multipath -ll
is the final negotiated outcome from OS. - When the Input for
hardware_handler
is zero, how the device should be handled is decided by the OS and that host assigns ALUA based device handling. - OS takes its own call based on our inputs and our inputs are by default set in the multipath libraries (provided we don't change them explicitly)
- During lun discovery, ontap will advertise the block characteristics of the LUN as ALUA complaint since there is no hardware handling kernel module defined for NetApp and which is why we see the
hwhandler='1 alua'
undermultipath -ll
output. This is by design .
-
The host should take default parameter from Kernel And in Kernel the
Hardware_handler
is set to 0. The reason whymultipath -ll
picks the parameter on Hardware_handler as "1 alua
" instead of "0
" even though multipath.conf file is not explicitly configured., it is because inmultipathd config
there is a feature "retain_attached_hw_handler = yes
", hence it will take theHardware_handler
as 1 alua"" because the parameter-retain_attached_hw_handler
is set asYes
.
:~ # multipathd -k"show config" |more
device {
vendor "NETAPP"
product "LUN"
path_grouping_policy "group_by_prio"
features "2 pg_init_retries 50"
prio "ontap"
failback "immediate"
no_path_retry "queue"
flush_on_last_del "yes"
dev_loss_tmo "infinity"
user_friendly_names "no"
}
3600a098038314e51665d57554f687xxx dm-14 NETAPP,LUN C-Mode
size=10G features='3 queue_if_no_path pg_init_retries 50' hwhandler='1 alua' wp=rw
`-+- policy='service-time 0' prio=50 status=active
|- 13:0:3:19 sdao 66:128 active ready running
|- 13:0:2:19 sdu 65:64 active ready running
|- 14:0:2:19 sdbi 67:192 active ready running
`- 14:0:3:19 sdcc 69:0 active ready running
Additional Information
multipath -ll -d -v3
command can be used to check the current configuration on the system.- As per the recommendations of NetApp,
multipath.conf
file should not be edited or updated unless and until there is any need to change any of the parameters. - But all the NetApp recommended settings are hard coded in multipath binary package when its installed on server, same parameters will be used by server when it is scanned for LUNs.
- hw_handler (Hardware Handler) feature-
- The hw_handler parameter specifies the hardware handler to be used for a particular device. A hardware handler is a kernel module that provides specific handling for certain types of storage hardware, particularly in the context of failover and path management. The hardware handler can implement vendor-specific logic to manage paths and handle failovers more efficiently.
- Common Hardware Handlers:
0 (No hardware handler): Indicates that no specific hardware handler is used.
1 alua (Asymmetric Logical Unit Access): Used for devices that support ALUA, allowing the system to understand and use preferred paths provided by the storage array.
1 rdac (Redundant Disk Array Controller): Used for devices that require RDAC-specific handling.
1 emc (EMC PowerPath): Used for EMC storage arrays that require specific handling provided by EMC PowerPath software.
- retain_attached_hw_handler feature-
- The retain_attached_hw_handler parameter specifies whether the multipath subsystem should retain the hardware handler that was attached to the device when it was first discovered. This can be useful in scenarios where the hardware handler needs to remain consistent across reconfigurations or path changes.
Values:
yes: Retain the hardware handler that was initially attached to the device.
no: Do not retain the hardware handler; it can be changed if necessary.
Example:
retain_attached_hw_handler yes
Key Differences:
- Purpose:
hw_handler: Specifies the type of hardware handler to use for managing paths and failovers for a specific storage device.
retain_attached_hw_handler: Determines whether to retain the initially attached hardware handler across reconfigurations.
- Usage:
hw_handler: Directly sets the hardware handler module to be used (e.g., 1 alua for ALUA support).
retain_attached_hw_handler: Controls the behavior of retaining or changing the hardware handler during device reconfiguration.
- Configuration Context:
hw_handler: Typically configured in the devices section of the multipath configuration to specify the handler for specific devices.
retain_attached_hw_handler: Can be configured in the defaults section or within specific device configurations to control the retention behavior.