Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.3. Configuration File Defaults

The /etc/multipath.conf configuration file includes a defaults section that sets the user_friendly_names parameter to yes, as follows.
defaults {
        user_friendly_names yes
}
This overwrites the default value of the user_friendly_names parameter.
The configuration file includes a template of configuration defaults. This section is commented out, as follows.
#defaults {
#       udev_dir                /dev
#       polling_interval        5
#       path_selector           "round-robin 0"
#       path_grouping_policy    failover
#       getuid_callout          "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
#	prio			const
#	path_checker		directio
#	rr_min_io		1000
#	rr_weight		uniform
#	failback		manual
#	no_path_retry		fail
#	user_friendly_names	no
#}
To overwrite the default value for any of the configuration parameters, you can copy the relevant line from this template into the defaults section and uncomment it. For example, to overwrite the path_grouping_policy parameter so that it is multibus rather than the default value of failover, copy the appropriate line from the template to the initial defaults section of the configuration file, and uncomment it, as follows.
defaults {
        user_friendly_names     yes
        path_grouping_policy    multibus
}
Table 4.1, “Multipath Configuration Defaults” describes the attributes that are set in the defaults section of the multipath.conf configuration file. These values are used by DM-Multipath unless they are overwritten by the attributes specified in the devices and multipaths sections of the multipath.conf file.

Note

As of the Red Hat Enterprise Linux 6.0 release, the mode, uid, and gid parameters have been deprecated. Permissions for device-mapper devices (including mulitpath mappings) are set by means of udev rules. There is a template file in /usr/share/doc/device-mapper-version called 12-dm-permissions.rules which you can use and place in the /etc/udev/rules.d directory for it to take effect.

Table 4.1. Multipath Configuration Defaults

