560bcf9d14
Update udev helper scripts to deal with device-mapper devices created by multipathd. These enhancements are targeted at a particular storage network topology under evaluation at LLNL consisting of two SAS switches providing redundant connectivity between multiple server nodes and disk enclosures. The key to making these systems manageable is to create shortnames for each disk that conveys its physical location in a drawer. In a direct-attached topology we infer a disk's enclosure from the PCI bus number and HBA port number in the by-path name provided by udev. In a switched topology, however, multiple drawers are accessed via a single HBA port. We therefore resort to assigning drawer identifiers based on which switch port a drive's enclosure is connected to. This information is available from sysfs. Add options to zpool_layout to generate an /etc/zfs/zdev.conf using symbolic links in /dev/disk/by-id of the form <label>-<UUID>-switch-port:<X>-slot:<Y>. <label> is a string that depends on the subsystem that created the link and defaults to "dm-uuid-mpath" (this prefix is used by multipathd). <UUID> is a unique identifier for the disk typically obtained from the scsi_id program, and <X> and <Y> denote the switch port and disk slot numbers, respectively. Add a callout script sas_switch_id for use by multipathd to help create symlinks of the form described above. Update zpool_id and the udev zpool rules file to handle both multipath devices and conventional drives.
124 lines
3.1 KiB
Plaintext
124 lines
3.1 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
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
dracut/Makefile
|
|
dracut/90zfs/Makefile
|
|
etc/Makefile
|
|
etc/udev/Makefile
|
|
etc/udev/rules.d/Makefile
|
|
etc/init.d/Makefile
|
|
etc/zfs/Makefile
|
|
man/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
|
|
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/sas_switch_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
|
|
zfs-script-config.sh
|
|
])
|
|
|
|
AC_OUTPUT
|