前言

很多存储厂商都有自己的多路径软件,像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   作者:李延召