vdev_id support for device link aliases

Add a vdev_id feature to map device names based on already defined
udev device links.  To increase the odds that vdev_id will run after
the rules it depends on, increase the vdev.rules rule number from 60
to 69.  With this change, vdev_id now provides functionality analogous
to zpool_id and zpool_layout, paving the way to retire those tools.

A defined alias takes precedence over a topology-derived name, but the
two naming methods can otherwise coexist. For example, one might name
drives in a JBOD with the sas_direct topology while naming an internal
L2ARC device with an alias.

For example, the following lines in vdev_id.conf will result in the
creation of links /dev/disk/by-vdev/{d1,d2}, each pointing to the same
target as the device link specified in the third field.

  #     by-vdev
  #     name     fully qualified or base name of device link
  alias d1       /dev/disk/by-id/wwn-0x5000c5002de3b9ca
  alias d2       wwn-0x5000c5002def789e

Also perform some minor vdev_id cleanup, such as removal of the unused
-s command line option.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #981
This commit is contained in:
Ned Bass
2012-11-29 11:08:37 -08:00
committed by Brian Behlendorf
parent e89260a1c8
commit 2957f38d78
7 changed files with 262 additions and 151 deletions
+9 -4
View File
@@ -19,15 +19,20 @@ drives. Slot numbers may also be re-mapped in case the default
numbering is unsatisfactory. The drive aliases will be created as
symbolic links in /dev/disk/by-vdev.
The only currently supported topologies are sas_direct and
sas_switch. A multipath mode is supported in which dm-mpath
devices are handled by examining the first-listed running
component disk as reported by the
The currently supported topologies are sas_direct and sas_switch. A
multipath mode is supported in which dm-mpath devices are handled by
examining the first-listed running component disk as reported by the
.BR multipath (8)
command. In multipath mode the configuration file should contain a
channel definition with the same name for each path to a given
enclosure.
.BR vdev_id
also supports creating aliases based on existing udev links in the /dev
hierarchy using the \fIalias\fR configuration file keyword. See the
.BR vdev_id.conf (5)
man page for details.
.SH OPTIONS
.TP
\fB\-c\fR <config_file>