4.5. Configuration File Devices
Table 4.3, “Device Attributes” shows the attributes that you can set for each individual storage device in the
devices section of the
multipath.conf configuration file. These attributes are used by DM-Multipath unless they are overwritten by the attributes specified in the
multipaths section of the
multipath.conf file for paths that contain the device. These attributes override the attributes set in the
defaults section of the
multipath.conf file.
Many devices that support multipathing are included by default in a multipath configuration. The values for the devices that are supported by default are listed in the multipath.conf.defaults file. You probably will not need to modify the values for these devices, but if you do you can overwrite the default values by including an entry in the the configuration file for the device that overwrites those values. You can copy the device configuration defaults from the multipath.conf.defaults file for the device and override the values that you want to change.
To add a device to this section of the configuration file that is not configured automatically by default, you need to set the vendor and product parameters. You can find these values by looking at /sys/block/device_name/device/vendor and /sys/block/device_name/device/model where device_name is the device to be multipathed, as in the following example:
[root@cypher-06 ~]# cat /sys/block/sda/device/vendor
WINSYS
[root@cypher-06 ~]# cat /sys/block/sda/device/model
SF2372
The additional parameters to specify depend on your specific device. If the device is active/active, you will usually not need to set additional parameters. You may want to set
path_grouping_policy to
multibus. Other parameters you may need to set are
no_path_retry and
rr_min_io, as described in
Table 4.3, “Device Attributes”.
If the device is active/passive, but it automatically switches paths with I/O to the passive path, you need to change the checker function to one that does not send IO/ to the path to test if it is working (otherwise, your device will keep failing over). This almost always means that you set the path_checker to tur; this works for all SCSI devices that support the Test Unit Ready command, which most do.
If the device needs a special command to switch paths, then configuring this device for multipath requires a hardware handler kernel module. The current hardware handlers are emc and "rdac. If these are not sufficient for your device, you may not be able to configure the device for multipath.
|
Attribute
|
Description
|
|---|
vendor
|
Specifies the vendor name of the storage device to which the device attributes apply, for example COMPAQ.
|
product
|
Specifies the product name of the storage device to which the device attributes apply, for example HSV110 (C)COMPAQ.
|
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 | group_by_node_name = 1 priority group per target node name |
|
getuid_callout
|
Specifies the default program and arguments to call out to obtain a unique path identifier. An absolute path is required.
|
prio_callout
|
Specifies the the default program and arguments to call out to obtain a path weight. Weights are summed for each path group to determine the next path group to use in case of failue. "none" is a valid value.
|
path_checker
|
Specifies the default method used to determine the state of the paths. Possible values include readsector0 and tur, emc_clariion, hp_sw, and directio.
|
path_selector
|
Specifies the default algorithm to use in determining what path to use for the next I/O operation.
|
features
|
The extra features of multipath devices. The only existing feature is 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.3, “Issues with queue_if_no_path feature”.
|
hardware_handler
|
Specifies a module that will be used to perform hardware specific actions when switching path groups or handling I/O errors. Possible values include 0, 1 emc, and 1 rdac. The default value is 0.
|
rr_weight
|
If set to priorities, then instead of sending rr_min_io requests to a path before calling 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_callout program. Currently, there are priority callouts only for devices that use the group_by_prio path grouping policy, which means that all the paths in a path group will always have the same priority. | 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 queueing. | 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 (null). |
|
failback
|
| Specifies path group failback. | A value of 0 or immediate specifies that as soon as there is a path group whith a higher priority than the current path group the system switches to that path group. | | A numeric value greater than zero specifies deferred failback, expressed in seconds. | A value of manual specifies that failback can happen only with operator intervention. |
|
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. The default value is 1000.
|
flush_on_last_del
|
(RHEL 5.3 and later) If set to yes, the multipathd daemon will disable queueing when the last path to a device has been deleted. The default value is no.
|
product_blacklist
|
Specifies a regular expression used to blacklist devices by product.
|
Table 4.3. Device Attributes
The following example shows a device entry in the multipath configuration file.
# }
# device {
# vendor "COMPAQ "
# product "MSA1000 "
# path_grouping_policy multibus
# path_checker tur
# rr_weight priorities
# }
#}