LINUX下多路径(multi-path)介绍及使用

合集下载

linux下磁盘多路径

linux下磁盘多路径

linux下磁盘多路径
有时我们在linux系统中通过'fdisk-l'命令,会看到/dev/mapper/xxxxx的磁盘,这中磁盘有可能是逻辑卷,也有可能是配置的多路径,可以先通过“lvdisplay”如何能查看到,则说明是逻辑卷,如果不能,则是磁盘多路径配置,多路径配置下,一般会/dev/mapper/xxxx链接到一个磁盘/dev/dm-x的块设备文件,我们可以通过查看/etc/multipath.conf,会看到相关的多路径配置,或者是在/etc/multipath路径下有个wwids文件,就是配置多路径磁盘名称的文件,可以通过multipath命令来管理多路径:
/etc/init.d/multipathd start #开启mulitipath服务
# multipath -F #删除现有路径
# multipath -v2 #格式化路径
# multipath -ll #查看多路径
安装:
yum –y install device-mapper device-mapper-multipath
modprobe dm-multipath
# modprobe dm-round-robin
# service multipathd start
# multipath –v2
配置:
vi /etc/multipath.conf文件
blacklist {
devnode '^sda'
}
defaults {
user_friendly_names yes
path_grouping_policy multibus
failback immediate
no_path_retry fail
}。

LINUX自带多路径详解

LINUX自带多路径详解

LINUX 自带多路径详解一、多路径解释多路径,顾名思义就是有多种选择的路径。

在SAN 或IPSAN 环境,主机和存储之间外加了光纤交换机,这就导致主机和存储之间交换速度和效率增强,一条路径肯定是不行的,也是不安全不稳定的。

多路径就是要来解决从主机到磁盘之间最快,最高效的问题。

主要实现如下几个功能1. 故障的切换和恢复2. IO 流量的负载均衡3. 磁盘的虚拟化多路径之前一直是存储厂商负责解决,竟来被拆分出来单独卖钱了。

构架基本是这样的:存储,多路径软件,光纤交换机,主机,主机系统。

