vdev_id: fix failure due to multipath -l bug
Udev may fail to create the expected symbolic links in /dev/disk/by-vdev on systems with the device-mapper-multipath-0.4.9-100.el6 package installed. This affects RHEL 6.9 and possibly other downstream distributions. That version of the multipath command may incorrectly list a drive state as "unkown" instead of "running". The issue was introduced in the patch for https://bugzilla.redhat.com/show_bug.cgi?id=1401769 The vdev_id udev helper uses the state reported by "multipath -l" to detect an online component disk of a multipath device in order to resolve its physical slot and enclosure. Changing the command invocation to "multipath -ll" works around the above issue by causing multipath to consult additional sources of information to determine the drive state. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Giuseppe Di Natale <dinatale2@llnl.gov> Signed-off-by: Ned Bass <bass6@llnl.gov> Closes #6039
This commit is contained in:
parent
a2c9518711
commit
36ccb9db43
|
@ -184,9 +184,9 @@ sas_handler() {
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Get the raw scsi device name from multipath -l. Strip off
|
# Get the raw scsi device name from multipath -ll. Strip off
|
||||||
# leading pipe symbols to make field numbering consistent.
|
# leading pipe symbols to make field numbering consistent.
|
||||||
DEV=`multipath -l $DM_NAME |
|
DEV=`multipath -ll $DM_NAME |
|
||||||
awk '/running/{gsub("^[|]"," "); print $3 ; exit}'`
|
awk '/running/{gsub("^[|]"," "); print $3 ; exit}'`
|
||||||
if [ -z "$DEV" ] ; then
|
if [ -z "$DEV" ] ; then
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue