文档章节

DM多路径存储

lee_ypp
 lee_ypp
发布于 2014/07/26 11:50
字数 1450
阅读 2511
收藏 45

什么是 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
粉丝 65
博文 46
码字总数 67139
作品 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
multipath 多路径冗余

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

lilinji
2016/05/31
0
0
linux 多路径配置

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

leesbing
2017/03/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

漏洞防御与修复工作

漏洞管理工作是企业安全建设必不可少的一环,在风险管理工作中,漏洞管理能够防患于未然,企业对漏洞管理有着广泛的基础建设和实践经验。但随着攻防技术的发展,传统漏洞管理的安全技术和管理...

linuxprobe16
12分钟前
0
0
MicroPython技术及应用前景

1 Micropython技术是什么? MicroPython极精简高效的实现了Python3语言。它包含Python标准库的一小部分,能在单片机和受限环境中运行。 1.1 MicroPython发展 由剑桥大学的理论物理学家乔治....

bodasisiter
18分钟前
0
0
跟我学Spring Cloud(Finchley版)-13-通用方式使用Hystrix

本节详细讲解使用Hystrix的通用方式。 简介 Hystrix是由Netflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性。Hystrix主要...

周立_ITMuch
26分钟前
0
0
🛠️Hanjst/汉吉斯特更新加JavaScript运行时优化等

这是 Hanjst/汉吉斯特 发布以来的首个主要升级更新版本。这次的主要升级更新的内容包括移除HTML Comments注释行, 优化在 Hanjst include模板文件时的JavaScript运行时环境。 Hanjst 在设计和...

wadelau
今天
2
0
OSChina 周六乱弹 —— 舔狗是没有好下场的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @我没有抓狂 :#今天听什么# #今天听这个# 分享 Nirvana 的歌曲《Smells Like Teen Spi...》 《Smells Like Teen Spi...》- Nirvana 手机党少...

小小编辑
今天
463
13

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部