系统环境: 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. foreach遍历遇到的一个细节问题

    1.Invalid argument supplied for foreach()警告错误解决办法:foreach遍历之前添加is_array()判断

  2. Azure web role, work role 以及其他role

    Azure web role, work role 以及其他role 如果没有创建过web role 和work role的话可以参考如下文章来创建一下web role 和work role. htt ...

  3. xib中的view对iPhone和iPad自适应

    1 This worked for me: Make a copy of the .xib in the Finder.    Open the copied file in a text edito ...

  4. HTML5 UI框架Kendo UI Web教程:创建自定义组件(三)

    Kendo UI Web包 含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在前面的2篇文章<HTML5 Web app开发工具Ke ...

  5. objective C 学习之02

    1. 函数 -(void) HelloWorld:(BOOL)ishelloworld{ //干点啥 } 前面带有减号(-) 的方法为实例方法,必须使用类的实例才可以调用的.对应的有+号, 代表是类的 ...

  6. python基本数据类型之集合set

    一.集合的定义 set集合,是一个无序且不重复的元素集合. 集合对象是一组无序排列的可哈希的值,集合成员可以做字典中的键.集合支持用in和not in操作符检查成员,由len()内建函数得到集合的基数 ...

  7. SDUTOJ 3312

    题目描述 给出一个n*n的矩阵,矩阵中只有0和1,现在有两种操作: 1 x y 将第x行第y列的数字改变(0变1,1变0) 2 x1 y1 x2 y2求由左上角(x1,y1)到右下角(x2,y2)组成 ...

  8. 【转载】USB2.0接口差分信号线设计

    引 言 通用串行总线(Universal Serial Bus)从诞生发展到今天,USB协议已从1.1过渡到2.0,作为其重要指标的设备传输速度,从1.5 Mbps:的低速和12 Mbps的全速,提高 ...

  9. (转)QML代码与现有Qt UI代码整合

    http://blog.csdn.net/henreash/article/details/7934315

  10. 《BI项目笔记》无法解密受保护的 XML 节点“DTS:Password” 解决办法

    说明: 无法解密受保护的 XML 节点“DTS:Password”,错误为 0x8009000B“该项不适于在指定状态下使用.”.可能您无权访问此信息.当发生加密错误时会出现此错误.请确保提供正确的密 ...