Linux下多路径multipath配置文档和相关概念
DeviceMapperMultipath配置指导书全解

Device Mapper Multipath配置指导书华为技术有限公司版权所有侵权必究Device Mapper Multipath配置指导书文档密级:内部公开修订记录目录目录 (1)前言 (3)1检查系统DM-Multipath (4)1.1检查DM-Multipath是否正确安装 (4)1.2查看DM-Multipath版本 (5)1.3检查DM-Multipath配置文件 (5)1.4检查DM-Multipath服务multipathd是否开机启动 (5)2修改DM-Multipath配置 (6)2.1修改multipath.conf文件 (6)2.1.1 CentOS 6.3 对接阵列S5800T 配置 (7)2.1.2 NeoKylin Advance Linux Server V5.6 对接阵列18500配置 (8)2.2 FAQ (9)2.2.1如何获取阵列vendor及product (9)2.2.2 DM-Multipath可用的磁盘在哪里 (9)3注意事项 (11)3.1集群应用 (11)3.2 DM-Multipath与UltraPath共存 (11)3.3设备屏蔽 (11)3.4驱动超时参数 (11)3.4.1 FC驱动 (11)3.4.2 ISCSI驱动 (12)附录A DM-Multipath盘符绑定 (13)附录B DM-Multipath磁盘屏蔽 (14)附录C 常用命令 (16)关键词:Device Mapper Multipath、配置摘要:本指导书是针对Linux系统自带多路径Device Mapper Multipath对接我司阵列,配置操作过程中需要的步骤、注意事项等提供的指导,本指导书描述了Multipath配置过程及注意事项。
缩略语清单:DM-Multipath(Device Mapper Multipath ):Linux系统自带多路径LUN(Logical Unit Number): 逻辑单元号ALUA(Asymmetric Logical Unit Access):非对称逻辑单元IALUA(Implicit Asymmetric Logical Unit Access):隐式ALUAEALUA(Explicit Asymmetric Logical Unit Access):显式ALUA参考资料清单:无。
linux多路径multipath 参数

linux多路径multipath 参数在Linux系统中,多路径是一种常见的冗余技术,用于提高系统的可靠性和稳定性。
Multipath则是Linux中实现多路径的一种机制,它能够自动选择最合适的路径来传输数据,从而提高了系统的性能和可靠性。
在本篇文章中,我们将介绍Linux多路径Multipath的参数。
一、Multipath工作原理Multipath是一种自动选择最佳路径来传输数据的机制,它使用多个路径来连接不同的存储设备或网络资源。
当系统需要访问存储设备上的数据时,Multipath会根据各个路径的性能和可靠性等因素,自动选择最合适的路径来传输数据。
这种机制提高了系统的性能和可靠性,因为即使某个路径出现故障,系统仍然可以使用其他路径来访问数据。
二、Multipath参数配置在Linux系统中,可以通过配置Multipath的参数来优化系统的性能和可靠性。
以下是一些常见的Multipath参数及其说明:1. `dm.multipath`:该参数用于启用或禁用Multipath机制。
将其设置为`1`以启用Multipath,设置为`0`以禁用。
2. `dm.scan`:该参数用于指定应搜索哪些设备以启用Multipath。
常见的值包括`all`(搜索所有设备)和`loop`(仅搜索loop设备)。
3. `dm.service_timeout`:该参数用于设置Multipath服务的超时时间。
默认值为60秒。
4. `dm.scan_tmo`:该参数用于设置扫描设备的超时时间。
默认值为3秒。
5. `multipath.scan_interval`:该参数用于设置Multipath自动扫描设备的间隔时间。
默认值为1秒。
6. `multipath.default_timeout`:该参数用于设置默认的块设备超时时间。
7. `multipath.find_tune`:该参数用于指定是否应该自动调整设备组的性能设置。
multipath多路径原理