AttributeDescription
polling_interval Specifies the interval between two path checks in seconds. For properly functioning paths, the interval between checks will gradually increase to (4 * polling_interval). The default value is 5.
udev_dir The directory where udev device nodes are created. The default value is /dev.
multipath_dir The directory where the dynamic shared objects are stored. The default value is system dependent, commonly /lib/multipath.
find_multipaths
Defines the mode for setting up multipath devices. If this parameter is set to yes, then multipath will not try to create a device for every non-blacklisted path. Instead multipath will create a device only if one of three conditions are met:
- There are at least two non-blacklisted paths with the same WWID.
- The user manually forces the creation of the device by specifying a device with the multipath command.
- A path has the same WWID as a multipath device that was previously created. Whenever a multipath device is created with find_multipaths set, multipath remembers the WWID of the device so that it will automatically create the device again as soon as it sees a path with that WWID. This allows you to have multipath automatically choose the correct paths to make into multipath devices, without having to edit the multipath blacklist. For instructions on the procedure to follow if you have previously created multipath devices when the find_multipaths parameter was not set, see Section 4.2, “Configuration File Blacklist”.
The default value is no.
verbosity The default verbosity. Higher values increase the verbosity level. Valid levels are between 0 and 6. The default value is 2.
path_selector
Specifies the default algorithm to use in determining what path to use for the next I/O operation. Possible values include:
round-robin 0: Loop through every path in the path group, sending the same amount of I/O to each.
queue-length 0: Send the next bunch of I/O down the path with the least number of outstanding I/O requests.
service-time 0: Send the next bunch of I/O down the path with the shortest estimated service time, which is determined by dividing the total size of the outstanding I/O to each path by its relative throughput.
The default value is round-robin 0.
path_grouping_policy
Specifies the default path grouping policy to apply to unspecified multipaths. Possible values include:
failover: 1 path per priority group.
multibus: all valid paths in 1 priority group.
group_by_serial: 1 priority group per detected serial number.
group_by_prio: 1 priority group per path priority value. Priorities are determined by callout programs specified as global, per-controller, or per-multipath options.
group_by_node_name: 1 priority group per target node name. Target node names are fetched in /sys/class/fc_transport/target*/node_name.
The default value is failover.
getuid_callout
Specifies the default program and arguments to call out to obtain a unique path identifier. An absolute path is required.
The default value is /lib/udev/scsi_id --whitelisted --device=/dev/%n.
prio
Specifies the default function to call to obtain a path priority value. For example, the ALUA bits in SPC-3 provide an exploitable prio value. Possible values include:
const: Set a priority of 1 to all paths.
emc: Generate the path priority for EMC arrays.
alua: Generate the path priority based on the SCSI-3 ALUA settings. As of Red Hat Enterprise Linux 6.8, if you specify prio "alua exclusive_pref_bit" in your device configuration, multipath will create a path group that contains only the path with the pref bit set and will give that path group the highest priority.
tpg_pref: Generate the path priority based on the SCSI-3 ALUA settings, using the preferred port bit.
ontap: Generate the path priority for NetApp arrays.
rdac: Generate the path priority for LSI/Engenio RDAC controller.
hp_sw: Generate the path priority for Compaq/HP controller in active/standby mode.
hds: Generate the path priority for Hitachi HDS Modular storage arrays.
The default value is const.
features
The default extra features of multipath devices, using the format: "number_of_features_plus_arguments feature1 ...".
Possible values for features include:
queue_if_no_path, which is the same as setting no_path_retry to queue. For information on issues that may arise when using this feature, see Section 5.6, “Issues with queue_if_no_path feature”.
retain_attached_hw_handler: (Red Hat Enterprise Linux Release 6.4 and later) If this parameter is set to yes and the scsi layer has already attached a hardware handler to the path device, multipath will not force the device to use the hardware_handler specified by the multipath.conf file. If the scsi layer has not attached a hardware handler, multipath will continue to use its configured hardware handler as usual. The default value is no.
pg_init_retries n: Retry path group initialization up to n times before failing where 1 <= n <= 50.
pg_init_delay_msecs n: Wait n milliseconds between path group initialization retries where 0 <= n <= 60000.
path_checker
Specifies the default method used to determine the state of the paths. Possible values include:
readsector0: Read the first sector of the device.
tur: Issue a TEST UNIT READY to the device.
emc_clariion: Query the EMC Clariion specific EVPD page 0xC0 to determine the path.
hp_sw: Check the path state for HP storage arrays with Active/Standby firmware.
rdac: Check the path stat for LSI/Engenio RDAC storage controller.
directio: Read the first sector with direct I/O.
The default value is directio.
failback
Manages path group failback.
A value of immediate specifies immediate failback to the highest priority path group that contains active paths.
A value of manual specifies that there should not be immediate failback but that failback can happen only with operator intervention.
A value of followover specifies that automatic failback should be performed when the first path of a path group becomes active. This keeps a node from automatically failing back when another node requested the failover.
A numeric value greater than zero specifies deferred failback, expressed in seconds.
The default value is manual.
rr_min_io Specifies the number of I/O requests to route to a path before switching to the next path in the current path group. This setting is only for systems running kernels older than 2.6.31. Newer systems should use rr_min_io_rq. The default value is 1000.
rr_min_io_rq Specifies the number of I/O requests to route to a path before switching to the next path in the current path group, using request-based device-mapper-multipath. This setting should be used on systems running current kernels. On systems running kernels older than 2.6.31, use rr_min_io. The default value is 1.
rr_weight If set to priorities, then instead of sending rr_min_io requests to a path before calling path_selector to choose the next path, the number of requests to send is determined by rr_min_io times the path's priority, as determined by the prio function. If set to uniform, all path weights are equal. The default value is uniform.
no_path_retry
A numeric value for this attribute specifies the number of times the system should attempt to use a failed path before disabling queuing.
A value of fail indicates immediate failure, without queuing.
A value of queue indicates that queuing should not stop until the path is fixed.
The default value is 0.
user_friendly_names If set to yes, specifies that the system should use the /etc/multipath/bindings file to assign a persistent and unique alias to the multipath, in the form of mpathn. If set to no, specifies that the system should use the WWID as the alias for the multipath. In either case, what is specified here will be overridden by any device-specific aliases you specify in the multipaths section of the configuration file. The default value is no.
queue_without_daemon If set to no, the multipathd daemon will disable queuing for all devices when it is shut down. The default value is no.
flush_on_last_del If set to yes, the multipathd daemon will disable queuing when the last path to a device has been deleted. The default value is no.
max_fds Sets the maximum number of open file descriptors that can be opened by multipath and the multipathd daemon. This is equivalent to the ulimit -n command. As of the Red Hat Enterprise Linux 6.3 release, the default value is max, which sets this to the system limit from /proc/sys/fs/nr_open. For earlier releases, if this is not set the maximum number of open file descriptors is taken from the calling process; it is usually 1024. To be safe, this should be set to the maximum number of paths plus 32, if that number is greater than 1024.
checker_timeout The timeout to use for prioritizers and path checkers that issue SCSI commands with an explicit timeout, in seconds. The default value is taken from sys/block/sdx/device/timeout.
fast_io_fail_tmo The number of seconds the SCSI layer will wait after a problem has been detected on an FC remote port before failing I/O to devices on that remote port. This value should be smaller than the value of dev_loss_tmo. Setting this to off will disable the timeout. The default value is determined by the OS.
dev_loss_tmo The number of seconds the SCSI layer will wait after a problem has been detected on an FC remote port before removing it from the system. Setting this to infinity will set this to 2147483647 seconds, or 68 years. The default value is determined by the OS.
hwtable_regex_match
(Red Hat Enterprise Linux Release 6.3 and later) Controls how multipath integrates the device configurations from the devices section of the configuration file with the built-in device configurations.
Each device configuration in the devices section of the multipath.conf file will either create its own device configuration or it will modify one of the built-in device configurations. Prior to Red Hat Enterprise Linux 6.3, if the vendor, product, and revision strings in a user's device configuration exactly matched those strings in a built-in device configuration, the built-in configuration was modified by the options in the user's configuration. Otherwise. the user's device configuration was treated as a new configuration.
If hwtable_regex_match is set to yes, a regular expression match is used instead. The vendor, product, and revision strings are all regular expressions. The user device configuration values for these options are matched against the built-in device configuration values. This match works the same way that an actual device's vendor product and revision strings are matched against a device configuration's strings to see which configuration should be used for the device. If the user's device configuration matches, then the built-in configuration is modified by the options in the user's configuration. Otherwise the user's device configuration is treated as a new configuration.
retain_attached_hw_handler (Red Hat Enterprise Linux Release 6.4 and later) If this parameter is set to yes and the scsi layer has already attached a hardware handler to the path device, multipath will not force the device to use the hardware_handler specified by the multipath.conf file. If the scsi layer has not attached a hardware handler, multipath will continue to use its configured hardware handler as usual. The default value is no.
detect_prio (Red Hat Enterprise Linux Release 6.4 and later) If this is set to yes, multipath will first check if the device supports ALUA, and if so it will automatically assign the device the alua prioritizer. If the device does not support ALUA, it will determine the prioritizer as it always does. The default value is no.
replace_wwid_whitespace (Red Hat Enterprise Linux Release 6.5 and later) If this is set to yes, the default getuid_callout for all devices that use this parameter will be changed to include --replace-whitespace.
reload_readwrite (Red Hat Enterprise Linux Release 6.5 and later) If this is set to yes, the multipathd daemon will listen to path device change events and if a device has become read/write it will reload the multipath device.
force_sync (Red Hat Enterprise Linux Release 6.6 and later) If this is set to "yes", it prevents path checkers from running in async mode.
delay_watch_checks (Red Hat Enterprise Linux Release 6.7 and later) If set to a value greater than 0, the multipathd daemon will watch paths that have recently become valid for the specified number of checks. If they fail again while they are being watched, when they next become valid they will not be used until they have stayed up for the number of consecutive checks specified with delay_wait_checks. This allows you to keep paths that may be unreliable from immediately being put back into use as soon as they come back online. The default value is no.
delay_wait_checks (Red Hat Enterprise Linux Release 6.7 and later) If set to a value greater than 0, when a device that has recently come back online fails again within the number of checks specified with delay_watch_checks, the next time it comes back online it will be marked and delayed and it will not be used until it has passed the number of checks specified in delay_wait_checks. The default value is no.
config_dir (Red Hat Enterprise Linux Release 6.7 and later) If set to anything other than "", multipath will search this directory alphabetically for files ending in ".conf" and it will read configuration information from them, just as if the information were in the /etc/multipath.conf file. This allows you to have one main configuration that you share between machines in addition to a separate machine-specific configuration file or files. The config_dir parameter must either be "" or a fully qualified directory name. This parameter can be set only in the main /etc/multipath.conf file and not in one of the files specified in the config_dir file itself. The default value is /etc/multipath/conf.d.
log_checker_err If set to once, multipathd logs the first path checker error at verbosity level 2. Any later errors are logged at verbosity level 3 until the device is restored. If it is set to always, multipathd always logs the path checker error at verbosity level 2. The default value is always.
skip_kpartx (Red Hat Enterprise Linux Release 6.9 and later) If set to yes, kpartx will not automatically create partitions on the device. This allows users to create a multipath device without creating partitions, even if the device has a partition table. The default value of this option is no.
max_sectors_kb (Red Hat Enterprise Linux Release 6.9 and later) Sets the max_sectors_kb device queue parameter to the specified value on all underlying paths of a multipath device before the multipath device is first activated. When a multipath device is created, the device inherits the max_sectors_kb value from the path devices. Manually raising this value for the multipath device or lowering this value for the path devices can cause multipath to create I/O operations larger than the path devices allow. Using the max_sectors_kb parameter is an easy way to set these values before a multipath device is created on top of the path devices and prevent invalid-sized I/O operations from being passed. If this parameter is not set by the user, the path devices have it set by their device driver, and the multipath device inherits it from the path devices.