二、LINUX 下的multipath1、查看是否自带安装?1 2 3 4 5 6 [root@web2 multipath]# rpm -qa|grep devicedevice-mapper-1.02.39-1.el5device-mapper-1.02.39-1.el5device-mapper-multipath-0.4.7-34.el5device-mapper-event-1.02.39-1.el5[root@web2 multipath]#2、安装1 2 3 4 5 6 rpm -ivh device-mapper-1.02.39-1.el5.rpm #安装映射包 rpm -ivh device-mapper-multipath-0.4.7-34.el5.rpm #安装多路径包 外加加入开机启动 chkconfig –level 2345 multipathd on #设置成开机自启动multipathd lsmod |grep dm_multipath #来检查安装是否正常3、配置1 2 # on the default devices.blacklist {3 4 5 6 7 8 9 10 11 12 13 14 devnode '^(ram|raw|loop|fd|md|dm-|sr|sr|scd|st)[0-9]*'devnode '^hd[a-z]'}devices {device {vendor 'HP'path_grouping_policy multibusfeatures '1 queue_if_no_path'path_checker readsector()failback immediate}}完整的配置如下:blacklist {devnode '^sda'}defaults {user_friendly_names no}multipaths {multipath {wwid 14945540000000000a67854c6270b4359c 66c272e2f356321alias iscsi-dm0path_grouping_policy multibuspath_checker turpath_selector 'round-robin 0'}multipath {wwid 14945540000000000dcca2eda91d70b81e dbcfce2357f99eealias iscsi-dm1path_grouping_policy multibuspath_checker turpath_selector 'round-robin 0'}multipath {wwid 1494554000000000020f763489c16556110 1813333957ed96alias iscsi-dm2path_grouping_policy multibuspath_checker turpath_selector 'round-robin 0'}multipath {wwid 14945540000000000919ca813020a19542 2ba3663e1f03cc3alias iscsi-dm3path_grouping_policy multibuspath_checker turpath_selector 'round-robin 0'}}devices {device {vendor 'iSCSI-Enterprise'product 'Virtual disk'path_grouping_policy multibusgetuid_callout '/sbin/scsi_id -g -u -s /block/%n'path_checker readsector0path_selector 'round-robin 0'}}4、命令1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2[root@web2 ~]# multipath -hmultipath-tools v0.4.7 (03/12, 2006)Usage: multipath [-v level] [-d] [-h|-l|-ll|-f|-F|-r] [-pfailover|multibus|group_by_serial|group_by_prio][device] -v level verbosity level0 no output1 print created devmap names only2 defau lt verbosity3 print debug information-h print this usage text -b file bindings file location-d dry run, do not create or update devmaps-l show multipath topology (sysfs and DM info)-ll show multipath topology (maximum info)-f flush a multipath device map-F flush all multipath device maps-r force devmap reload -p policy force all maps to specified policy :failover 1 path per priority groupmultibus all paths in 1 priority groupgroup_by_serial 1 priority group per serialgroup_by_prio 1 priority group per priority lvl4 25 26 27 28 293group_by_node_name 1 priority group per target nodedevice limit scope to the device's multipath(udev-style $DEVNAME reference, eg /dev/sdbor major:minor or a device map name)[root@web2 ~]#5、启动关闭1 2 3 4 # /etc/init.d/multipathd start #开启mulitipath 服务 service multipath startservice multipath restartservice multipath shutdown6、如何获取wwid1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 1、[root@vxfs01 ~]# cat /var/lib/multipath/bindings# Multipath bindings, Version : 1.0# NOTE: this file is automatically maintained by the multipath program.# You should not need to edit this file in normal circumstances. ## Format:# alias wwid#mpath0 36006016051d50e0035744871c912de11mpath1 36006016051d50e0034744871c912de11mpath2 36006016051d50e0032744871c912de11mpath3 36006016051d50e0039744871c912de11mpath4 36006016051d50e003a744871c912de112、[root@vxfs01 ~]# multipath -v3 |grep 3600sdb: uid = 36006016051d50e003a744871c912de11 (callout)sdc: uid = 36006016051d50e003a744871c912de11 (callout)sdd: uid = 36006016051d50e003a744871c912de11 (callout)sde: uid = 36006016051d50e003a744871c912de11 (callout)36006016051d50e003a744871c912de11 1:0:0:0 sdb 8:16 0 [undef][ready] DGC,RAI36006016051d50e003a744871c912de11 1:0:1:0 sdc25 26 8:32 1 [undef][ready] DGC,RAI36006016051d50e003a744871c912de11 2:0:0:0 sdd 8:48 1 [undef][ready] DGC,RAI36006016051d50e003a744871c912de11 2:0:1:0 sde 8:64 0 [undef][ready] DGC,RAIFound matching wwid [36006016051d50e003a744871c912de11] in bindings file.比较详细的文字:/blog/static/1007689142013416111534352//wuweilong/article/details/14184097 RHEL 官网资料:/wp-content/uploads/downloads/2013/11/Red_Hat_Enterprise_Linux -5-DM_Multipath-en-US.pdf/wp-content/uploads/downloads/2013/11/Red_Hat_Enterprise_Linux -5-DM_Multipath-zh-CN.pdf/wp-content/uploads/downloads/2013/11/Red_Hat_Enterprise_Linux -6-DM_Multipath-en-US.pdf/wp-content/uploads/downloads/2013/11/Red_Hat_Enterprise_Linux -6-DM_Multipath-zh-CN.pdf。

linux 存储多路径静默参数

linux 存储多路径静默参数

linux 存储多路径静默参数摘要:1.背景介绍2.Linux 存储多路径的概念3.静默参数的含义4.多路径静默参数的配置方法5.配置多路径静默参数的优点6.总结正文:1.背景介绍在Linux 系统中,存储设备通常通过多路径(multipath)技术来提高数据的可靠性和可访问性。

多路径技术允许系统同时访问多个物理存储设备,将它们作为一个逻辑设备来使用。

这种方式可以在某个存储设备出现故障时,自动切换到其他存储设备,从而保证数据的连续性和完整性。

2.Linux 存储多路径的概念Linux 中的多路径技术是通过multipath 模块来实现的。

multipath 模块可以在系统中创建一个虚拟的存储设备,它将多个物理存储设备关联起来,形成一个逻辑设备。

这个逻辑设备可以有多个入口点,即多路径。

当某个物理存储设备发生故障时,multipath 模块会将其从虚拟设备中移除,并将其他物理存储设备作为新的入口点加入虚拟设备,从而保证数据的可访问性。

