DM多路径存储

什么是 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 (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
`-+- 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

DM多路径存储,布布扣,bubuko.com

时间: 2024-10-10 07:50:12

DM多路径存储的相关文章

photoshop:把路径存储为形状

这个其实跟定义画笔步骤是一样的 路径存储为自定义形状 1.用路径选择工具(快捷键A),选中路径 2.菜单:编辑->定义自定形状 3.选择自定义形状工具(快捷键U),可以看到刚定义的形状 把当前形状区所有形状存储为一个文件 扩展名为.csh 载入外界形状 photoshop自定义形状路径:ps安装路径下\Presets\Custom Shapes文件夹 方法一:把形状文件放以上路径方便选择载入 方法二:选择自定义形状工具,点击"载入形状",选择对应形状文件载入 photoshop:

JAVA之File类-将指定目录下的所有java文件的绝对路径存储到文本文件中

/* * 将指定目录下的所有java文件的绝对路径存储到文本文件中 * 建立一个java列表. * 思路: * 1.对指定目录进行递归 * 2.获取递归过程所有的java文件的路径 * 3.将这些路径存储在集合中 * 4.将集合中的内容写到文本文件 * 注:3,4步骤也可以合并成一个步骤 */ package ioTest.io3; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; imp

【PHP原生】动态多文件上传并将路径存储在数据库

动态多文件上传并将路径存储在数据库 1.上传页面index.html <!DOCTYPE html > <html> <head> <metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/> <title>多图片上传</title> <script> //全局变量,代表文件域的个数,并用该变量区分文件域的nam

ASP.Net 5 上传文件通过虚拟路径存储

先贴上代码 [HttpPost] public IActionResult ImportTeaching(IFormFile file) { string root = @"Temp/teachingfile/"; string phyPayh = evn.MapPath(root); if (file != null) { var parsedContentDisposition = ContentDispositionHeaderValue.Parse(file.ContentDi

LVS概述

LVS原理概述: lvs是一个开源软件,是Linux virtual server的简写,即linux虚拟服务器,是一个虚拟的服务器集群系统,lvs集群采用ip负载均衡技术和基于内容的请求分发技术.将客户端的请求均衡的转移到后边的不同的服务器上,且调度器自动屏蔽掉服务器的故障,整个服务器集群结构对于用户是透明的.集群采用三层结构:负载均衡调度层.应用服务集群层.共享存储层.lvs调度层一般是两台主备lvs服务器,主要作用是平衡真实服务器中的负载和检查每个真实服务器中服务的完整性. 负载均衡集群常

Lenovo DS存储Linux下ISCSI 多路径映射配置

Lenovo  DS存储Linux下ISCSI 多路径映射配置 Renren  2018-01-17 实验环境: DS4200存储,B控制器池划分一个大小为18G的volume,通过两个1G ISCSI口port2和port3同时映射给客户机.Port B2口IP为172.16.1.14/24 :port B3口IP为172.16.1.15/24. 客户机系统为centos 6.9,两个以太网口,eth0口IP为172.16.1.195/24,eth1口的IP为172.16.1.196/24.网

Openfiler存储汉化

很多网友在学习VMware vSphere的时候要用到网络存储,目前主要被大家广泛用到的有FreeNAS适合于家庭用户,Openfiler 适用于企业用户,其它就是微软的了,而目前大部分都选择开源的Openfiler存储. 目前市面上的几款存储产品对比分析: Openfiler是一款非常好的存储管理操作系统,开源免费,通过web界面对存储磁盘的管理,支持现在流行的网络存储技术IP-SAN和NAS,支持iSCSI.NFS.SMB/CIFS及FTP等协议. Openfiler能把标准x86/64架构

(转)在二元树中找出和为某一值的所有路径,java版本

摘自:http://www.cnblogs.com/qi09/archive/2011/05/24/2055643.html 4.在二元树中找出和为某一值的所有路径 题目:输入一个整数和一棵二元树. 从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径. 打印出和与输入整数相等的所有路径. 例如输入整数22 和如下二元树 10 / \ 5 12 /\ 4 7 则打印出两条路径:10, 12 和10, 5, 7. 二元树节点的数据结构定义为: struct BinaryTreeNode

HDU 1026 Ignatius and the Princess I(BFS+记录路径)

Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 15576    Accepted Submission(s): 4937 Special Judge Problem Description The Princess has been abducted by the BEelzeb