Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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 配置文件的 devicesmultipaths 部分指定的属性将其覆盖。

注意

从红帽企业版 Linux 6.0 开始弃用 modeuidgid 参数。device-mapper 设备的权限(包括 multipath 映射)由 udev 规则设定。/usr/share/doc/device-mapper-version 中有一个模板文件,名为 12-dm-permissions.rules,您可以使用它并将其放在 /etc/udev/rules.d 目录中使其生效。

表 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 选项的调用程序决定。
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 存储控制器检查路径状态。
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 如果将其设定为 nomultipathd 守护进程将在其关闭时禁用所有设备排队。默认值为 no
flush_on_last_del 如果将其设定为 yesmultipathd 守护进程将在删除了最后一个到某个设备的路径时禁用查询。默认值为 no
max_fds 设定 multipath 可以打开的文件提示符以及 multipathd 守护进程的最大值。这与 ulimit -n 命令效果一致。从红帽企业版 Linux 6.3 开始,默认值为 max,该值将该系统限制到 /proc/sys/fs/nr_open。对其较早的版本,如果没有设定这个值,则使用调用进程作为打开文件提示符的最大值,通常为 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_handler (红帽企业版 Linux 6.4 及之后的版本)如果将这个参数设定为 yes,且 scsi 层已为该路径设备附加可硬件句柄,multipath 将不会强制该设备使用 mutipath.conf 文件指定的 hardware_handler。如果该 scsi 层没有附加硬件句柄,multipath 将继续使用其配置的硬件句柄。默认值为 no
detect_prio (红帽企业版 Linux 6.4 及之后的版本)如果将这个参数设定为 yes,multipath 将首先检查该设备是否支持 ALUA,如果支持,则自动为该设备分配 alua 排序器。如果该设备不支持 ALUA,则按管用方法确定排序器。默认值为 no