Section 8 · System administration

multipathd.8

Package: device-mapper-multipath

MULTIPATHD

NAME
SYNOPSIS
DESCRIPTION
OPTIONS
COMMANDS
Format Wildcards
SYSTEMD INTEGRATION
SEE ALSO
AUTHORS


NAME

multipathd − Multipath daemon.

SYNOPSIS

multipathd [−d] [−s] [−v verbosity] [−B] [−w]

multipathd [**−v **verbosity] -kcommand

multipathd [**−v **verbosity] -k

DESCRIPTION

The multipathd daemon is in charge of checking for failed paths. When this happens, it will reconfigure the multipath map the path belongs to, so that this map regains its maximum performance and redundancy.

With the -k option, multipathd acts as a client utility that sends commands to a running instance of the multipathd daemon (see COMMANDS below).

In this Linux distribution, multipathd does not run unless a /etc/multipath.conf file exists.

OPTIONS

−dForeground Mode. Don’t daemonize, and print all messages to stdout and stderr.
−sSuppress timestamps. Do not prefix logging messages with a timestamp.

−v level

Verbosity level. Print additional information while running multipathd. A level of 0 means only print errors. A level of 3 or greater prints debugging information as well.

−BRead-only bindings file. multipathd will not write to the user_friendly_names bindings file. If a user_friendly_name doesn’t already exist for a device, it will use its WWID as its alias.

−kcommand

multipathd executes the given command (see COMMANDS below). If the command contains whitespace or shell special characters, it needs to be quoted like in multipathd -k’show topology’. No whitespace is allowed between the -k and the command string.

−kmultipathd executes the multipathc interactive shell for entering commands (see COMMANDS below).
−nIGNORED. Use the option find_multipaths to control the treatment of newly detected devices by multipathd. See multipath.conf(5).
−wSince kernel 4.14 a new device-mapper event polling interface is used for updating multipath devices on dmevents. Use this flag to force it to use the old event waiting method, based on creating a separate thread for each device.

COMMANDS

The following commands can be used in interactive mode: **
list|show paths**

Show the paths that multipathd is monitoring, and their state.

list|show paths [raw] format $format

Show the paths that multipathd is monitoring, using a format string with path format wildcards. Adding raw will remove the headers and alignment padding from the output. See “Path format wildcards” below.

list|show path $path

Show whether path $path is offline or running.

list|show maps|multipaths

Show the multipath devices that the multipathd is monitoring.

list|show maps|multipaths [raw] format $format

Show the status of all multipath devices that the multipathd is monitoring, using a format string with multipath format wildcards. Adding raw will remove the headers and alignment padding from the output. See “Multipath format wildcards” below.

list|show maps|multipaths status

Show the status of all multipath devices that the multipathd is monitoring.

list|show maps|multipaths stats

Show some statistics of all multipath devices that the multipathd is monitoring.

list|show maps|multipaths topology

Show the current multipath topology. Same as ’multipath −ll’.

list|show maps|multipaths json

Show information about all multipath devices in JSON format.

list|show topology

Show the current multipath topology. Same as ’multipath −ll’.

list|show map|multipath $map topology

Show topology of a single multipath device specified by $map, for example 36005076303ffc56200000000000010aa. This map could be obtained from ’list maps’.

list|show map|multipath $map [raw] format $format.

Show the status of multipath device $map, using a format string with multipath format wildcards. Adding raw will remove the headers and alignment padding from the output. See “Multipath format wildcards” below.

list|show map|multipath $map json

Show information about multipath device $map in JSON format.

list|show wildcards

Show the format wildcards used in interactive commands taking $format. See “Format Wildcards” below.

list|show config

Show the currently used configuration, derived from default values and values specified within the configuration file /etc/multipath.conf.

list|show config local

Show the currently used configuration like show config, but limiting the devices section to those devices that are actually present in the system.

list|show blacklist

Show the currently used blacklist rules, derived from default values and values specified within the configuration file /etc/multipath.conf.

list|show devices

Show all available block devices by name including the information if they are blacklisted or not.

list|show status

Show the number of path checkers in each possible state, the number of monitored paths, and whether multipathd is currently handling a uevent.

list|show daemon

Show the current state of the multipathd daemon.

reset maps|multipaths stats

Reset the statistics of all multipath devices.

reset map|multipath $map stats

Reset the statistics of multipath device $map.

add path $path

Add a path to the list of monitored paths. $path is as listed in /sys/block (e.g. sda).

remove|del path $path

Stop monitoring a path. $path is as listed in /sys/block (e.g. sda).

add map|multipath $map

Add a multipath device to the list of monitored devices. $map can either be a device-mapper device as listed in /sys/block (e.g. dm-0) or it can be the alias for the multipath device (e.g. mpath1) or the uid of the multipath device (e.g. 36005076303ffc56200000000000010aa).

remove|del maps|multipaths

Remove all multipath devices.

remove|del map|multipath $map

Remove the multipath device $map.

resize map|multipath $map

Resizes map $map to the given size.

switch|switchgroup map|multipath $map group $group

Force a multipath device to switch to a specific path group. $group is the path group index, starting with 1.

reconfigure

Rereads the configuration, and reloads all changed multipath devices. This also happens at startup, when the service is reload, or when a SIGHUP is received.

reconfigure all

Rereads the configuration, and reloads all multipath devices regardless of whether or not they have changed. This also happens when multipath -r is run.

suspend map|multipath $map

Sets map $map into suspend state.

resume map|multipath $map

Resumes map $map from suspend state.

reset map|multipath $map

Reassign existing device-mapper table(s) use the multipath device, instead of its path devices.

reload map|multipath $map

Reload a multipath device.

fail path $path

Sets path $path into failed state.

reinstate path $path

Resumes path $path from failed state.

disablequeueing maps|multipaths

Disable queueing on all multipath devices.

restorequeueing maps|multipaths

Restore queueing to the configured no_path_retry setting on all multipath devices whose queueing has been previously disabled by the disablequeueing command. Note: If no_path_path_retry is set to queue for a limited number of retries after all paths have failed, this will not enable queueing if there are no active paths.

disablequeueing map|multipath $map

Disable queuing on multipathed map $map.

restorequeueing map|multipath $map

restore queueing to the configured no_path_retry setting on multipathed map $map whose queueing has been previously disabled by the disablequeueing command. Note: If no_path_path_retry is set to queue for a limited number of retries after all paths have failed, this will not enable queueing if there are no active paths.

forcequeueing daemon

Forces multipathd into queue_without_daemon mode, so that no_path_retry queueing will not be disabled when the daemon stops.

restorequeueing daemon

Restores configured queue_without_daemon mode.

map|multipath $map setprstatus

Enable persistent reservation management on $map.

map|multipath $map unsetprstatus

Disable persistent reservation management on $map.

map|multipath $map getprstatus

Get the current persistent reservation management status of $map.

map|multipath $map getprkey

Get the current persistent reservation key associated with $map.

map|multipath $map setprkey key $key

Set the persistent reservation key associated with $map to $key in the prkeys_file. This key will only be used by multipathd if reservation_key is set to file in /etc/multipath.conf.

map|multipath $map unsetprkey

Remove the persistent reservation key associated with $map from the prkeys_file. This will only unset the key used by multipathd if reservation_key is set to file in /etc/multipath.conf.

path $path setmarginal

move $path to a marginal pathgroup. The path will remain in the marginal path group until unsetmarginal is called. This command will only work if marginal_pathgroups is enabled and there is no Shaky paths detection method configured (see the multipath.conf man page for details).

path $path unsetmarginal

return marginal path $path to its normal pathgroup. This command will only work if marginal_pathgroups is enabled and there is no Shaky paths detection method configured (see the multipath.conf man page for details).

map $map unsetmarginal

return all marginal paths in $map to their normal pathgroups. This command will only work if marginal_pathgroups is enabled and there is no Shaky paths detection method configured (see the multipath.conf man page for details).

quit|exit

End interactive session.

shutdown

Stop multipathd.

Format Wildcards

Multipathd commands that take a $format option require a format string. This string controls how a device is printed and should include format wildcards. When the devices are printed, these wildcards will be replaced by the appropriate device information. The following wildcards are supported. **
Multipath format wildcards**

%nThe device name.
%wThe device WWID (uuid).
%dThe device sysfs name (dm-<minor_nr>).
%FThe device failback setting. For deferred failbacks, it will either include the configured time if a deferred failback is not in progress, or it will show the current progress of a deferred failback in seconds.
%QThe device no_path_retry setting. If no_path_retry is set to a number of retries, it will either print the configured number of checker retries if the device is not in recovery mode, the number of seconds until queueing is disabled if the device is queueing in recovery mode, or off if the device has disabled queueing.
%NThe number of active paths for the device.
%rThe device write-protect setting, either ro or rw.
%tThe state of the device in device-mapper. suspend if the devices is suspended, and active otherwise.
%SThe device size, using the suffixes K, M, G, T, and P, to stand for kilobytes, megabytes, gigabytes, terabytes, and petabytes, respectively.
%fThe “features” string of the device-mapper table in the kernel.
%xThe number of times the device has entered a state where it will fail IO. This is an alias for the %4 wildcard. This value can be reset with the ’reset map $map stats’ command.
%hThe device table hardware handler string.
%AThe last action multipathd took on the device. This wildcard is for debugging use, as understanding its meaning requires looking at the code.
%0The number of times a path in the device has failed. This value can be reset with the ’reset map $map stats’ command.
%1The number of times multipathd has initiated a pathgroup switch for the device. This value can be reset with the ’reset map $map stats’ command.
%2The number of times multipathd has loaded a new table for the device. This value can be reset with the ’reset map $map stats’ command.
%3The approximate number of seconds that multipathd has spent queueing with no usable paths. This value can be reset with the ’reset map $map stats’ command.
%4The number of times the device has entered a state where it will fail IO. This is an alias for the %x wildcard. This value can be reset with the ’reset map $map stats’ command.
%sThe vendor/product string for the device.
%vThe array vendor string for the device.
%pThe array product string for the device.
%eThe array firmware revision string for the device.
%GThe foreign library used for the device, or — for native device-mapper multipath devices. See “FOREIGN MULTIPATH SUPPORT” in /etc/multipath.conf(5).
%gData from vendor specific vpd pages for the device, if any. Currently multipathd supports VPD page 0xc0 for HPE 3PAR / Primera / Alletra storage arrays.
%kThe actual max_sectors_kb setting for the device (which may be different from the configured one).