3.静默参数的含义静默参数(silent parameters)是指在Linux 系统中,某些设备或模块在初始化时没有输出相关信息,但这些信息对于系统的正常运行是非常重要的。

静默参数通常在设备的配置文件中设置,如/etc/multipath/multipath.conf。

如果没有正确设置静默参数,可能会导致系统在启动时出现错误,甚至无法正常运行。

4.多路径静默参数的配置方法要在Linux 系统中配置多路径静默参数,需要编辑/etc/multipath/multipath.conf 文件。

在这个文件中,可以添加、修改或删除静默参数。

以下是一个配置多路径静默参数的示例:```# /etc/multipath/multipath.conf# 设置静默参数silent_aries = 3silent_param_check = 1silent_device_check = 1silent_mount_check = 1silent_module_check = 1silent_io_check = 1silent_udev_check = 1silent_hotplug_check = 1silent_firmware_check = 1silent_kernel_check = 1silent_builtin_check = 1silent_sbin_check = 1silent_sysfs_check = 1silent_block_check = 1silent_ Files_check = 1silent_dir_check = 1silent_socket_check = 1silent_module_exit_check = 1silent_module_load_check = 1silent_module_unload_check = 1silent_device_add_check = 1silent_device_del_check = 1silent_device_change_check = 1silent_path_check = 1silent_link_check = 1silent_init_check = 1silent_exit_check = 1silent_run_check = 1```在这个示例中,我们设置了silent_aries、silent_param_check、silent_device_check 等参数为1,表示启用这些静默参数的检查功能。

多路径软件

多路径软件

多路径(multi-path)软件的介绍普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。

而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。

也就是说,主机到存储可以有多条路径可以选择。

主机到存储之间的IO由多条路径可以选择,如下图:根据上图所示,每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O 流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。

多路径软件就是为了解决上面的问题应运而生的。

多路径的主要功能就是和存储设备一起配合实现如下功能:1. 故障的切换和恢复2. IO流量的负载均衡3. 磁盘的虚拟化由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。

并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。

比如EMC公司基于linux下的多路径软件,就需要单独的购买license。

好在,RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。

本文一下的部分将专门针对Linux下多路径软件的配置安装,以及一些结合实际的操作进行详细的介绍(以下操作均在Suse10 SP1下进行)多路径软件包的构成device-m apper-1.02.13-6.9.i586.rpm该软件运行在底层,主要进行设备虚拟化和映射。

multipath-tools-0.4.7-34.18.i586.rpm,这个软件包可以在多路径的管理和监控工具,主要进行路径状态的检测,管理工作多路径软件包的安装Rpm –ivh device-m apper-1.02.13-6.9.i586.rpmRpm –ivh multipath-tools-0.4.7-34.18.i586.rpm安装完成后,使用命令modprobe dm_multipath来加载相应的模块,可以使用lsmod |grep dm_multipath来检查安装是否正常。

linux多个ADSL叠加

linux多个ADSL叠加

Linux 上多條對外連線(Multi-Path)實作作者﹕網中人 <netman@>version 0.04date 2004-09-27一、前言由於 ADSL 及 Cable Modem 的普及,越來越多企業或個人所擁有的對外連線早已超過一條了,不管是固接還是撥接,相信不少人都在思考如何用最有效的方式將多條連線作整合,將所有連線的使用發揮至最大極限及最佳的使用率。

除了起到負載的分攤之外,還能達到斷線備援目的,以提供更靈活的連線整合方案。

本文將以實作的方式試圖在 Linux 上做到上述要求。

二、環境我先說明一下我的測試環境:2.1 系統方面:我目前測試的系統是 RedHat 9.0 Linux ,採用"伺服器"類型安裝,並沒提供 X 界面。

透過 APT 更新至最新修補,並沒安裝 distro 之外的套件。

事實上,只要實作所需的套件滿足的話,並不需要安裝任何伺服器套件。

甚至,核心版本也不需作任何修改,只是某些連線特徵會有些差異(後文[7.1]再詳述)。

2.2 網路方面:原本的 seednet adsl 是五個 IP 撥接的,除了之前透過 ip share 來使用外,我再起了另外一個 ppp0 界面。

此外另外再牽了一條 hinet 固一 adsl 。

