821b683436
vdev_id parses the file /etc/zfs/vdev_id.conf to map a physical path in a storage topology to a channel name. The channel name is combined with a disk enclosure slot number to create an alias that reflects the physical location of the drive. This is particularly helpful when it comes to tasks like replacing failed 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: o sas_direct - a channel is uniquely identified by a PCI slot and a HBA port o sas_switch - a channel is uniquely identified by a SAS switch port A multipath mode is supported in which dm-mpath devices are handled by examining the first running component disk, as reported by 'multipath -l'. In multipath mode the configuration file should contain a channel definition with the same name for each path to a given enclosure. vdev_id can replace the existing zpool_id script on systems where the storage topology conforms to sas_direct or sas_switch. The script could be extended to support other topologies as well. The advantage of vdev_id is that it is driven by a single static input file that can be shared across multiple nodes having a common storage toplogy. zpool_id, on the other hand, requires a unique /etc/zfs/zdev.conf per node and a separate slot-mapping file. However, zpool_id provides the flexibility of using any device names that show up in /dev/disk/by-path, so it may still be needed on some systems. vdev_id's functionality subsumes that of the sas_switch_id script, and it is unlikely that anyone is using it, so sas_switch_id is removed. Finally, /dev/disk/by-vdev is added to the list of directories that 'zpool import' will scan. Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes #713
129 lines
3.2 KiB
Plaintext
129 lines
3.2 KiB
Plaintext
/*
|
|
* This file is part of the ZFS Linux port.
|
|
*
|
|
* Copyright (c) 2009 Lawrence Livermore National Security, LLC.
|
|
* Produced at Lawrence Livermore National Laboratory
|
|
* Written by:
|
|
* Brian Behlendorf <behlendorf1@llnl.gov>,
|
|
* Herb Wartens <wartens2@llnl.gov>,
|
|
* Jim Garlick <garlick@llnl.gov>
|
|
* LLNL-CODE-403049
|
|
*
|
|
* CDDL HEADER START
|
|
*
|
|
* The contents of this file are subject to the terms of the
|
|
* Common Development and Distribution License, Version 1.0 only
|
|
* (the "License"). You may not use this file except in compliance
|
|
* with the License.
|
|
*
|
|
* You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
|
|
* or http://www.opensolaris.org/os/licensing.
|
|
* See the License for the specific language governing permissions
|
|
* and limitations under the License.
|
|
*
|
|
* When distributing Covered Code, include this CDDL HEADER in each
|
|
* file and include the License file at usr/src/OPENSOLARIS.LICENSE.
|
|
* If applicable, add the following below this CDDL HEADER, with the
|
|
* fields enclosed by brackets "[]" replaced with your own identifying
|
|
* information: Portions Copyright [yyyy] [name of copyright owner]
|
|
*
|
|
* CDDL HEADER END
|
|
*/
|
|
|
|
AC_INIT
|
|
AC_LANG(C)
|
|
ZFS_AC_META
|
|
AC_CONFIG_AUX_DIR([config])
|
|
AC_CANONICAL_SYSTEM
|
|
AM_MAINTAINER_MODE
|
|
AM_SILENT_RULES
|
|
AM_INIT_AUTOMAKE([$ZFS_META_NAME], [$ZFS_META_VERSION])
|
|
AC_CONFIG_HEADERS([zfs_config.h], [
|
|
(mv zfs_config.h zfs_config.h.tmp &&
|
|
awk -f ${ac_srcdir}/config/config.awk zfs_config.h.tmp >zfs_config.h &&
|
|
rm zfs_config.h.tmp) || exit 1])
|
|
|
|
AC_PROG_INSTALL
|
|
AC_PROG_CC
|
|
AC_PROG_LIBTOOL
|
|
AM_PROG_AS
|
|
|
|
ZFS_AC_LICENSE
|
|
ZFS_AC_PACKAGE
|
|
ZFS_AC_CONFIG
|
|
ZFS_AC_DEBUG
|
|
ZFS_AC_DEBUG_DMU_TX
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
dracut/Makefile
|
|
dracut/90zfs/Makefile
|
|
udev/Makefile
|
|
udev/rules.d/Makefile
|
|
etc/Makefile
|
|
etc/init.d/Makefile
|
|
etc/zfs/Makefile
|
|
man/Makefile
|
|
man/man5/Makefile
|
|
man/man8/Makefile
|
|
lib/Makefile
|
|
lib/libspl/Makefile
|
|
lib/libspl/asm-generic/Makefile
|
|
lib/libspl/asm-i386/Makefile
|
|
lib/libspl/asm-x86_64/Makefile
|
|
lib/libspl/include/Makefile
|
|
lib/libspl/include/ia32/Makefile
|
|
lib/libspl/include/ia32/sys/Makefile
|
|
lib/libspl/include/rpc/Makefile
|
|
lib/libspl/include/sys/Makefile
|
|
lib/libspl/include/sys/sysevent/Makefile
|
|
lib/libspl/include/sys/dktp/Makefile
|
|
lib/libspl/include/util/Makefile
|
|
lib/libavl/Makefile
|
|
lib/libefi/Makefile
|
|
lib/libnvpair/Makefile
|
|
lib/libunicode/Makefile
|
|
lib/libuutil/Makefile
|
|
lib/libzpool/Makefile
|
|
lib/libzfs/Makefile
|
|
lib/libshare/Makefile
|
|
cmd/Makefile
|
|
cmd/zdb/Makefile
|
|
cmd/zfs/Makefile
|
|
cmd/zinject/Makefile
|
|
cmd/zpool/Makefile
|
|
cmd/ztest/Makefile
|
|
cmd/zpios/Makefile
|
|
cmd/mount_zfs/Makefile
|
|
cmd/zpool_layout/Makefile
|
|
cmd/zvol_id/Makefile
|
|
cmd/zpool_id/Makefile
|
|
cmd/vdev_id/Makefile
|
|
module/Makefile
|
|
module/avl/Makefile
|
|
module/nvpair/Makefile
|
|
module/unicode/Makefile
|
|
module/zcommon/Makefile
|
|
module/zfs/Makefile
|
|
module/zpios/Makefile
|
|
include/Makefile
|
|
include/linux/Makefile
|
|
include/sys/Makefile
|
|
include/sys/fs/Makefile
|
|
include/sys/fm/Makefile
|
|
include/sys/fm/fs/Makefile
|
|
scripts/Makefile
|
|
scripts/zpios-profile/Makefile
|
|
scripts/zpios-test/Makefile
|
|
scripts/zpool-config/Makefile
|
|
scripts/zpool-layout/Makefile
|
|
scripts/common.sh
|
|
zfs.spec
|
|
zfs-modules.spec
|
|
PKGBUILD-zfs
|
|
PKGBUILD-zfs-modules
|
|
zfs-script-config.sh
|
|
])
|
|
|
|
AC_OUTPUT
|