Multipath配置文件详解

1 功能
Multipath简称为多路径访问,主要功能就是和存储设备一起配合实现三大功能:
1. 故障的切换和恢复
2. IO流量的负载均衡
3. 磁盘的虚拟化
vim /etc/multipath.conf
2 组成
defaults
  定义devices-mapper-multipath的默认设置,能被devices和multipaths部分的设置覆盖
blacklist
  需要从multipath的发现中排除的设备
blacklist_exceptions
  需要包括的设备,优先级大于blacklist
devices
  定义对存储控制器的设置
multipaths
  定义对multipath设备的设置
优先级:multipaths > devices > defaults
3 参数详解
 1 defaults{
 2   user_friendly_names    yes    //若设置yes,则使用/etc/multipath/bindings中的对应绑定来命名合并路径,以mpath<n>的形式;若设置no(默认),则使用WWID来命名
 3   checker_timeout        20    //scsi命令路径检查超时时间,默认从/sys/block/sd<x>/device/timeout取值
 4   polling_interval        10    //两次路径检查的间隔时间,将逐渐增加至(4 * polling_interval),默认为5s
 5   queue_without_daemon    no    //若为no,则multipathd将停止已关闭设备的排队,默认为yes
 6   flush_on_last_del        yes    //若为yes,则multipathd将停止已删除设备最后路径的排队,默认为no
 7 }
 8 blacklist {
 9     devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"    //需排除设备的正则表达式
10     devnode "^(hd|xvd)[a-z][[0-9]*]"
11     devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*"
12     wwid    "ATA"                                //设备的World Wide Identification
13 }
14 devices {
15     device {
16     vendor            "Sugon"    //厂商名称
17     product            "DS800"    //产品型号
18     path_grouping_policy    group_by_prio        //默认的路径组策略
19     getuid_callout        "/sbin/scsi_id --whitelisted --device=/dev/%n"        //获得唯一设备号使用的默认程序,应使用绝对路径,默认为/lib/udev/scsi_id --whitelisted --device=/dev/%n
20     prio            "sugon_alua"        //获取路径priority value的方法
21     path_checker        tur    //决定路径状态的方法,readsector0表示Read the first sector of the device,tur表示Issue a TEST UNIT READY command to the device
22     path_selector        "round-robin 0"    //选择哪条路径进行下一个IO操作的方法,由multipath target内核提供,round-robin 0表示Loop through every path in the path group, sending the same amount of IO to each
23     hardware_handler    "1 alua"    //用于此存储的硬件处理程序,1 alua表示SCSI-3 ALUA arrays
24     failback        immediate    //故障恢复的模式,immediate表示立即恢复到最高优先级组中的active路径;manual表示不执行自动恢复,默认为manual
25     rr_weight        uniform        
26     rr_min_io_rq        100        //在当前的路径组中,切换到另外一条路径之前的IO请求数目(系统内核高于2.6.31时使用,默认值为1;低于2.6.31时使用rr_min_io,默认值为1000)
27     no_path_retry        queue    //在disable queue之前系统尝试使用失效路径的次数,queue表示never stop queueing,默认为0
28     features        "1 queue_if_no_path"    //Queue IO if no path is active,同no_path_retry
29     product_blacklist     "DS800 V-LUN"    //产品黑名单
30     fast_io_fail_tmo     20        //发现问题时停止IO前的等待时间,应小于dev_loss_tmo
31     dev_loss_tmo        86400    //发现问题时移除路径前的等待时间
32     }
33 }
 
multipaths{
multipath{
wwid   22250001551926db  //磁盘的wwid号码需要提前查询  lsscsi -i  最后显示的就是wwid号码,当然还有其他方式可查
alias   mpatha        //将识别到这个wwid的盘,都将同一称为mpatha
 }
multipath{
wwid   22250001551926ab   //如果还有其他的磁盘,按照同样的方式加进来
alias mpathb }
} 

 

主要的参数介绍

参考源网址:https://linux.die.net/man/5/multipath.conf

启动多路径服务生成映射:

加载多路径模块

modprobe dm-multipath
multipath -F
multipath -v0

查看多路径链路

multipath -ll

 

用multipath生成映射后,会在/dev目录下产生多个指向同一条链路的设备引用:
/dev/mapper/mpathn    /dev/mpath/mpathn    /dev/dm-n
它们的来源是完全不同的:
/dev/mapper/mpathn是multipath虚拟出来的多路径设备,我们应该使用这个设备。
/dev/mpath/mpathn是udev设备管理器创建的,实际上就是指向下面的dm-n设备,仅为了方便,不能用来挂载。
/dev/dm-n是软件内部自身使用的,不能被软件以外使用,不可挂载。简单来说,就是我们应该使用/dev/mapper/下的设备符。对该设备即可用fdisk进行分区,或创建为pv。

 

posted on 2020-10-27 10:34  摩尔飞山  阅读(2985)  评论(0编辑  收藏  举报