1、多路径的主要功能
多路径一般配合存储设备实现如下功能:
-
故障的切换和恢复
-
IO流量的负载均衡
-
磁盘的虚拟化
2、查看系统自带的多路径软件是否安装
[root@cluster01 ~]# rpm -qa |grep device-mapper
device-mapper-event-libs-1.02.79-8.el6.x86_64
device-mapper-event-1.02.79-8.el6.x86_64
device-mapper-persistent-data-0.2.8-2.el6.x86_64
device-mapper-libs-1.02.79-8.el6.x86_64
device-mapper-multipath-0.4.9-72.el6.x86_64
device-mapper-1.02.79-8.el6.x86_64
device-mapper-multipath-libs-0.4.9-72.el6.x86_64
查看服务状态:
[root@cluster01 ~]# chkconfig --list |grep mul
multipathd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@cluster01 ~]# chkconfig multipathd on
[root@cluster01 ~]# chkconfig --list |grep mul
multipathd 0:off 1:off 2:on 3:on 4:on 5:on 6:off
将服务设置为开机启动,
3、生成配置文件
[root@cluster01 device-mapper-multipath-0.4.9]# pwd
/usr/share/doc/device-mapper-multipath-0.4.9
[root@cluster01 device-mapper-multipath-0.4.9]# ls
AUTHOR COPYING FAQ multipath.conf multipath.conf.annotated multipath.conf.defaults multipath.conf.synthetic
[root@cluster01 device-mapper-multipath-0.4.9]# cp multipath.conf /etc/multipath/
4、检查多路径模块是否成功加载
#lsmod |grep dm_multipath
如果没有输出说明没有安装多路径软件包。那么通过yum功能安装一下软件包:
yum –y install device-mapper device-mapper-multipath
接着通过命令:multipath –ll 查看多路径状态查看模块是否加载成功
[root@liujing ~]# multipath –ll 查看多路径状态
Mar 10 19:18:28 | /etc/multipath.conf does not exist, blacklisting all devices
Mar 10 19:18:28 | A sample multipath.conf file is located at
Mar 10 19:18:28 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Mar 10 19:18:28 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
Mar 10 19:18:28 | DM multipath kernel driver not loaded
----DM模块没有加载
如果模块没有加载成功请使用下列命初始化DM,或重启系统
---Use the following commands to initialize and start DM for the first time:
# modprobe dm-multipath
# modprobe dm-round-robin
# service multipathd start
# multipath –v2
初始化完了之后再通过multipath -ll命令查看是否加载成功
[root@liujing ~]# multipath -ll
Mar 10 19:21:14 | /etc/multipath.conf does not exist, blacklisting all devices.
Mar 10 19:21:14 | A sample multipath.conf file is located at
Mar 10 19:21:14 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Mar 10 19:21:14 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
DM multipath kernel driver not loaded
----这个提示没了说明DM模块已加载成功。
multipath基本操作命令
# multipath -F #删除现有路径
# multipath -v2 #格式化路径
# multipath -ll #查看多路径
5、设置DM-Multipath
通过vi命令创建一个Multipath的配置文件路径是/etc/multipath.conf ,在配置文件中添加multipath正常工作的最简配置如下:
vi /etc/multipath.conf
blacklist {
devnode "^sda"
}
defaults {
user_friendly_names yes
path_grouping_policy multibus
failback immediate
no_path_retry fail
}
编辑完成后保存配置,重启服务:
# /etc/init.d/multipathd restart
参数解释:
(1)
blacklist {
devnode "^sda"
}
表示将本地设备加入黑名单【以下摘自官方文档】:
为防止设备映射器将本地磁盘 /dev/sda 与其多路径对应,请编辑 /etc/multipath.conf 文件的blacklist 部分,使其包括该设备。
虽然您可以使用 devnode 类型将 sda 设备列入黑名单,但那并不安全,因为重启时无法保证 /dev/sda 是同一个名称。
要将单独的设备列入黑名单,您可以使用那个设备的 WWID 将其列入黑名单。
请注意:在 multipath -v2 命令的输出中,/dev/sda 设备的 WWID 是 SIBM-ESXSST 336732LC____F3ET 0EP0Q000072428BX1。
要将这个设备列入黑名单,请在/etc/m ultipath.conf 文件中添加以下内容:
blacklist {
wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1
}
# service multipathd reload 使配置生效
我们在这里使用的是sda,没有使用sda的WWID。
什么是WWID,什么是UUID?
根据SCSI标准,每个SCSI磁盘都有一个WWID,类似于网卡的MAC地址,要求是独一无二。
通过WWID标示SCSI磁盘就可以保证磁盘路径永久不变,Linux系统上/dev/disk/by-id目录包含每个SCSI磁盘WWID访问路径。
查看磁盘设备wwid方法:
[root@cluster01 ~]# ll /dev/disk/by-id/
UUID是有文件系统在创建时候生成的,用来标记文件系统,类似WWID一样也是独一无二的。
因此使用UUID来标示SCSI磁盘,也能保证路径是永久不变的。Linux上/dev/disk/by-uuid可以看到每个已经创建文件系统的磁盘设备以及与/dev/sd*之间的映射关系。
查看文件系统uuid:
[root@rcluster01 ~]# ll /dev/disk/by-uuid/
(2)user_friendly_names yes
如果将其设为 yes,即指定该系统应该使用文件 /etc/multipath/bindings 为该多路径分配一个持久且唯一的别名,
格式为 mpathn。如果设定为 no,即指定该系统应使用 WWID 作为该多路径的别名。在这两种情况下,
您在这里指定的数值将被您在配置文件 multipaths 部分指定的具体设备别名覆盖。默认值为 no。
(3)path_grouping_policy multibus
-
指定用于未指定路径的默认路径分组策略,可能的值包括:
-
failover:每个优先组群有一个路径。
-
multibus:所有有效路径在一个优先组群中。
-
group_by_serial:每个检测到的系列号有一个优先组群。
-
group_by_prio:每个优先组群有一个路径优先值。优先权根据指定为 global、per-controller 或者 per-multipath 选项的调用程序决定。
-
group_by_node_name:每个目标节点名有一个优先组。目标节点名保存在 /sys/class/fc_transport/target*/node_name 文件中。
-
默认值为 failover。
(4)failback immediate
-
管理路径组群出错切换。
-
immediate 值指定立即恢复到包含活跃路径的*别路径组群。
-
manual 值指定不需要立即恢复,只有在操作者干预的情况下会发生恢复。
-
followover 值指定当路径组的第一个路径成为活跃路径时应执行自动恢复。这可让节点在另一个节点请求故障修复时不会自动恢复。
-
大于 0 的数字值指定推迟出错切换,以秒表示。
-
默认值为 manual。
(5)no_path_retry fail
-
这个属性的数字值指定系统在禁用队列前应该试图使用失败的路径的次数。
-
fail 值说明立即失败,无需排队。
-
queue 表示固定路径前排队不会停止。
-
默认值为 0。
6、通过命令查看
[root@liujing mapper]# multipath -ll
mpatha (360a9800064665072443469563477396c) dm-0 NETAPP,LUN
size=3.5G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=4 status=active
|- 1:0:0:0 sdb 8:16 active ready running ----多路径下的两个盘符sdb和sde.
`- 2:0:0:0 sde 8:64 active ready running
目录/dev/mapper/ 下多了两个文件夹mpatha 和mpathap1。
[root@liujing mapper]# cd /dev/mapper/
[root@liujing mapper]# ls
control mpatha
同时fdisk –l的命令下也多了两个设备标识:
[root@liujing~]# fdisk -l
Disk /dev/sda: 146.8 GB, 146815733760 bytes
Disk /dev/sdb: 3774 MB, 3774873600 bytes
Disk /dev/sde: 3774 MB, 3774873600 bytes
两个网卡获取到同一盘符:
/dev/sde和/dev/sdb.
7. multipath磁盘的基本操作
要对多路径软件生成的磁盘进行操作直接操作/dev/mapper/目录下的磁盘就行.
在对多路径软件生成的磁盘进行分区之前最好运行一下pvcreate命令:
# pvcreate /dev/mapper/mpatha
# fdisk /dev/mapper/mpatha 分区时用这个目录/dev/mapper/mpatha
用fdisk对多路径软件生成的磁盘进行分区保存时会有一个报错,此报错不用理会.
# ls -l /dev/mapper/
[root@liujing mnt]# ls -l /dev/mapper/
total 0
crw-rw----. 1 root root 10, 58 Mar 10 19:10 control
lrwxrwxrwx. 1 root root 7 Mar 10 20:28 mpatha -> ../dm-0
lrwxrwxrwx. 1 root root 7 Mar 10 20:33 mpathap1 -> ../dm-1
mpathap1就是我们对multipath磁盘进行的分区
# mkfs.ext4 /dev/mapper/mpathap1 #对mpath1p1分区格式化成ext4文件系统
# mount /dev/mapper/mpathap1 /mnt/ #挂载mpathap1分区 ,或者将挂载写入/etc/fstab文件,开机挂载
格式化和挂载时用/dev/mapper/mpathap1
参考文章: