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。
博观而约取 厚积而薄发