认识SLUA和ALUA

先了解一个存储端多路径优化的选项--SLUA和ALUA.如图

Macro SAN存储-多路径配置_ALUA和SLUA区别

  解释汇总如下:

ALUA多路径技术

Asymmetric Logical Unit Access,非对称逻辑单元存取,其提供了一个路径发现和确定优先次序的标准化机制,实现主机和存储设备的路径自协商和动态管理。

特点:对于特定的LUN来说,在它的路径中,一个控制器的目标端口处于主动/优化状态,另一个控制器的目标端口处于主动/非优状态。在某一个时刻,某个LUN只是属于某一个控制器,要想实现两边的负载均衡,就是将任务A扔给控制器A,将任务B扔给控制器B,对于同一个任务来说,任何时候只有一个控制器在控制。

SLUA多路径技术

SymmetricLogical Unit Access,对称逻辑单元存取,是多路径的基本特性。

特点:对于特定的LUN来说,在它的路劲中,两个存储控制器的目标端口均处于主动/优化状态。两个控制器之间实现高速互联的通讯,一个IO发到控制器端,两个控制器可同时参与处理;当一个控制器繁忙,系统不需要主机端的负载均衡软件参与就可以自动实现负载均衡。

使用multipath,在系统中配置多路径

操作步骤

准备内容

  1.确定lun是ALUA还是ALUA类型

  2.确定多路径软件使用multipath还是厂家自带软件

  3.确定新划分的lunID信息

Macro SAN存储-多路径配置_multipath.conf_02

第一步:热加载,发现新加入的lun

  参考https://blog.51cto.com/chier11/2611454 确定哪个是新加入的磁盘,通过存储端的LUN-id识别.

#热扫描磁盘
for i in $(ls /sys/class/scsi_host/); 
do 
echo '- - -' > /sys/class/scsi_host/$i/scan;
done
第二步:安装multipath和生成multipath.conf文件
#yum安装multipath
yum install -y device-mapper-multipath
#生成multipath.conf文件,并加载dm_multipath模块到内核
/sbin/mpathconf --enable
第三步:启动服务,查看wwid(磁盘id)
systemctl enable multipathd.service
systemctl start multipathd.service
multipath -ll
cat /etc/multipath/bindings  #是否一致
cat /etc/multipath/wwids  #是否一致
ls -l /dev/disk/by-id   #查看所有磁盘的

Macro SAN存储-多路径配置_ALUA和SLUA区别_03

以下是默认multipath.conf文件,启动multipath服务的显示.得出新加的LUN-id信息.这个id在配置文件中需要.

Macro SAN存储-多路径配置_ALUA和SLUA区别_04

   使用ls -l /dev/disk/by-id   #查看所有磁盘的WWID, 如下图-- sda1-sda2-sda3是sda磁盘的三个分区,sdg是新加的lun.

Macro SAN存储-多路径配置_宏杉多路径配置_05

    以上通过multipath服务的bindings文件和wwid文件,与multipath服务的multipath -ll命令,以及/dev/disk/by-id查看结果等得出本地盘和存储lun的ID信息.如下

#三个显示  得出结论:
3600b34288e011f166bc989054d000037  #宏杉LUN
3600508b1001c82d39e292d1e0f166186  ##本地盘
第四步:获取黑名单和配置文件 multipath.conf
#修改默认配置文件
echo > /etc/multipath.conf  #清空默认配置文件
vi /etc/multipath.conf

宏杉的多路径配置文件-multipath.conf

blacklist {
        wwid    3600508b1001c82d39e292d1e0f166186 ##本地盘
}

defaults {
        user_friendly_names       yes
        polling_interval            10
        queue_without_daemon        no
        flush_on_last_del          yes
        checker_timeout            120
}

devices {
        device {
                vendor                 "MacroSAN"
                product                "LU"
                path_grouping_policy    "group_by_prio"
                no_path_retry           30
                prio                    "alua"
                path_checker            tur
                path_selector           "service-time 0"
                hardware_handler        "0"
                failback                15
                fast_io_fail_tmo 0
        }
}

multipaths {
        multipath {
           wwid     3600b34288e011f166bc989054d000037  #宏杉
           alias    mpatha
        }
}

Macro SAN存储-多路径配置_multipath.conf_06

第五步:重启服务,查看磁盘大小
#通过multipath命令查看
multipath -ll

以下是配置完的多路径显示,是最终--正常的多路径.

Macro SAN存储-多路径配置_ALUA和SLUA区别_07

 


常见的默认多路径配置

与上面区别在于,不用在配置文件multipath.conf中指定磁盘id和单独的优化参数,  完全配置全局模式的优化参数,磁盘id全部自动识别无需添加磁盘id信息.

###安装多路径
yum install  -y device-mapper-multipath
modprobe dm-multipath
modprobe dm-round-robin
##新建文件
cat >> /etc/multipath.conf << EOF
blacklist {
			devnode					 "^sda"  ##存在一定的风险,可能出现路径不完整.慎用
      devnode          "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"  
      devnode          "^hd[a-z]" 
}
defaults {
		user_friendly_names 		yes
		path_grouping_policy 		multibus
		failback 								immediate
		no_path_retry 					fail
}

EOF

##启动服务
service multipathd start
chkconfig multipathd on
systemctl enable  multipathd

关于黑名单-blacklist中盘符别名的写法,参考如下:

devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z]"

假如只写devnode   "^sda" 将会出现多路径不完整,比如因该出现的路径数为偶数,结果出现单数.因此"偷懒"会出现其他问题.

Macro SAN存储-多路径配置_宏杉多路径配置_08

下图是黑名单中排除了"sda和adb开头的盘符",因此多路径中出现sda或sdab,sdac等将不会显示,就出现了单条路径.

Macro SAN存储-多路径配置_宏杉多路径配置_09