iscsi 多路径 multipath

官方文档

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html-single/dm_multipath/index#multipath_device_attributes

安装

yum -y install iscsi-initiator-utils

yum –y install device-mapper device-mapper-multipath

复制默认配置档

cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/multipath.conf

列出可供使用的多路径iscsi设备

multipath –ll

demo

vi /etc/multipath.conf

blacklist {
       devnode "sda"
}
multipaths {
       multipath {
               wwid                    360014053930657cd73e9d41abd81ffd2
               alias                   isclun5
               path_grouping_policy    multibus
               path_selector           "round-robin 0"
               failback                followover
               rr_weight               priorities
               no_path_retry           5
       }
}

参数说明

多路径配置默认值

polling_interval

以秒为单位指定两次路径检查之间的间隔。对于正常运行的路径,检查之间的间隔将逐渐增加到 (4 * polling_interval)。默认值为 5。

udev_dir udev
创建设备节点的目录。默认值为/dev。

multipath_dir

存储动态共享对象的目录。默认值取决于系统,通常为/lib/multipath。

find_multipaths
定义设置多路径设备的模式。如果此参数设置为yes,则 multipath 将不会尝试为每个非黑名单路径创建设备。相反,仅当满足以下三个条件之一时,多路径才会创建设备:

  • 至少有两条未列入黑名单的路径具有相同的 WWID。
  • 用户通过使用multipath命令指定设备来手动强制创建设备。
  • 路径与之前创建的多路径设备具有相同的 WWID。每当使用find_multipathsset创建多路径设备时,multipath 都会记住设备的 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:每个优先级组 1 个路径。
multibus:1 个优先级组中的所有有效路径。
group_by_serial:每个检测到的序列号有 1 个优先级组。
group_by_prio:每个路径优先级值有 1 个优先级组。优先级由指定为全局、每个控制器或每个多路径选项的调用程序确定。
group_by_node_name:每个目标节点名称 1 个优先级组。目标节点名称在/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 设置生成路径优先级。从 Red Hat Enterprise Linux 6.8 开始,如果您prio "alua exclusive_pref_bit"在设备配置中指定,multipath 将创建一个仅包含pref设置了位的路径的路径组,并赋予该路径组最高优先级。
tpg_pref:使用首选端口位根据 SCSI-3 ALUA 设置生成路径优先级。
ontap:为 NetApp 阵列生成路径优先级。
rdac: 为 LSI/Engenio RDAC 控制器生成路径优先级。
hp_sw:为 Compaq/HP 控制器在活动/备用模式下生成路径优先级。
hds:为 Hitachi HDS Modular 存储阵列生成路径优先级。
默认值为const。

features

多路径设备的默认额外功能,使用格式:“ number_of_features_plus_arguments feature1 …”。
可能的值features包括:
queue_if_no_path,这与设置no_path_retry为相同queue。有关使用此功能时可能出现的问题的信息,请参阅第 5.6 节 “queue_if_no_path 功能的问题”。
retain_attached_hw_handler:(Red Hat Enterprise Linux Release 6.4 及更高版本)如果此参数设置为yes并且 scsi 层已经将硬件处理程序附加到路径设备,则多路径不会强制设备使用文件hardware_handler指定的multipath.conf。如果 scsi 层没有附加硬件处理程序,多路径将继续像往常一样使用其配置的硬件处理程序。默认值为no。
pg_init_retries n:在失败之前重试路径组初始化最多n次,其中 1 <= n <= 50。
pg_init_delay_msecs n:在路径组初始化重试之间等待n毫秒,其中 0 <= n <= 60000。

path_checker

指定用于确定路径状态的默认方法。可能的值包括:
readsector0:读取设备的第一个扇区。
tur:TEST UNIT READY向设备发出 a 。
emc_clariion:查询EMC Clariion特定的EVPD页面0xC0以确定路径。
hp_sw:检查具有活动/备用固件的 HP 存储阵列的路径状态。
rdac:检查 LSI/Engenio RDAC 存储控制器的路径统计信息。
directio: 使用直接 I/O 读取第一个扇区。
默认值为directio。

failback

管理路径组故障回复。
值immediate指定立即故障回复到包含活动路径的最高优先级路径组。
值manual指定不应立即进行故障回复,但只有在操作员干预的情况下才能发生故障回复。
值followover指定当路径组的第一个路径变为活动时应执行自动故障回复。这可以防止一个节点在另一个节点请求故障转移时自动故障恢复。
大于零的数值指定延迟故障回复,以秒表示。
默认值为manual。

rr_min_io

指定在切换到当前路径组中的下一个路径之前路由到路径的 I/O 请求数。此设置仅适用于运行早于 2.6.31 内核的系统。较新的系统应该使用rr_min_io_rq. 默认值为 1000。

rr_min_io_rq

