系统环境: 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. 关于为busybox设置setuid

    安卓root了,重启之后就没root权限了,于是想到了为 busybox 设置 setuid 来实现使用root的身份执行命令. 可是,不管用啊,还是提示没有权限.搜了一下 busybox setui ...

  2. 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数005·graphics-obj,基本绘图单元,包括线段、矩形、椭圆、圆形

    <zw版·Halcon-delphi系列原创教程> Halcon分类函数005·graphics-obj,基本绘图单元,包括线段.矩形.椭圆.圆形 graphics-obj,基本绘图单元, ...

  3. busybox-1.12.2编译提示“混合的隐含和普通规则”错误解决

    编译环境:CentOs 7.1 Ubuntu 12.0.4 都可以 交叉编译工具:gcc -4.3.2 (博创6410平台) 问题描述:执行make menuconfig命令的时候,提示Makefil ...

  4. cxf(3.1.1) 异常Caused by: java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf-extension-soap.xml]

    Caused by: java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf-extension-soap.xml] ...

  5. 获取dll中根目录

    AppDomain.CurrentDomain.BaseDirectory获取当前应用程序域的基目录 好像是万能的:form:可执行文件路径控制台:输出路径web:根目录

  6. Linux多节点互信配置

    SSH互信设置步骤:   1. 每个节点上分别生成自己的公钥和私钥   2. 将各节点的公钥文件汇总到一个总的认证文件authorized_keys中   3. 将这个包含了所有节点公钥的认证文件au ...

  7. C#:涉及DPI的高分辨率下的显示问题

    一.背景 在PC机上显示正常,在高分辨率下的Pad上,显示出现问题: 1.显示在屏幕最右端的窗体(控件)显示不出来: 2.截图时,被截图的界面字体文字变大,界面因此显示不全. 二.解决方法: 方法一: ...

  8. 如何从github上面拷贝源码

    有好奇心的朋友们一定都想看一看很多开源项目的源码,那么github就不用说啦,太多的开源项目都把源码放到上面. 博主最近为了学习angularjs也不得不去github上面弄源码,下面将会介绍如何做: ...

  9. 使用XML定制Ribbon的一点小前奏(稍微再进一步的理解XML)

    定制文档级Ribbon界面的实现思路: 1.excel的文件使用rar+xml的形式保存在本地. 2.用压缩软件打开文件,以规范的格式直接编缉或添加xml文件 3.使用excel文件时,主程序会解析x ...

  10. 利用backtrace和objdump进行分析挂掉的程序

    转自:http://blog.csdn.net/hanchaoman/article/details/5583457 汇编不懂,先把方法记下来. glibc为我们提供了此类能够dump栈内容的函数簇, ...