zfsonlinux/zfs — pull request #968 by behlendorf (2012-09-15 20:52:28+00:00)
Title: Improve `zpool import` search behavior

The goal of this change is to make 'zpool import' prefer to use
the peristent /dev/mapper or /dev/disk/by-* paths. This are far
preferable to devices in /dev/ whos names are not persistent and
are determined by when a device is detected.

This patch improves things by changing the default search path from
just to the top level /dev/ directory to (in order):

/dev/disk/by-vdev - Custom rules, use first if they exist
/dev/mapper - Use multipath devices before components
/dev/disk/by-uuid - Single unique entry and persistent
/dev/disk/by-id - May be multiple entries and persistent
/dev/disk/by-path - Encodes physical location and persistent
/dev/disk/by-label - Custom persistent labels
/dev - UNSAFE device names will change

The default search path can be overriden by setting the
ZPOOL_IMPORT_PATH environment variable. This must be a colon
delimited list of paths which are search for vdevs. If the
'zpool import -d' option is specified only those listed paths
will be searched.

Finally, when multiple paths to the same device are found. If one
of the paths is an exact match for the path used last time to import
the pool it will be used. When there are no exact matches the
prefered path will be determined by the provided search order.

This means you can still import a pool and force specific names by
providing the -d option. And the prefered names will persist
as long as those paths exist on your system.

Signed-off-by: Brian Behlendorf
Issue #965