/etc/multipath.conf 中的 multipaths 部分
下面是来自 /etc/multipath.conf 文件的示例多路径部分。
multipaths { multipath { wwid 3600508b4000156d700012000000b0000 alias yellow path_grouping_policy multibus path_selector "round-robin 0" failback bananaal rr_weight priorities no_path_retry 5 } multipath { wwid 1DEC_____321816758474 alias red } }
在配置文件的 multipaths 部分为每个单独的多路径设备设置属性。
这些属性适用于指定的多路径并覆盖在 defaults 和 devices 部分中设置的属性。
上面的示例多路径部分显示了覆盖第一个 WWID 的故障回复和 no_path_retry 默认设置并为两个 WWID 设置别名的设置。
no_path_retry 属性的有效值为:
- [n] - 在多路径停止排队并使路径失败之前的重试次数
- 失败 - 指定立即失败(无排队)
- queue - 永远不要停止排队(永远排队直到路径活跃)
/etc/multipath.conf 中的默认属性
下面是来自 /etc/multipath.conf 文件的示例默认部分。
defaults { polling_interval 10 path_selector "round-robin 0" path_grouping_policy multibus uid_attribute ID_SERIAL prio alua path_checker readsector0 rr_min_io 100 max_fds 8192 rr_weight priorities failback immediate no_path_retry fail user_friendly_names yes }
配置文件的 defaults 部分中定义的部分属性列表如下:
- udev_dir - udev 创建设备节点的目录。默认为 /dev。
- polling_interval - 检查路径的时间间隔(以秒为单位)。默认值为 5 秒。
- path_selector - 要使用的以下路径选择器算法之一:
- round-robin 0 :循环遍历每个路径,向每个路径发送相同数量的 I/O。这是默认设置。
- queue-length 0 :沿着具有最少未完成 I/O 数量的路径发送 I/O。
- service-time 0 :根据未完成的 I/O 数量和相对吞吐量沿路径发送 I/O。
- path_grouping_policy - 路径被分组到路径组中。该策略确定路径组的形成方式。有五种不同的政策。
- failover:每个优先级组一条路径
- multibus :一个优先级组中的所有路径。这是默认设置。
- group_by_serial :每个存储控制器一个优先级组(序列号)
- group_by_prio :每个优先级值一个优先级组
- group_by_node_name :每个目标节点名称一个优先级组
- prio - 使用以下方法之一获取路径优先级值:
- const - 将所有路径的优先级设置为 1. 这是默认设置。
- emc - 为 EMC 存储数组生成路径优先级。
- alua - 根据 SCSI-3 非对称逻辑单元访问 (ALUA) 设置生成路径优先级。 ALUA 允许设备向主机报告其端口的状态。主机使用此状态来确定路径的优先级并做出故障转移和负载平衡决策。
- tpg_pref - 根据 SCSI-3 ALUA 设置,使用首选端口位生成路径优先级。
- ontap - 为 NetApp 存储数组生成路径优先级。
- rdac - 为 LSI/Engenio/NetApp E 系列冗余磁盘数组控制器 (RDAC) 生成路径优先级。
- hp_sw - 在活动/待机模式下为 Compaq/HP 控制器生成路径优先级。
- hds - 在活动/备用模式下为 Hitachi HDS Compaq/HP 控制器生成路径优先级。
- path_checker - 以下方法之一是用于确定路径状态的方法:
- readector0 - 读取设备的第一个扇区。这是默认设置。
- tur - 向设备发出测试单元就绪 (TUR) 命令。
- emc_clarrion - 查询 EMC CLARiiON 特定的 EVPD 页 0xC0 以确定路径状态。
- hp_sw - 检查带有活动/备用固件的 HP 存储数组的路径状态。
- rdac - 检查 LSI/Engenio/NetApp E 系列 RDAC 的路径状态。
- directio - 使用直接 I/O 读取第一个扇区。
- rr_min_io - 在切换到同一路径组中的下一个路径之前路由到路径的 I/O 数量。这适用于运行早于 2.6.31 内核的系统。较新的系统使用 rr_min_io_rq。默认值为 1000。
- max_fds - multipath 和 multipathd 可以打开的最大文件描述符数
- rr_weight - 路径权重。可能的值是优先级或者统一的。
- failback - 以下方法之一用于管理路径组故障回复:
- immediate - 立即故障回复到包含活动路径的最高优先级路径组。
- bananaal - 不执行自动故障回复。
- followover - 仅当路径组的第一个路径变为活动时才执行自动故障回复。
- values > 0 - 这表示延迟故障回复的时间(以秒为单位)。
/etc/multipath.conf 中的设备部分
下面是来自 /etc/multipath.conf 文件的示例设备部分。
devices { device { vendor "COMPAQ " product "HSV110 (C)COMPAQ" path_grouping_policy multibus path_checker readsector0 path_selector "round-robin 0" hardware_handler "0" failback 15 rr_weight priorities no_path_retry queue } device { vendor "COMPAQ " product "MSA1000 " path_grouping_policy multibus } }
DM-Multipath 包括对最常见存储数组的支持。
运行以下任一命令以查看有关支持的设备的信息:
# multipathd show config # multipath -t
要添加默认不支持的存储设备,请从存储设备的 sysfs 文件系统中获取供应商、产品和修订信息,并将其添加到 /etc/multipath.conf 文件中。
查看以下文件以获取此信息:
- /sys/block/device_name/device/vendor - 供应商信息
- /sys/block/device_name/device/model - 产品信息
- /sys/block/device_name/device/rev - 修订信息
DM-Multipath 的主要配置文件是 /etc/multipath.conf 。
该文件不是由 RPM 包的初始安装创建的。
但是,以下文件安装在 /usr/share/doc/device-mapper-multipath-[version] 目录中:
- multipath.conf - 基本配置文件,其中包含 DM-Multipath 的一些示例。该文件用于创建 /etc/multipath.conf 文件。
multipath.conf 文件包含以下部分,每个部分包含一个或者多个属性或者子部分。
部分 | 描述 |
---|---|
defaults | 定义 DM-Multipath 的默认设置。 这些设置可以被设备和多路径部分覆盖。 |
blacklist | 定义要从多路径拓扑发现中排除的设备。 列入黑名单的设备不会被分组到多路径设备中。 |
blacklist_exceptions | 定义要包含在多路径拓扑发现中的设备,即使这些设备列在黑名单部分也是如此。 |
multipaths | 定义单个多路径设备的设置。 设备由 wwid 关键字标识。 此部分中的设置具有最高优先级。 |
devices | 定义各个存储控制器类型的设置。 控制器类型由供应商、产品和修订版关键字标识,这些关键字必须与有关设备的 sysfs 信息相匹配。 |
/etc/multipath.conf 中的黑名单部分
下面是来自 /etc/multipath.conf 文件的示例黑名单部分。
blacklist { wwid 26353900f02796769 ### blacklist using WWID devnode "^sd[a-z]" ### blacklist all scsi Devices device { ### blacklist by device type vendor "COMPAQ" product "HSV110 (C)COMPAQ" } }
使用 /etc/multipath.conf 文件中的 blacklist 部分将设备从分组到多路径设备中排除。
我们可以使用以下任何标识符将设备列入黑名单。
在 blacklist_exceptions 部分使用相同的标识符。
- WWID
- 设备名称:使用 devnode 关键字。
- 设备类型:使用设备小节。