您的位置:首页 > 运维架构 > Linux

Linux多路径的使用及介绍

2013-11-03 13:49 411 查看

多路径(multi-path)软件的介绍

普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择,如下图:

根据上图所示,每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流 量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘 的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。多路径的主要功能就是和存储设备一起配合实现如 下功能:1.磁盘的虚拟化由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。比如EMC公司基于linux下的多路径软件,就需要单独的购买license。好在,RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。本文一下的部分将专门针对Linux下多路径软件的配置安装,以及一些结合实际的操作进行详细的介绍(以下操作均在Suse10 SP1下进行)

多路径软件包的构成

device-mapper-1.02.13-6.9.i586.rpm该软件运行在底层,主要进行设备虚拟化和映射。multipath-tools-0.4.7-34.18.i586.rpm,这个软件包可以在多路径的管理和监控工具,主要进行路径状态的检测,管理工作

多路径软件包的安装

Rpm –ivh device-mapper-1.02.13-6.9.i586.rpmRpm –ivhmultipath-tools-0.4.7-34.18.i586.rpm安装完成后,使用命令modprobe dm_multipath来加载相应的模块,可以使用lsmod |grep dm_multipath来检查安装是否正常。

配置文件的修改及创建

接下来的工作就是要创建一个multipath.conf的配置文件,该文件在安装后不会自动创建。不过有一个模板可以使用,使用如下命令可以创建一个multipath.conf的文件了cp /usr/share/doc/packages/multipath-tools/multipath.conf.synthetic/etc/multipath.conf然后再该文件的最后一段加上如下配置:devices {device {vendor"EMC"//厂商名称product"CaXXXXX"//产品型号path_grouping_policygroup_by_prio //默认的路径组策略getuid_callout"/sbin/scsi_id -p 0x80 -g -u -s /block/%n" //获得唯一设备号使用的默认程序prio_callout"/sbin/acs_prio_alua %d" //获取有限级数值使用的默认程序hardware_handler"1 acs" //确认用来在路径切换和IO错误时,执行特定的操作的模块。path_checkerhp_sw//决定路径状态的方法path_selector"round-robin 0" //选择那条路径进行下一个IO操作的方法failbackimmediate//故障恢复的模式no_path_retryqueue //在disable queue之前系统尝试使用失效路径的次数的数值rr_min_io100 //在当前的用户组中,在切换到另外一条路径之前的IO请求的数目}}编辑modprobe.conf文件,用来设置驱动程序的参数。/etc/modprobe.conf.local增加一行 "options scsi_mod dev_flags=Accusys:ACS92102:0x1000"

重新编译引导文件

"cp -f /boot/initrd-2.6.[kernel_version].img ./initrd-2.6.[k_v].img.bak""mkinitrd"做完上述操作后,注意要将操作系统重新启动

磁盘的分区及使用

创建多路径设备的分区,这里主要一下,多路径的分区只适合使用kpartx工具,不要使用fdisk进行分区。---------------------------------Step2,kpartx -l /dev/dm-0//lists all partitions on this deviceStep3,kpartx -a /dev/dm-0//create all device node on this devicekpartx -a /dev/mapper///多路径的设备不可以使用fdisk进行分区,必须使用kpartx -a进行分区后,再进行格式化。

查看映射关系

Suse3:/sbin # ls -la /dev/disk/by-name/total 0drwxr-xr-x 2 root root 200 Aug1 09:01 .drwxr-xr-x 7 root root 140 Jul 31 18:05 ..lrwxrwxrwx 1 root root10 Aug1 09:01 SAccusys_ACS92102_010c3b973ffbc469ce11eb4d2db9d677 -> ../../dm-5lrwxrwxrwx 1 root root10 Aug1 09:01 SAccusys_ACS92102_010c3b973ffbc469ce11eb4d2db9d677-part1 -> ../../dm-7lrwxrwxrwx 1 root root10 Aug1 09:01 SAccusys_ACS92102_1fbdf62d63e62b625aaea9eb8c7e45cf -> ../../dm-4lrwxrwxrwx 1 root root10 Aug1 09:01 SAccusys_ACS92102_1fbdf62d63e62b625aaea9eb8c7e45cf-part1 -> ../../dm-6lrwxrwxrwx 1 root root10 Aug1 08:46 SAccusys_ACS92102_6d71358b45505925b5bd17ff49d554f3 -> ../../dm-0lrwxrwxrwx 1 root root10 Aug1 08:46 SAccusys_ACS92102_6d71358b45505925b5bd17ff49d554f3-part1 -> ../../dm-1lrwxrwxrwx 1 root root10 Jul 31 18:08 SAccusys_ACS92102_f0ade6db4a8d13de2c30fd5efae7b91c -> ../../dm-2lrwxrwxrwx 1 root root10 Jul 31 18:10 SAccusys_ACS92102_f0ade6db4a8d13de2c30fd5efae7b91c-part1 -> ../../dm-3

几个比较有用的命令

1.start/stop multipathd process "service multipathd start/stop"2.display the multipath topology "multipath -ll" //非常有用的命令。3.display the multipath debug info "multipath -v3"4.Scan the HD "fdisk -l"5.view the FC wwn " cat /sys/class/fc_host/host1/node_name "下面是举例:multipath -llSuccessful info:SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]\_ round-robin 0 [prio=400][active]----//表示当前的正在使用控制器\_ 1:0:1:0 sdc 8:32[active][ready]\_ 1:0:2:0 sdd 8:48[active][ready]\_ 2:0:1:0 sdg 8:96[active][ready]\_ 2:0:2:0 sdh 8:112 [active][ready] ----//c,d,g,h可以理解为路径\_ round-robin 0 [prio=0][enabled]-----//备份控制器\_ 1:0:0:0 sdb 8:16[active][ghost]\_ 1:0:3:0 sde 8:64[active][ghost]\_ 2:0:0:0 sdf 8:80[active][ghost]\_ 2:0:3:0 sdi 8:128 [active][ghost]//faulty info:sdc: checker msg is "hp_sw checker reports path is down" //路径出现故障sdd: checker msg is "hp_sw checker reports path is down" //路径出现故障sdh: checker msg is "hp_sw checker reports path is down" //路径出现故障SAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]\_ round-robin 0 [prio=0][enabled]---- //两个都是enabled状态,一控制器故障,另外一个控制器没有failover。\_ 1:0:1:0 sdc 8:32[failed][faulty]\_ 1:0:2:0 sdd 8:48[failed][faulty]\_ 2:0:1:0 sdg 8:96[failed][faulty]\_ 2:0:2:0 sdh 8:112 [failed][faulty]\_ round-robin 0 [prio=0][enabled]----\_ 1:0:0:0 sdb 8:16[active][ghost]\_ 1:0:3:0 sde 8:64[active][ghost]\_ 2:0:0:0 sdf 8:80[active][ghost]\_ 2:0:3:0 sdi 8:128 [active][ghost]控制器重新启动后,Suse有时候需要重新启动才可以使用。multipath -llSAccusys_ACS92102_3a095edea90dc919f0da043d118fd8c5dm-0 Accusys,ACS92102[size=20G][features=1 queue_if_no_path][hwhandler=1 acs]\_ round-robin 0 [prio=200][active]\_ 1:0:0:0 sdb 8:16[active][ready]\_ 1:0:1:0 sdc 8:32[active][ready]\_ 2:0:0:0 sdd 8:48[active][ready]\_ 2:0:1:0 sde 8:64[active][ready]multipath的所有的相关的文件-rwxr--r--1 rootroot2554 Jun 30 16:26 /etc/init.d/boot.multipath-rwxr--r--1 rootroot3700 Jun 30 16:26 /etc/init.d/multipathddrwxr-xr-x2 rootroot0 Jun 30 16:26 /etc/udevdrwxr-xr-x2 rootroot0 Jun 30 16:26 /etc/udev/rules.d-rw-r--r--1 rootroot1185 Jun 30 16:26 /etc/udev/rules.d/71-multipath.rules-rw-r--r--1 rootroot262 Jun 30 16:26 /etc/udev/rules.d/72-multipath-compat.rules-rwxr-xr-x1 rootroot4872 Jun 30 16:26 /sbin/devmap_name-rwxr-xr-x1 rootroot22824 Jun 30 16:26 /sbin/kpartx-rwxr-xr-x1 rootroot1114 Jun 30 16:26 /sbin/kpartx_id-rwxr-xr-x1 rootroot296 Jun 30 16:26 /sbin/mpath_id-rwxr-xr-x1 rootroot8404 Jun 30 16:26 /sbin/mpath_prio_alua-rwxr-xr-x1 rootroot7852 Jun 30 16:26 /sbin/mpath_prio_balance_units-rwxr-xr-x1 rootroot4208 Jun 30 16:26 /sbin/mpath_prio_emc-rwxr-xr-x1 rootroot5492 Jun 30 16:26 /sbin/mpath_prio_hds_modular-rwxr-xr-x1 rootroot5984 Jun 30 16:26 /sbin/mpath_prio_netapp-rwxr-xr-x1 rootroot3284 Jun 30 16:26 /sbin/mpath_prio_random-rwxr-xr-x1 rootroot4184 Jun 30 16:26 /sbin/mpath_prio_tpc-rwxr-xr-x1 rootroot121888 Jun 30 16:26 /sbin/multipath-rwxr-xr-x1 rootroot146996 Jun 30 16:26 /sbin/multipathddrwxr-xr-x2 rootroot0 Jun 30 16:26 /usr/share/doc/packages/multipath-tools-rw-r--r--1 rootroot49 Nov 112005 /usr/share/doc/packages/multipath-tools/AUTHOR-rw-r--r--1 rootroot25284 Nov 112005 /usr/share/doc/packages/multipath-tools/COPYING-rw-r--r--1 rootroot195 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/ChangeLog-rw-r--r--1 rootroot15 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/README-rw-r--r--1 rootroot9238 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/multipath.conf.annotated-rw-r--r--1 rootroot1499 Jun 30 16:25 /usr/share/doc/packages/multipath-tools/multipath.conf.synthetic-rw-r--r--1 rootroot424 Jun 30 16:26 /usr/share/man/man8/devmap_name.8.gz-rw-r--r--1 rootroot544 Jun 30 16:26 /usr/share/man/man8/kpartx.8.gz-rw-r--r--1 rootroot2048 Jun 30 16:26 /usr/share/man/man8/mpath_prio_alua.8.gz-rw-r--r--1 rootroot979 Jun 30 16:26 /usr/share/man/man8/multipath.8.gz-rw-r--r--1 rootroot489 Jun 30 16:26 /usr/share/man/man8/multipathd.8.gzdrwx------2 rootroot0 Jun 30 16:26 /var/cache/multipath

小技巧

存储添加映射或者做了修改,主机不用重新启动的方法echo 1 > /sys/class/fc_host/host1/issue_lipecho 1 > /sys/class/fc_host/host2/issue_lipecho "- - -" > /sys/class/scsi_host/host1/scanecho "- - -" > /sys/class/scsi_host/host2/scan重启服务,让配置文件生效的方法:1.Stop the multipathd service.2.Clear old multipath bindings by entering/sbin/multipath -F3.Create new multipath bindings by entering/sbin/multipath -v2 -lStart the multipathd service. //更改配置文件后需要做上面的操作才可以让配置文件的更改生效。如果连接一切都正常,但是suse在操作系统下看不到磁盘。这时可能需要重新启动存储系统。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: