DM存储文档

 Multipath I/O (多路径)

       在计算机存储技术里,多路径提供了容错和性能提高,在计算机系统里CPU有多条物理路径通道,块存储设备通过总线,控制器,交换设备以及桥接设备来连接。
 
       多路径一般用在有光纤组成的SAN(Storage Area Network)环境及iscsi组成的IPSAN环境。这种环境下主机和存储通过交换机或多块网卡及ip来连接,是多对多的关系,主机到存储之间的I/O有多条路径可以选择。
多路径软件旨在解决以下问题:1.故障的切换和恢复 2.I/O流量的负载均衡3.磁盘的虚拟化
        由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。比如EMC公司基于linux下的多路径软件,就需要单独的购买license。好在, RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。
 
一些多路径软件可以利用冗余的路径提高性能,例如:
 
Dynamic load balancing 动态负载均衡
Traffic shaping 流量控制
Automatic path management 自动路径管理
Dynamic reconfiguration 动态设置
Multipath I/O software implementations 多路径软件工具
 
现在举一例子,同一台计算机里1块SCSI磁盘连接2个SCSI控制器(initiator)或者磁盘连接到两个FC(光纤)端口。如果其中1个控制器,端口或交换设备故障,那操作系统就会自动切换I/O路径到冗余的控制器为应用程序使用,但这样可能会增加延迟。
 
系统环境:RHEL6.0
主机规划:
 
主机 网卡 软件
desktop52

 eth0:192.168.0.52

 eth1:192.168.0.98

iscsi-target-utils
desktop97    eth0:192.168.0.97 
device-mapper
devide-mapper-multipath
iscsi-initiator-utils
 
 
 
一、先给虚拟机desktop52添加一块网卡
1.关闭虚拟机,在图形界面添加完成后开启虚拟机
2.cat /etc/udev/rules.d/70-persistent-net.rules
查看添加网卡的信息(网卡名、mac地址)

3.编辑新网卡的配置文件
cd /etc/sysconfig/network-scripts/
cp -p ifcfg-eth0 ifcfg-eth1
vim ifcfg-eth1   #按查看出的信息编辑新网卡的配置文件
ifup eth1  #启动新网卡
ifconfig

二、添加新虚拟硬盘并分区
具体过程不再赘述,我这里的新分区是/dev/vdb1
 
三、创建要输出的设备(target)#三、四两步为iscsi配置
yum install scsi*
vim /etc/tgt/targets.conf    #直接编辑配置文件
<target iqn.2012-08.xiyou:target1>
        backing-store /dev/vdb1
        initiator-address 192.168.0.97
</target>
或者终端下输入一下命令
tgtadm --lld iscsi --op new --mode target --tid=1 --targetname=iqn.2012-08.xiyou.target1
tgtadm --lld iscsi --op new --mode logicalunit --tid=1 --lun=1 --backing-store=/dev/vdb1
tgtadm --lld iscsi --op bind --mode target --tid=1 --initiator-address=192.168.0.97

四、(以下操作在客户端desktop97)配置两个iscsi控制器
yum install iscsi-initiator-utils iscsi-initiator-utils-devel -y
iscsiadm -m discovery -t -st -p 192.168.0.52  #检测存储端输出的target
iscsiadm -m node -p 192.168.0.52 -l #登录到target,即配置第一个控制器
iscsiadm -m discovery -t -st -p 192.168.0.98
iscsiadm -m node -p 192.168.0.52 -l #登录到target,即配置第二个控制器

fdisk -l #查看系统磁盘情况,会发现多出sda和sdb,实质上他们是同一块设备

 
五、DM配置
yum install device-mapper device-mapper-multipath -y
vim /etc/multipath.conf
blacklist {
        devnode "vda"  #禁止使用/dev/vda 设备,若是物理机为sda,根据实际情况
}
defaults {
        user_friendly_names     yes
        udev_dir                /dev
        path_grouping_policy    failover   #failover为主备模式;
                                           multibus为负载均衡模式
        failback                immediate  #有故障马上切换
        no_path_retry           fail
}
 
#multipath.conf 的配置参数、默认值,可参考:
#/usr/share/doc/device-mapper-multipath-0.4.7/multipath.conf.annotated
servece multipathd start
ll /dev/mapper/matha 是multipath虚拟出来的多路径设备,我们应该使用这个

multipath -ll

注:可以看到sda和sdb两条链路复合成一条链路mpatha,此为Failover(主备)情况,当你对mpatha设备读写时,处于active状态的sda链路有数据流,而处于enabled状态的sdb链路无数据流;当sda链路出现问题时,才会切换到sdb链路上
 
 
六、测试
用dd切割数据放到磁盘中,然后用iostat观察各通道的流量和状态,以判断主备或负载均衡方式是否正常
 
1 .主备模式测试
dd if=/dev/zero of=/dev/mapper/mpatha
iostat -k   #使用此命令需要安装此包 yum install sysstat

ifdown eth0 将主网卡(链路)关闭

再等待一会儿从监控终端会发现,存储会切换到sdb,由于sda和sdb对应的设备相同,所以冗余的设备开始起作用

看下图sdb的状态变为active,sda变为enabled

重新打开eth0端口,又会恢复到原来的状态,看一下两图

2.负载均衡测试

更改配置文件,然后重启multipathd

 

查看监控终端,发现sda和sdb每隔几秒就会交换存储,同一时刻只有一个尽心存储

 

 

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