文档章节

DM多路径存储

lee_ypp
 lee_ypp
发布于 2014/07/26 11:50
字数 1450
阅读 2484
收藏 45
点赞 3
评论 4

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

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

1) 故障的切换和恢复 

2) IO 流量的负载均衡  

3) 磁盘的虚拟化

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

主机
网卡
软件
station133 eth0: 192.168.0.133 
eth1: 192.168.0.132
scsi-target-utils
station28 eth0: 192.168.0.28 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 路径中检测负载并动态重新平衡负载。
DM-Multipath 组件

组件
描述
dm-multipath内核模式
为路径和路径组群重新指定I/O并支持出错冗余
mpathconf命令
配置并启用设备器多路径
multipath命令
列出并配置多路径设备。通常从/etc/rc.sysinit开始,还可以使用udev程序随时添加块设备,或者可用initramfs文件系统运行。
multipathd守护进程
监视器路径,如果路径故障并返回,它可能会启动路径族群切换。可为多路径设备提供互动修改。对/etc/multipathd.conf文件的任何修改都必须启动它。
kpartx命令
为设备中的分区生成设备映射器设备。这个命令对带DM-MP的DOS分区是很必要的,kpart在其自身软件包中就存在,但device-mapper-multipath软件包要依赖它。


1. 软件安装
station133:
yum install scsi-target-utils -y
station28:
yum install Iscsi-initiator-utils ccs device-mapper device-mapper-multipath -y
2. ISCSI 配置
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
3. DM 配置
配置文件模板:
#/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 目录的两个不同位置:
/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,从而实现负载均衡。

                                            ——leeypp@gmail.com  




© 著作权归作者所有

共有 人打赏支持
lee_ypp
粉丝 64
博文 45
码字总数 58692
作品 0
程序员
加载中

评论(4)

lee_ypp
lee_ypp

引用来自“AkataMoKa”的评论

不明觉厉

一般不会单独使用这个,有MySQL、DM和heatbeat等高可用... @李星
AkataMoKa
AkataMoKa
不明觉厉
lee_ypp
lee_ypp

引用来自“李星”的评论

什么地方会应用到这个呀?
一般不会单独使用这个,有MySQL、DM和heatbeat等高可用集群整合起来使用,来架构一个网站的数据库
李星
李星
什么地方会应用到这个呀?
CentOS6.7配置multipath多路径

安装多路径软件及配置 1)多路径软件安装,放入CentOS-6.7-x8664-bin-DVD1.iso光盘; [root@simlelife89~]# mount /dev/cdrom /mnt \挂载光盘 [root@simlelife89~]# cd /mnt/Packages \进入P...

独笔孤行
2017/04/17
0
0
asmlib方式管理oracle asm环境下,新加存储需特别注意

oracle10g 数据库主机已经连接有使用RDAC的存储,计划新增扩容IBM新存储(要求使用dm-multipath多路径软件),多个多路径软件能否共存?启后sd设备名是否会发生改变,是否影响asm和oracle启动...

liu99fifa
2015/12/31
0
0
深度分析LINUX环境下如何配置multipath

首先介绍一下什么是多路径(multi-path)?先说说多路径功能产生的背景,在多路径功能出现之前,主机上的硬盘是直接挂接到一个总线(PCI)上,路径是一对一的关系,也就是一条路径指向一个硬盘...

leesbing
2017/03/07
0
0
linux 多路径配置

首先介绍一下什么是多路径(multi-path)?先说说多路径功能产生的背景,在多路径功能出现之前,主机上的硬盘是直接挂接到一个总线(PCI)上,路径是一对一的关系,也就是一条路径指向一个硬盘...

leesbing
2017/03/11
0
0
multipath 多路径冗余

一、什么是multipath 普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系...

lilinji
2016/05/31
0
0
CentOS7 DM-Multipath+HUAWEI OceanStor存储多路径配置

在参看了网上他人的配置,结合RedHat的技术白皮书实现后,自己亲身在CentOS7+HUAWEI OceanStore S2600T的基础上配置了一个DM-Multipath存储多路径的实现,其中碰到了一些小问题和不明白的地方...

t_huanghai
2016/07/05
0
0
使用OpenFiler来模拟存储配置RAC中ASM共享盘及多路径(multipath)的测试

