1.配置文件结构及位置
multipath配置文件/etc/multipath.conf由节(section),子节(sub-section),属性(atribute)和属性值(value)等组成,其结构具体如下所示:
<section> {
    <attribute> <value>
    ...
    <subsection> {
    <attribute> <value>
    ...
    }
}
配置文件的模板默认位于/usr/share/doc/device-mapper-multipath-X.Y.Z/multipath.conf(X,Y,Z为multipath的实际版本号),配置multipath配置文件时,可以将该文件复制于/etc/multipath.conf,
然后,在进行定制配置。

其中,可用的节关键字如下:
1)defaults:全局属性的默认设置。
2)blacklist:黑名单,multipath会忽略黑名单中的设备。
3)blacklist_exceptions:免除黑名单,加入黑名单内,但包含在这里的设备不会被忽略。
4)multipaths:多路径相关配置。
5)devices:存储设备相关配置。

2.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。

3.blacklist配置
blacklist内的设备将会被多路径忽略,有三种格式:
1)wwid后跟设备的WWID;
2)devnode后跟设备名称的正则表达式;
3)device设备描述,为一个子节(Subsection),其需包含vendor、product,详细可参考devices节的描述。
blacklist_exceptions语法与blacklist相同,表示取消对blacklist中设备的忽略。

4.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

5.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.
7)path_grouping_policy    下面的与defaults节说明相同。
8)uid_attribute    
9)path_selector    
10)path_checker    
11)prio    
12)prio_args    
13)features    
14)failback    
15)rr_weight    
16)no_path_retry    
17)rr_min_io    
18)rr_min_io_rq    
19)fast_io_fail_tmo    
20)dev_loss_tmo    
21)flush_on_last_del    
22)retain_attached_hw_handler    
23)detect_prio    
24)deferred_remove    
25)delay_watch_checks    
16)delay_wait_checks

multipath配置详细参考的更多相关文章

  1. 原生JS:Object对象详细参考

    Object对象详细参考 本文参考MDN做的详细整理,方便大家参考MDN JavaScript原生提供一个Object对象(注意起首的O是大写),所有其他对象都继承自这个对象. 构造函数: Objec ...

  2. Redis主从配置详细过程

    Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构.下面楼主简单的进行一下配置. 1.上面安装 ...

  3. STM32F0xx_PWR低功耗配置详细过程

    Ⅰ.概述 今天总结PWR部分知识,请看“STM32F0x128参考手册V8”第六章.提供的软件工程是关于电源管理中的停机模式,工程比较常见,但也是比较简单的一个实例,根据项目的不同还需要适当修改或者添 ...

  4. STM32F0xx_EXIT中断配置详细过程

    Ⅰ.概述 EXIT外部中断在使用到按键或者开关控制等应用中比较常见,低功耗中断唤醒也是很常见的一种.因此,EXIT在实际项目开发中也是比较常见的一种. STM32F0中外部中断EXIT属于中断和事件的 ...

  5. STM32F0xx_看门狗(独立+窗口)配置详细过程

    Ⅰ.概述 对于看门狗,我觉得做单片机或者嵌入式开发的人员来说并不陌生,今天总结STM32F0看门狗的功能,F0的看门狗有两种:独立和窗口看门狗. 今天提供两种看门狗的软件工程实例,供大家下载. 两种看 ...

  6. STM32F0xx_FLASH编程(片内)配置详细过程

    Ⅰ.概述 关于数据的储存,我觉得编程的人基本上都会使用到,只是看你储存在哪里.STM32的芯片内部FLASH都是可以进行编程的,也就是说可以拿来储存数据.但是,很多做一些小应用程序开发的人都没有利用好 ...

  7. STM32F0xx_RTC实时时钟配置详细过程

    Ⅰ.概述 今天总结RTC(Real Time Clock)实时时钟相关的知识,顺带将BKP简单总结一下. STM32的RTC模块和时钟配置系统(RCC_BDCR寄存器)处于后备区域,即在系统复位或从待 ...

  8. STM32F0xx_SPI读写(Flash)配置详细过程

    Ⅰ.概述 关于SPI(Serial Peripheral Interface)串行外设接口可以说是单片机或者嵌入式软件开发人员必须掌握的一项通信方式,就是你在面试相关工作的时候都可能会问及这个问题.在 ...

  9. STM32F0xx_TIM输出PWM配置详细过程

    前言 前面我说过STM32的定时器功能很强大,今天就来总结一下它的另外一个“强大”功能:TIM的比较输出功能,输出可调PWM波形.直接调用函数接口“TIM2_CH1_PWM(uint32_t Freq ...

随机推荐

  1. js map()与forEach()的用法与区别

    forEach 和map 都是用来遍历数组,二者的区别为: forEach() 会修改原来的数组,而map() 方法会得到一个新的数组并返回,不会修改原来的数组 二者的执行速度方面,经过jsPerf( ...

  2. 使用JavaScript实现在页面上所有内容加载完之前一直显示loading...页面

    Html <body class="is-loading"> <div class="curtain"> <div class=& ...

  3. Django进阶之中间件

    中间件简介 django 中的中间件(middleware),在django中,中间件其实就是一个类,在请求到来和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法. 在djang ...

  4. VC++运行库 集32位/64位整合版

    运行程序时,win7/win10(x86和x64)常会遇到缺少什么缺少msvc***.dll问题 安装下面链接提供的程序,安装后,便可解决. [2016-10-10]Microsoft Visual ...

  5. laravel框架基础(2)---laravel项目加载机制

    当我们,通过浏览器请求laravel的时候 laravel就会根据我们的请求链接来选择对应的方法执行并返回我们所需要的实际结果. 那么这个过程是怎样的呢? 1.生命周期 2018-12-28 17:0 ...

  6. 深入探讨java类加载器

    概览 类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一.它使得 Java 类可以被动态加载到 Java 虚拟机中并执行.类加载器从 JDK 1.0 就出现了,最初是为了满足 ...

  7. 解决CUDA driver version is insufficient for CUDA runtime version

    问题 在服务器上安装mxne的GPU版本 sudo pip install mxnet-cu80==1.2.1 然后在gpu上创建数据 import mxnet as mx mx.nd.array([ ...

  8. 虚拟机centos7配置本地yum源

    在虚拟机中要使用yum命令,就要先配置一下yum源,下面就分享一下这个过程: 1. 挂载iso到vmware,首先得确保CD/DVD连接到镜像.可以这样操作 2. 执行下面的命令 # mkdir /m ...

  9. js生成的cookie在yii2中获取不到的解决办法

    在js中创建的cookie,默认用yii2中自带的方法Yii::$app->request->cookies->get('abc')获取不到,而用$_COOKIE['abc']又是能 ...

  10. bool的值分别为0,1;那哪个代表true哪个代表false?

    0为false,1为true. bool表示布尔型变量,也就是逻辑型变量的定义符,以英国数学家.布尔代数的奠基人乔治·布尔(George Boole)命名. 布尔型变量bool的取值只有false和t ...