将设备列入黑名单
设备映射器多路径支持多种机制,允许将符合特定条件的设备列入黑名单。
检测和创建多路径设备时将跳过列入黑名单的设备。
此机制的一种用途是从多路径配置中排除本地设备(例如,内置磁盘或者可移动媒体)。
这允许这些设备继续用作正常的单路径设备而不受多路径子系统的干扰。
设备映射器多路径还包括一个内置黑名单,用于排除不支持多路径的设备。
此列表是预先配置的,不需要包含在 multipath.conf 中即可生效。
当前的内置黑名单集如下:
blacklist { devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" }
find_multipaths 功能
Red Hat Enterprise Linux 6 及更高版本中的设备映射器多路径版本包括“find_multipaths”功能。
这会将任何设备排除在多路径配置之外,直到同时检测到至少两条到该设备的路径。
这是手动黑名单的有效替代方案,对于常见场景需要较少的配置和维护。
通过将以下行添加到 multipath.conf 的全局“defaults”部分来启用该功能:
defaults { ... find_multipaths yes ... }
红帽企业 Linux 本身支持向操作系统提供多条路径的存储。
配置 CentOS/RHEL 以使用多路径功能是一个简单的过程:
启用设备映射器多路径
使用 mpathconf 命令生成默认的 /etc/multipath.conf 文件。
要确定已安装版本的默认设置,请使用 -help 选项:
# mpathconf --help usage: /usr/sbin/mpathconf [command] Commands: Enable: --enable Disable: --disable Set user_friendly_names (Default n): --user_friendly_names [y|n] Set find_multipaths (Default n): --find_multipaths [y|n] Load the dm-multipath modules on enable (Default y): --with_module [y|n] start/stop/reload multipathd (Default n): --with_multipathd [y|n] chkconfig on/off multipathd (Default y): --with_chkconfig [y|n]
不需要在命令行上指定默认为所需值的选项。
例如,要启用具有用户友好名称功能的多路径,将所有其他选项设置为默认值,请发出以下命令:
# mpathconf --enable --user_friendly_names y
检测和配置多路径设备
现在已经创建了一个基本的 multipath.conf 文件,并在安装所需软件包后填充了系统的适当设置。
运行 multipath 命令以检测和配置多路径设备:
# multipath mpatha (3600601f0d057000018fc7845f46fe011) dm-1 DGC,RAID 0 size=98G features='0' hwhandler='1 emc' wp=rw |-+- policy='round-robin 0' prio=1 status=active | - 11:0:0:0 sdd 8:128 active ready running | - 10:0:0:0 sde 8:64 active ready running -+- policy='round-robin 0' prio=0 status=enabled |- 8:0:0:0 sdc 8:32 active ready running - 9:0:0:0 sdf 8:80 active ready running
该命令可以打印可能用于诊断问题或者创建自定义配置的添加信息。
这包括有关黑名单设置和存储设备与内置配置匹配的信息。
使用 -v[number] 选项指定详细选项会启用以下添加输出:
Nov 04 16:48:56 | Found matching alias [mpatha] in bindings file. Setting wwid to 3600601608e661a00e4710bf88370e211 Nov 04 16:48:56 | ram0: device node name blacklisted Nov 04 16:48:56 | ram1: device node name blacklisted Nov 04 16:48:56 | loop0: device node name blacklisted Nov 04 16:48:56 | sr0: device node name blacklisted Nov 04 16:48:56 | sda: device node name blacklisted Nov 04 16:48:56 | sdc: not found in pathvec Nov 04 16:48:56 | sdc: mask = 0x3f Nov 04 16:48:56 | sdc: serial = FCNPR063600652 Nov 04 16:48:56 | sdc: get_state Nov 04 16:48:56 | loading /lib64/multipath/libcheckemc_clariion.so checker
通过为 multipath 命令指定“-l”或者“-ll”选项来显示和查看配置:
# multipath -ll mpatha (3600601f0d057000018fc7845f46fe011) dm-1 DGC,RAID 0 size=98G features='0' hwhandler='1 emc' wp=rw |-+- policy='round-robin 0' prio=1 status=active | - 11:0:0:0 sdd 8:128 active ready running | - 10:0:0:0 sde 8:64 active ready running -+- policy='round-robin 0' prio=0 status=enabled |- 8:0:0:0 sdc 8:32 active ready running - 9:0:0:0 sdf 8:80 active ready running
安装
如果尚未安装,请安装 device-mapper-multipath 包:
# yum install device-mapper-multipath
多路径设备的位置
当设备处于 device-mapper-multipath 的控制之下时,可以在 /dev 目录下的三个不同位置看到新的多路径设备:
- /dev/dm-N
- /dev/mapper/mpathN
- /dev/mpath/mpathN
/dev/dm-N 设备是设备映射器的内部设备,不应使用。
这些设备不是持久的。
从 CentOS/RHEL 5 开始,这些设备不再由 udev 创建。
RHEL 4 和 5 中提供了 /dev/mpath/mpathN 设备,以便可以在一个地方看到所有多路径设备;此目录在 RHEL 6 中不再存在。
但是,在系统需要访问它们之前,可能不会在引导时创建这些设备节点。
因此,它们不应用于为卷组或者分区创建物理卷,这些卷组或者分区在可用的那些版本中具有文件系统。
/dev/mapper/mpathN 设备是持久的,它们是在引导过程的早期创建的。
因此,这些是用于访问多路径设备的设备名称。