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 I/O 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.

Table 4.3. Device Attributes

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.
bl_product Specifies a regular expression used to blacklist devices by vendor/product. Note that for a device to get blacklisted, the vendor, product, and bl_product strings must all match.
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 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 failure. "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.
failback Specifies path group failback.
A value of 0 or immediate specifies that as soon as there is a path group with 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.
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.
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_min_io (RHEL 4.8 and later) 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.
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).
flush_on_last_del (RHEL 4.7 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.
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
#	}
#}