rhel 6 映射多路径(DM Multipath)配置及管理

1 设备映射器多路径
11
1 设备映射器多路径
设备映射器多路径( DM-Multipath 您将服点和存储阵的多个 I/O 路径配置一个
I/O 路径是可包含独立电缆 机以及控制器的物理 SAN 接。 多路径集合了 I/O 路径, 并生成
些整合路径成的新设备
本章提供了帽企 Linux 6 初始行本中不包括的 DM-Multipath 新功能概述。 之后, 本章提供 DMMultipath 及其件的高概述以及 DM-Multipath 置概述。
1.1. 新的和更改的功能
本小列出帽企 Linux 6 初始及后版本中 DM-Multipath 新的和更改的功能。
1.1.1. 帽企 Linux 6.0 中新的和更改的功能
帽企 Linux 6.0 包括以下文档和功能更新及更改。
帽企 Linux 6 行本中, 更改了基本故障切配置的初始 DM-Multipath 程。 在可以
DM-Multipath 配置文件并使用 mpathconf 配置工具 DM-Multipath 工具
device-mapper-multipath 启动 multipathd 护进程并将 chkconfig 在重启时
启动该护进程。
有关新程的参考 3.1 DM-Multipath” 有关 mpathconf 命令的参考
mpathconf(5) man page
帽企 Linux 6 行本提供 multipath 设备的新模式, find_multipaths 配置文件参数一
同使用。 在旧版帽企 Linux 中, multipath 尝试为每个没有明确放入黑名的路径
multipath 设备 但在帽企 Linux 6 中, 如果将 find_multipaths 配置参数 yes 那么
multipath 将只在足以下三个条件之一时创设备
至少有个没有列入黑名的路径使用同一 WWID
使用 multipath 命令指定设备制手生成该设备
路径有与之前建的多路径设备相同的 WWID 即使多路径设备目前不存在) 如果您之前在没
find_multipaths 参数的情况下建了多路径设备 那么有关步骤请参考 4.2 配置
文件黑名
个功能可大多数用动选择正确的路径建多路径设备 而无需编辑黑名
有关 find_multipaths 配置参数的参考 4.3 配置文件默认设
帽企 Linux 6 行本提供个新的路径选择程序算法, 可决定下一个 I/O 操作要使用的路径,
queue-length service-time queue-length 算法路径未完成的 I/O 数量以便决定
下一个要使用的路径。 service-time 算法看未完成的 I/O 数量以及路径的相关流量以便决定下一
个要使用的路径。 有关配置文件中的路径选择程序参数参考 4 DM-Multipath 配置文件
帽企 Linux 6 行本中, 功能不再能出程序, 而是与路径检查程序功能一样动态共享
象。 已使用 prio 参数替 prio_callout 参数。 有关支持的 prio 功能参考 4 DMMultipath 配置文件
帽企 Linux 6 中, 更改了 multipath 命令的出格式。 有关 multipath 命令出的
参考 5.7 多路径命令
帽企 Linux 6 行本中, 多路径 bindings 文件的位置 /etc/multipath/bindings
帽企 Linux 6 行本在 multipath.conf 文件中提供三个新的默
数:checker_timeout fast_io_fail_tmo dev_loss_tmo 有关参数参考 4
DM-Multipath 配置文件
当将多路径配置文件中的 user_friendly_names 选项设 yes 多路径设备的名称格式
mpathn 帽企 Linux 6 行本中, n 是字母字符, 因此多路径设备的名称就可能是 mpatha
mpathb 在之前的行本中, n 是整数
帽企 Linux 6 设备映射多路径
12
1.1.2. 帽企 Linux 6.1 中新的和更改的功能
帽企 Linux 6.1 中包括以下文档和功能更新和更改。
文档在包含新的一章, 5.2 root 文件系一路径设备到多路径设备
文档在包含新的一章, 5.3 swap 文件系一路径设备到多路径设备
1.1.3. 帽企 Linux 6.2 中新的和更改的功能
帽企 Linux 6.2 包括以下文档和功能更新及更改。
帽企 Linux 6.2 行本提供新的 multipath.conf 参数 rr_min_io_rq 参数位于
multipath.conf 文件的 defaults devices multipaths 部分。 帽企 Linux 6.2 不再
使用 rr_min_io 参数。 有关 rr_min_io_rq 参数的参考 4 DM-Multipath 配置文件
在可以将 dev_loss_tmo 配置文件参数无限大, 这样就将实际 sysfs
2147483647 秒, 或者 68 年。 有关个参数的参考 4 DM-Multipath 配置文件
已更新 5.2 root 文件系一路径设备到多路径设备描述的程。
1.1.4 . 帽企 Linux 6.3 中新的和更改的功能
帽企 Linux 6.3 包括以下文档和功能更新及更改。
queue_without_daemon 配置文件参数默认值已改 no
max_fds 配置文件参数默认值已改 no
在可在 multipath.conf 配置文件的 defaults, multipaths devices 部分配置
user_friendly_names 配置文件参数。
multipath.conf 配置文件的 defaults 部分支持新的 hwtable_regex_match 参数。
有关配置文件参数参考 4 DM-Multipath 配置文件
1.1.5. 帽企 Linux 6.4 中新的和更改的功能
帽企 Linux 6.4 包括以下文档和功能更新及更改。
multipath.conf 配置文件的 defaults 部分和 devices 部分支持新的
retain_attached_hardware_handler 参数和新的 detect_prio 参数。 有关配置参考
4 DM-Multipath 配置文件
个文档在包括新的一 3.4 initramfs 文件系启动 Multipath”
1.2. DM-Multipath 概述
可使用 DM-Multipath 提供:
冗余
DM-Multipath 可在主/配置中提供出冗余。 在主/配置中, 只有一半的路径在每次 I/O
使用。 如果 I/O 路径的任意元素( 电缆 机或者控制器) 故障, 就会将 DM-Multipath
用路径。
的性能
可将 DM-Multipath 配置/模式, 其中将 I/O 度算法方式分布到所有路径中。 在有些配
置中, DM-Multipath 可在 I/O 路径中检测负载动态重新平衡负载
1.1 “一个 RAID 设备的主/多路径配置演示在服器和 RAID 设备 I/O 路径的主/
配置。 里服器中有 HBA SAN 机以及 RAID 控制器。
1 设备映射器多路径
13
1.1. 一个 RAID 设备的主/多路径配置
个配置中, 一个 I/O 路径通 hba1 SAN1 以及控制器 1 一个 I/O 路径通 hba2 SAN2 以及控制
2 个配置中有很多地方可能出故障:
HBA 故障
FC 电缆故障
SAN 机故障
列控制器端口故障
如果配置了 DM-Multipath 在所有些地方出故障都会使 DM-Multipath I/O 路径。
1.2 “带两 RAID 设备的主/多路径配置演示更复的主/配置, 其中服器中有
HBA SAN 机以及 RAID 设备 每个带两 RAID 控制器。
帽企 Linux 6 设备映射多路径
14
1.2. 带两 RAID 设备的主/多路径配置
1.2 “带两 RAID 设备的主/多路径配置演示的示例中, 每个 RAID 设备 I/O 路径(
1.1 “一个 RAID 设备的主/多路径配置示的示例相同) 配置了 DM-多路径, I/O 路径中任意
点到任意 RAID 设备发错误时 DM-多路径都会那个设备 I/O 路径。
1.3 “一个 RAID 设备的主/多路径配置演示在服器中有 HBA 一个 SAN 机以及
RAID 控制器的主/配置。 在服器和存储设备间有四条 I/O 路径:
hba1 到控制器 1
hba1
到控制器 2
hba2
到控制器 1
hba2
到控制器 2
个配置中, 可将 I/O 分布到那四条路径中。
1.3. 一个 RAID 设备的主/多路径配置
1.3. 储阵列支持
情况下, DM-Multipath 支持大多数常用的、 支持 DM-Multipath 的存储阵列。 您可在
multipath.conf.defaults 文件中找到些支持的设备 如果您的存储阵列支持 DM-Multipath 且未在
个文件中默认设置, 您可能需要将其添加到 DM-Multipath 配置文件 multipath.conf 中。 有关 DMMultipath 配置文件的参考 4 DM-Multipath 配置文件
有些存储阵列需要特殊的 I/O 错误和路径切换处理。 些都需要独立的硬件理器内核模
1.4. DM-Multipath
1.1 “DM-Multipath 描述了 DM-Multipath 件。
2 多路径设备
15
1.1. DM-Multipath
描述
dm-multipath 内核模 路径和路径群重新指定 I/O 并支持出冗余。
mpathconf 程序 配置并设备映射器多路径
multipath 命令 列出并配置 multipath 设备 通常使用 /etc/rc.sysinit 启动
可以在添加块设备时使用 udev 程序启动
multipathd 护进 监视器路径, 如果路径故障并返回, 它可能会启动路径群切
多路径设备提供互修改。 /etc/multipath.conf 文件的任
何修改都必须启动它。
kpartx 命令 为设备中的分区生成设备映射器设备 个命令对带 DM-MP DOS
分区是很必要的。 kpartx 在其自身件包中就存在, devicemapper-multipath 件包要依它。
1.5. DM-Multipath 置概述
DM-Multipath 包含适用于常多路径配置已编译的默认设置。 安装 DM-multipath 通常很简单
以下是您的系配置 DM-multipath 的基本步
1. 安装 device-mapper-multipath rpm
2. 使用 mpathconf 命令建配置文件并用多路径。 如果您不需要编辑该配置文件, 可以使用
个命令启动多路径守护进程。
3. 如需要, 请编辑 multipath.conf 配置文件, 修改默认值并保存更新的文件:
4. 启动多路径守护进程。
有关多路径配置的详细安装明示例参考 3 DM-Multipath
帽企 Linux 6 设备映射多路径
16
2 多路径设备
没有 DM-Multipath 从服点到存控制器的所有路径都将被系统视为独立的设备 即使接相同服
点到相同存控制器的 I/O 路径也不例外。 DM-Multipath 提供了逻辑管理 I/O 路径的方法, 即在基础设
部生成一多路径设备
2.1. 多路径设备识别
每个多路径设备都有一个全球识别符( WWID 它是一个全球唯一的无法更改的号 情况下会将多
路径设备的名称它的 WWID 外, 可以在多路径配置文件中 user_friendly_names
选项 该选项可将设为格式 mpathn 点唯一名称。
例如:当将有 HBA 点使用一个不分区 FC 附加到有个端口的存控制器中 可看到四个
/dev/sda /dev/sdb dev/sdc /dev/sdd DM-Multipath 生成有唯一 WWID 设备
设备可将 I/O 根据多路径配置重新路由到那四个基础设备 当将 user_friendly_names 配置
yes 会将多路径设备的名称 mpathn
当在 DM-Multipath中添加新设备时 些新设备会位于 /dev 个不同位
置:/dev/mapper/mpathn /dev/dm-n
/dev/mapper 中的设备是在引导过程中生成的。 可使用设备访问多路径设备 例如在生成逻辑

所有 /dev/dm-n 格式的设备都只能是作内部使用, 不要使用它
有关多路径配置默情, 包括 user_friendly_names 配置选项 参考 4.3 配置文件默认设

可以使用多路径配置文件 multipaths 部分的 alias 选项将多路径设备名称设为选择的名称。
关多路径配置文件 multipaths 部分的参考 4.4 多路径设备配置属性
2.2. 在集群中保持多路径设备名称一致
当将 user_friendly_names 配置选项设为 yes 多路径设备的名称点来是唯一的, 但不
证对使用多路径设备的所有点都一致。 如果您 multipath.conf 配置文件的 multipaths
部分中的设备设 alias 选项 名称不会自在集群的所有点中保持一致。 如果您使用 LVM 在多路径
设备逻辑设备 问题 但如果您需要将您的多路径设备名称在集群中的每个点上都保持一
致, 不要将 user_friendly_names 选项设 yes 且不要那些设备配置名。 情况下,
果您不将 user_friendly_names yes 或者某个设备配置名, 则设备名称将是该设备
WWID 它是不会的。
如果您要系的用友好名称在集群的所有点中都一致, 您可按照以下步操作:
1. 在一台机器中定所有多路径设备
2. 行以下命令在其他机器中禁用所有 multipath 设备
# service multipathd stop
# multipath -F
3. 将第一台机器中的 /etc/multipath/bindings 文件复制到集群中的其它所有机器中。
4. 使用以下命令在集群的其他机器中重新 multipathd 护进程:
# service mutipathd start
3 DM-Multipath
17
如果您添加新设备 您将需要重复程。
如果您某个设备配置名以便在集群的点中使其保持一致, 确定 /etc/multipath.conf
文件于集群中的每个点都是一的, 如下:
1. 机器 multipath.conf 文件中的多路基功能设备配置名。
2. 行以下命令在其他机器中禁用所有 multipath 设备
# service multipathd stop
# multipath -F
3. 将第一台机器中的 /etc/multipath.conf 文件复制到集群中的其它所有机器中。
4. 使用以下命令在集群的其他机器中重新 multipathd 护进程:
# service mutipathd start
当您添加新设备时 您将需要重复程。
2.3. 多路径设备属性
user_friendly_names alias 选项外, multipath 设备有大量属性。 您可以具体 multipath 设备
修改些属性, 方法是在 multipath 配置文件的 multipaths 部分那个设备创建一个条目。 有关
multipath 配置文件 multipaths 部分的参考 4.4 多路径设备配置属性
2.4. 逻辑卷中的多路径设备
生成多路径设备后, 多路径设备的名称可以与您生成一个 LVM 物理卷使用的物理设备名称相同。 例如:
如果多路径名称 /dev/mapper/mpatha 以下命令可将 /dev/mapper/mpatha 标记为一个物理
卷。
pvcreate /dev/mapper/mpatha
您可以如在使用其它 LVM 物理设备 LVM 组时使用得到的 LVM 物理卷。
注意
如果您要在配置了分区的整个设备 LVM 物理卷, pvcreate 命令将会失 注意:如果您
不具体指定每个块设备 Anaconda Kickstart 安装程序会生成空分区表。 您可以使用 kpartx -d
fdisk 命令有分区。 如果您的系有大于 2 TB 块设备 您可使用 parted 命令除分
区。
当您建一个使用主/多路径列的 LVM 逻辑卷作物理设备时 应该 lvm.conf 中添加
器, 这样可以排除成多路径设备的磁 是因如果列在接收 I/O 将主路径改
径, 过滤设备 LVM 描被路径 多路径将行出冗余并行出 于需
要使用命令激活被路径的主/动阵列, LVM 会在种情况时给出警告信息。
过滤 LVM 配置文件( lvm.conf 中的所有 SCSI 设备 文件的 devices 部分添加以下过滤器。
filter = [ "r/block/", "r/disk/", "r/sd.*/", "a/.*/" ]
帽企 Linux 6 设备映射多路径
18
3 DM-Multipath
本章提供了配置 DM-Multipath 的分步示例, 其中包括以下步
基本 DM-Multipath
忽略本地磁
在配置文件中添加更多设备
initramfs 文件系启动 Multipath
3.1. DM-Multipath
在您的系中安装 DM-Multipath 前, 确定您的系经进行了升 其中包括 device-mappermultipath 件包的升
您可使用 mpathconf 程序置多路径, 它可建多路径配置文件 /etc/multipath.conf
如果 /etc/multipath.conf 文件已存在, mpathconf 程序将会编辑该文件。
如果 /etc/multipath.conf 文件不存在, mpathconf 程序将使用 /usr/share/doc/devicemapper-multipath-0.4.9/multipath.conf 文件作起始文件。
如果 /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf 文件不存在,
mpathconf 程序将从开始 /etc/multipath.conf 文件。
如果您不需要编辑 /etc/multipath.conf 文件, 您可以行以下命令基本故障切配置 DMMultipath 个命令可用多路径配置文件并启动 multipathd 护进程。
# mpathconf --enable --with_multipathd y
如果您需要在启动 multipathd 护进程前编辑 /etc/multipath.conf 文件, 使用以下步骤为基本
故障切配置 DM-Multipath
1. --enable 选项 mpathconf 命令:
# mpathconf --enable
有关您可能需要的 mpathconf 命令的其它选项 参考 mpathconf man page 或者 --
help
选项 mpathconf 命令。
# mpathconf --help
usage: /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>
2. 必要时请编辑 /etc/multipath.conf 文件。 DM-Multipath 的默认设置会编译到系中, 且无需在
/etc/multipath.conf 文件中明确指出。
path_grouping_policy 的默认值设为 failover 因此在个示例中您不需要编辑
/etc/multipath.conf 文件。 有关在配置文件中将默认值其它数参考 4
3 DM-Multipath
19
DM-Multipath 配置文件
在您系配置文件的初始默部分配置您的系以便多路径设备的名称格式 mpathn 如果没有
置, 多路径设备的名称将会是该设备 WWID 名。
3. 需要保存配置文件并退出编辑器。
4. 行以下命令:
# service multipathd start
在配置文件中将 user_friendly_name 值设为 yes 那么生成的多路径设备
/dev/mapper/mpathn 有关将设备名称选择名的方法, 参考 4 DM-Multipath 配置
文件
如果您不想使用用友好的名称, 您可以行以下命令:
# mpathconf --enable --user_friendly_names n
注意
如果您在启动 multipath 护进程后发现需要编辑 multipath 配置文件, 须执 service
multipathd reload
命令方可使更改生效。
3.2. 在生成多路径设备时忽略逻辑
有些机器在其内部磁中有本地 SCSI 卡。 不建设备中使用 DM-Multipath 如果您将
find_multipaths 配置参数 yes 您不一定要将设备列入黑名 有关
find_multipaths 配置参数的参考 4.3 配置文件默认设
如果您没有将 find_multipaths 配置参数 yes 您可以使用以下步修改多路径配置文件以便
在配置多路径忽略本地磁
1. 确定些磁是内部磁并将其列入黑名
个示例中, /dev/sda 是内部磁 注意:因在默多路径配置文件中已经对行了配
置, 所以 multipath -v2 会在多路径映射中示本地磁 /dev/sda
有关 multipath 命令出的参考 5.7 多路径命令
帽企 Linux 6 设备映射多路径
20
# multipath -v2
create: SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1 undef WINSYS,SF2372
size=33 GB features="0" hwhandler="0" wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 0:0:0:0 sda 8:0
[---------
device-mapper ioctl cmd 9 failed: Invalid argument
device-mapper ioctl cmd 14 failed: No such device or address
create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:0 sdb 8:16 undef ready running
`- 3:0:0:0 sdf 8:80 undef ready running
create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:1 sdc 8:32 undef ready running
`- 3:0:0:1 sdg 8:96 undef ready running
create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:2 sdd 8:48 undef ready running
`- 3:0:0:2 sdg 8:112 undef ready running
create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:3 sdd 8:64 undef ready running
`- 3:0:0:3 sdg 8:128 undef ready running
2. 防止设备映射器将 /dev/sda 与其多路径对应 请编辑 /etc/multipath.conf 文件的
blacklist 部分, 使其包括该设备 然您可以使用 devnode 型将 sda 设备列入黑名 但那并不
安全, 启时无法保 /dev/sda 是同一个名称。 要将独的设备列入黑名 您可以使用那个
设备 WWID 将其列入黑名
注意:在 multipath -v2 命令的出中, /dev/sda 设备 WWID SIBMESXSST336732LC____F3ET0EP0Q000072428BX1 要将设备列入黑名
/etc/multipath.conf 文件中添加以下内容。
blacklist {
wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
}
3. 在您更新 /etc/multipath.conf 文件后, 您必动让 multipathd 护进程重新
件。 以下命令可重新入更新的 /etc/multipath.conf 文件。
# service multipathd reload
4. 行以下命令除多路径设备
# multipath -f SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
5. 看是否除了该设备 您可以 multipath -ll 命令示当前的多路径配置。 有关
multipath -ll 命令的参考 5.8 使用多路径命令行多路径查询
要确定被列入黑名设备没有被重新添加回来, 您可以 multipath 命令, 如下所示。 如果您
4 DM-Multipath 配置文件
21
没有指定 -v 选项 multipath 命令默认详细级为 v2
# multipath
create: 3600a0b80001327d80000006d43621677 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:0 sdb 8:16 undef ready running
`- 3:0:0:0 sdf 8:80 undef ready running
create: 3600a0b80001327510000009a436215ec undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:1 sdc 8:32 undef ready running
`- 3:0:0:1 sdg 8:96 undef ready running
create: 3600a0b80001327d800000070436216b3 undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:2 sdd 8:48 undef ready running
`- 3:0:0:2 sdg 8:112 undef ready running
create: 3600a0b80001327510000009b4362163e undef WINSYS,SF2372
size=12G features='0' hwhandler='0' wp=undef
`-+- policy='round-robin 0' prio=1 status=undef
|- 2:0:0:3 sdd 8:64 undef ready running
`- 3:0:0:3 sdg 8:128 undef ready running
3.3. 配置存储设备
情况下, DM-Multipath 包括大多数支持 DM-Multipath 的通用存储阵列的支持。 配置值请参考
multipath.conf.defaults 文件, 其中包括支持的设备
如果您需要添加一个在默情况下不支持的存储设备已知多路径设备 请编辑
/etc/multipath.conf 文件并插入正确的设备信息。
例如:要添加有关 HP Open-V 系列的信息, 其条目示例如下, 其中 %n 为设备名称:
devices {
device {
vendor "HP"
product "OPEN-V."
getuid_callout "/lib/udev/scsi_id --whitelisted --device=/dev/%n"
}
}
有关配置文件 devices 部分的参考 4.5 配置文件设备
3.4. initramfs 文件系启动 Multipath
您可以在 initramfs 文件系启动 multipath 配置 multipath 后, 您可以使用 multipath 配置文
件重建 initramfs 文件系 方法是以下选项 dracut 命令。
# dracut --force --add multipath --include /etc/multipath /etc/multipath
如果您在 initramfs 文件系 multipath 并更改 multipath 配置文件, 重建 initramfs
帽企 Linux 6 设备映射多路径
22
文件系方可使更改生效。
4 DM-Multipath 配置文件
23
4 DM-Multipath 配置文件
情况下, DM-Multipath 大多数多路径的使用提供配置 外, DM-Multipath 支持大多数常的、
DM-Multipath 的存储阵列。 配置和支持的设备请参考 /usr/share/doc/device-mappermultipath-0.4.9/multipath.conf.defaults 文件。
您可以编辑 /etc/multipath.conf 覆盖 DM-Multipath 的默配置。 如果有必要, 可以默配置文
件不支持的存储阵列。
注意
您可以在 initramfs 文件系 set up multipathing 如果您在 initramfs 文件系
multipath 并可以更改 multipath 配置文件, 您必重建 initramfs 文件系以便使更改生效。
有关使用 multipath 重建 initramfs 文件系的下个参考 3.4 initramfs 文件系
启动 Multipath”
本章提供了解析和修改 multipath.conf 文件的情。 它包含以下小
配置文件概述
配置文件黑名
配置文件默
配置文件多路径
配置文件设备
在多路径配置文件中, 您只需要指定需要的配置, 或者您想要修改的在 multipath.conf.defaults
件中指定的默认值 如果文件中有和您的境不相关的部分或者您不需要更改默认值 您可以将其注
来, 在文件的起始部分。
配置文件使用正式描述法。
配置文件的注版本参考 /usr/share/doc/device-mapper-multipathd-
0.4.9/multipath.conf.annotated

4.1. 配置文件概述
多路径配置文件可分以下几个部分:
blacklist
不被视为多路径的具体设备列表。
blacklist_exceptions
根据 blacklist 部分中的参数列出不在黑名中的多路径设备
defaults
DM-Multipath 的常认设置。
multipaths
各个独立多路径设备的特性置。 些数覆盖了在配置文件的 defaults devices 部分中指
定的数
帽企 Linux 6 设备映射多路径
24
devices
各个存控制器的置。 些数覆盖了在配置文件的 defaults 部分指定的数 如果您要使
用不是默支持的存储阵列, 您可能需要您的 devices 子部分。
当系决定多路径设备的属性 首先它会检查多路径置, 然后是每个设备置, 然后才是多路径系
认设置。
4.2. 配置文件黑名
多路径配置文件的 blacklist 部分指定在系配置多路径设备时不能使用的设备 黑名中的设备将无法
到多路径设备中。
在旧版帽企 Linux 中, multipath 尝试为每个没有明确放入黑名的路径 multipath 设备
帽企 Linux 6 中, 如果将 find_multipaths 配置参数 yes 那么 multipath 将只在足以
下三个条件之一时创设备
至少有个没有列入黑名的路径使用同一 WWID
可使用 multipath 命令手该设备
有与之前建的多路径设备相同 WWID 的路径( 即使那个多路径设备目前不存在) 建多
路径设备后, 多路径会该设备 WWID 以便在它看到有使用那个 WWID 的路径即自再次
该设备 可允多路径自动选择正确的路径以便建多路径设备而无需编辑多路径黑名
如果您之前建了一个 multipath 设备而没有使用 find_multipaths 参数, 然后您随后将参数
yes 您需要除所有设备 WWID 您不想从 /etc/multipath/wwids 文件中将其
multipath 设备 以下示示例 /etc/multipath/wwids 文件。 WWID 由斜线 / 括起来:
# Multipath wwids, Version : 1.0
# NOTE: This file is automatically maintained by multipath and multipathd.
# You should not need to edit this file in normal circumstances.
##
Valid WWIDs:
/3600d0230000000000e13955cc3757802/
/3600d0230000000000e13955cc3757801/
/3600d0230000000000e13955cc3757800/
/3600d02300069c9ce09d41c31f29d4c00/
/SWINSYS SF2372 0E13955CC3757802/
/3600d0230000000000e13955cc3757803/
如将 find_multipaths 参数 yes 您只需要将那些您不想使其具有多路径功能的多路径设备
入黑名 通常不需要将设备列入黑名
如果您需要将设备列入黑名 您可以根据以下条件选择
根据 WWID 4.2.1 根据 WWID 设备列入黑名所述
根据设备名称, 4.2.2 根据设备名称将设备列入黑名所述
根据设备类型, 4.2.3 根据设备类型将其加入黑名所述
情况下, 各种设备类型都是列在黑名中的, 即使您将配置文件的初始黑名部分注出来也是如此。
参考 4.2.2 根据设备名称将设备列入黑名
4 .2.1. 根据 WWID 设备列入黑名
您可根据全球识别符将独的设备列入黑名 即在配置文件的 blacklist 部分加入 wwid 条目。
4 DM-Multipath 配置文件
25
以下示例示了在配置文件中可将 WWID 26353900f02796769 设备列入黑名的行。
blacklist {
wwid 26353900f02796769
}
4 .2.2. 根据设备名称将设备列入黑名
您可以根据设备名称将设备类型列入黑名 以便在配置文件 blacklist 部分的 devnode 条目中指定不
要将它到多路径设备中。
以下配置文件中的可以将所有 SCSI 设备放入黑名的行, 它将所有 sd* 设备放入黑名
blacklist {
devnode "^sd[a-z]"
}
您可以使用配置文件 blacklist 部分的 devnode 条目指定要列入黑名的每个设备 而不是指定具体
型的所有设备 不推荐使用后一种情况。 除非根据 udev 规则的静映射, 无法保在重后每个
设备的名称是一的。 例如:重后, 某个设备的名称可能从 /dev/sda 变为 /dev/sdb
情况下, 以下 devnode 条目是编译到默黑名中的。 些条目中加入黑名中的设备一般不支持
DM-Multipath 要在设备用多路径, 您可能需要在配置文件的 blacklist_exceptions 部分指
设备 4.2.4 黑名之外的设备所述。
blacklist {
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
}
4 .2.3. 根据设备类型将其加入黑名
您可以在配置文件的 blacklist 部分与 device 一同指定具体设备类型。 以下例将所有 IBM DS4200
HP 设备放入黑名
blacklist {
device {
vendor "IBM"
product "3S42" #DS4200 Product 10
}d
evice {
vendor "HP"
product "*"
}
}
4 .2.4 . 黑名之外的设备
您可使用配置文件的 blacklist_exceptions 部分被默加入黑名设备启用多路径。
例如:如果您有大量设备 但只有一个需要多路径( WWID
3600d0230000000000e13955cc3757803 您不需要将您想要使用多路径的设备之外的每个设备单
加入黑名 您只需要将所有设备都加入黑名 然后在 /etc/multipath.conf 文件中添加以下行以便
只允您想要使用多路径的设备
帽企 Linux 6 设备映射多路径
26
blacklist {
wwid "*"
} b
lacklist_exceptions {
wwid "3600d0230000000000e13955cc3757803"
}
当在配置文件的 blacklist_exceptions 指定设备时 您必以指定黑名的相同方法来指定例外情
况。 例如:在 devnode 黑名条目中指定的设备无法使用 WWID 将其指定例外情况, 即使列入黑名
设备 WWID 也不行。 devnode 例外也只适用于 devnode 条目, device 例外只适用于
device 条目。
4.3. 配置文件默认设
/etc/multipath.conf 配置文件包括 defaults 部分, 部分中将 user_friendly_names 参数
设为 yes 如下。
defaults {
user_friendly_names yes
}
可覆盖 user_friendly_names 参数的默认值
配置文件包括配置默模板。 部分要被注出来, 如下。
#defaults {
# udev_dir /dev
# polling_interval 5
# path_selector "round-robin 0"
# path_grouping_policy failover
# getuid_callout "/lib/dev/scsi_id --whitelisted --device=/dev/%n"
# prio const
# path_checker directio
# rr_min_io 1000
# rr_weight uniform
# failback manual
# no_path_retry fail
# user_friendly_names no
#}
要覆盖任意配置参数的默认值 您可将个模板中相关的行复制到 defaults 部分并取消其注 例如:
要覆盖 path_grouping_policy 参数以便用 multibus 覆盖默 failover 将模板中正确的行
复制到配置文件的 defaults 部分并取消它的注 如下。
defaults {
user_friendly_names yes
path_grouping_policy multibus
}
4.1 “多路径配置默认设描述了在 multipath.conf 配置文件 defaults 部分置的属性。
会被 DM-Multipath 使用, 除非用 multipath.conf 配置文件的 devices multipaths 部分指定的
属性将其覆盖。
4 DM-Multipath 配置文件
27
注意
帽企 Linux 6.0 开始弃用 mode uid gid 参数。 device-mapper 设备限( 包括
multipath 映射) udev 规则设定。 /usr/share/doc/device-mapper-version 中有一个模
板文件, 12-dm-permissions.rules 您可以使用它并将其放在 /etc/udev/rules.d
中使其生效。
帽企 Linux 6 设备映射多路径
28
4 .1. 多路径配置默认设
属性 描述
polling_interval 以秒为单位指定次路径检查隔。 正常工作的路径,
检查间隔会逐增加到 polling_interval 的四倍。 认值为
5
udev_dir 生成 udev 设备节点的目 认值为 /dev
multipath_dir 保存动态共享象的目 认值依系而定, 通常
/lib/multipath
find_multipaths
义设定多路径设备的模式。 如果将个参数 yes 那么多路
径将不会尝试为每个不在黑名中的路径设备 反之, 多路径将
只在足以下三条件之一时创设备
- 至少有个没有列入黑名的路径使用同一 WWID
- 使用 multipath 命令指定设备该设备
- 路径有与之前建的多路径设备相同的 WWID 使用
find_multipaths 建多路径设备后, 多路径都会该设备
WWID 以便在再次看到使用那个 WWID 的路径动创设备
您自动选择正确的所路径建多路径设备而无需编辑多路径黑名
如果之前您在没有 find_multipaths 参数的情况下
了多路径设备 有关步骤请查 4.2 配置文件黑名
认值为 no
verbosity 认详情。 越高则详细程度越高。 有效等 0 - 6 认值
2
path_selector
指定用来决定下一个 I/O 操作所使用路径的默算法。 可能的
括:
round-robin 0:在路径中循每个路径, 向每个路径送同
数量的 I/O
queue-length 0:将下一 I/O 送到具有最少未 I/O 求的
路径。
service-time 0:将下一 I/O 送到具有最短预计务时间的路
径, 是由未 I/O 量除以每个路径的相流量决定的。
认值为 round-robin 0
path_grouping_policy
指定用于未指定路径的默路径分策略, 可能的包括:
failover:每个群有一个路径。
multibus:所有有效路径在一个群中。
group_by_serial:每个检测到的系列号有一个群。
group_by_prio:每个群有一个路径 根据指
global per-controller 或者 per-multipath 选项用程序决
4 DM-Multipath 配置文件
29
定。
group_by_node_name:每个目标节点名有一个 标节
名保存在 /sys/class/fc_transport/target*/node_name
文件中。
认值为 failover
getuid_callout
指定默程序和参数得唯一路基功能识别程序。 需要绝对
径。
认值为 /lib/udev/scsi_id --whitelisted --
device=/dev/%n

prio
指定要得路径所需用的默程序及参数。 例如:SPC-3
ALUA 提供了一个可改 prio 可能的包括:
const所有路径 1
emc EMC 列生成路径
alua:根据 SCSI-3 ALUA 置生成路径
tpg_pref:根据 SCSI-3 ALUA 置生成路径 使用首端口

ontap NetApp 列生成路径
rdac LSI/Engenio RDAC 控制程序生成路径
hp_sw Compaq/HP 控制程序在激活/等待模式中生成路径

hds Hitachi HDS Modular 储阵列生成路径
认值为 const
features 多路径设备的默认额外功能。 有的唯一功能是
queue_if_no_path 其功能与将 no_path_retry 设为 queue
一致。 有关使用个功能可能出现问题情, 参考 5.6
queue_if_no_path 功能的问题
path_checker
指定用于决定路径状的默方法, 可能的包括:
readsector0该设备的第一扇区。
tur:在该设备 TEST UNIT READY
emc_clariion查询 EMC Clariion 具体 EVPD 0xCO 以便决
定路径。
hp_sw使用 Active/Standby 固件的 HP 储阵检查路径状
rdac LSI/Engenio RDAC 控制器检查路径状
帽企 Linux 6 设备映射多路径
30
directio:使用直接 I/O 取第一个扇区。
认值为 directio
failback
管理路径群出
immediate 指定立即恢复到包含活路径的最高级别路径群。
manual 指定不需要立即恢复, 只有在操作者干的情况下会
恢复。
followover 指定当路径的第一个路径成路径时应执行自
恢复。 让节点在一个求故障修复不会自恢复。
大于 0 的数字指定推 以秒表示。
认值为 manual
rr_min_io 指定切到当前路径的下一个路径前路由到路径的 I/O 求数。
用于行内核 2.6.31 之前的系 使用新版本的系统应
使用 rr_min_io_rq 认值为 1000
rr_min_io_rq 使用 request-based device-mapper-multipath 指定切到当前路径
的下一个路径前路由到路径的 I/O 求数。 用于行当
前内核的系 在使用内核 2.6.31 版本之前的系统应使用
rr_min_io 认值为 1
rr_weight 如果将其设为 priorities 就不会在 selector 选择下一个
路径前向路径 rr_min_io 求, 而是由 rr_min_io 乘以路径
决定送的求数, 即由 prio 功能决定。 如果将其
uniform 所有路径都有相同的加 认值为 uniform
no_path_retry
个属性的数字指定系在禁用列前应该试图使用失的路径的
次数。
fail 值说明立即失 无需排
queue 表示固定路径前排不会停止。
认值为 0
user_friendly_names 如果将其设为 yes 即指定统应该使用文件
/etc/multipath/bindings 为该多路径分配一个持久且唯一的
名, 格式 mpathn 如果 no 即指定统应使用 WWID
为该多路径的名。 这两种情况下, 您在里指定的数将被您
在配置文件 multipaths 部分指定的具体设备别名覆盖。 认值为
no
queue_without_daemon 如果将其 no multipathd 护进程将在其关闭时禁用所有
设备 认值为 no
flush_on_last_del 如果将其 yes multipathd 护进程将在除了最后一个到
某个设备的路径禁用查询 认值为 no
max_fds multipath 可以打开的文件提示符以及 multipathd 护进程的
最大 ulimit -n 命令效果一致。 帽企 Linux 6.3
始, 认值为 max 该值限制到
/proc/sys/fs/nr_open 早的版本, 如果没有
4 DM-Multipath 配置文件
31
使用程作打开文件提示符的最大 通常 1024
全起 如果大于 1024 将其路径最大+32
checker_timeout 明确超时设定的 SCSI 命令的路径检查程序的超时时间
采用 sys/block/sdx/device/timeout 中指定的
fast_io_fail_tmo FC 程端口发现问题后, 无法在那个程端口设备 I/O
SCSI 要等待的时间 认值应小于 dev_loss_tmo 将其
off 会禁用超 认值操作系决定。
dev_loss_tmo FC 程端口发现问题后, 到从除它之前 SCSI 要等待
时间 将其无限, 会将其 2147483647 秒, 或者
68 年。 认值操作系决定。
hwtable_regex_match
帽企 Linux 6.3 行本及之后的版本) 控制 multipath 如何使
用内嵌设备配置整合配置文件 devices 部分的设备配置。
multipath.conf 文件 devices 部分中的每个设备配置都可以
建其自己的设备配置, 也可以修改内嵌设备配置。 帽企 Linux
6.3
之前, 如果某用户设备配置中的售商、 品以及修字符串与内
设备配置完全匹配, 则该配置中的选项就可以修改内嵌配置。
则该设备配置就将被视为一个新配置。
如果将 hwtable_regex_match yes 使用正式匹
配。 售商、 品以及修字符串都是正式。
设备配置与内嵌设备配置匹配。 个匹配可以同的方式
用于实际设备售商、 品以及修字符串是否与设备配置字符串
匹配以便决定为该设备使用个配置。 如果用户设备配置匹配, 那么
就使用用配置中的选项修改内嵌配置。 则该设备配置就将
视为一个新配置。
retain_attached_hw_han
dler
帽企 Linux 6.4 及之后的版本) 如果将个参数 yes
scsi 为该路径设备附加可硬件句柄, multipath 将不会
设备使用 mutipath.conf 文件指定的 hardware_handler
scsi 没有附加硬件句柄, multipath 继续使用其配置的硬件
句柄。 认值为 no
detect_prio 帽企 Linux 6.4 及之后的版本) 如果将个参数
yes multipath 将首先检查该设备是否支持 ALUA 如果支持,
动为该设备分配 alua 排序器。 如果该设备不支持 ALUA 按管用
方法确定排序器。 认值为 no
4.4. 多路径设备配置属性
4.2 “多路径属性示您可以在 multipath.conf 配置文件的 multipaths 部分每个具体多路径
备设定的属性。 些属性只可用于指定的多路径。 些默认设置可由 DM-Multipath 使用并覆盖在
multipath.conf 文件的 defaults devices 部分定的属性。
帽企 Linux 6 设备映射多路径
32
4 .2. 多路径属性
属性 描述
wwid 指定 multipath 属性采用的多路径设备 WWID 个参数在
multipath.conf 文件的个部分是必的。
alias 指定使用 multipath 属性的多路径设备的符号名称。 如果您使用的
user_friendly_names 必要将其 mpathn 这样
能会与自分配的用友好名称冲突, 出不正确的设备节点名
称。
path_grouping_policy
指定用于未指定路径的默路径分策略, 可能的包括:
failover = 每个群有一个路径
multibus = 所有有效路径在一个群中
group_by_serial = 每个检测到的系列号有一个
group_by_prio = 每个路径有一个
group_by_node_name = 每个目标节点名有一个
path_selector
指定用来决定下一个 I/O 操作所使用路径的默算法。 可能的
括:
round-robin 0:在路径中循每个路径, 向每个路径送同
数量的 I/O
queue-length 0:将下一 I/O 送到具有最少未 I/O 求的
路径。
service-time 0:将下一 I/O 送到具有最短预计务时间的路
径, 是由未 I/O 量除以每个路径的相流量决定的。
failback
管理路径群出
immediate 指定立即恢复到包含活路径的最高级别路径群。
manual 指定不需要立即恢复, 只有在操作者干的情况下会
恢复。
followover 指定当路径的第一个路径成路径时应执行自
恢复。 让节点在一个求故障修复不会自恢复。
大于 0 的数字指定推 以秒表示。
prio
指定要得路径所需用的默程序及参数。 例如:SPC-3
ALUA 提供了一个可改 prio 可能的包括:
const所有路径 1
emc EMC 列生成路径
4 DM-Multipath 配置文件
33
alua:根据 SCSI-3 ALUA 置生成路径
tpg_pref:根据 SCSI-3 ALUA 置生成路径 使用首端口

ontap NetApp 列生成路径
rdac LSI/Engenio RDAC 控制程序生成路径
hp_sw Compaq/HP 控制程序在激活/等待模式中生成路径

hds Hitachi HDS Modular 储阵列生成路径
no_path_retry
个属性的数字指定系在禁用列前应该试图使用失的路径的
次数。
fail 值说明立即失 无需排
queue 表示固定路径前排不会停止。
rr_min_io 指定切到当前路径的下一个路径前路由到路径的 I/O 求数。
用于行内核 2.6.31 之前的系 使用新版本的系统应
使用 rr_min_io_rq 认值为 1000
rr_min_io_rq 使用 request-based device-mapper-multipath 指定切到当前路径
的下一个路径前路由到路径的 I/O 求数。 用于行当
前内核的系 在使用内核 2.6.31 版本之前的系统应使用
rr_min_io 认值为 1
rr_weight 如果将其设为 priorities 就不会在 selector 选择下一个
路径前向路径 rr_min_io 求, 而是由 rr_min_io 乘以路径
决定送的求数, 即由 prio 功能决定。 如果将其
uniform 所有路径都有相同的加
flush_on_last_del 如果将其 yes multipathd 将在除最后一个到某个设备的路
禁用排
user_friendly_names 如果将其设为 yes 即指定统应该使用文件
/etc/multipath/bindings 为该多路径分配一个持久且唯一的
名, 格式 mpathn 如果 no 即指定统应使用 WWID
为该多路径的名。 这两种情况下, 您在里指定的数将被您
在配置文件 multipaths 部分指定的具体设备别名覆盖。
以下示例示在配置文件中为两个特定多路径设备指定的多路径属性。 第一个设备 WWID
3600508b4000156d70001200000b0000 符号名称 yellow
示例中第二个多路径设备 WWID 1DEC_____321816758474 符号名称 red 个示例
中, rr_weight 属性被设为 priorities
帽企 Linux 6 设备映射多路径
34
multipaths {
multipath {
wwid 3600508b4000156d70001200000b0000
alias yellow
path_grouping_policy multibus
path_selector "round-robin 0"
failback manual
rr_weight priorities
no_path_retry 5
}m
ultipath {
wwid 1DEC_____321816758474
alias red
rr_weight priorities
}
}
4.5. 配置文件设备
4.3 “设备属性示您可以 multipath.conf 配置文件 devices 部分的每个独立存储设备设定的属
性。 些属性可由 DM-Multipath 使用, 除非使用 multipath.conf 文件 multipaths 部分包含该设
的路径指定的属性覆盖 些属性覆盖了在 multipath.conf 文件 defaults 部分定的属
性。
情况下, 在多路径配置中包括很多支持多路径的设备 设备支持列在
multipath.conf.defaults 文件中。 您可能不需要为这设备修改默认值 但如果您想要修改默
您可以通在想要更改默认值设备的配置文件中添加一个条目来更改默认值 您可以为该设备复制
multipath.conf.defaults 文件中的设备配置默认值 并覆盖那些您想要更改的
要在配置文件的个部分添加没有默配置的设备 您需要 vendor product 参数。 您可在
/sys/block/device_name/device/vendor /sys/block/device_name/device/model 文件
中找到 其中 device_name 是要行多路径操作的设备 示例如下:
# cat /sys/block/sda/device/vendor
WINSYS
#
cat /sys/block/sda/device/model
SF2372
要指定的附加参数要具体设备而定。 如果设备是主/模式, 您通常不需要置附加参数。 您可能想要
path_grouping_policy 设为 multibus 其它您可能需要定的参数有 no_path_retry
rr_min_io 详见 4.3 “设备属性
如果设备是主/模式, 但它会自将路径切到被路径, 那么您需要将检查器功能改不需向路径
I/O 测试其是否工作( 您的设备将一直行出冗余) 的功能。 几乎意味着您将
path_checker 设为 tur 这对所有支持 Test Unit Ready 命令的 SCSI 设备都适用。
如果该设备需要一个特殊的命令切路径, 那么多路径配置此设备需要硬件理器内核模 当前的硬件
理器是 emc 如果这样还不能足您的设备 您可能无法多路径配置该设备
4 DM-Multipath 配置文件
35
4 .3. 设备属性
属性 描述
vendor 指定 device 采用的存储设备的零售商名称, 例如 COMPAQ
product 指定 device 属性使用的存储设备产品名, 比如 HSV110 (C)
COMPAQ

revision 指定存储设备品修订识别程序。
product_blacklist 根据品指定用来将设备列入黑名的正式。
hardware_handler
指定将在切路径群或者 I/O 错误时用来行硬件具体作的
可能的包括:
1 emcEMC 储阵列的硬件理程序。
1 aluaSCSI-3 ALUA 列的硬件理程序。
1 hp_swCompaq/HP 控制器的硬件理程序。
1 rdacLSI/Engenio RDAC 控制器的硬件理程序。
path_grouping_policy
指定用于未指定路径的默路径分策略, 可能的包括:
failover = 每个群有一个路径
multibus = 所有有效路径在一个群中
group_by_serial = 每个检测到的系列号有一个
group_by_prio = 每个路径有一个
group_by_node_name = 每个目标节点名有一个
getuid_callout 指定默程序和参数得唯一路基功能识别程序。 需要绝对
径。
path_selector
指定用来决定下一个 I/O 操作所使用路径的默算法。 可能的
括:
round-robin 0:在路径中循每个路径, 向每个路径送同
数量的 I/O
queue-length 0:将下一 I/O 送到具有最少未 I/O 求的
路径。
service-time 0:将下一 I/O 送到具有最短预计务时间的路
径, 是由未 I/O 量除以每个路径的相流量决定的。
path_checker
指定用于决定路径状的默方法, 可能的包括:
readsector0该设备的第一扇区。
tur:在该设备 TEST UNIT READY
emc_clariion查询 EMC Clariion 具体 EVPD 0xCO 以便决
帽企 Linux 6 设备映射多路径
36
定路径。
hp_sw使用 Active/Standby 固件的 HP 储阵检查路径状
rdac LSI/Engenio RDAC 控制器检查路径状
directio:使用直接 I/O 取第一个扇区。
features 多路径设备外功能。 有的唯一功能是 queue_if_no_path
它与将 no_path_retry 设为 queue 一致。 有关使用个功能可能
现问题情, 参考 5.6 queue_if_no_path 功能的

prio
指定要得路径所需用的默程序及参数。 例如:SPC-3
ALUA 提供了一个可改 prio 可能的包括:
const所有路径 1
emc EMC 列生成路径
alua:根据 SCSI-3 ALUA 置生成路径
tpg_pref:根据 SCSI-3 ALUA 置生成路径 使用首端口

ontap NetApp 列生成路径
rdac LSI/Engenio RDAC 控制程序生成路径
hp_sw Compaq/HP 控制程序在激活/等待模式中生成路径

hds Hitachi HDS Modular 储阵列生成路径
failback
管理路径群出
immediate 指定立即恢复到包含活路径的最高级别路径群。
manual 指定不需要立即恢复, 只有在操作者干的情况下会
恢复。
followover 指定当路径的第一个路径成路径时应执行自
恢复。 让节点在一个求故障修复不会自恢复。
大于 0 的数字指定推 以秒表示。
rr_weight 如果将其设为 priorities 就不会在 selector 选择下一个
路径前向路径 rr_min_io 求, 而是由 rr_min_io 乘以路径
决定送的求数, 即由 prio 功能决定。 如果将其
uniform 所有路径都有相同的加
no_path_retry
个属性的数字指定系在禁用列前应该试图使用失的路径的
次数。
fail 值说明立即失 无需排
5 DM-Multipath 管理及故障排除
37
queue 表示固定路径前排不会停止。
rr_min_io 指定切到当前路径的下一个路径前路由到路径的 I/O 求数。
用于行内核 2.6.31 之前的系 使用新版本的系统应
使用 rr_min_io_rq 认值为 1000
rr_min_io_rq 使用 request-based device-mapper-multipath 指定切到当前路径
的下一个路径前路由到路径的 I/O 求数。 用于行当
前内核的系 在使用内核 2.6.31 版本之前的系统应使用
rr_min_io 认值为 1
fast_io_fail_tmo FC 程端口发现问题后, 无法在那个程端口设备 I/O
SCSI 要等待的时间 认值应小于 dev_loss_tmo 将其
off 会禁用超
dev_loss_tmo FC 程端口发现问题后, 到从除它之前 SCSI 要等待
时间 将其无限, 会将其 2147483647 秒, 或者
68 年。
flush_on_last_del 如果将其 yes multipathd 护进程将在除了最后一个到
某个设备的路径禁用排
user_friendly_names 如果将其设为 yes 即指定统应该使用文件
/etc/multipath/bindings 为该多路径分配一个持久且唯一的
名, 格式 mpathn 如果 no 即指定统应使用 WWID
为该多路径的名。 这两种情况下, 您在里指定的数将被您
在配置文件 multipaths 部分指定的具体设备别名覆盖。 认值为
no
retain_attached_hw_han
dler
帽企 Linux 6.4 及之后的版本) 如果将个参数 yes
scsi 为该路径设备附加可硬件句柄, multipath 将不会
设备使用 mutipath.conf 文件指定的 hardware_handler
scsi 没有附加硬件句柄, multipath 继续使用其配置的硬件
句柄。
detect_prio 帽企 Linux 6.4 及之后的版本) 如果将个参数
yes multipath 将首先检查该设备是否支持 ALUA 如果支持,
动为该设备分配 alua 排序器。 如果该设备不支持 ALUA 按管用
方法确定排序器。
以下示例示了多路径配置文件的 device 条目。
# }
# device {
# vendor "COMPAQ "
# product "MSA1000 "
# path_grouping_policy multibus
# path_checker tur
# rr_weight priorities
# }
#}
帽企 Linux 6 设备映射多路径
38
5 DM-Multipath 管理及故障排除
本章提供了在行的系中管理 DM-Multipath 的信息, 其中包括以下部分:
重新定线多路径设备大小
root 设备动单一路径设备到多路径设备
swap 设备动单一路径设备到多路径设备中。
多路径守护进
大量 LUN 造成的问题
queue_if_no_path 功能的问题
multipath 命令
使用 multipath 命令行多路径查询
multipath 命令选项
dmsetup 命令行多路径查询
使用 multipathd 控制台行故障排除
5.1. 重新定线多路径设备大小
如果您要重新定线多路径设备 按以下步操作。
1. 重新定您的物理设备大小。
2. 使用以下命令 LUN 的路径:
# multipath -l
3. 重新定您的路径大小。 SCSI 设备 rescan 文件中写入 1 以便 SCSI 驱动器重新描,
如以下命令:
# echo 1 > /sys/block/device_name/device/rescan
4. 行重新定多路径大小的命令重新定您的多路径设备大小:
# multipathd -k'resize map mpatha'
5. 重新定文件系大小( 没有使用 LVM 或者 DOS 分区)
# resize2fs /dev/mapper/mpatha
5.2. root 文件系一路径设备到多路径设备
如果您在一路径设备中安装您的系 并后来在 root 文件系中添加了一个路径, 您需要将您的 root
文件系到多路径设备中。 本小节记录了从一路径移到多路径设备程。
安装 device-mapper-multipath 件包后行以下步
1. 行以下命令 /etc/multipath.conf 配置文件, 入多路径模 multipathd
chkconfig on
# mpathconf --enable
有关 mpathconf 命令出的参考 3.1 DM-Multipath”
5 DM-Multipath 管理及故障排除
39
2. 编辑 /etc/multipath.conf 文件的 blacklist blacklist_exceptions 部分,
4.2 配置文件黑名所述。
3. 要确定您正确定了配置文件, 您可以 /sbin/multipath 命令, 使用 -v3 选项查多路径
护进程是否尝试为您的 root 设备创建多路径设备 命令会失 root 设备正在使用中,
命令的应该显 root 设备所在路径列表。
应该可在命令出中看到有以下格式的行:
WWID H:B:T:L devname MAJOR:MINOR
例如:如果在 sda 或者它的一个分区中定您的 root 文件系 您可在出中看到似如下的行:
===== paths list =====
...
1ATA WDC WD800JD-75MSA3 WD-WMAM9F 1:0:0:0 sda
8:0
...
在之后的果中, 应该可以看到分配多路经设备 root 设备
time | devname: ownership set to mpathdev
例如:示如下:
Jun 14 06:48:21 | sda: ownership set to mpatha
您将看到一条明告您无法使用命令的以下格式建多路经设备
time | mpathdev: domap (0) failure for create/reload map
如上面的示例所示, 您可以在命令出中看到以下行:
Jun 14 06:48:21 | mpatha: domap (0) failure for create/reload map
4. 要使用 multipath 重建 initramfs 文件系 使用附以下选项 dracut 命令:
# dracut --force --add multipath --include /etc/multipath /etc/multipath
5. 如果您的 root 设备不是 LVM 卷, 且使用设备名称挂 您需要 fstab 文件切换为适当的多路
设备名称。 如果您的 root 设备 LVM 设备或者使用 UUID 或者其它属性挂 就不需要个步

a. 使用第三步中描述的步骤运行代 -v3 选项 /sbin/multipath 命令确定 root 设备 WWID
b. /etc/multipath.conf 文件中 root 设备设名。
multipaths {
multipath {
wwid
WWID_of_root_device
alias rootdev
}
}
c. 编辑 /etc/fstab 并使用带这个多路径设备 root 设备旧的设备路径。
例如:如果您在 /etc/fstab 文件中有以下条目:
帽企 Linux 6 设备映射多路径
40
/dev/sda1 / ext4 defaults 1 1
您可将条目更改如下:
/dev/mapper/rootdev / ext4 defaults 1 1
如果您要编辑 /etc/fstab 文件, 需要编辑 /etc/grub/grub.conf 文件, 并将 root 参数从
root=/dev/sda1 root=/dev/mapper/rootdev
编辑 grub.conf 文件前条目应类似如下。
title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro root=/dev/sda1
rd_NO_LUKS
rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYTABLE=us
console=ttyS0,115200n8 crashkernel=auto
initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
编辑 grub.conf 文件后条目应类似如下。
title Red Hat Enterprise Linux FoundationServer (2.6.32-71.24.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-71.24.1.el6.x86_64 ro
root=/dev/mapper/rootdev
rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16
KEYTABLE=us console=ttyS0,115200n8 crashkernel=auto
initrd /initramfs-2.6.32-71.24.1.el6.x86_64.img
6. 机器。
7. 配置 FC 开关以便可在机器中看到其它路径。
8. 机器。
9. root 文件系 '/' 是否在多路径设备中。
5.3. swap 文件系一路径设备到多路径设备
情况下将 swap 设备设为逻辑卷。 只要您在由该逻辑组组成的物理卷中配置多路径。 就不要求在将
其配置多路径设备时有任何特殊配置。 如果您的 swap 设备不是 LVM 卷, 且使用设备名称挂载该卷,
就需要编辑 fstab 文件将其转换为适当的多路径设备名称。
1. /sbin/multipath 命令使用 -v3 选项确定 swap 设备 WWID 号。 命令的应该在路径
列表中 swap 设备
您可以在命令出中看到有以下格式的行, swap 设备
WWID H:B:T:L devname MAJOR:MINOR
例如:如果在 sda 或者它的分区中 swap 文件系 您会在出中看到似如下的行:
===== paths list =====
...
1ATA WDC WD800JD-75MSA3 WD-WMAM9F 1:0:0:0 sda
8:0
...
2. /etc/multipath.conf 文件中 swap 设备配置名。
5 DM-Multipath 管理及故障排除
41
multipaths {
multipath {
wwid
WWID_of_swap_device
alias swapdev
}
}
3. 编辑 /etc/fstab 并使用带这个多路径设备 root 设备旧的设备路径。
例如:如果您在 /etc/fstab 文件中有以下条目:
/dev/sda2 swap ext4 defaults 0 0
您可将条目更改如下:
/dev/mapper/swapdev swap ext4 defaults 0 0
5.4. 多路径守护进
如果您在行多路径配置遇到问题 应该确定多路径守护进程正在行, 3 DM-Multipath
所述。 须运 multipathd 护进程以便使用多路径设备
5.5. 大量 LUN 造成的问题
当在某个点中添加大量 LUN 使用多路径设备可明 udev 设备过滤其生成设备节点所用的
时间 如果您遇到过这问题 您可在 /etc/udev/rules.d/40-multipath.rules 文件中除以下
行解决问题
KERNEL!="dm-[0-9]*", ACTION=="add", PROGRAM=="/bin/bash -c '/sbin/lsmod |
/bin/grep ^dm_multipath'", RUN+="/sbin/multipath -v0 %M:%m"
行会在每次向该节点中添加块设备时让 udev 设备管理器 multipath 除了
行, multipathd 护进程仍将自生成多路径设备 在引导过程中仍将为带多路径根文件系
multipath 唯一的改就是没有 multipathd 护进程不再自生成多路径设备 大多数多
路径用说应该不是个问题
5.6. queue_if_no_path 功能的问题
如果在 /etc/multipath.conf 文件中指定 features "1 queue_if_no_path" 那么所有采用 I/O
操作的程都将被挂起直到恢复了一个或者多个路径。 要避免种情况, /etc/multipath.conf
件中 no_path_retry N 参数( 其中 N 统应该某个路径的次数)
当您 no_path_retry 参数 要从 /etc/multipath.conf 文件中 features "1
queue_if_no_path"
选项 但如果您使用默认编译为 features "1 queue_if_no_path" 选项的多
路径设备 很多 SAN 设备都是如此) 您必添加 features "0" 覆盖个默认设置。 您可以将
/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf.defaults 中您设备
devices 部分复制到 /etc/multipath.conf 编辑以便适您的需要。
如果您需要使用 features "1 queue_if_no_path" 选项 且您遇到过这里提到的问题 使用
dmsetup 命令特定 LUN 编辑运策略( 就是说对该特定 LUN 所有路径都不可用) 例如:如果
您想要将多路径设备 mpath2 的策略从 "queue_if_no_path" "fail_if_no_path" 请执行以
下命令。
帽企 Linux 6 设备映射多路径
42
dmsetup message mpathc 0 "fail_if_no_path"
注意:您必指定 mpathn 名而不是路径。
5.7. 多路径命令
当您生成、 修改或者列出多路径设备时 您会得一个当前设备组成的打印出, 格式如下。
于每个多路径设备
action_if_any: alias (wwid_if_different_from_alias) dm_device_name_if_known
vendor,product size=size features='features' hwhandler='hardware_handler'
wp=write_permission_if_known
与每个路径群:
-+- policy='scheduling_policy' prio=prio_if_known
status=path_group_status_if_known
于每个路径:
`- host:channel:id:lun devnode major:minor dm_status_if_known path_status
online_status
例如, 多路径命令的出可能是如下形式:
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 7:0:0:0 sdf 8:80 active ready running
如果路径已经启用并准 I/O 那么路径的状就是 ready 或者 ghost 如果路径无法使用,
态为 faulty 或者 shaky 路径的状 multipathd 护进程根据在 /etc/multipath.conf
文件中定的通信行周期性更新。
dm 和路径的状相似, 但从内核来看, dm 个状failed faulty active 涵盖
所有其它路径状 少数情况下, 设备的路径状 dm 暂时不同。
online_status 的可能值为 running offline offline 意味着 SCSI 设备已被禁用。
注意
当生成或者修改一个多路径设备时 路径群状 dm 设备名称、 写入限和 dm 是未知的。
外, 功能也不一定正确。
5.8. 使用多路径命令行多路径查询
您可以使用 multipath 命令的 -l -ll 选项有多路径配置。 -l 选项显示从 sysfs 以及设备
映射器中收集的多路径拓信息。 -ll 选项显 -l 示的所有信息以及统额外可用的其它件。
订记录
43
示多路径配置 您可以使用 multipath 命令的 -v 选项指定三种详细 指定 -v0 没有
出。 指定 -v1 出生成或者更新的路径名称。 指定 -v2 出所有检测到的路径、 多路径和设备
射。
以下示例示了 multipath -l 命令的出。
# multipath -l
3600d0230000000000e13955cc3757800 dm-1 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 6:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 7:0:0:0 sdf 8:80 active ready running
以下示例示了 multipath -l1 命令的出。
# multipath -ll
3600d0230000000000e13955cc3757801 dm-10 WINSYS,SF2372
size=269G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=enabled
| `- 19:0:0:1 sdc 8:32 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 18:0:0:1 sdh 8:112 active ready running
3600d0230000000000e13955cc3757803 dm-2 WINSYS,SF2372
size=125G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 19:0:0:3 sde 8:64 active ready running
`- 18:0:0:3 sdj 8:144 active ready running
5.9. 多路径命令选项
5.1 “有用的 multipath 命令选项描述了一些您可能会用到的 multipath 命令选项
5.1. 有用的 multipath 命令选项
选项 描述
-l 示来自 sysfs 设备映射器的当前多路径配置。
-ll 示来自 sysfs 设备映射器以及系中的其它可用件的当前多路径配
置。
-f device 除命名的多路径设备
-F 除所有不使用的多路经设备
5.10. 使用 dmsetup 命令确定设备映射器条目
您可以使用 dmsetup 找出设备映射器条目与多路径的设备映射。
以下命令示所有设备映射器设备及其主、 副号 副号确定 dm 设备的名称。 例如:副号 3 与多路径
设备 /dev/dm-3 映。
帽企 Linux 6 设备映射多路径
44
# dmsetup ls
mpathd (253:4)
mpathep1 (253:12)
mpathfp1 (253:11)
mpathb (253:3)
mpathgp1 (253:14)
mpathhp1 (253:13)
mpatha (253:2)
mpathh (253:9)
mpathg (253:8)
VolGroup00-LogVol01 (253:1)
mpathf (253:7)
VolGroup00-LogVol00 (253:0)
mpathe (253:6)
mpathbp1 (253:10)
mpathd (253:5)
5.11. 使用 multipathd 控制台行故障排除
multipathd -k 命令是一个 multipathd 护进程的互界面。 行此命令将入互的多路径控制
台。 行此命令后, 您可以 help 得可用的命令列表。 您可以入互命令, 或者您可以
CTRL-D 退出。
multipathd 控制台可用来在您的系问题时进行故障排除。 例如:以下命令会在退出控制台前
示多路径配置, 其中包括默配置。
# multipathd -k
> > show config
> > CTRL-D
以下命令确定多路径已经识别了所有 multipath.conf 的修改。
# multipathd -k
> > reconfigure
> > CTRL-D
使用以下命令确定路径检查器工作正常。
# multipathd -k
> > show paths
> > CTRL-D

请使用浏览器的分享功能分享到微信等