multipath多路径原理Multipath多路径原理是计算机网络中常见的一种技术,它通过使用多个路由路径来传输数据,从而提高数据传输的可靠性和性能,在数据传输中起到了至关重要的作用。
下面我们将详细阐述Multipath 多路径原理。
一、多路径技术概述传统的网络中,每个网络设备只有一种传输路径,数据只能通过这条路径进行传输。
但是,在现代网络环境中,单一路径无法满足高负载和高可用性的需求。
多路径技术允许在不同的路径上重复传输数据,从而使得数据传输更加灵活和高效。
二、Multipath多路径原理Multipath多路径原理是一种基于动态路由的技术,它通过将数据流分成多个流,每个流负责在不同的路径上传输数据。
在传输过程中,数据被拆分成多个数据包,每个数据包被分发到不同的路径上,通过各种高级路由协议计算出最优路径进行传输,重新组合成完整的数据包,最终传输到另一端,从而提高数据传输的速度和可靠性。
当数据包被发送时,传输协议会通过一系列路由算法计算出最佳路径,这些算法涉及到多种因素,包括网络拥塞、路由器负载、网络拓扑、网络带宽等。
然后,数据包将沿着这条路径传输,不过如果这条路径发生了阻塞,传输协议会选择另一条路径来传输数据包,这就保证了数据的可靠性和高可用性。
三、Multipath多路径技术的优势1、提高了网络传输的可靠性。
当一个路径被阻塞时,传输协议可以动态地选择另一条可用路径来传输数据,避免了数据丢失和传输延迟的问题。
2、提高了网络传输的性能。
多路径技术允许同时使用多个路径传输数据,因此可以实现更高的传输带宽和更低的传输延迟,从而提高了网络传输的性能和吞吐量。
3、提高了网络的可扩展性。
多路径技术可以有效地对网络进行分流,避免网络过载和拥塞,提高了网络的可扩展性和可维护性。
四、Multipath多路径技术的应用1、负载均衡:多路径技术可以用于实现负载均衡,同时利用多个路径来分配网络负载,保证每个路径都得到充分利用,提高了网络的效率和可靠性。
Linux DM multipath多路径配置问题汇总

path_checker tur
path_selector "round-robin 0" //选择那条路径进行下一个IO操作的方法
prio_callout "/sbin/mpath_prio_alua/dev/%n" //获取有限级数值使用的默认程序
}
}
※千万不要写错path_checker(可能值有:readsector0, tur, emc_clariion, hp_sw, directio)。不清楚的,可从存储的官方资料查看
排错过程
# multipath -v3 -ll
# dmsetup ls
# multipathd -k
> > show config
/dev/mpath/mpathn 是udev设备管理器创建的,实际上就是指向下面的dm-n设备,仅为了方便,不能用来挂载;
/dev/dm-n 是软件内部自身使用的,不能被软件以外使用,不可挂载。
简单来说,就是我们应该使用/dev/mapper/下的设备符。对该设备即可用fdisk进行分区,或创建为pv。
测试multpath路径
然后用iostat观察各通道的流量和状态,以判断Failover或负载均衡方式是否正常:
# dd if=/dev/zero of=/dev/mapper/mpath0
# iostat -k 2
容错模式:
mpath18设备读写时,sdaf、sdv 会处于active状态,都有数据流,但sdb、sdl 组成的链路是enabled,作为ready情况。这为Failover(主备)情况
Linux_Device_Mapper_Multipathing多路径技术

Linux Device Mapper Multipathing技术在SAN存储网络中,冗余地访问存储设备是整个系统的关键技术之一,在Linux平台,开源的解决方案之一是DM-Multipath。
Device Mapper Multipathing ( DM-Multipath )允许在服务器节点和存储阵列之间配置多个I/ O路径但仍视为一个单一存储设备。
这些I/O路径是物理SAN连接,可以包含独立的数据线,交换机和控制器。
多路径集成了I/O路径,创建了包含集成多路径的一个新设备。
本文主体是基于Red Hat管理手册Red Hat Enterprise Linux 5 DM Multipath –DM Mult ipath Configuration and Administration Edition 3结合项目实施过程中的实践撰写的。
文档以Re d Hat英文管理手册翻译为主,并完整经过实践。
DM-Multipath 概述DM-Multipath 可以提供:•冗余DM-Multipath 可以在active/passive 配置中提供failover。
在一个active/passive 配置中,对于I/O任何时候只使用一半的路径。
如果一个I/O路径的任何组成部分(数据线,交换机或控制器)出现故障,DM-Multipath将切换到一个替换路径上。
•性能提高DM-Multipath 可以配置为active/active 模式,这样I/O采用round-robin 方式分摊到多路径上。
在一些配置中,DM-Multipath 可以检测到I/O路径的负载并可以动态重平衡负载。
•Active/Passive Mulstipath Configuration with one RAID Devices配置说明:•o提供了HBA,FC cable,SAN switch和阵列控制器failovero不支持硬件存储阵列故障failover•更为复杂的Active/Passive Mulstipath Configuration with one RAID Devices配置说明:•o支持全冗余硬件failovero数据冗余需要通过软件来实现存储阵列支持默认情况下,DM-Multipath 支持大多数支持DM-Multipath 技术的常用存储。
Linux MultiPath 多路径部署方案

