前言
很多存储厂商都有自己的多路径软件,像EMC的powerpath、华为有UltraPath,不过考虑到通用性和兼容性可能还是系统自带的multipath使用的是最多的。multipath除了兼容性比较好,配置也比较简单。
multipath.conf的配置分为:
- defaults、blacklist、blacklist_exceptions、devices、multipaths几部分。
- defaults一般做全局性的配置,比如轮询策略、使用名称、权重策略等;
- blacklist一般做屏蔽的设备列表(不在多路径的输出中显示);
- blacklist_exceptions用于配置屏蔽例外的,一般也不做配置;
- devices项是针对不对品牌和型号的设备进行的调优配置,需要注意blacklist项里有也device配置,不过是针对屏蔽策略的;
- multipaths是最关键部分,一般只配置别名、wwid。
安装
操作系统采用CentOS 7.6,多路径软件已经预装到操作系统。如系统未预装多路径,可参考下图安装yum install device-mapper-multipath
配置
在/etc目录下生成配置文件
/usr/sbin/mpathconf --enable
查看内核添加情况
lsmod | grep multipath
查看Lun的uid和本地磁盘的uid,sda是服务器本地磁盘,其他均为服务器从SAN交换机识别的到Lun
修改multipath配置文件vim /etc/multipath.conf
解释
blacklist { #黑名单配置
# black local disk
wwid 3600508b1001c27907eca5c5df3253752 #排除不参与多路径的磁盘
wwid 3600508b1001caad1587d7d457eaf7045
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^cciss"
}
multipaths {
multipath {
wwid 36001405a9666f29ccff4826813817c21 #通过scsi_id获得
alias data_disk #磁盘别名
path_grouping_policy multibus
path_selector "round-robin 0" #负载均衡模式
failback manual
rr_weight priorities
no_path_retry 5
}
}
device {
vendor "HP" #厂商名称,可通过multipath –v3获取到
product "HSV300" #产品型号
path_grouping_policy multibus #默认的路径组策略
path_checker readsector0 #决定路径状态的方法
path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法
hardware_handler "0"
failback "immediate"
rr_weight "uniform"
no_path_retry "queue"
负载均衡配置
在默认配置中不匹配的型号,都使用的是主备模式,像一些国外比较知名的存储可以在defults配置中找到其默认是有策略的,所以可能查看到的是多主负载均衡模式。多路径负载均衡算法path_selector 有如下这些:
- round-robin 0 #轮询
- queue-length 0 #最少连接
- service-time 0 #根据未完成的IO数量选择下一组IO的路径
启动多路径服务
systemctl start multipathd
systemctl enable multipathd
systemctl status multipathd
检查
查看服务器下的磁盘,multipath -ll
查看磁盘映射信息 ll /dev/mapper/
简化配置
defaults {
polling_interval 10
user_friendly_names no
}
blacklist {
# black local disk
wwid 3600508b1001c27907eca5c5df3253752
wwid 3600508b1001caad1587d7d457eaf7045
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"
devnode "^cciss"
}
multipaths {
multipath {
wwid 360060e80059559000000955900000400
alias mpatha
}
multipath {
wwid 360060e80059559000000955900000401
alias mpathb
}
}
文档更新时间: 2021-07-10 00:08 作者:李延召