新浪微博 | 联系我们
首 页 产品中心 解决方案 成功案例 服务支持 新闻动态 关于我们 联系我们
 服务支持 SERVICES
> 资料下载
> 常见问题解答
> 技术知识库
 产品搜索 SEARCH


 
当前位置:首页 > 服务支持 > 技术知识库 > RHEL 6配置Multipath
RHEL 6配置Multipath
来源:未知    日期:2021-03-08    浏览量:        
分享到:

标签:

RHEL 6.0下Multipath操作手册

一、什么是多路径

普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。
也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。
     另外在linux中,同样的设备在重新插拔、系统重启等情况下,自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序,就有可能导致设备名分配不一致。
1.1 多路径的主要功能
多路径的主要功能就是和存储设备一起配合实现如下功能:
1. 故障的切换和恢复
2. IO流量的负载均衡
3. 磁盘的虚拟化

    由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。
比如EMC公司基于linux下的多路径软件,就需要单独的购买license。好在, RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。
1.2 UUID的作用和意义
   原因1:它是真正的唯一标志符
    UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。
   原因2:设备名并非总是不变的
   自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。如何让它保持在任何系统中的标识,那就是UUID唯一性标识。

二、Linux下Multipath介绍

2.1 查看Multipath是否安装  

查看multipath是否安装如下: 
 [root@testvm1 disk]# rpm -qa |grep device-mapper
device-mapper-event-libs-1.02.74-10.el6.x86_64
device-mapper-multipath-libs-0.4.9-56.el6.x86_64
device-mapper-event-1.02.74-10.el6.x86_64
device-mapper-1.02.74-10.el6.x86_64
device-mapper-libs-1.02.74-10.el6.x86_64
device-mapper-multipath-0.4.9-56.el6.x86_64
 

2.2 Linux下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的属性等。
用户空间部分主要包括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在Redhat中的基本配置过程

3.1安装和加载多路径软件包

# rpm -ivh device-mapper-1.02.39-1.el5.rpm    #安装映射包
 
# rpm -ivh device-mapper-multipath-0.4.7-34.el5.rpm  #安装多路径包
 
或者使用yum进行安装
 
yum -y install device-mapper-multipath-libs.x86_64
yum -y isntall device-mapper-multipath.x86_64
 

3.2设置开机启动

#是否开机自启动
[root@testvm1 dev]# chkconfig --list|grep multipathd
multipathd      0:off   1:off   2:off   3:off   4:off   5:off   6:off
 
# chkconfig --level 2345 multipathd on          #设置成开机自启动multipathd
 
# modprobe -l |grep multipath                      #来检查安装是否正常,内核中是否存在
kernel/drivers/md/dm-multipath.ko
 
 
至此进行了安装并设置了开机启动,但是multipath服务现在还没有启动,如果启动两种办法:
1\重启启动系统 reboot  ,开机自动载入内核并启动服务。
2\手工加载

# modprobe dm-multipath        #加载到内核
#modprobe dm-round-robin
# service multipathd start        #重启服务
 

3.2生成Multipath配置文件

用/sbin/mpatchconf  --enable生成multipath.conf
[root@testvm2 ~]# /sbin/mpatchconf  --enable
[root@testvm2 ~]# ls /etc/multipath.conf
/etc/multipath.conf
(也可以按上面提示将/usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf文件复制到/etc下)

四、Multipath高级配置

 除了可以multipath命令来的默认配置multipath,
比如映射设备的名称、multipath负载均衡。
也可以按照我们自己定义的方法来配置multipath。
首先,需要获取uuid

4.1获取设备的UUID/wwid和路径

通过/sbin/scsi_id -g -u -s /block/sdf 获取uuid/wwid
通过 multipath -v3 命令查看, 注意,会默认生成设备的路径。
multipath -v3

 
1、通过命令查看:
  例如:/sbin/blkid
            /sbin/blkid  /dev/sdg1
但是只能看到已挂接文件系统的存储和分区的uuid,对于裸设备、未挂接的分区看不到uuid。
2、文件查看:ls -l /dev/disk/by-uuid
3、查看文件  ls -l /dev/disk/by-id
 