使用基于请求的 device-mapper-multipath 指定在切换到当前路径组中的下一个路径之前路由到某个路径的 I/O 请求数。此设置应用于运行当前内核的系统。在运行早于 2.6.31 内核的系统上,使用rr_min_io. 默认值为 1。

rr_weight

如果设置为priorities,则不是rr_min_io在调用path_selector以选择下一条路径之前将请求发送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
设置可以由多路径和multipathd守护程序打开的最大打开文件描述符数。这相当于ulimit -n命令。从 Red Hat Enterprise Linux 6.3 发行版开始,默认值为max,将其设置为系统限制从/proc/sys/fs/nr_open。对于早期版本,如果未设置,则从调用进程中获取打开文件描述符的最大数量;它通常是 1024。为了安全起见,这应该设置为最大路径数加上 32,如果该数字大于 1024。

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 及更高版本)控制多路径如何devices将配置文件部分中的设备配置与内置设备配置集成。
文件devices部分中的每个设备配置multipath.conf将创建自己的设备配置或修改其中一个内置设备配置。在 Red Hat Enterprise Linux 6.3 之前,如果用户设备配置中的供应商、产品和修订字符串与内置设备配置中的这些字符串完全匹配,则内置配置将通过用户配置中的选项进行修改。除此以外。用户的设备配置被视为新配置。
如果hwtable_regex_match设置为yes,则使用正则表达式匹配。供应商、产品和修订字符串都是正则表达式。这些选项的用户设备配置值与内置设备配置值相匹配。此匹配的工作方式与将实际设备的供应商产品和修订字符串与设备配置的字符串进行匹配以查看应用于设备的配置的方式相同。如果用户的设备配置匹配,则通过用户配置中的选项修改内置配置。否则,用户的设备配置将被视为新配置。

retain_attached_hw_handler

(Red Hat Enterprise Linux Release 6.4 及更高版本)如果此参数设置为yes并且 scsi 层已经将硬件处理程序附加到路径设备,则多路径不会强制设备使用文件hardware_handler指定的multipath.conf。如果 scsi 层没有附加硬件处理程序,多路径将继续像往常一样使用其配置的硬件处理程序。默认值为no。

detect_prio
(Red Hat Enterprise Linux Release 6.4 及更高版本)如果设置为yes,multipath 将首先检查设备是否支持 ALUA,如果支持,它会自动为设备分配alua优先级。如果设备不支持 ALUA,它将像往常一样确定优先级。默认值为no。
replace_wwid_whitespace (Red Hat Enterprise Linux Release 6.5 及更高版本)如果设置为yes,则getuid_callout使用此参数的所有设备的默认值将更改为包括–replace-whitespace。

reload_readwrite

(Red Hat Enterprise Linux Release 6.5 及更高版本)如果设置为yes,multipathd守护程序将侦听路径设备更改事件,如果设备变为可读/写状态,它将重新加载多路径设备。

force_sync

(Red Hat Enterprise Linux Release 6.6 及更高版本)如果设置为“yes”,它会阻止路径检查程序在异步模式下运行。

delay_watch_checks

(Red Hat Enterprise Linux Release 6.7 及更高版本)如果设置为大于 0 的值,multipathd守护程序将监视最近在指定检查次数内有效的路径。如果它们在被监视时再次失败,则当它们下一次变为有效时,它们将不会被使用,直到它们完成了指定的连续检查次数delay_wait_checks。这允许您防止可能不可靠的路径在它们重新联机后立即重新投入使用。默认值为no。

delay_wait_checks

(Red Hat Enterprise Linux Release 6.7 及更高版本)如果设置为大于 0 的值,当最近重新联机的设备在指定的检查次数内再次失败时delay_watch_checks,下次重新联机时,它将被标记为延迟,并且在通过 中指定的检查次数之前不会使用它delay_wait_checks。默认值为no。

config_dir

(Red Hat Enterprise Linux Release 6.7 及更高版本)如果设置为除 之外的任何值"",multipath 将按字母顺序在此目录中搜索以“.conf”结尾的文件,并从中读取配置信息,就像信息在/etc/multipath.conf文件中一样。除了单独的特定于机器的配置文件之外,这允许您拥有在机器之间共享的一个主要配置。该config_dir参数必须是""或 完全限定的目录名称。此参数只能在主/etc/multipath.conf文件中设置,而不能在config_dir文件本身指定的文件之一中设置。默认值为/etc/multipath/conf.d。

log_checker_err
如果设置为once,multipathd 会以详细级别 2 记录第一个路径检查器错误。任何后续错误都以详细级别 3 记录,直到设备恢复。如果设置为always,则 multipathd 始终以详细级别 2 记录路径检查器错误。默认值为always。

skip_kpartx
(Red Hat Enterprise Linux Release 6.9 及更高版本)如果设置为yes,kpartx则不会在设备上自动创建分区。这允许用户在不创建分区的情况下创建多路径设备,即使该设备具有分区表。此选项的默认值为no。