如此環境,基本上能夠分別測試到如下這幾種連線方式:* 固接(固定 IP)* 撥接(非固定 IP)* ip share(非固定 IP)見圖:/\__/\__/\,--| internet |--./ \/--\/--\/ \| || |+--[seednet ADSL] [hinet ADSL]| (非固定) (固一)| | 220.130.96.254| [ ip share ] || 192.168.100.1 || | || 192.168.100.2 220.130.96.21| +----------------------------------++---| (eth1) (eth0) |ppp0| kernel 2.4.23 |+----------------------------------+(my linux box RH9.0)2.3 測試方式雖然,撥接adsl 都是同一設備,或許還不十分理想,目前也只能如此了...我採用的是拔線的方式來測斷線的,暫還沒想到其他方式,或許大家可以幫忙想想的...我的測試基本上是用 ping 來做:我的測試基本上是用 ping 來做:* 若是 ppp 或不指定測試目標,我會用 next hop 來測。

Linux多路径multipath安装配置

Linux多路径multipath安装配置

S T A R S I N OLINUX multi-path安装配置测试报告RenYang2013.12目录一、测试环境摘要 (4)二、检查安装multipath (4)2.1检查是否已安装 (4)2.2若未安装则安装 (4)2.2.1搭建yum源 (4)2.2.2通过yum源安装并自启动 (4)2.3核查安装是否成功 (5)2.4设为开机自动启动 (5)三、配置multipath (5)3.1创建配置脚本 (5)3.2赋予脚本执行权限 (7)3.3执行脚本 (8)3.4确认配置结果 (8)3.5正常使用磁盘 (9)四、测试 (9)4.1负载均衡测试 (9)4.2路径切换测试 (9)五、常用操作命令 (10)5.1启停mulitipath服务 (10)5.2删除现有路径 (10)5.3格式化路径(重新扫描) (10)5.4查看多路径 (10)5.5重载multipathd服务 (10)5.6查看所有磁盘wwid (10)5.7显示当前device mapper信息 (11)说明:本文档中安装部署部分所提到的步骤都在测试环境中通过。

可以作为安装部署参考手册。

但因环境不同而无法保证在其他环境中准确无误(配置请按照特定环境自行修改)。

本文档仅供参考,建议按照官方手册安装配置。

蓝色字体—命令行绿色字体—脚本或输出结果暗红字体—表示变量(可更改)红色字体—需注意之处# — root用户下执行一、测试环境摘要FreeNAS模拟iSCSI存储并划分空间分配给Linux5系统二、检查安装multipath2.1检查是否已安装[root@linux5 ~]# rpm -qa|grep mapperdevice-mapper-1.02.55-2.el5device-mapper-1.02.55-2.el5device-mapper-event-1.02.55-2.el5device-mapper-multipath-0.4.7-42.el52.2若未安装则安装2.2.1搭建yum源mkdir -p /mnt/yummount /dev/cdrom /mnt/yum如果从ISO挂载,则使用如下命令:mount -o loop -t iso9660 /tmp/Redhat_5.0_U6_64.ISO /mnt/yumecho "[yum]">/etc/yum.repos.d/yum.repoecho "name=yum">>/etc/yum.repos.d/yum.repoecho "baseurl=file:///mnt/yum/Server">>/etc/yum.repos.d/yum.repo echo "enabled=1">>/etc/yum.repos.d/yum.repoecho "gpgcheck=1">>/etc/yum.repos.d/yum.repoecho"gpgkey=file:///mnt/yum/RPM-GPG-KEY-redhat-release">>/etc/yum.repos .d/yum.repo2.2.2通过yum源安装并自启动yum –y install device-mapper device-mapper-multipath2.3核查安装是否成功[root@linux5 ~]# lsmod |grep dm_multipathdm_multipath 56921 0scsi_dh 42177 1 dm_multipathdm_mod 101393 4 dm_mirror,dm_multipath,dm_raid45,dm_log 如果模块没有加载成功请使用下列命初始化DM,或重启系统:modprobe dm-multipathmodprobe dm-round-robinservice multipathd startmultipath –v22.4设为开机自动启动chkconfig --level 2345 multipathd on三、配置multipath3.1创建配置脚本Multipath的配置文件是/etc/multipath.conf,为了快速进行配置,可直接在linux系统任意目录创建一个脚本并将以下内容复制到脚本中:cp /etc/multipath.conf /etc/multipath.conf.bakecho 'blacklist {devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"devnode "^hd[a-z]"devnode "^cciss!c[0-9]d[0-9]*"devnode "^sd[a-b]"}defaults {udev_dir /devpolling_interval 10failback immediateno_path_retry 5rr_min_io 100path_checker turselector "round-robin 0"path_grouping_policy failoveruser_friendly_names yes}multipaths {'>/etc/multipath.conffor pv in `cat /proc/partitions|awk '{print $4}'|grep sd|grep [a-z]$`;do echo "`scsi_id -g -u -s /block/$pv`">>$$.wwid; donefor wwid in `awk 'NF' $$.wwid|sort|uniq|awk '{print $1}'`;doecho "Found a device:"for pv in `cat /proc/partitions|awk '{print $4}'|grep sd|grep [a-z]$`;doif [[ `scsi_id -g -u -s /block/$pv` = $wwid ]];then echo " $pv: `scsi_id -g -u -s /block/$pv`";fidonestop=0while [[ $stop -lt 1 ]];doread -p "Whether to add $wwid? [y,n,q] (y) " addif [[ -z "$add" || "$add" = "y" ]];thenecho " multipath {">>/etc/multipath.confecho " wwid $wwid">>/etc/multipath.confread -p "alias: (none) " aliasif [[ -n "$alias" ]];then echo " alias $alias">>/etc/multipath.conf;firead -p "gid: (none) " gidif [[ -n "$gid" ]];then echo " gid $gid">>/etc/multipath.conf;firead -p "uid: (none) " uidif [[ -n "$uid" ]];then echo " uid $uid">>/etc/multipath.conf;firead -p "mode: [0600,none] (none) " modeif [[ $mode = "0600" ]];then echo " mode $mode">>/etc/multipath.conf;fiecho " }">>/etc/multipath.confstop=1else if [[ $add = "n" ]];then stop=1else if [[ $add = "q" ]];then rm -fr $$.wwid;break 2;fi fi fidonedoneecho "}">>/etc/multipath.confrm -fr $$.wwid备注:1、红色字体部分根据现场环境进行修改;2、也可以按wwid或device进行排除(示例如下):➢按wwid方式:blacklist {wwid 26353900f02796769}➢按device方式:blacklist {device {vendor "IBM"product "3S42" #DS4200 Product 10}device {vendor "HP"product "*"}}3、也可以选择性使用blacklist_exceptions进行排除:例如:如果有大量设备,但只有一个需要多路径(WWID为 112233445566),此时不需要将想要使用多路径的设备之外的每个设备单独加入黑名单,只需要将所有设备都加入黑名单,然后只允许想要使用多路径的设备即可:blacklist {wwid "*"}blacklist_exceptions {wwid "112233445566"}3.2赋予脚本执行权限chmod +x tmp.sh3.3执行脚本[root@linux5 ~]# ./tmp.shFound a device:sdd: 3300000001f548fcaWhether to add 3300000001f548fca? [y,n,q] (y)回车alias: (none) test1gid: (none) 1300uid: (none) 1101mode: [0600,none] (none) 0600略去N字……备注:根据提示操作即可,alias、gid、uid、mode非强制要求,根据具体环境及需求选择。

multipath-tools 原理

multipath-tools 原理

multipath-tools 原理multipath-tools是一个用于Linux系统的多路径软件,它可以将多个路径绑定在一起,形成一个逻辑上的设备,从而提高系统的可靠性和性能。

其原理如下:1. 多路径设备的定义在Linux系统中,每个磁盘设备都有一个唯一的标识符,称为WWN(World Wide Name)。

多路径设备是由多个WWN相同的磁盘设备组成的,这些设备可以是不同的物理路径,也可以是同一路径上的不同端口。

在多路径设备中,只有一个设备是活动的,其他设备处于备用状态。

2. 多路径设备的管理multipath-tools通过将多个路径绑定在一起,形成一个逻辑上的设备,从而提高系统的可靠性和性能。

在多路径设备中,只有一个设备是活动的,其他设备处于备用状态。

当活动设备发生故障时,备用设备会自动接管工作,从而保证系统的连续性。

3. 多路径设备的配置在Linux系统中,多路径设备的配置通常需要在multipath.conf文件中进行。

该文件包含了多路径设备的配置信息,包括设备的WWN、路径的优先级、设备的属性等。

在配置文件中,还可以定义多个路径组,每个路径组包含多个路径,用于提高系统的可靠性和性能。