其中红线部分既是uuid。
 看路径ls -l /dev/disk/by-path/

4.2 配置/etc/multipath.conf

1、     查看设备
# ls -l /dev/

2、     获取设备的uuid
使用multipath 设备名生成设备路径,同时也获取了设备uuid

3、     配置/etc/multipath.conf 文件
# vi /etc/multipath.conf

 将这段中前面的#号删除,或复制后编辑成实际需要的路径配置。

配置了设备sdb 、sdc的多路径
 运行multipath 命令生成路径文件(如果之前已经有该设备的路径文件,不会重新生成)

查看
multipath -ll

   如果是通过光纤多条线路连接的会显示多条连接线路复合成一条链路,这个只是本地硬盘所以只有一条路径,
类似下面的信息:

如果针对设备路径mpath0进行分区,
fdisk /dev/mapper/mpath0

fdisk对多路径软件生成的磁盘进行分区之后,所生成的磁盘分区并没有马上添加到/dev/目录下,此时我们要重启IPSAN或者FCSAN的驱动.如果是用iscsi-initiator来连接IPSAN的重启ISCSI服务就可以发现所生成的磁盘分区了
# service iscsi restart
如果是本地磁盘可以使用partprobe同步磁盘信息(分完区使用partprobe  同步磁盘信息(此命令让kernel会重新读取磁盘分区表,修改生效)或partprobe  /dev/mapper/mpath0  单独同步)
partprobe /dev/mapper/mpath0
 
在/dev/mapper下已有了分区的路径文件
 

 

4.3 关于iscsi_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 基本命令     
 
# multipath              自动生成设备路径,对于没有生成对于没有默认路径的磁盘设备或分区进行自动生成,不会重复生成,包括磁盘的,以及磁盘上的分区的.
                       如果有磁盘sdb 、sdc,磁盘sdb分了四个区,运行multipath
# multipath  设备名      仅对该设备生成路径 ,不能针对设备的分区,针对的是设备
                       命令将自动生成设备路径,在/dev/mapper下会有mpatha、mpathap1 、mpathap2、mpathap3、mpathap4、mpathb等路径。其中mpathap1 、mpathap2、mpathap3、mpathap4是mpatha的分区。
                       实际生成中应先不进行分区,在磁盘的路径上再使用fdisk进行分区.
# multipath -v<1 234>                     #格式化路径,检测路径,合并,自动生成设备路径,对于没有生成对于没有默认路径的磁盘设备或分区进行自动生成,不会重复生成,包括磁盘的,以及磁盘上的分区的.    
                        数字1 - 4,显示的信息不同。
# multipath -F                      #删除现有没有使用的路径,将没有挂载的文件系统、绑定为raw设备的路径删除
# multipath -ll                      #查看多路径状态,不论是multipath.conf文件中配置的还是未配置而使用multipath命令自动生成
#multipath  ll            #查看多路径状态,只显示multipath.conf文件中配置的.
 

[打印本文] [关闭窗口] [返回顶部]
   上一篇:Lenovo ThinkSystem服务器如何将硬盘驱动器添加到现有RAID阵列
   下一篇:vsphere中的vMotion、HA 及 DRS

相关资料  
> IBM storwize V5000存储基础配
公司信息
 > 公司简介
 > 企业文化
 
产品展示
> 服务器产品 全系列产品
> 小型机产品 全系列产品
> 存储产品 全系列产品
> 个人电脑产品 全系列产品
> 网络产品 全系列产品
> 打印机复印机产品 全系列产品
 
解决方案
 >南京IBM存储总代|南京XX大学存储
 >南京联想总代理|南京联想网盘总
 >南京IBM存储总代|IBM 分布式存储
 >南京IBM存储总代理|南京IBM金牌
 >南京IBM存储总代理|南京IBM金牌
 >南京IBM金牌代理|南京IBM存储总
 
技术服务
 >资料下载
 >常见问题解答
 >技术知识库
行业资讯
 >HP 行业资讯
 >H3C 行业资讯
 >联想 行业资讯
 >任子行 行业资讯
 >华为 行业资讯
版权所有:南京宇宽科技有限公司 | 苏ICP备11027572号-4 |