mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 03:09:34 +03:00
Add extra keyword 'slot' to vdev_id.conf
Add new keyword 'slot' to vdev_id.conf This selects from where to get the slot number for a SAS/SATA disk Needed to enable access to the physical position of a disk in a Supermicro 2027R-AR24NV . Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Ned Bass <bass6@llnl.gov> Closes #3693
This commit is contained in:
parent
d439f63ff5
commit
bba365cfc8
@ -32,6 +32,7 @@
|
|||||||
# multipath no
|
# multipath no
|
||||||
# topology sas_direct
|
# topology sas_direct
|
||||||
# phys_per_port 4
|
# phys_per_port 4
|
||||||
|
# slot bay
|
||||||
#
|
#
|
||||||
# # PCI_ID HBA PORT CHANNEL NAME
|
# # PCI_ID HBA PORT CHANNEL NAME
|
||||||
# channel 85:00.0 1 A
|
# channel 85:00.0 1 A
|
||||||
@ -93,6 +94,7 @@ PHYS_PER_PORT=
|
|||||||
DEV=
|
DEV=
|
||||||
MULTIPATH=
|
MULTIPATH=
|
||||||
TOPOLOGY=
|
TOPOLOGY=
|
||||||
|
BAY=
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
cat << EOF
|
cat << EOF
|
||||||
@ -252,7 +254,25 @@ sas_handler() {
|
|||||||
i=$(($i + 1))
|
i=$(($i + 1))
|
||||||
done
|
done
|
||||||
|
|
||||||
SLOT=`cat $end_device_dir/bay_identifier 2>/dev/null`
|
SLOT=
|
||||||
|
case $BAY in
|
||||||
|
"bay")
|
||||||
|
SLOT=`cat $end_device_dir/bay_identifier 2>/dev/null`
|
||||||
|
;;
|
||||||
|
"phy")
|
||||||
|
SLOT=`cat $end_device_dir/phy_identifier 2>/dev/null`
|
||||||
|
;;
|
||||||
|
"id")
|
||||||
|
i=$(($i + 1))
|
||||||
|
d=$(eval echo \${$i})
|
||||||
|
SLOT=`echo $d | sed -e 's/^.*://'`
|
||||||
|
;;
|
||||||
|
"lun")
|
||||||
|
i=$(($i + 2))
|
||||||
|
d=$(eval echo \${$i})
|
||||||
|
SLOT=`echo $d | sed -e 's/^.*://'`
|
||||||
|
;;
|
||||||
|
esac
|
||||||
if [ -z "$SLOT" ] ; then
|
if [ -z "$SLOT" ] ; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
@ -356,10 +376,15 @@ if [ -z "$TOPOLOGY" ] ; then
|
|||||||
TOPOLOGY=`awk "\\$1 == \"topology\" {print \\$2; exit}" $CONFIG`
|
TOPOLOGY=`awk "\\$1 == \"topology\" {print \\$2; exit}" $CONFIG`
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -z "$BAY" ] ; then
|
||||||
|
BAY=`awk "\\$1 == \"slot\" {print \\$2; exit}" $CONFIG`
|
||||||
|
fi
|
||||||
|
|
||||||
# First check if an alias was defined for this device.
|
# First check if an alias was defined for this device.
|
||||||
ID_VDEV=`alias_handler`
|
ID_VDEV=`alias_handler`
|
||||||
|
|
||||||
if [ -z "$ID_VDEV" ] ; then
|
if [ -z "$ID_VDEV" ] ; then
|
||||||
|
BAY=${BAY:-bay}
|
||||||
TOPOLOGY=${TOPOLOGY:-sas_direct}
|
TOPOLOGY=${TOPOLOGY:-sas_direct}
|
||||||
case $TOPOLOGY in
|
case $TOPOLOGY in
|
||||||
sas_direct|sas_switch)
|
sas_direct|sas_switch)
|
||||||
|
@ -88,6 +88,19 @@ switch port.
|
|||||||
.BR vdev_id (8)
|
.BR vdev_id (8)
|
||||||
internally uses this value to determine which HBA or switch port a
|
internally uses this value to determine which HBA or switch port a
|
||||||
device is connected to. The default is 4.
|
device is connected to. The default is 4.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fIslot\fR <bay|phy|id|lun>
|
||||||
|
Specifies from which element of a SAS identifier the slot number is
|
||||||
|
taken. The default is bay.
|
||||||
|
|
||||||
|
\fIbay\fR - read the slot number from the bay identifier.
|
||||||
|
|
||||||
|
\fIphy\fR - read the slot number from the phy identifier.
|
||||||
|
|
||||||
|
\fIid\fR - use the scsi id as the slot number.
|
||||||
|
|
||||||
|
\fIlun\fR - use the scsi lun as the slot number.
|
||||||
.SH EXAMPLES
|
.SH EXAMPLES
|
||||||
A non-multipath configuration with direct-attached SAS enclosures and an
|
A non-multipath configuration with direct-attached SAS enclosures and an
|
||||||
arbitrary slot re-mapping.
|
arbitrary slot re-mapping.
|
||||||
@ -96,6 +109,7 @@ arbitrary slot re-mapping.
|
|||||||
multipath no
|
multipath no
|
||||||
topology sas_direct
|
topology sas_direct
|
||||||
phys_per_port 4
|
phys_per_port 4
|
||||||
|
slot bay
|
||||||
|
|
||||||
# PCI_SLOT HBA PORT CHANNEL NAME
|
# PCI_SLOT HBA PORT CHANNEL NAME
|
||||||
channel 85:00.0 1 A
|
channel 85:00.0 1 A
|
||||||
|
Loading…
Reference in New Issue
Block a user