Path format wildcards

%wThe device WWID (uuid).
%iThe device Host:Channel:Id:Lun for SCSI devices. The device “Controller Instance Number”:“Controller ID”:“Namespace Instance Number”:“Namespace ID” for NVMe devices. The Controller and Namespace Instance Numbers match the NVMe device name: “nvme<Controller_Instance_Number>n<Namespace_Instance_Number>“
%dThe device sysfs name.
%DThe device major:minor
%tThe device-mapper state of the device, either active or failed.
%oThe offline state of the device. This shows “offline” if the device’s “state” attribute in sysfs is “offline” (for SCSI) or “dead” (for NVMe). For all other sysfs states, it shows “running”.
%TThe multipathd path checker state of the device. The possible states are:

ready

The device is ready to handle IO.
faultyThe device is unusable.
shakyThe device is not able to handle IO but can still be accessed to check the priority.
ghostThe device is in stand-by state.
i/o pendingThe checker is in the process of determining the device state.
i/o timeoutThe path checker has timed out, failing the device.
delayedThe device appears usable, but it being delayed for marginal path checking.
undefThe device either is not part of a multipath device, or its path checker has not yet run.
%s

The vendor/product/revision string for the device.

%cThe name of the device’s path checking algorithm
%CThe progress towards the next path checker run on the device in seconds.
%pThe device priority.
%SThe device size, using the suffixes K, M, G, T, and P, to stand for kilobytes, megabytes, gigabytes, terabytes, and petabytes, respectively.
%zThe device serial number.
%MThe device marginal state, either marginal or normal.
%mThe multipath device that this device is a path of, or [orphan] if it is not part of any multipath device.
%NThe host World Wide Node Name (WWNN) of the device, if any.
%nThe target World Wide Node Name (WWNN) of the device, if any.
%RThe host World Wide Port Name (WWPN) of the device, if any.
%rThe target World Wide Port Name (WWPN) of the device, if any.
%aThe host adapter name for the device (only SCSI devices).
%GThe foreign library used for the device, or — for native device-mapper multipath devices. See “FOREIGN MULTIPATH SUPPORT” in /etc/multipath.conf(5).
%gData from vendor specific vpd pages for the device, if any. Currently multipathd supports VPD page 0xc0 for HPE 3PAR / Primera / Alletra storage arrays.
%0The number of times this device has failed.
%PThe device protocol. See /etc/multipath.conf(5).
%IThe device initialization state. Devices that have been fully initialized are shown as ok.
%LThe device SCSI LUN ID in hexadecimal format. This is only meaningful for SCSI devices.
%AThe ALUA Target Port Group ID for the device, if applicable.
%kThe actual max_sectors_kb setting for the device (which may be different than the configured one).

SYSTEMD INTEGRATION

When compiled with systemd support two systemd service files are installed, multipathd.service and multipathd.socket. If enabled, the multipathd.socket service instructs systemd to intercept the CLI command socket, so that any call to the CLI interface will start-up the daemon if required. The multipathd.service file carries the definitions for controlling the multipath daemon. The daemon itself uses the sd_notify(3) interface to communicate with systemd. The following unit keywords are recognized: **
WatchdogSec=**

Enables the internal watchdog from systemd. multipath will send a notification via sd_notify(3) to systemd to reset the watchdog. If specified the polling_interval and max_polling_interval settings will be overridden by the watchdog settings. Please note that systemd prior to version 207 has issues which prevent the systemd-provided watchdog from working correctly. So the watchdog is not enabled per default, but has to be enabled manually by updating the multipathd.service file.

OOMScoreAdjust=

Overrides the internal OOM adjust mechanism.

LimitNOFILE=

Overrides the max_fds configuration setting.

SEE ALSO

multipathc(8), multipath(8), kpartx(8) **
sd_notify**(3), systemd.service(5).

AUTHORS

multipath-tools was developed by Christophe Varoqui <christophe.varoqui@opensvc.com> and others.