For multipaths with queueing enabled and with all paths down, the kernel will store submitted IOs in a queue and resubmit them upon path recovery. Process submitting IOs to these multipath are stuck in D-state (uninterruptible sleep). The ‘no_path_retry 4‘ multipath parameter will instruct the kernel to unplug the queue after 4 failed path-tests.
Unplugging the queue will fail all stored IOs. If the outage will last, the admin might wish to unplug the queues right-away. The following multipathd CLI command does just that:
The following commands can be used in interactive mode “multipathd -k”.
– mode disable queueing maps|multipaths
– Disable queueing on all multipath devices.
– restore queueing maps|multipaths
– Restore queueing on all multipath devices.
– Original situation gets restored with enable queueing maps
[root@~]# multipathd -k multipathd> disablequeueing m map maps multipath multipaths multipathd> disablequeueing maps
multipathd –k: Puts your session into interactive mode. Commands can be used to list the current configuration or to change the configuration. For example,
list|show paths:- Show the paths that multipathd is monitoring, and their state.
multipathd> show paths hcil dev dev_t pri dm_st chk_st dev_st next_check 0:0:0:0 sda 8:0 1 undef ready running orphan #:#:#:# pgpwde 253:0 -1 undef faulty running orphan 6:0:0:7 sdc 8:32 1 active ready running XXXXXXXXX. 19/20 multipathd>
# multipathd -k "show paths" hcil dev dev_t pri dm_st chk_st dev_st next_check 0:2:1:0 sdb 8:16 1 active ready running XXXXXX.... 12/20 7:0:0:0 sdc 8:32 1 undef ready running orphan 12:0:0:2 sdf 8:80 50 active ready running XXXXXXXXXX 20/20 12:0:0:1 sde 8:64 50 active ready running XXXXXXXXXX 20/20 12:0:0:3 sdg 8:96 50 active ready running XXXXXXXXXX 20/20 12:0:0:0 sdd 8:48 50 active ready running XXXXXXXXXX 20/20 13:0:0:1 sdh 8:112 50 active ready running .......... 1/20 [root@ovcacn12r1 ~]#
list|show status: Show the number of monitored paths in each path checker state.
multipathd> show status path checker states: down 1 up 2 paths: 1 busy: False multipathd>
list|show maps: Show the multipath devices that the multipathd is monitoring.
multipathd> show maps name sysfs uuid mpathk dm-8 3600144f0f1f283fa000058e3b573000a multipathd>
# multipathd -k"show maps" name sysfs uuid 3600605b00a15ddc020260a750a6e5b93 dm-0 3600605b00a15ddc020260a750a6e5b93 3600144f0adb8c09200005547f5bd0003 dm-1 3600144f0adb8c09200005547f5bd0003 3600144f0b5d60bb10000587005a10003 dm-2 3600144f0b5d60bb10000587005a10003 3600144f0b5d60bb1000058766e74000a dm-3 3600144f0b5d60bb1000058766e74000a 3600144f0adb8c09200005547f5e80004 dm-4 3600144f0adb8c09200005547f5e80004
list|show topology: Show the current multipath topology. Same as “multipath -ll”.
multipathd> show topology create: mpathk (3600144f0f1f283fa000058e3b573000a) dm-8 SUN ,ZFS Storage 7120 size=999G features='0' hwhandler='0' wp=rw '-+- policy='service-time 0' prio=1 status=active '- 6:0:0:7 sdc 8:32 active ready running multipathd>
list|show wildcards: Show the format wildcards used in interactive commands taking $format:
multipathd> show wildcards multipath format wildcards: %n name %w uuid %d sysfs %F failback %Q queueing %N paths %r write_prot %t dm-st %S size %f features %h hwhandler %A action %0 path_faults %1 switch_grp %2 map_loads %3 total_q_time %4 q_timeouts %s vend/prod/rev path format wildcards: %w uuid %i hcil %d dev %D dev_t %t dm_st %o dev_st %T chk_st %s vend/prod/rev %c checker %C next_check %p pri %S size %z serial %m multipath %N host WWNN %n target WWNN %R host WWPN %r target WWPN %a host adapter pathgroup format wildcards: %s selector %p pri %t dm_st multipathd>
list|show config: Show the currently used configuration, derived from default values and values specified within the configuration file /etc/multipath.conf.
list|show blacklist: Show the currently used blacklist rules, derived from default values and values specified within the configuration file /etc/multipath.conf.
multipathd> show blacklist device node rules: - blacklist: (config file rule) ^(sdb|ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]* (config file rule) ^hd[a-z] (default rule) ^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]* (default rule) ^(td|hd|vd)[a-z] (default rule) ^dcssblk[0-9]* - exceptions: [empty] wwid rules: - blacklist: (config file rule) 26353900f02796769 - exceptions: [empty] device rules: - blacklist: (default rule) DGC:LUNZ (default rule) EMC:LUNZ (default rule) IBM:Universal Xport (default rule) IBM:S/390.* (default rule) DELL:Universal Xport (default rule) SGI:Universal Xport (default rule) STK:Universal Xport (default rule) SUN:Universal Xport (default rule) (NETAPP|LSI|ENGENIO):Universal Xport - exceptions: [empty] multipathd>
list|show devices: Show all available block devices by name including the information if they are blacklisted or not.
multipathd> show devices available block devices: sda devnode whitelisted, monitored sdb devnode blacklisted, unmonitored sdc devnode whitelisted, monitored dm-0 devnode blacklisted, unmonitored dm-1 devnode blacklisted, unmonitored dm-2 devnode blacklisted, unmonitored dm-3 devnode blacklisted, unmonitored dm-4 devnode blacklisted, unmonitored dm-5 devnode blacklisted, unmonitored dm-6 devnode blacklisted, unmonitored dm-7 devnode blacklisted, unmonitored dm-8 devnode blacklisted, unmonitored dm-9 devnode blacklisted, unmonitored pgpwde devnode whitelisted, monitored
list | fail path $path: Sets path $path into failed state.
multipathd> fail path $path fail multipathd>
For more information about multipathd command use the help subcommnad:
# multipathd -k"help"