Linux MultiPath多路径部署方案目录一、环境摘要 (3)二、检查安装multipath (3)2.1检查是否已安装模块 (3)2.2加载模块 (3)2.3设为开机自动启动 (3)三、配置multipath (4)3.1创建配置脚本 (4)3.2确认配置结果 (8)3.3正常使用磁盘 (8)四、测试 (8)4.1负载均衡测试 (8)五、常用操作命令 (9)5.1启停mulitipath服务 (9)5.2删除现有路径 (9)5.3格式化路径(重新扫描) (9)5.4查看多路径 (9)5.5重载multipathd服务 (10)一、环境摘要Suse 11 sp1二、检查安装multipath2.1检查是否已安装模块Suse 11 sp2系统默认安装有以下模块# rpm -qa |grep mapperdevice-mapper-32bit-1.02.63-18.25.1device-mapper-1.02.63-18.25.1# rpm -qa |grep multimultipath-tools-0.4.9-0.60.1# rpm -qa |grep udevlibudev0-32bit-147-0.47.2libgudev-1_0-0-147-0.47.2udev-147-0.47.2libudev0-147-0.47.22.2加载模块modprobe dm-multipathmodprobe dm-round-robin2.3设为开机自动启动chkconfig --level 35 multipathd on三、配置multipath3.1创建配置脚本Multipath的配置文件是/etc/multipath.conf,将以下内容复制到文件中,并保存:以下脚本屏蔽了华为多路径软件,并且对多路径盘进行绑定,避免系统重启后设备名发生改变。
blacklist {wwid "3600605b0042372d01159327313feb8a2" devnode"^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*" devnode "^hd[a-z]"device{vendor "up" #屏蔽华为多路径盘product "updisk"}}defaults {udev_dir /devpolling_interval 10#prio alua#rr_min_io 10user_friendly_names yesno_path_retry 10path_checker turpath_grouping_policy failover}devices {device {vendor "HP|COMPAQ"product "HSV1[01]1\(C\)COMPAQ|HSV2[01]0|HSV300|HSV4[05]0"path_grouping_policy group_by_priogetuid_callout "/lib/udev/scsi_id -g -u /dev/%n"path_checker turpath_selector "round-robin 0"prio aluarr_weight uniformfailback immediatehardware_handler "0"no_path_retry 18rr_min_io 100}}multipaths {multipath {wwid 3600050ccd64326f8579ee51180c744a8alias mpathapath_grouping_policy failoverfailback manualno_path_retry 10}multipath {wwid 3600050ccd44326f8579ee51180c744a8alias mpathbpath_grouping_policy failoverfailback manualno_path_retry 10}multipath {wwid 3600050ccdc4326f8579ee51180c744a8 alias mpathcpath_grouping_policy failover failback manualno_path_retry 10}multipath {wwid 3600050ccde4326f8579ee51180c744a8 alias mpathdpath_grouping_policy failover failback manualno_path_retry 10}multipath {wwid 3600050cce04326f8579ee51180c744a8 alias mpathepath_grouping_policy failover failback manualno_path_retry 10}}3.2确认配置结果1、启动服务:Service multipathd restart2、多路径聚合与查看多路径:Multipath –v2multipath -ll3、其他核查方式✓会在/dev/mapper/目录下多出类似mpatha、mpathb之类设备(如果指定了alias则以别名方式显示)✓用fdisk -l命令可以看到多路径软件创建的磁盘,如/dev/dm-[0-3]等3.3正常使用磁盘要使用多路径生成的磁盘直接操作/dev/mapper/目录下的磁盘就便可。
十、Multipath多路径-基础知识

⼗、Multipath多路径-基础知识10.1 多路径概述
• 当服务器到某⼀存储设备有多条路径时,每条路径都会识别为⼀个单独的设备
• 多路径允许您将服务器节点和储存阵列间的多个I/O路径配置为⼀个单⼀设备
• 这些 I/O 路径是可包含独⽴电缆、交换器和控制器的实体 SAN 链接
• 多路径集合了 I/O 路径,并⽣成由这些集合路径组成的新设备
10.2 多路径主要功能
• 冗余
– 主备模式,⾼可⽤
• 改进的性能
– 主主模式,负载均衡
10.3 多路径设备
• 若没有 DM Multipath,从服务器节点到储存控制器
的每⼀条路径都会被系统视为独⽴的设备,即使 I/O
路径连接的是相同的服务器节点到相同的储存控制器
也是如此
• DM Multipath 提供了有逻辑的管理 I/O 路径的⽅法,
即在基础设备顶端⽣成单⼀多路径设备。
multipath概念和配置文档

一、什么是multipath普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。
而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。
也就是说,主机到存储可以有多条路径可以选择。
主机到存储之间的IO由多条路径可以选择。
既然,每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。
多路径软件就是为了解决上面的问题应运而生的。
多路径的主要功能就是和存储设备一起配合实现如下功能:1. 故障的切换和恢复2. IO流量的负载均衡3. 磁盘的虚拟化二、为什么使用multipath由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。
并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。
比如EMC公司基于linux下的多路径软件,就需要单独的购买license。
其中,EMC提供的就是PowerPath,HDS提供的就是HDLM,更多的存储厂商提供的软件,可参考这里。
当然,使用系统自带的免费多路径软件包,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。
※请与IBM的RDAC、Qlogic的failover驱动区分开,它们都仅提供了Failover的功能,不支持Load Balance方式。
但multipath根据选择的策略不同,可支持多种方式,如:Failover、Multipath等。
三、multipath的组成我这里以红帽x86_64为例,虽然版本比较老,但下面的配置方式基本适用后面的所有版本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、什么是multipath普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。
而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。
也就是说,主机到存储可以有多条路径可以选择。
主机到存储之间的IO由多条路径可以选择。
既然,每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。
多路径软件就是为了解决上面的问题应运而生的。
多路径的主要功能就是和存储设备一起配合实现如下功能:1. 故障的切换和恢复2. IO流量的负载均衡3. 磁盘的虚拟化二、为什么使用multipath由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。
并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。
比如EMC公司基于linux下的多路径软件,就需要单独的购买license。
其中,EMC提供的就是PowerPath,HDS提供的就是HDLM,更多的存储厂商提供的软件,可参考这里。
当然,使用系统自带的免费多路径软件包,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。
※请与IBM的RDAC、Qlogic的failover驱动区分开,它们都仅提供了Failover的功能,不支持Load Balance负载均衡方式。
但multipath根据选择的策略不同,可支持多种方式,如:Failover、Multipath等。
Failover的功能解释:通俗地说,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务的对象已经更换。
这里的A和B可以存在于各种领域,但一般fail-over特指计算机领域的数据库、应用服务、硬件设备等的失效转移。
三、multipath的组成我这里以红帽x86_64为例,虽然版本比较老,但下面的配置方式基本适用后面的所有版本。
引用# cat /etc/redflag-releaseRed Flag DC Server release 5.0 (Trinity SP2)# uname -aLinux localhost.localdomain 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux# rpm -qa|grep devicedevice-mapper-event-1.02.32-1.el5device-mapper-1.02.32-1.el5device-mapper-multipath-0.4.7-30.el5device-mapper-1.02.32-1.el5这些是需要安装的安装包,如果没有安装需要到安装光盘中# rpm -ivh device-mapper-*将以上这些包全部安装# chkconfig --list |grep multipathmultipathd 0:关闭1:关闭2:关闭3:关闭4:关闭5:关闭6:关闭# chkconfig multipathd on可见,一套完整的multipath由下面几部分组成:1. device-mapper-multipath提供multipathd和multipath等工具和multipath.conf等配置文件。
这些工具通过device mapper的ioctr的接口创建和配置multipath设备(调用device-mapper的用户空间库。
创建的多路径设备会在/dev/mapper中);2. device-mapperdevice-mapper包括两大部分:内核部分和用户部分。
内核部分由device-mapper核心(multipath.ko)和一些target driver(dm-multipath.ko)构成。
dm-mod.ko是实现multipath的基础,dm-multipath其实是dm的一个target驱动。
核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。
同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些device的属性等。
用户空间部分包括device-mapper这个包。
其中包括dmsetup工具和一些帮助创建和配置mappered device的库。
这些库主要抽象,封装了与ioctr通信的接口,以便方便创建和配置mappered device。
device-mapper-multipath的程序中就需要调用这些库;3. scsi_id其包含在udev程序包中,可以在multipath.conf中配置该程序来获取scsi设备的序号。
通过序号,便可以判断多个路径对应了同一设备。
这个是多路径实现的关键。
scsi_id是通过sg驱动,向设备发送EVPD page80或page83 的inquery命令来查询scsi设备的标识。
但一些设备并不支持EVPD 的inquery命令,所以他们无法被用来生成multipath设备。
但可以改写scsi_id,为不能提供scsi设备标识的设备虚拟一个标识符,并输出到标准输出。
multipath程序在创建multipath设备时,会调用scsi_id,从其标准输出中获得该设备的scsi id。
在改写时,需要修改scsi_id程序的返回值为0。
因为在multipath程序中,会检查该直来确定scsi id是否已经成功得到。
四、配置multipath原理看了一堆,实际配置还是比较简单的。
配置文件只有一个:/etc/multipath.conf 。
配置前,请用fdisk -l 确认已可正确识别盘柜的所有LUN逻辑单元号,HDS支持多链路负载均衡,因此每条链路都是正常的;而如果是类似EMC CX300这样仅支持负载均衡的设备,则冗余的链路会出现I/O Error的错误。
multipath.conf的配置参数、默认值,可参考:1、编辑黑名单默认情况下,multipath会把所有设备都加入到黑名单(devnode "*"),也就是禁止使用。
所以,我们首先需要取消该设置,把配置文件修改为类似下面的内容:# vim /etc/multipath.confdevnode_blacklist {#devnode "*" 用#将此行注释掉devnode "hda"wwid 3600508e000000000dc7200032e08af0b}这里禁止使用hda,也就是光驱。
另外,还限制使用本地的sda设备,这个wwid,可通过下面的命令获得:# scsi_id -g -u -s /block/sda3600508e000000000dc7200032e08af0b2、编辑默认规则不同的device-mapper-multipath或操作系统发行版,其默认的规则都有点不同,以RedHat x86_64为例,其path_grouping_policy默认为failover失效转移,也就是主备的方式。
这明显不符合我们的要求。
(HDS支持多路径负载均衡,EMC CX300等只支持Failover)。
所以,我们需要修改默认的规则:defaults {udev_dir /devpath_grouping_policy multibusfailback immediateno_path_retry failuser_friendly_name yes}关键是path_grouping_policy一项,其他选项可参考说明文档。
3、启动服务及生成映射# modprobe dm-multipath# service multipathd restart# multipath -v04、查看复合后的设备# multipath -ll会看到类似下面的信息:mpath0 (360060e80058e980000008e9800000007)[size=20 GB][features="0"][hwhandler="0"]\_ round-robin 0 [prio=1][active]\_ 3:0:0:7 sdaa 65:160 [active][ready]\_ round-robin 0 [prio=1][enabled]\_ 4:0:0:7 sdas 66:192 [active][ready]\_ round-robin 0 [prio=1][enabled]\_ 5:0:0:7 sdbk 67:224 [active][ready]\_ round-robin 0 [prio=1][enabled]\_ 2:0:0:7 sdi 8:128 [active][ready]这说明,已由四条链路sdaa/sdas/sdbk/sdi复合成一条链路,设备名为mpath0。
状态正常的话,把multipathd设置为自启动:# chkconfig multipathd on# mkdir /oradata# mkfs.ext3 /dev/mapper/mpath0# mkfs.ext3 /dev/mapper/mpath1# blkid /dev/mapper/mpath0 生成该存储设备的UUID# blkid /dev/mapper/mpath1# vim /etc/fstab (修改该配置文件并添加如下)UUID=47931c90-140b-45fe-9dfa-5a0f56810db3 /oradata ext3 defaults 0 0 保存退出# mount -a注意:要使用哪块存储设备就在fastab里面挂载就可以了5、使用mpath设备用multipath生成映射后,会在/dev目录下产生多个指向同一条链路的设备:/dev/mapper/mpath n/dev/mpath/mpath n/dev/dm-n但它们的来源是完全不同的:/dev/mapper/mpathn 是multipath虚拟出来的多路径设备,我们应该使用这个设备;/dev/mpath/mpathn 是udev设备管理器创建的,实际上就是指向下面的dm-n设备,仅为了方便,不能用来挂载;/dev/dm-n 是软件内部自身使用的,不能被软件以外使用,不可挂载。