当前位置: 首页 > 科技观察

LinuxMultipath多路径配置详解:概念、配置、常用维护命令等

时间:2023-03-12 01:05:36 科技观察

Linux平台上的一些存储产品使用了操作系统自带的多路径软件,包括HP和HP的一些最常见的存储产品。IBM,Linux自带的多路径软件,世界上称为多路径。那么问题来了,什么是多路径?普通的电脑主机都有一个硬盘接在总线上,这里是一对一的关系。而当涉及到光纤组成的SAN环境,或者iSCSI组成的IPSAN环境时,由于主机和存储是通过光纤交换机或者多个网卡和IP连接的,这种情况下是多对多的关系形成。也就是说,从主机到存储有多条路径可供选择。主机和存储之间的IO有多种路径可供选择。每个主机都可以通过几条不同的路径到达相应的存储。如果同时使用,I/O流量如何分配?其中一条路径坏了,如何处理?从操作系统的角度来看,每一个Path,操作系统都会认为是一个实际的物理磁盘,但实际上只是通向同一个物理磁盘的不同路径,给用户在使用时带来困惑.多路径软件就是为了解决以上问题。一、多路径介绍在redhat中,安装操作系统时已经默认安装了多路径。查看安装状态#rpm-qa|grepdevice-mapper说明:(1)device-mapper-multipath:multipath-tools。主要提供multipathd、multipath等工具和multipath.conf等配置文件。创建的多路径设备将在/dev/mapper中。(2)device-mapper:主要包括内核部分和用户部分两部分。内核部分主要包括devicemappercore(dm.ko)和一些targetdrivers(md-multipath.ko)。core完成设备的映射,target根据映射关系和自身特点具体处理来自被映射设备的i/o。用户空间部分主要包括device-mapper包。其中包括dmsetup工具和一些库,以帮助创建和配置映射设备。这些库主要是对与ioctr通信的接口进行抽象和封装,方便创建和配置映射设备。这些库需要在multipath-tool的程序中调用。(3)dm-multipath.ko和dm.ko:dm.ko是devicemapper驱动。它是实现多路径的基础。dm-multipath实际上是dm的目标驱动程序。(4)scsi_id:包含在udev程序包中,该程序可以在multipath.conf中配置,获取scsi设备的序列号。通过序号可以判断多条路径对应同一个设备。这是多路径实现的关键。当多路径程序创建多路径设备时,它会调用scsi_id从其标准输出中获取设备的scsiid。改写时需要将scsi_id程序的返回值修改为0。因为在多路径程序中,会检查这个值来判断scsiid是否已经成功获取。2、多路径详细配置因为安装操作系统的时候已经安装了多路径软件包,这里就不用再安装了。如果未安装,则需要手动安装。1、检查安装是否正常。#lsmod|grepdm_multipath如果模块没有加载成功,使用以下命令初始化DM:#modprobedm-multipath#modprobedm-round-robin#servicemultipathdstart#multipath–v22。编辑配置文件#cat/etc/multipath。confblacklist{devnode"^sda"}defaults{user_friendly_namesno}multipaths{multipath{wwid3600508b4000892b90002a00000050000#Disk的WWIDaliascomsys-dm0#映射后的别名,自己命名-robin0"#选择那条下一条线路路径}{wwid3600508b4000892b90002a00000090000aliascomsys-dm1path_grouping_policymultibuspath_checkerturpath_selector"round-robin0"}multipath{wwid3600508b4000892b90002a00000140000aliascomsys-backuppath_grouping_policymultibuspath_checkerturpath_selector"round-robin0"}}devices{device{vendor"HP"#Manufacturername,whichcanbeobtainedthroughmultipath–v3product"HSV300"#Productmodelpath_grouping_policymultibus#Defaultpathgrouppolicygetuid_callout"/sbin/scsi_id-g-u-s/block/%n"#获取程序使用的默认设备号path_checkerreadsector0#判断路径状态的方法path_selector"round-robin0"#选择那个路径进行下一次IO操作的方法#failbackimmediate#失败恢复模式#no_path_retryqueue#系统尝试使用失败路径的次数的值beforedisablequeue#rr_min_io100#在当前用户组中,切换到其他路径前的IO请求数}}ps:其中wwid、vendor、product、getuid_callout等参数可以通过multipath-v3命令获取if在/etc/multipath.conf中设置了每个wwid别名,别名将覆盖此设置。3.如何获取WWID(1)使用/etc/multipath/bindings/etc/multipath/bindings中的配置来设置每个多路径设备的具体名称。如果在/etc/multipath.conf中设置了wwid别名,别名会覆盖此设置。#cat/etc/multipath/bindings(2)通过multipath-v3命令获取#multipath-v34。启动multipathd服务,设置自动启动#servicemultipathdrestart#chkconfig--level345multipathdon#chkconfig--list|grepmultipathd5。检查多路径聚合后,设备名称和设备的链路状态非常重要。#multipath-ll6。查看配置是否成功。如果配置正确,/dev/mapper/目录下会多出mpath0和mpath1(自动分配的名字)。但是,如果在配置时创建了别名,则将使用别名代替自动分配的名称#ll/dev/mapper/使用fdisk-l命令查看多路径软件创建的磁盘#fdisk-l空间有限,关于Linux多路径配置的内容就介绍到这里。