系统环境: rhel6 x86_64 iptables and selinux disabled

主机:

主机

网卡

软件

server21.example.com

eth0:192.168.122.121

eth0:192.168.122.122

scsi-target-utils

Server73.example.com

eth0:192.168.122.173

Iscsi-initiator-utils

device-mapper

device-mapper-multipath

可使用
DM-Multipath
提供:

•冗余

DM-Multipath
可在主动/被动配置中提供出错冗余。在主动/被动配置中,只有一半的路径在每
次 I/O 时都使用。如果
I/O
路径的任意元素(电缆、交换机或者控制器)出现故障,就会将
DM- Multipath
切换到备用路径。

•改进性能

可将
DM-Multipath
配置为主动/主动模式,其中将
I/O
以轮叫调度算法方式分布到所有路径中。
在有些配置中,DM-Multipath
可在 I/O
路径中检测负载并动态重新平衡负载。

带一个RAID设备的主动/主动多路经配置

带一个RAID设备的主动/被动多路经配置

带两个RAID设备的主动/被动多路经配置

DM-Multipath组件

1.安装软件

以下步骤在server21上实施:

[root@server21 ~]# yum install scsi-target-utils.x86_64 -y

以下步骤在server73上实施:

[root@server73
~]# yum install iscsi-initiator-utils.x86_64 -y

[root@server73
~]# yum install device-mapper device-mapper-multipath
sysstat-9.0.4-20.el6.x86_64 -y

2.配置iscsi

以下步骤在server21上实施:

添加一块虚拟硬盘(/dev/vda)

[root@server21
~]# fdisk -cu /dev/vda

划分分区,文件类型为Linux
LVM,便于拉伸.

[root@server21
~]# pvcreate /dev/vda1

[root@server21
~]# vgcreate koenvg /dev/vda1

[root@server21
~]# lvcreate -L 2G -n koenlv koenvg

[root@server21
~]# vim /etc/tgt/targets.conf

<target
iqn.2013-07.com.example:server.target1>

backing-store /dev/mapper/koenvg-koenlv

initiator-address 192.168.122.173

</target>

[root@server21
~]# /etc/init.d/tgtd start

[root@server21
~]# tgtadm --lld iscsi --op show --mode target

出现类似如上结果说明配置成功.

以下步骤在server73上实施:

[root@server73 ~]# iscsiadm -m discovery -t st -p 192.168.122.121

[root@server73 ~]# iscsiadm -m node -T iqn.2013-07.com.example:server.target1 -p 192.168.122.121 -l

[root@server73
~]# iscsiadm -m discovery -t st -p 192.168.122.122

[root@server73
~]# iscsiadm -m node -Tiqn.2013-07.com.example:server.target1 -p
192.168.122.122 -l

执行fdisk
-l
查看若若出两块设备说明成功.

3.配置DM

以下步骤在server73上实施:

配置文件模板:

#/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf

也可以使用:“mpathconf --enable”指令生成主配置文件,并且会自动启用 multipathd.

[root@server73 ~]# vim /etc/multipath.conf

blacklist {

devnode "sda" #禁止使用/dev/sda设备(注:不同机子不同,此设备为除去iscsi登录的设备的其他设备)

}

defaults
{

user_friendly_names yes

udev_dir /dev #生成udev设备节点的目录,默认值为/dev

path_grouping_policy failover #failover为主备模式;
multibus为负载均衡模式

failback immediate #指定立即恢复到包含活跃路径的最高级别路径组群

no_path_retry fail
#这个属性的数字值指定系统在禁用队列前应该试图使用失败的路径的次数,fail值表明立即失败,无需排队

}

当将
user_friendly_names
配置设定为
yes,会将该多路径设备的名称设定为
mpathn.

当在
DM-Multipath
中添加新设备时,这些新设备会位于
/dev 目录的两个不同位置:

/dev/mapper/mpathn
和 /dev/dm-n.

•/dev/mapper
中的设备是在引导过程中生成的.可使用这些设备访问多路径设备,例如在生
成逻辑卷时.

•所有
/dev/dm-n
格式的设备都只能是作为内部使用,请不要使用它.

[root@server73
~]# /etc/init.d/multipathd start

[root@server73
~]# multipath -ll

注:可以看到sdb和sdc两条链路复合成一条链路mpatha,此为Failover(主备)情况,

当你对mpatha设备读写时,处于active状态的sdb链路有数据流,而处于enabled状态的 sdc链路无数据流;当sdb链路出现问题时,才会切换到sdc链路上.

测试:

dd往磁盘读写数据:

[root@server73 ~]# dd if=/dev/zero of=/dev/mapper/mpatha

然后用iostat观察各通道的流量和状态,以判断Failover或负载均衡 方式是否正常:

[root@server73 ~]# iostat -k 2

当断开链路sdb(ifdown eth0),等待片刻,会自动切换到链路sdc,并不会造成写入失败。

手动切换模式:(如果需要永久生效直接修改 multipath.conf,并重新 reload)

[root@server73 ~]# multipath -F # 刷新所有的多路径设备映射

[root@server73 ~]# multipath -p multibus -v0 # 切换成负载均衡模式

