4.4. 多路径设备配置属性

表 4.2 “多路径属性” 显示在 multipath.conf 配置文件 multipaths 部分中可为每个特定多路径设备设置的属性。这些属性只适用于一个指定的 multipath。这些默认属性可供 DM Multipath 使用,并且能覆盖 multipath.conf 文件中 defaultsdevices 部分设置的属性。

表 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 阵列生成路径优先权。
alua:根据 SCSI-3 ALUA 设置生成路径有限级。从 Red Hat Enterprise Linux 7.3 开始,如果在设备配置中指定 prio "alua exclusive_pref_bit",多路径将生成包含只使用 pref 字节集的路径组,并为该组设定最高优先级。
ontap:为 NetApp 阵列生成路径优先权。
rdac:为 LSI/Engenio RDAC 控制程序生成路径优先权。
hp_sw:为 Compaq/HP 控制程序在激活/等待模式中生成路径优先权。
hds:为 Hitachi HDS Modular 存储阵列生成路径优先权。
features
多路径设备的默认额外功能,使用以下格式:"number_of_features_plus_arguments feature1 ..."。
features 可能的值包括:
queue_if_no_path,与将 no_path_retry 设置为 queue 相同。欲了解使用此功能可能出现的问题,请参阅〈第 5.7 节 “有 queue_if_no_path 功能的问题”〉。
retain_attached_hw_handler:若此参数值被设为 yes,并且 SCSI 层已经为路径设备添加了硬件控制程序,multipath 将不会强制设备使用 multipath.conf 文件指定的 hardware_handler。若 SCSI 层没有添加硬件控制程序,multipath 仍然会使用已配置的硬件控制程序。默认值为 no
pg_init_retries n:路径组初始化重试,失败前最多重试 n 次,1 <= n <= 50。
pg_init_delay_msecs n:在路径组初始化重试的间隔,等待 n 毫秒,0 <= n <= 60000。
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,那么当设备的最后一条路径被删除时,multipath 将会禁用队列。
user_friendly_names 如果将其设为 yes,即指定该系统应该使用文件 /etc/multipath/bindings 为该多路径分配一个持久且唯一的别名,格式为 mpathn。如果设定为 no,即指定该系统应使用 WWID 作为该多路径的别名。在这两种情况下,您在这里指定的数值将被您在配置文件 multipaths 部分指定的具体设备别名覆盖。
delay_watch_checks (从 Red Hat Enterprise Linux Release 7.2 开始)如果将其设定为大于 0 的值,multipathd 守护进程将监视最近有效的路径,并执行指定数量的检查。如果在监视期间这些路径再次变为无法使用,则不会在这些路径下一次可用时就使用它们,直到连续检查使用 delay_wait_checks 指定的次数后它们都可用为止。 这样可防止将那些可能不太可靠的路径在上线后立即投入使用。
delay_wait_checks (从 Red Hat Enterprise Linux 7.2 开始)如果将其设定为大于 0 的值,则最近重新上线的设备在由 delay_watch_checks 指定的检查次数内再次无法使用后,那么它下一次上线后就不会被标记并延迟,并在经过使用 delay_watch_checks 指定的检查次数后方可使用。
deferred_remove如果设定为 yes,则在删除最后一个路径设备时,multipathd 将会执行延期删除,而不是常规删除。这样就会保证如果执行常规删除且操作失败时某个多路径设备正在使用中,该设备会在最后一个用户关闭该设备时自动被删除。
skip_kpartx如果设定为 yeskpartx 不会在该设备中自动创建分区。这样即使该设备有分区表,也可以允许用户在不创建分区的情况下创建多路径设备。
以下示例显示在配置文件中为两个特定多路径设备指定的多路径属性。第一个设备的 WWID 为 3600508b4000156d70001200000b0000,符号名称为 yellow
示例中第二个多路径设备的 WWID 为 1DEC_____321816758474,符号名称为 red。在这个示例中,rr_weight 属性被设为 priorities
multipaths {
       multipath {
              wwid                  3600508b4000156d70001200000b0000
              alias                 yellow
              path_grouping_policy  multibus
              path_selector         "round-robin 0"
              failback              manual
              rr_weight             priorities
              no_path_retry         5
       }
       multipath {
              wwid                  1DEC_____321816758474
              alias                 red
              rr_weight             priorities
        }
}