multipathd - Multipath daemon.
multipathd [-d] [-s]
[-v verbosity] [-B] [-w]
multipathd [-v verbosity]
-kcommand
multipathd [-v verbosity]
-k
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).
- -d
- Foreground Mode. Don't daemonize, and print all messages to stdout and
stderr.
- -s
- Suppress 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.
- -B
- Read-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.
- -k
- multipathd executes the multipathc interactive shell for entering
commands (see COMMANDS below).
- -n
- IGNORED. Use the option find_multipaths to control the
treatment of newly detected devices by multipathd. See
multipath.conf(5).
- -w
- Since 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.
- 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.
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
- %n
- The device name.
- %w
- The device WWID (uuid).
- %d
- The device sysfs name (dm-<minor_nr>).
- %F
- The 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.
- %Q
- The 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.
- %N
- The number of active paths for the device.
- %r
- The device write-protect setting, either ro or rw.
- %t
- The state of the device in device-mapper. suspend if the devices is
suspended, and active otherwise.
- %S
- The device size, using the suffixes K, M, G,
T, and P, to stand for kilobytes, megabytes, gigabytes,
terabytes, and petabytes, respectively.
- %f
- The "features" string of the device-mapper table in the
kernel.
- %x
- The 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.
- %h
- The device table hardware handler string.
- %A
- The last action multipathd took on the device. This wildcard is for
debugging use, as understanding its meaning requires looking at the
code.
- %0
- The number of times a path in the device has failed. This value can be
reset with the 'reset map $map stats' command.
- %1
- The number of times multipathd has initiated a pathgroup switch for the
device. This value can be reset with the 'reset map $map stats'
command.
- %2
- The number of times multipathd has loaded a new table for the device. This
value can be reset with the 'reset map $map stats' command.
- %3
- The 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.
- %4
- The 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.
- %s
- The vendor/product string for the device.
- %v
- The array vendor string for the device.
- %p
- The array product string for the device.
- %e
- The array firmware revision string for the device.
- %G
- The foreign library used for the device, or -- for native
device-mapper multipath devices. See "FOREIGN MULTIPATH SUPPORT"
in /etc/multipath.conf(5).
- %g
- Data from vendor specific vpd pages for the device, if any. Currently
multipathd supports VPD page 0xc0 for HPE 3PAR / Primera / Alletra storage
arrays.
- %k
- The actual max_sectors_kb setting for the device (which may be different
from the configured one).
- Path format
wildcards
- %w
- The device WWID (uuid).
- %i
- The 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>"
- %d
- The device sysfs name.
- %D
- The device major:minor
- %t
- The device-mapper state of the device, either active or
failed.
- %o
- The 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".
- %T
- The multipathd path checker state of the device. The possible states
are:
- ready
- The device is ready to handle IO.
- faulty
- The device is unusable.
- shaky
- The device is not able to handle IO but can still be accessed to check the
priority.
- ghost
- The device is in stand-by state.
- i/o pending
- The checker is in the process of determining the device state.
- i/o timeout
- The path checker has timed out, failing the device.
- delayed
- The device appears usable, but it being delayed for marginal path
checking.
- undef
- The 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.
- %c
- The name of the device's path checking algorithm
- %C
- The progress towards the next path checker run on the device in
seconds.
- %p
- The device priority.
- %S
- The device size, using the suffixes K, M, G,
T, and P, to stand for kilobytes, megabytes, gigabytes,
terabytes, and petabytes, respectively.
- %z
- The device serial number.
- %M
- The device marginal state, either marginal or normal.
- %m
- The multipath device that this device is a path of, or [orphan] if
it is not part of any multipath device.
- %N
- The host World Wide Node Name (WWNN) of the device, if any.
- %n
- The target World Wide Node Name (WWNN) of the device, if any.
- %R
- The host World Wide Port Name (WWPN) of the device, if any.
- %r
- The target World Wide Port Name (WWPN) of the device, if any.
- %a
- The host adapter name for the device (only SCSI devices).
- %G
- The foreign library used for the device, or -- for native
device-mapper multipath devices. See "FOREIGN MULTIPATH SUPPORT"
in /etc/multipath.conf(5).
- %g
- Data from vendor specific vpd pages for the device, if any. Currently
multipathd supports VPD page 0xc0 for HPE 3PAR / Primera / Alletra storage
arrays.
- %0
- The number of times this device has failed.
- %P
- The device protocol. See /etc/multipath.conf(5).
- %I
- The device initialization state. Devices that have been fully initialized
are shown as ok.
- %L
- The device SCSI LUN ID in hexadecimal format. This is only meaningful for
SCSI devices.
- %A
- The ALUA Target Port Group ID for the device, if applicable.
- %k
- The actual max_sectors_kb setting for the device (which may be different
than the configured one).
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.
multipathc(8), multipath(8), kpartx(8)
sd_notify(3), systemd.service(5).
multipath-tools was developed by Christophe Varoqui
<christophe.varoqui@opensvc.com> and others.