第一章 本篇总览 之前发布了一篇《OraclelhrRAC 12cR1安装》,但是其中的存储并没有使用多路径,而是使用了VMware自身提供的存储。所以,年前最后一件事就是把多路径学习一下,本文介绍了Ope...

lhrbest
2017/01/23
0
0
Oracle Linux 6.9下安装并配置多路径multipath

1、安装multipath工具 # yum –y install device-mapper device-mapper-multipath 2、设置开机自启动 # chkconfig multipathd on 3、开启multipath # mpathconf --enable 或者使用完整命令:......

qq8658868
07/03
0
0
devicemapper的多路径

devicemapper的多路径 1.功能: 可以将多个物理设备合成为一个逻辑设备,可以做普通的合并,或者实现类似raid0的条带化,还可以用来屏蔽硬盘中的坏道扇区,还可做lvm快照来备份数据库,或者...

超人学院
2015/05/28
0
0
Rhel Linux multipath + OpenfIler raid iscsi

前段时间学习了关于Redhat Linux上的多路径Multipath,以及为了方便学习在本机电脑上安装了Openfiler模拟存储,配置多块网卡实现多路径冗余识别存储。在这里以我个人的理解简单的描述我所认知...

Sound_
2017/06/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

告警系统主脚本、告警系统配置文件、告警系统监控项目

告警系统主脚本 为方便需要,所有的shell脚本放到 /usr/local/sbin/ 目录下 切换到 /usr/local/sbin/ 目录下,创建告警系统脚本 #!/bin/bash#Written by aming.# 是否发送邮件的开关(1表...

Zhouliang6
9分钟前
1
0
不要再问我跨域的问题了

原文链接:web.jobbole.com 【RTC实时互联网大会 限时免费 马上报名】www.bagevent.com 写下这篇文章后我想,要不以后就把这种基础的常见知识都归到这个“不要再问我XX的问题”,形成一系列内...

阿K1225
11分钟前
0
0
Tomcat配置虚拟路径

<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/data/dispute_https/headPortrait/" path="/headPortrait" reloadable="true"/> <!-- 该文件名为headPortrait.xml,放在${tomca......

Helios51
12分钟前
0
0
开源PaaS Rainbond 3.6.1 Released

本次3.6.1版本更新,重点修复了3.6.0版本部分情况下会出现的BUG,同时改进了内部市场、参数验证、历史消息等功能,详细更新记录如下—— 3.6.1 功能改进 云帮初次使用跳转至注册页面 消息添加...

好雨云帮
12分钟前
0
0
Unsupported major.minor version 52.0

执行代码的jdk版本 低于 编译的jdk版本 其中52.0 对应的就是 jdk1.8版本。

@林文龙
12分钟前
0
0
聊聊spring cloud的AbstractLoadBalancingClient

序 本文主要研究一下spring cloud的AbstractLoadBalancingClient AbstractLoadBalancingClient spring-cloud-netflix-ribbon-2.0.0.RELEASE-sources.jar!/org/springframework/cloud/netfli......

go4it
14分钟前
0
0
博客改版通知

先上博客地址 --> http://metaphors.name 最近将博客从 Jekyll 迁到了 Hexo,所以简书、开源中国、博客园、CSDN文章中的的部分图片丢了,原文链接也不可用了,不过没关系,原文链接都会转到博...

Metaphors
14分钟前
0
0
vue基础知识练习

一、Hello World <div id="itany">{{msg}} <!-- 两对大括号{{}}称为模板,用来进行数据的绑定显示在页面中 --> </div><script src="js/vue.js"></script><script>var vm=new Vue({......

一个yuanbeth
18分钟前
0
0
spring @Transactional注解参数详解

原文:事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理 , 例子: 1 @Transactional public class TestServiceBean implements TestService {} 当类中某些方法不需...

binhu
21分钟前
0
0
CORS 跨域实践

本文首发于个人微信公众号《andyqian》,期待你的关注~ 前言 系统通常都是由单体应用逐渐演化而来,演化成为前后端分离的分布式应用。在享受分布式系统带来的诸多好处之时,随之而来的也有不...

andyqian
28分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部