DM多路径存储

什么是 multipath?
普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN 环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO 由多条路径可以选择。既 然,每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O 流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来 看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。多路径的主要功能就是和存储设备一起配合实现如下功能:1) 故障的切换和恢复  2) IO 流量的负载均衡  3.) 磁盘的虚拟化
 

主机1:两个网卡 192.168.0106 192.168.0107
主机2:192.168.0.104

在主机1添加双网卡
并且添加分区/dev/vdc1通过iscsi共享出去
yum install scsi-target-utils

vi /etc/tgt/targets.conf
   # Sample target with one LUN only. Defaults to allow access for all      initiators:
   <target iqn.2012-05.com.example:server.target1>
       backing-store /dev/vdc1
       initiator-address 192.168.0.104  只允许104
   </target>

/etc/init.d/tgt restart
tgtadm --lld iscsi --mode target --op show

主机2
iscsiadm -m discovery -t st -p 192.168.0.106
iscsiadm -m node -T iqn.2010-09.com.example:rdisks.demo -p 192.168.0.106 -l
在rhel6,可能失败,尝试用 iscsiadm -m node -l
iscsiadm -m discovery -t st -p 192.168.0.107
iscsiadm -m node -l
fdisk -l
看到/dev/sda和/dev/sdb,两个大小一样,即都是/dev/vdc1,只不过通过不同路径得到,前者通过106,后者通过107

yum install iscsi-initiator-utils device-mapper device-mapper-multipath -y

配置
vi /etc/multipath.conf
blacklist {
    devnode "sda"   #所要禁止使用的,本地磁盘
}
defaults {
    user_friendly_names    yes
    udev_dir        /dev
    path_grouping_policy    failover  #failover为主备模式
                                                         #multibus为负载均衡模式
    failback        immedia     
    no_path_retry        fail
}

/etc/init.d/multipathd start

启动成功后,我们会在dev 目录下看到下面的目录:
/dev/mapper/mpatha 是multipath 虚拟出来的多路径设备,我们应该使用这个设.
/dev/mpath/mpathn 是udev设备管理器创建的,实际上就是指向下面的dm-n 设备,仅为方便,不能用来挂载.
/dev/dm-n是软件内部自身使用的,不能被软件以外使用,不可挂载.

multipath -l
若是multibus模式
mpatha (1IET     00010001) dm-8 IET,VIRTUAL-DISK
size=800M features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=-1 status=active
  |- 5:0:0:1 sdb 8:16 active undef running
  `- 6:0:0:1 sdc 8:32 active undef running

若是failover模式
mpatha (1IET     00010001) dm-8 IET,VIRTUAL-DISK
size=800M features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=-1 status=active
| `- 5:0:0:1 sdb 8:16 active undef running
`-+- policy='round-robin 0' prio=-1 status=enabled
  `- 6:0:0:1 sdc 8:32 active undef running

测试:
使用iostat观察各通道流量和状态
dd if=/dev/zero of=/dev/mapper/mpatha
iostat -k 2   #每两秒刷新
若是multibusr(负载均衡)模式,/sda /sdb都有数据流,若是failove(主备)模式,仅/sda有数据流,当/sda挂掉,/sdb才有数据流

本文出自 “Just” 博客,谢绝转载!

你可能感兴趣的:(dm,多路经存储)