max_sectors_kb

(Red Hat Enterprise Linux Release 6.9 及更高版本)在max_sectors_kb首次激活多路径设备之前,在多路径设备的所有底层路径上将设备队列参数设置为指定值。创建多路径设备时,该设备会继承max_sectors_kb路径设备的值。手动提高多路径设备的此值或降低路径设备的此值会导致多路径创建大于路径设备允许的 I/O 操作。max_sectors_kb在路径设备之上创建多路径设备之前,使用该参数是设置这些值的一种简单方法,并防止传递无效大小的 I/O 操作。如果用户未设置此参数,则路径设备由其设备驱动程序设置,多路径设备从路径设备继承它。

多路径设备配置属性

wwid

指定multipath属性适用的多路径设备的 WWID 。对于multipath.conf文件的这一部分,此参数是必需的。

alias

指定multipath属性适用的多路径设备的符号名称。如果您使用的是user_friendly_names,请不要将此值设置为; 这可能与自动分配的用户友好名称冲突,并为您提供不正确的设备节点名称。mpathn

path_grouping_policy

指定要应用于未指定多路径的默认路径分组策略。可能的值包括:
failover = 每个优先级组 1 个路径
multibus = 1 个优先级组中的所有有效路径
group_by_serial = 每个检测到的序列号有 1 个优先级组
group_by_prio = 每个路径优先级值 1 个优先级组
group_by_node_name = 每个目标节点名称 1 个优先级组
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指定当路径组的第一个路径变为活动时应执行自动故障回复。这可以防止一个节点在另一个节点请求故障转移时自动故障恢复。
大于零的数值指定延迟故障回复,以秒表示。

prio

指定要调用以获取路径优先级值的默认函数。例如,SPC-3 中的 ALUA 位提供了一个可利用的prio值。可能的值包括:
const:将所有路径的优先级设置为 1。
emc:生成 EMC 阵列的路径优先级。
alua:根据 SCSI-3 ALUA 设置生成路径优先级。从 Red Hat Enterprise Linux 6.8 开始,如果您prio "alua exclusive_pref_bit"在设备配置中指定,multipath 将创建一个仅包含pref设置了位的路径的路径组,并赋予该路径组最高优先级。
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

使用基于请求的 device-mapper-multipath 指定在切换到当前路径组中的下一个路径之前路由到某个路径的 I/O 请求数。此设置应用于运行当前内核的系统。在运行早于 2.6.31 内核的系统上,使用rr_min_io. 默认值为 1。

rr_weight

如果设置为priorities,则不是rr_min_io在调用path_selector以选择下一条路径之前将请求发送rr_min_io到路径,而是由prio函数确定的路径优先级的倍数来确定要发送的请求数。如果设置为uniform,则所有路径权重都相等。

flush_on_last_del

如果设置为yes,则当设备的最后一条路径被删除时,多路径将禁用排队。

user_friendly_names
如果设置为yes,则指定系统应使用该/etc/multipath/bindings文件为多路径分配一个持久且唯一的别名,格式为mpathn. 如果设置为no,则指定系统应使用 WWID 作为多路径的别名。无论哪种情况,此处指定的内容都将被您在multipaths配置文件部分指定的任何特定于设备的别名覆盖。

delay_watch_checks

(Red Hat Enterprise Linux Release 6.7 及更高版本)如果设置为大于 0 的值,multipathd守护程序将监视最近在指定检查次数内有效的路径。如果它们在被监视时再次失败,则当它们下一次变为有效时,它们将不会被使用,直到它们完成了指定的连续检查次数
delay_wait_checks。这允许您防止可能不可靠的路径在它们重新联机后立即重新投入使用。

delay_wait_checks

(Red Hat Enterprise Linux Release 6.7 及更高版本)如果设置为大于 0 的值,当最近重新联机的设备在指定的检查次数内再次失败时delay_watch_checks,下次重新联机时,它将被标记为延迟,并且在通过 中指定的检查次数之前不会使用它delay_wait_checks。

skip_kpartx
(Red Hat Enterprise Linux Release 6.9 及更高版本)如果设置为yes,kpartx则不会在设备上自动创建分区。这允许用户在不创建分区的情况下创建多路径设备,即使该设备具有分区表。

max_sectors_kb

(Red Hat Enterprise Linux Release 6.9 及更高版本)在max_sectors_kb首次激活多路径设备之前,在多路径设备的所有底层路径上将设备队列参数设置为指定值。创建多路径设备时,该设备会继承max_sectors_kb路径设备的值。手动提高多路径设备的此值或降低路径设备的此值会导致多路径创建大于路径设备允许的 I/O 操作。使用该max_sectors_kb参数是在路径设备之上创建多路径设备之前设置这些值的一种简单方法,并防止传递无效大小的 I/O 操作 如果用户未设置此参数,则路径设备具有它由它们的设备驱动程序设置,多路径设备从路径设备继承它。