实验目的:通过设​​​备​​​映​​​射​​​器​​​多​​​路​​​径​​​(DM-Multipath)可​​​让​​​您​​​将​​​服​​​务​​​器​​​节​​​点​​​和​​​存​​​储​​​阵​​​列​​​间​​​的​​​多​​​个​​​ I/O 路​​​径​​​配​​​置​​​为
​​​一​​​个​​​单​​​一​​​设​​​备;来实现线路的冗余,当其中一条线路中断后,不会影响应用
实验环境:ISCSI共享存储,mysql服务器,两个交换机
实验架构:

eth3:20.2.2.2
[ mysql ]                <- x86_64
eth0:10.1.1.195        eth1:172.20.1.195
------------|          |-----------
|                        |
|                                |
[ switch ]                 [ switch ]
|                                   |
|                                |
-----------|            |-----------
[ storage ]
iscsi
eth0: 10.1.1.143         eth1:172.20.1.143

实验步骤 :

【storage】:
eth0:10.1.1.143/24
eth1:172.20.1.143/24
iscsi共享存储配置方法参考iscsi共享存储配置章节
共享的磁盘为/dev/sdb,共享名是share
【mysql】:
mysql编译配置略----->datadir=/database
连接登录共享存储:
iscsiadm  -m discovery -t sendtargets -p 10.1.1.143
iscsiadm  -m discovery -t sendtargets -p 172.20.1.143

iscsiadm  -m node -T  iqn.2011-11.com.cluster.station190:share -p 10.1.1.143
iscsiadm  -m node -T  iqn.2011-11.com.cluster.station190:share -p 172.20.1.143

iscsiadm  -m node -T  iqn.2011-11.com.cluster.station190:share -p 10.1.1.143  -l
iscsiadm  -m node -T  iqn.2011-11.com.cluster.station190:share -p 172.20.1.143 -l
结果会产生两个大小规格都相同的共享磁盘

在myql服务器端配置设备映射多路径:
yum install -y device-mapper* mysql*
cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf  /etc/

vi /etc/multipath.conf配置

rhel5:

rhel5 ->  该段描述为屏蔽所有设备, <- 因此必须全部注释
#blacklist {
#       devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
#       devnode "^hd[a-z]"
#}

defaults {
udev_dir                /dev
polling_interval        10
selector                "round-robin 0"
path_grouping_policy    fialover
getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"
prio_callout            /bin/true
path_checker            readsector0
rr_min_io               100
max_fds                 8192
rr_weight               priorities
failback                immediate
no_path_retry           fail
user_friendly_names     yes
}

rhel6:

defaults {
udev_dir                /dev
polling_interval        10
path_selector           "round-robin 0"
path_grouping_policy    multibus
getuid_callout          "/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/%n"
prio                    const
path_checker            readsector0
rr_min_io               100
max_fds                 8192
rr_weight               priorities
failback                immediate
no_path_retry           fail
user_friendly_names     yes
}

注释:
--whitelisted --replace-whitespace   此参数可以将scsi_id号前面的空格去掉

multipath -v2 -d           ---->检查配置文件/etc/multipath.conf是否有语法错误

启动multipathd服务:
service multipathd start

[root@localhost ~]# ls /dev/mapper/
control  mpathe  mpathf  mpathfp1

格式化
mkfs -t ext3 /dev/mapper/mpathfp1
mount  /dev/mapper/mpathfp1 /database

---------------------------------------------------------------------------------------
测试:
可以切断其中一条线,看mysql服务是否能够正常运行使用