4. 多路径设备的使用在使用多路径设备时,需要先将其格式化为文件系统,然后挂载到系统中。

在挂载时,可以使用/dev/mapper/路径来代替实际的设备路径,这样可以避免在多路径设备发生故障时,系统无法访问数据的情况。

总结:multipath-tools是一个用于Linux系统的多路径软件,可以将多个路径绑定在一起,形成一个逻辑上的设备,从而提高系统的可靠性和性能。

其原理包括多路径设备的定义、管理、配置和使用。

iSCSI多路径介绍及使用

iSCSI多路径介绍及使用

LINUX下多路径(multi-path)介绍及使用一、什么是多路径普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。

而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。

也就是说,主机到存储可以有多条路径可以选择。

主机到存储之间的IO由多条路径可以选择。

每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。

多路径软件就是为了解决上面的问题应运而生的。

多路径的主要功能就是和存储设备一起配合实现如下功能:1.故障的切换和恢复2.IO流量的负载均衡3.磁盘的虚拟化由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。

并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。

比如EMC公司基于linux下的多路径软件,就需要单独的购买license。

好在, RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。

二、Linux下multipath介绍,需要以下工具包:在CentOS 5中,最小安装系统时multipath已经被安装,查看multipath是否安装如下:1、device-mapper-multipath:即multipath-tools。

主要提供multipathd和multipath 等工具和 multipath.conf等配置文件。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

LINUX下多路径(multi-path)介绍及使用一、什么是多路径普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。

而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。

也就是说,主机到存储可以有多条路径可以选择。

主机到存储之间的IO由多条路径可以选择。

每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。

多路径软件就是为了解决上面的问题应运而生的。

多路径的主要功能就是和存储设备一起配合实现如下功能:1.故障的切换和恢复2.IO流量的负载均衡3.磁盘的虚拟化由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。

并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。

比如EMC公司基于linux下的多路径软件,就需要单独的购买license。

好在,RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。

二、Linux下multipath介绍,需要以下工具包:在CentOS 5中,最小安装系统时multipath已经被安装,查看multipath是否安装如下:1、device-mapper-multipath:即multipath-tools。

主要提供multipathd和multipath等工具和multipath.conf等配置文件。

这些工具通过device mapper的ioctr的接口创建和配置multipath 设备(调用device-mapper的用户空间库。

创建的多路径设备会在/dev /mapper中)。

2、device-mapper:主要包括两大部分:内核部分和用户部分。

内核部分主要由device mapper 核心(dm.ko)和一些target driver(md-multipath.ko)。

核心完成设备的映射,而target根据映射关系和自身特点具体处理从mappered device 下来的i/o。

同时,在核心部分,提供了一个接口,用户通过ioctr可和内核部分通信,以指导内核驱动的行为,比如如何创建mappered device,这些divece的属性等。

linux device mapper的用户空间部分主要包括device-mapper 这个包。

其中包括dmsetup工具和一些帮助创建和配置mappered device的库。

这些库主要抽象,封装了与ioctr通信的接口,以便方便创建和配置mappered device。

multipath-tool的程序中就需要调用这些库。

3、dm-multipath.ko和dm.ko:dm.ko是device mapper驱动。

它是实现multipath的基础。

dm-multipath其实是dm的一个target驱动。

4、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在CentOS 5中的基本配置过程:1、安装和加载多路径软件包# yum –y install device-mapper device-mapper-multipath# chkconfig –level 2345 multipathd on #设置成开机自启动multipathd# lsmod |grep dm_multipath #来检查安装是否正常如果模块没有加载成功请使用下列命初始化DM,或重启系统---Use the following commands to initialize and start DM for the first time:# modprobe dm-multipath# modprobe dm-round-robin# service multipathd start# multipath –v22、配置multipath:Multipath的配置文件是/etc/multipath.conf , 如需要multipath正常工作只需要如下配置即可:(如果需要更加详细的配置,请看本文后续的介绍)blacklist {devnode "^sda"}defaults {user_friendly_names yespath_grouping_policy multibusfailback immediateno_path_retry fail}# vi /etc/multipath.conf3、multipath基本操作命令# /etc/init.d/multipathd start #开启mulitipath服务# multipath -F #删除现有路径# multipath -v2 #格式化路径# multipath -ll #查看多路径如果配置正确的话就会在/dev/mapper/目录下多出mpath0、mpath1等之类设备。

