GNU/Linux |
CentOS 5.4 |
|
![]() |
mpath_prio_alua(8) |
![]() |
mpath_prio_alua − Path priority tool based on Asymmetric LUn Access
mpath_prio_alua [−d directory] [−h] [−v] [−V] device [ device [ ... ]]
mpath_prio_alua is used as a priority callout for the multipath command. It returns a number that is used by multipath to group devices with the same priority together.
−d directory
target directory for devices given as relative device names or devices given as major:minor number. Default is "/dev".
−h |
displays the command line help. | ||
−v |
turns on verbose output. This shows all results in human readable format. This includes information about the port group the device is in and its current state. | ||
−V |
shows the version number and exits. | ||
device |
specifies the device to query (the device must be a SCSI device that supports the “Report Target Port Groups” command). One of the following three formats may be used: |
•
The full path name that starts with ’/’ (e.g. /dev/sda). | |||
• |
The device name only. This will prefix the directory name given by the −d option (e.g. sda). | ||
• |
The major and minor number of the device separated by ’:’. This will create a temporary device node in the device directory (e.g. 8:0). The temporary name will be “tmpdev-<major>:<minor>-<pid>”. |
The mpath_prio_alua command returns the following values:
0 |
on success. In this case the priority for the device is printed to stdout. The priority value is: |
50
for devices that are in the active, optimized group | |||
10 |
for devices that are in an active but non-optimized group | ||
1 |
for devices that are in the standby group | ||
0 |
for all other groups |
The reason for the widely spaced priority values is the way multipath handles them. It will multiply the number of paths in a group with the priority value and select the group with the highest result. Thus, if there are six paths in the active, non-optimized group and only one in the active, optimized one, the non-optimized group would be used.
1 |
Indicates an error parsing the command line. | ||
2 |
The given devices could not be opened for reading. | ||
3 |
The device does not support target port groups. | ||
4 |
The inquiry command did not return a target port group for the given device. | ||
5 |
The report target port group command failed or did not return a target port group that was obtained from the inquiry command. |
This example queries a device directly and returns the priority string:
#>
mpath_prio_alua /dev/sda
50
Now the major and minor number is used to specify the device and verbose output is selected:
#>
mpath_prio_alua -v 8:0
Target port groups are implicitly supported.
Reported target port group is 0 [active/optimized]
50
The following example shows the entries in the devices section of the multipath-tool configuration file (/etc/multipath.conf) to support an IBM DS6000 storage system:
device {
vendor |
"IBM " | ||
product |
"1750500 " | ||
path_grouping_policy |
group_by_prio | ||
prio_callout |
"/sbin/mpath_prio_alua -d/tmp %d" | ||
features |
"1 queue_if_no_path" | ||
path_checker |
tur |
}
Notes: |
||
• |
Depending on your default configuration not all keywords are required (e.g. if your path_checker is set to tur you don’t have to use the path_checker statement in the device section).
• |
The entries for vendor and product must be strings that are 8 characters long (for vendor) and 16 characters long (for product). The strings have to be padded with blanks if necessary. | ||
• |
If you are working with hotpluggable devices whose device nodes are created by udev you should use the %d flag in the prio_callout statement. This is because a short time elapses between the devices being available and udev creating the device nodes. | ||
• |
If under certain circumstances your storage subsystem temporarily reports failures on all paths, you should use the features statement showed in the example. This will configure the multipath volume to requeue I/O until a path becomes available again, instead of reporting failures in that case. |
multipath(8),
mpath_prio_alua was developed by Jan Kunigk and adapted by Stefan Bader <shbader@de.ibm.com>
![]() |
mpath_prio_alua(8) | ![]() |