zoukankan      html  css  js  c++  java
  • 多路径multipath配置文件详解

      默认情况下,multipath已经支持大部分常见的存储型号(可见multipath.conf.defaults),但不同的multipath版本可能都有些不同。这时,建议参考存储的官方文档,但有时候,同一台机器上如果连接了一个以上的存储时,可能默认规则并不完全适用。这时我们可以给特定的存储定制多路径符合的策略。

      配置文件的模板默认位于/usr/share/doc/device-mapper-multipath-x.x.x/multipath.conf(x为multipath的实际版本号),配置multipath配置文件时,可以将该文件复制于/etc/multipath.conf,然后,在进行定制配置。

    配置Linux (suse and redhat;redhat7以上不适用,详见下一篇)

    vi /etc/multipath.conf
    
    
    defaults {
            user_friendly_names yes
            polling_interval  30
    }
    devices {  
            device {
                    vendor "NETAPP"
                    product "LUN.*"
                    path_grouping_policy "group_by_prio"
                    path_checker "tur"
                    features "3 queue_if_no_path pg_init_retries 50"
                    hardware_handler "1 alua"
                    prio "alua"
                    failback "immediate"
                    rr_weight "uniform"
                    rr_min_io 128
                    dev_loss_tmo "infinity"
                    retain_attached_hw_handler "yes"
                    detect_prio "yes"
                    path_selector  "round-robin 0"
                    no_path_retry  18                
            }
    } 
    
    blacklist {
        device {
            vendor ".*"
        }
    }
    blacklist_exceptions {
        device {
            vendor "^NETAPP"
        }
    }

    一、配置文件字段

      1)defaults:全局属性的默认设置。

      2)multipaths:多路径相关配置

      3)devices:存储设备相关配置。

      4)blacklist:黑名单,multipath会忽略黑名单中的设备。

      5)blacklist_exceptions:免除黑名单,加入黑名单内,但包含在这里的设备不会被忽略,是多路径管理的设备列表。

    二、配置文件字段详细

     1、defaults可用属性

      1)polling_interval:路径检查的时间间隔,单位秒(s)。

      2)max_polling_interval:路径检查的最大时间间隔,默认为polling_interval的4倍,单位秒(s)。

      3)multipath_dir:多路径共享库的路径,具体与系统相关,默认为/lib/multipath或/lib64/multipath。

      4)find_multipaths:默认值no,这将为黑名单外的所有设备创建多路径设备。如置为yes,则将为3种场景创建多路径设备:

      不在黑名单的两个路径的wwid相同;用户手动强制创建;一个路径的wwid与之前已经创建的多路径设备相同。

      5)verbosity:信息输出等级,最低为0,最高为6,默认为2。

      6)path_selector:路径选择算法,其中,“round-robin 0”表示在多个路径间不断循环;“queue-length 0”表示选择当前处理IO数最少的路径;

      “service-time 0”表示选择IO服务时间最短的路径。

      7)path_grouping_policy:路径分组策略,其中,“failover” 表示一条路径一个组(默认值);“multibus”表示所有路径在一个组;

      “group_by_serial”表示根据序列号分组;“group_by_prio”表示根据优先级分组;“group_by_node_name”表示根据名字分组。

      8)uid_attribute:用udev的哪个属性唯一标识一个设备,默认值为ID_SERIAL。

      9)prio:路径优先级获取方法,其中,“const”返回1(默认值);“emc”为emc盘阵生成优先级;“alua”基于SCSI-3 ALUA配置生成优先级;

      “ontap”为NetAPP盘阵生成优先级;“rdac”为LSI/Engenio/NetApp E-Series RDAC控制器生成优先级;“hp_sw”根据Compaq/HP控制器

      active/standby模式生成优先级;

      “hds”为日立HDS模块化阵列生成优先级;“random”随机生成优先级,其值在1到10间;“weightedpath”根据正则表达式及prio_args

      参数值生成优先级。

      10)prio_args:计算优先级函数的参数。

      11)features:指定使用Device Mapper的特性,其中,“queue_if_no_path”表示没有可用路径时,将请求加入队列;“no_partitions”表示禁止

      使用kpartx生成分区。

      12)path_checker:路径检查方法,其中,“readsector0”表示通过读取设备的第一扇区来决定路径状态,已废弃,用directio替代;“tur”表示

      运行“TEST UNIT READY”命令来决定路径状态;“emc_clariion”表示执行“EMC Clariion specific EVPD page 0xC0”来决定路径的状态;

      “hp_sw”表示检查惠普Active/Standby盘阵;

      “rdac”表示检查“LSI/Engenio/NetApp E-Series RDAC”存储控制器的状态;“direction”表示用DirectIO读取设备的第一个扇区。

      13)failback:恢复路径的方法,其中,“Immediate”表示立即恢复到包含活动路径的高优先级路径组;“manual”表示手动恢复(默认值);

      “followover”表示只有路径组的第一条路径可用时才恢复;“values>0”表示延迟恢复。

      14)rr_min_io:切换到当前路径组中下一条路径前进行的IO数,仅用于2.6.31的核心版本号,默认值为1000。

      15)rr_min_io_rq:切换到当前路径组中下一条路径前进行IO数,仅用于2.6.31及以后的核心版本号,默认值为1。

      16)no_path_retry:禁用队列前系统重试的次数,“fail”表示直接返回错误,“queue”表示全部加入队列,默认值为0。

      17)user_friendly_names:如为yes,则用/etc/multipath/bindings中的设置命名;如为no,则使用wwid命名(可被multipaths中的设置覆盖),

      默认值为no。

      18)max_fds:multipathd和multipath可打开的最大文件描述符数。

      19)checker_timeout:路径检查的超时时间,单位秒(s),默认值为/sys/block/sd<x>/device/timeout值。

      20)fast_io_fail_tmo:SCSI IO错误超时,应比dev_loss_tmo小,为off则禁用超时。

      21)dev_loss_tmo:SCSI设备移除超时,Linux下的默认为为300,单位秒(s)。

      22)queue_without_daemon:如置为no,如multipathd没启动,则禁止所有设备的IO加入队列。

      23)bindings_file:设置了user_friendly_names时,名称绑定文件的路径,默认值为/etc/multipath/bindings。

      24)wwids_file:wwids跟踪文件路径,默认为/etc/multipath/wwids。

      25)log_checker_err:路径检查出错时的日志记录方式,默认为always。

      26)reservation_key:为mpathpersist命令指定的key。

      27)retain_attached_hw_handler:是否继续使用hardware_handler,默认为no。

      28)detect_prio:如置为yes,则首先尝试使用alua检测,默认为no。

      29)hw_str_match:如置为yes,则优先使用字符串匹配名称、厂商等信息,默认为no。

      30)force_sync:如置为yes,则强制使用同步模式检查路径,默认为no。

      31)deferred_remove:如置为yes,则延迟删除没有路径的设备,默认为no。

      32)config_dir:指定配置文件的目录,如不为“”,则按照字母排序搜索目录中的*.conf文件,像使用/etc/multipath.conf一样对其进行读取,

      默认为/etc/multipath/conf.d。

      33)delay_watch_checks:如大于0,则只有连续delay_watch_checks检查路径有效时,才认为有效,默认为no。

      34)delay_wait_checks: 如大于0,经过delay_watch_check检查有效后,延迟delay_wait_checks次检查后,才正式重新启用,默认为no。

      35)missing_uev_msg_delay:当一个新的设备被创建后,在延迟missing_uev_msg_delay秒后开始接受udev信息,默认值是30。

    2、multipaths配置,multipaths单独配置单条路径,每条路径单独使用multipath子节,其可包含如下属性:

      1)wwid:路径WWID(必选),可用命令/lib/udev/scsi_id -g -u /dev/sdX获取。

      2)alias:设备别名。

      3)path_grouping_policy

      4)path_selector

      5)prio

      6)prio_args

      7)failback

      8)rr_weight

      9)flush_on_last_del

      10)no_path_retry

      11)rr_min_io

      12)rr_min_io_q

      13)features

      14)reservation_key

      15)deferred_remove

      16)delay_watch_checks

      17)delay_wait_checks

    3、devices配置,devices节中每个device子节用于描述一个设备,其主要属性如下:

      1)vendor:生产商(必选)。

      2)product:产品型号。

      3)revision:版本号。

      4)product_blacklist:产品型号黑名单。

      5)alias_prefix:设备名称前缀,默认为mapth。

      6)hardware_handler:硬件相关操作的型号,主要有:

      "emc":Hardware handler for EMC storage arrays.

      "rdac":Hardware handler for LSI/Engenio/NetApp E-Series RDAC storage controller.

      "hp_sw":Hardware handler for Compaq/HP storage arrays in active/standby mode.

      "alua":Hardware handler for SCSI-3 ALUA compatible arrays.

    4、blacklist配置,blacklist内的设备将会被多路径忽略,有三种格式:

      1)wwid后跟设备的WWID;

      2)devnode后跟设备名称的正则表达式;

      3)device设备描述,为一个子节(Subsection),其需包含vendor、product,详细可参考devices节的描述。

      blacklist_exceptions语法与blacklist相同,表示取消对blacklist中设备的忽略。

  • 相关阅读:
    SQL游标的小知识
    SQL游标的小知识
    SQL游标的小知识
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    为什么程序员发现不了自己的BUG
    ACM1998
    Leetcode 946. Validate Stack Sequences 验证栈序列
  • 原文地址:https://www.cnblogs.com/azyb/p/10809490.html
Copyright © 2011-2022 走看看