[root@server73 ~]# multipath -ll

如果成功你会发现它会根据轮叫方式调度链路 sda sdb,从而实现负载均衡.

当断开链路sdb(ifdown eth0),等待片刻,将只在链路sdc上有数据流,并且不会造成写入失败。

Rhel6-DM多路经存储配置文档的更多相关文章

  1. Rhel6-moosefs分布式存储配置文档

    MFS 特性: 1. Free(GPL) 2. 通用文件系统,不需要修改上层应用就可以使用 3. 可以在线扩容,体系架构可伸缩性极强. 4. 部署简单. 5. 高可用,可设置任意的文件冗余程度(提供比 ...

  2. XML文档操作集锦(C#篇)

    在JSON没流行起来的时候xml一直作为程序存储配置信息的主流介质:特别是小型数据表方面还是不错的选择,所以经常涉及到的操作无非也就是增删改查,这篇博客主要是对这些对比较常用的操作做了个简单的总结 文 ...

  3. 批量导出access某表内容到word文档

    一.需求: 需要将表中每一条记录中的某些内容导出在一个word文档中,并将这些文档保存在指定文件夹目录下 二.界面,简单设计如下: 三.添加office相关引用 添加后可在解决方案资源管理器中看到: ...

  4. Hibernate配置文档详解

    Hibernate配置文档有框架总部署文档hibernate.cfg.xml 和映射类的配置文档 ***.hbm.xml hibernate.cfg.xml(文件位置直接放在src源文件夹即可) (在 ...

  5. Rhel6-mysql_cluster配置文档

    MySQL Cluster 是一种技术,其主要功能是在无共享的相关系统中部署内存中数据库 的 Cluster .在通过无共享体系结构,系统能够使用廉价的硬件,而且对软硬件无特殊要求. 此外,由于每个组 ...

  6. JS魔法堂:精确判断IE的文档模式by特征嗅探

    一.前言 苦逼的前端攻城狮都深受浏览器兼容之苦,再完成每一项功能前都要左顾右盼,生怕浏览器不支持某个API,生怕原生API内含臭虫因此判断浏览器类型和版本号成了不可绕过的一道关卡,而特征嗅探是继浏览器 ...

  7. 用Java对xml文档进行遍历,更新,创建,删除

    import java.io.File;import java.io.FileInputStream; import javax.imageio.stream.FileImageInputStream ...

  8. oracle database 12c R1 安装文档

    INSTALLORACLE DATABASE 12C 完整的安装文档下载地址: http://download.csdn.net/detail/royjj/5665869 OS:ORALCE LINU ...

  9. nginx-tomcat-memcached架构文档说明(转)

    800x600 Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 st1\:*{be ...

随机推荐

  1. Linq To Sqlite 一一二二

    说在前头 之所以写下这些文字,主要是因为使用LINQ的同志们都觉它的美好(至于有多美好,各位心里知道,我就不在描述了,如果你是你还不了解LINQ,园子里有大把的文章),微软老哥只提供了自家的SQLSe ...

  2. bitcask

    Bitcask模型是一种日志型kv模型.所谓日志型,是指它不直接支持随机写入,而是像日志一样支持追加操作.Bitcask模型将随机写入转化为顺序写入. 任意时刻,系统中只有一个数据文件支持写入,称为a ...

  3. win api 实现 AES加密、解密

    WCHAR szPasswod[] = {L"goodpasswod" }; HCRYPTHASH hHash; HCRYPTPROV hCryptProv; HCRYPTKEY ...

  4. js !!条件判断或运算的作用

    今天看到一个判断语句非常奇怪: if(!!selected){} //为什么是双'!'号呢? 自己查了下资料终于明白了这其中的原理: 原来'!!'会将表达式转为Boolean类型的数据. 如果'!un ...

  5. Android自定义View自定义属性

    1.引言 对于自定义属性,大家肯定都不陌生,遵循以下几步,就可以实现: 自定义一个CustomView(extends View )类 编写values/attrs.xml,在其中编写styleabl ...

  6. Dialog , ProgressDialog , PopWindow 区别

    本质区别: Dialog:非阻塞对话框,弹出对话框时时,后台还可以做事情,点击背景时,对话框消失 ProgressDialog:带有圆形进度或者条形进度的对话框,一般结合handler使用.任务完成后 ...

  7. 单调队列 hdu2823

    Sliding Window Time Limit: 12000MS   Memory Limit: 65536K Total Submissions: 48608   Accepted: 14047 ...

  8. 通过HWND获得CWnd指针

    cwnd 又为计算机网络中拥塞窗口(congestion window)的简写.拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化.发送方让自己的发送窗口还可能小于拥塞窗口. CWnd是MFC窗口类 ...

  9. 关于JS中apply方法的基本理解

    最近研究OpenLayers源码时,发现其中使用了比较多的apply方法,对其也是很不明白.于是上网经过多方面了解以及自己细细体会后,终于算是基本明白是其干什么的了,这里分享下.apply方法的造型是 ...

  10. redis 数据导出

    一.导出所有的keys echo "keys 201*" |./redis-cli -h localhost -p 6379 -a password >> 1.txt ...