multipathd(8)

device-mapper-multipath - Rocky Linux 9.7

Back to Search

multipathd(8)

Package: device-mapper-multipath Section: 8
MULTIPATHD(8) System Manager's Manual MULTIPATHD(8)

multipathd - Multipath daemon.

multipathd [-d|-k] [-s] [-v verbosity] [-B] [-w]

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.

This daemon executes the external multipath tool when events occur. In turn, the multipath tool signals the multipathd daemon when it is done with devmap reconfiguration, so that it can refresh its failed path list.

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

Foreground Mode. Don't daemonize, and print all messages to stdout and stderr.
Suppress timestamps. Do not prefix logging messages with a timestamp.
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.
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.

Commands can also be issued without using -k. In this case, the command string should not be quoted. Command arguments that contain whitespace or special characters still need to be quoted, like in multipathd show paths format "%n %w"

multipathd will enter interactive mode. From this mode, the available commands can be viewed by entering 'help'. When you are finished entering commands, press CTRL-D to quit.
IGNORED. Use the option find_multipaths to control the treatment of newly detected devices by multipathd. See multipath.conf(5).
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 seperate thread for each device.

In addition to the multipathd CLI, the libmpathcmd library can be used to send commands (see COMMANDS below) to the multipathd daemon from other programs. By default, multipathd listens on both the @/org/kernel/linux/storage/multipathd abstract namespace socket and the /run/multipathd.socket socket file. libmpathcmd will use either of these sockets to connect to multipathd. The socket file can be useful to communicate with multipathd from different namespaces since it can be bind mounted in them, unlike the abstract namespace socket. Multipathd will accept list|show commands from any user. All other commands must be issued by root.

It is possible to change the sockets that multipathd listens on. If multipathd.socket is running, multipathd will use the sockets it listens on. A maximum of two sockets can be defined by multipathd.socket, and by default it listens on @/org/kernel/linux/storage/multipathd and /run/multipathd.socket. If multipathd.socket is not running, a single socket can be configured for listening on by setting the MULTIPATH_SOCKET_NAME environment variable when starting multipathd. This environment variable must also be set to make multipathd CLI commands (or any other program using libmpathcmd) connect to the multipathd daemon using a non-default socket, regardless of whether that socket was set for the daemon using multipathd.socket or the MULTIPATH_SOCKET_NAME environment variable.

Show the paths that multipathd is monitoring, and their state.
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.
Show whether path $path is offline or running.
Show the multipath devices that the multipathd is monitoring.
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.
Show the status of all multipath devices that the multipathd is monitoring.
Show some statistics of all multipath devices that the multipathd is monitoring.
Show the current multipath topology. Same as 'multipath -ll'.
Show information about all multipath devices in JSON format.
Show the current multipath topology. Same as 'multipath -ll'.
Show topology of a single multipath device specified by $map, for example 36005076303ffc56200000000000010aa. This map could be obtained from 'list maps'.
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.
Show information about multipath device $map in JSON format.
Show the format wildcards used in interactive commands taking $format. See "Format Wildcards" below.
Show the currently used configuration, derived from default values and values specified within the configuration file /etc/multipath.conf.
Show the currently used configuration like show config, but limiting the devices section to those devices that are actually present in the system.
Show the currently used blacklist rules, derived from default values and values specified within the configuration file /etc/multipath.conf.
Show all available block devices by name including the information if they are blacklisted or not.
Show the number of path checkers in each possible state, the number of monitored paths, and whether multipathd is currently handling a uevent.
Show the current state of the multipathd daemon.
Reset the statistics of all multipath devices.
Reset the statistics of multipath device $map.
Add a path to the list of monitored paths. $path is as listed in /sys/block (e.g. sda).
Stop monitoring a path. $path is as listed in /sys/block (e.g. sda).
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 all multipath devices.
Remove the multipath device $map.
Resizes map $map to the given size.
Force a multipath device to switch to a specific path group. $group is the path group index, starting with 1.
Reconfigures the multipaths. This should be triggered automatically after anyi hotplug event.
Sets map $map into suspend state.
Resumes map $map from suspend state.
Reassign existing device-mapper table(s) use use the multipath device, instead of its path devices.
Reload a multipath device.
Sets path $path into failed state.
Resumes path $path from failed state.
Disable queueing on all multipath devices.
Restore queueing on all multipath devices.
Disable queuing on multipathed map $map.
Restore queuing on multipahted map $map.
Forces multipathd into queue_without_daemon mode, so that no_path_retry queueing will not be disabled when the daemon stops.
Restores configured queue_without_daemon mode.
Enable persistent reservation management on $map.
Disable persistent reservation management on $map.
Get the current persistent reservation management status of $map.
Get the current persistent reservation key associated with $map.
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.
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.
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).
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).
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).
End interactive session.
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.

%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 print the configured time if a deferred failback is not in progress, or it will show the current progress of a deferred failback.
%Q
The device no_path_retry setting. If no_path_retry is set to a number of retires, 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 device-mapper state of the device, either suspend or active.
%S
The device size.
%f
The device table features string.
%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.
%g
Data from vendor specific vpd pages for the device, if any.
%w
The device WWID (uuid).
%i
The device Host:Channel:Id:Lun
%d
The device sysfs name.
%D
The device major:minor
%t
The device-mapper state of the device, either active or failed.
%o
Whether the device is offline or running.
%T
The multipathd path checker state of the device.
%s
The vendor/product/revision string for the device.
%c
The device's path checker name.
%C
The progress towards the next path checker run on the device.
%p
The device priority.
%S
The device size.
%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 [offline] if this device could not be added to a device because it is offline or [orphan] if it is not part of any multipath device.
%N
The host World Wide Node Name (WWNN) of the device.
%n
The target World Wide Node Name (WWNN) of the device.
%R
The host World Wide Port Name (WWPN) of the device.
%r
The target World Wide Port Name (WWPN) of the device.
%a
The host adapter name for the device (only SCSI devices).
%G
The foreign library used for the device, or -- for paths of native device-mapper multipath devices.
%g
Data from vendor specific vpd pages for the device, if any.
%0
The number of times this device has failed.
%P
The device protocol. This output can be used for protocol blacklist entries.

When compiled with systemd support two systemd service files are installed, multipathd.service and multipathd.socket 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:

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.
Overrides the internal OOM adjust mechanism.
Overrides the max_fds configuration setting.

multipath(8), kpartx(8), sd_notify(3), system.service(5).

multipath-tools was developed by Christophe Varoqui <[email protected]> and others.

2016-10-27 Linux