Skip to main content
NetApp Knowledge Base

Why do multipath -ll and multipath.conf display different values?

Views:
115
Visibility:
Public
Votes:
0
Category:
ontap-9
Specialty:
san
Last Updated:
2/7/2025, 1:16:58 PM

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 under multipath -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' under multipath -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 why multipath -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 in multipathd config there is a feature "retain_attached_hw_handler = yes", hence it will take the Hardware_handler as 1 alua"" because the parameter-retain_attached_hw_handler is set as Yes.

 

 

:~ # 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.
 

 

NetApp provides no representations or warranties regarding the accuracy or reliability or serviceability of any information or recommendations provided in this publication or with respect to any results that may be obtained by the use of the information or observance of any recommendations provided herein. The information in this document is distributed AS IS and the use of this information or the implementation of any recommendations or techniques herein is a customer's responsibility and depends on the customer's ability to evaluate and integrate them into the customer's operational environment. This document and the information contained herein may be used solely in connection with the NetApp products discussed in this document.