DM多路径存储

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

多路径的主要功能就是和存储设备一起配合实现如下功能:

1) 故障的切换和恢复

2) IO 流量的负载均衡

3) 磁盘的虚拟化

DM 多路径存储
系统环境: RHEL6 x86_64 small install selinux and iptables disabled
主机规划:

可使用 DM-Multipath 提供:
•冗余
DM-Multipath 可在主动/被动配置中提供出错冗余。在主动/被动配置中,只有一半的路径在每次 I/O 时都使用。如果 I/O 路径的任意元素(电缆、交换机或者控制器)出现故障,就会将 DM-Multipath 切换到备用路径。
•改进性能
可将 DM-Multipath 配置为主动/主动模式,其中将 I/O 以轮叫调度算法方式分布到所有路径中。在有些配置中,DM-Multipath 可在 I/O 路径中检测负载并动态重新平衡负载。
DM-Multipath 组件

  1. 软件安装
    ```javascript
    station133:
    yum install scsi-target-utils -y
    station28:
    yum install Iscsi-initiator-utils ccs device-mapper device-mapper-multipath -y
2. ISCSI 配置
```javascript
station133:
service tgtd start
tgtadm --lld iscsi --mode target --op new --tid 1 -T storage1
tgtadm --lld iscsi --mode logicalunit --op new --tid 1 --lun 1 -b /dev/xvdb1
tgtadm --lld iscsi --mode target --op bind --tid 1 -I ALL
station28:
service iscsid start
iscsiadm -m discovery -t st -p 192.168.0.133
iscsiadm -m node -T storage1 -p 192.168.0.133 -l
iscsiadm -m discovery -t st -p 192.168.0.132
iscsiadm -m node -T storage1 -p 192.168.0.132 -l

  1. DM 配置
    配置文件模板:
    ```javascript
    #/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
    你也可以使用: “mpathconf --enable ”指令生成主配置文件,并且会自动启用 multipathd.
    vi /etc/multipath.conf
    blacklist {
    devnode "vda" #禁止使用/dev/vda 设备

}
defaults {
user_friendly_names yes
udev_dir /dev #生成 udev 设备节点的目录,默认值为 /dev。

path_grouping_policy failover #failover 为主备模式; multibus 为负载均衡模式
failback immediate #指定立即恢复到包含活跃路径的最高级别路径组群
no_path_retry fail #这个属性的数字值指定系统在禁用队列前应该试图使用失败的路径的次数.fail 值表明立即失败,无需排队。
}

service multipathd start

当将 user_friendly_names 配置设定为 yes,会将该多路径设备的名称设定为 mpathn。
当在 DM-Multipath 中添加新设备时,这些新设备会位于 /dev 目录的两个不同位置:
```javascript
/dev/mapper/mpathn 和 /dev/dm-n。
•/dev/mapper 中的设备是在引导过程中生成的。可使用这些设备访问多路径设备,例如在生成逻辑卷时。
•所有 /dev/dm-n 格式的设备都只能是作为内部使用,请不要使用它们。
# multipath -ll
mpatha (1IET00010001) dm-0 IET,VIRTUAL-DISK
size=2.0G features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 2:0:0:1 sda 8:0 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
`- 3:0:0:1 sdb 8:16 active ready running

注:可以看到 sda 和 sdb 两条链路复合成一条链路 mpatha,此为 Failover(主备)情况,当你对 mpatha 设备读写时,处于 active 状态的 sda 链路有数据流,而处于 enabled 状态的sdb 链路无数据流;当 sda 链路出现问题时,才会切换到 sdb 链路上。
4. 测试

用 dd 往磁盘读写数据,然后用 iostat 观察各通道的流量和状态,以判断 Failover 或负载均衡方式是否正常:
# dd if=/dev/zero of=/dev/mapper/mpatha
# iostat -k 2
如果成功你会发现,当断开链路 sda 时,等待片刻,会自动切换到链路 sdb 上,并不会造成写入失败。
手动切换模式:(如果需要永久生效直接修改 multipath.conf,并重新 reload)
# multipath -F        # 刷新所有的多路径设备映射
# multipath -p multibus -v0 # 切换成负载均衡模式
# multipath -ll
mpatha (1IET
00010001) dm-0 IET,VIRTUAL-DISK
size=2.0G features='0' hwhandler='0' wp=rw
`-+- policy='round-robin 0' prio=1 status=active
|- 2:0:0:1 sda 8:0 active ready running
`- 3:0:0:1 sdb 8:16 active ready running

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

时间: 2024-10-30 23:11:21

DM多路径存储的相关文章

VS2010如何将C#三层架构项目中插入的图片的路径存储到数据库中

问题描述 privatevoidbutton1_Click(objectsender,EventArgse){openFileDialog1.ShowDialog();//显示打开文件对话框stringImgPath=openFileDialog1.FileName;//得到文件路径pictureBox1.ImageLocation=ImgPath;//显示图片FileInfofile=newFileInfo(ImgPath);//new一个文件操作类file.CopyTo("你的目录"

编码-django取出pymongo中存储的中文图片路径后,读取该路径在网页上展示没有出现图片

问题描述 django取出pymongo中存储的中文图片路径后,读取该路径在网页上展示没有出现图片 问题是这样的: 我搭建的环境是:python2.7 + mongoengine + pymongo + django + Ubuntu14 python处理一些带有中文路径的图片,把这个路径存储在数据库pymongo中,保存的时候该路径是转换为:utf-8类型存储到数据库中,然后django通过mongoengine来连接pymongo的数据库,从中取出这个图片的路径, 希望向各位朋友们请教一下下

Photoshop路径钢笔使用方法动画图解

Photoshop处理的是点阵图,而钢笔工具是Photoshop里面唯一矢量工具.刚接触这个工具可能会让你感到有点吃力,但是当你理解其运作原理后,你就会逐渐感受到其妙处.希望这一点技巧对你使用这个工具会有一点帮助. 首先,用鼠标按住这个钢笔工具的按钮.你将看见另一个工具栏的弹出,它们都属于钢笔工具.现在逐一介绍它们的用法. 钢笔工具:常常用于制作一些复杂的线条,用它可以画出很精确的曲线. 磁性钢笔工具:就是象磁石一样,把边吸住.不用自己好细心慢慢描边.前提是物体的边缘要非常清晰. 自由钢笔工具:

用ASP.NET 2.0在数据库中存储二进制文件

一.引言 在构建数据驱动的应用程序时,经常需要捕获文本和二进制数据.这样的程 序可能需要存储图像,PDF,Word文件或其它二进制数据.能够使用两种方式来 存储这些二进制数据:存储在web服务器的文件系统上并添加一个对数据库中相 应文件的引用:或直接存储在数据库本身. 文本数据,例如字符串,数字,日期,GUID,货币值,等等-在数据库系统中 都有适当的和相应的数据类型定义.例如,在Microsoft SQL Server中,你可以 使用int数据类型来存储一个整数值:而为了存储一个字符串值,你可

photoshop钢笔路径实用技巧

Photoshop处理的是点阵图,而钢笔工具是Photoshop里面唯一矢量工具.刚接触这个工具可能会让你感到有点吃力,但是当你理解其运作原理后,你就会逐渐感受到其妙处.希望这一点技巧对你使用这个工具会有一点帮助. 首先,用鼠标按住这个钢笔工具的按钮.你将看见另一个工具栏的弹出,它们都属于钢笔工具.现在逐一介绍它们的用法. 钢笔工具:常常用于制作一些复杂的线条,用它可以画出很精确的曲线. 磁性钢笔工具:就是象磁石一样,把边吸住.不用自己好细心慢慢描边.前提是物体的边缘要非常清晰. 自由钢笔工具:

【ANDROID游戏开发十三】(保存游戏数据 [下文])详解SQLITE存储方式,并把SQLITE的数据库文件存储在SD卡中!!!

本站文章均为 李华明Himi 原创,转载务必在明显处注明:  转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/329.html ----------------------- 『很多童鞋说我的代码运行后,点击home或者back后会程序异常,如果你也这样遇到过,那么你肯定没有仔细读完Himi的博文,第十九篇Himi专门写了关于这些错误的原因和解决方法,这里我在博客都补充说明下,省的童鞋们总疑惑这一块:请点击下面联系进入阅读:

android如何获得系统默认相册路径及此路径下所有照片路径

问题描述 android如何获得系统默认相册路径及此路径下所有照片路径 我在做一个云相册的项目,用的是百度云.现在要获得系统默认相册的所有图片路径,在google上搜罗很多,都是把sd卡上所有相册都罗列了出来,我是安卓新手,也不太懂怎么弄,各位大神有什么好办法... 解决方案 系统默认相册路径一般都是/DCIM/camera 解决方案二: 遍历SD卡所有的文件夹以及文件夹下所有的文件,并通过文件的后缀判断文件是否属于图片文件(图片文件的后缀一般是.jpg,.png,.bmp等等),将文件的路径存

《ADOBE PHOTOSHOP CC标准培训教材》—第3章3.4节将路径转化为选区

3.4 将路径转化为选区 ADOBE PHOTOSHOP CC标准培训教材 如果要选取的图像形状不规则,颜色差异又大,用前面的几种选择方法都不能得到希望的选区,此时可借助于工具箱中的路径工具来描出路径,然后再转换成浮动的选择线.Photoshop中路径工具的用法和Illustrator中钢笔工具的用法基本相同.如果已经非常熟悉Illustrator中的钢笔工具,则可以略过这一节. 绘制路径的工具在工具箱(见图3-4-1)中,从上到下分别为"钢笔工具"."自由钢笔工具"

遍历-python中的路径问题,总是报错

问题描述 python中的路径问题,总是报错 代码通过遍历文件夹后将路径存储到数组中,这是其中一条数据 'C:Echo-to-Johncut-in MF4wholedata.xlsx' ,为什么打开文件时出现 error22的错误 解决方案 Python zipfile报错问题 解决方案二: 文件路径中空格是否有影响.