用fdisk -l命令可以看到多路径软件创建的磁盘,如下图中的/dev/dm-[0-3]4、multipath磁盘的基本操作要对多路径软件生成的磁盘进行操作直接操作/dev/mapper/目录下的磁盘就行. 在对多路径软件生成的磁盘进行分区之前最好运行一下pvcreate命令:# pvcreate /dev/mapper/mpath0# fdisk /dev/mapper/mpath0用fdisk对多路径软件生成的磁盘进行分区保存时会有一个报错,此报错不用理会。

fdisk对多路径软件生成的磁盘进行分区之后,所生成的磁盘分区并没有马上添加到/dev/目录下,此时我们要重启IPSAN或者FCSAN的驱动,如果是用iscsi-initiator来连接IPSAN 的重启ISCSI服务就可以发现所生成的磁盘分区了# service iscsi restart# ls -l /dev/mapper/如上图中的mpath0p1和mpath1p1就是我们对multipath磁盘进行的分区# mkfs.ext3 /dev/mapper/mpath0p1 #对mpath0p1分区格式化成ext3文件系统# mount /dev/mapper/mpath0p1 /ipsan/ #挂载mpath0p1分区# mkfs.ext3 /dev/mapper/mpath1p1 #对mpath1p1分区格式化成ext3文件系统# mount /dev/mapper/mpath1p1 /ipsan/ #挂载mpath1p1分区2个都要格式化,2个路径都挂在一个挂载点,可能是这样!!!这个还需要弄清楚。

四、multipath的高有配置以上都是用multipath的默认配置来完成multipath的配置,比如映射设备的名称,multipath 负载均衡的方法都是默认设置。

那有没有按照我们自己定义的方法来配置multipath呢,当可以。

1、multipath.conf文件的配置接下来的工作就是要编辑/etc/multipath.conf的配置文件multipath.conf主要包括blacklist、multipaths、devices三部份的配置blacklist配置blacklist {devnode "^sda"}Multipaths部分配置multipaths和devices两部份的配置。

multipaths {multipath {wwid **************** #此值multipath -v3可以看到alias iscsi-dm0 #映射后的别名,可以随便取path_grouping_policy multibus #路径组策略path_checker tur #决定路径状态的方法path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法}}Devices部分配置devices {device {vendor "iSCSI-Enterprise" #厂商名称product "Virtual disk" #产品型号path_grouping_policy multibus #默认的路径组策略getuid_callout "/sbin/scsi_id -g -u -s /block/%n" #获得唯一设备号使用的默认程序prio_callout "/sbin/acs_prio_alua %d" #获取有限级数值使用的默认程序path_checker readsector0 #决定路径状态的方法path_selector "round-robin 0" #选择那条路径进行下一个IO操作的方法failback immediate #故障恢复的模式no_path_retry queue #在disable queue之前系统尝试使用失效路径的次数的数值rr_min_io 100 #在当前的用户组中,在切换到另外一条路径之前的IO 请求的数目}如下是一个完整的配置文件blacklist {devnode "^sda"}defaults {user_friendly_names no}multipaths {multipath {wwid 14945540000000000a67854c6270b4359c66c272e2f356321alias iscsi-dm0path_grouping_policy multibuspath_checker turpath_selector "round-robin 0"}multipath {wwid 14945540000000000dcca2eda91d70b81edbcfce2357f99eealias iscsi-dm1path_grouping_policy multibuspath_checker turpath_selector "round-robin 0"}multipath {wwid 1494554000000000020f763489c165561101813333957ed96alias iscsi-dm2path_grouping_policy multibuspath_checker turpath_selector "round-robin 0"}multipath {wwid 14945540000000000919ca813020a195422ba3663e1f03cc3alias iscsi-dm3path_grouping_policy multibuspath_checker turpath_selector "round-robin 0"}}device {vendor "iSCSI-Enterprise"product "Virtual disk"path_grouping_policy multibusgetuid_callout "/sbin/scsi_id -g -u -s /block/%n"path_checker readsector0path_selector "round-robin 0"}}获取wwid的方法:(1)默认情况下,将使用/var/lib/multipath/bindings 内的配置设定具体每个多路径设备名,如果在/etc/multipath.conf中有设定各wwid 别名,别名会覆盖此设定。

相关文档
最新文档