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

Linux下配置多路径

2016-04-13 10:20 791 查看
什么是多路径 

普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,或者由iSCSI组成的IPSAN环境,由于主机和存储通过了光纤交换机或者多块网卡及IP来连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的IO由多条路径可以选择。每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。

多路径的主要功能就是和存储设备一起配合实现如下功能:  

1.故障的切换和恢复  

2.IO流量的负载均衡  

3.磁盘的虚拟化  

由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买license才行。比如EMC公司基于linux下的多路径软件,就需要单独的购买license。好在, RedHat和Suse的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。

1、安装多路径软件包:


device-mapper-1.02.67-2.el5

device-mapper-event-1.02.67.2.el5

device-mapper-multipath-0.4.7-48.el5

[root@RKDB01 Server]# rpm -ivh device-mapper-1.02.67-2.el5.x86_64.rpm 

warning: device-mapper-1.02.67-2.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

        package device-mapper-1.02.67-2.el5.x86_64 is already installed

[root@RKDB01 Server]# rpm -ivh device-mapper-event-1.02.67-2.el5.x86_64.rpm 

warning: device-mapper-event-1.02.67-2.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

        package device-mapper-event-1.02.67-2.el5.x86_64 is already installed

[root@RKDB01 Server]# rpm -ivh device-mapper-multipath-0.4.7-48.el5.x86_64.rpm 

warning: device-mapper-multipath-0.4.7-48.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 37017186

Preparing...                ########################################### [100%]

        package device-mapper-multipath-0.4.7-48.el5.x86_64 is already installed

2、设置开机启动,并检查安装包是否正常:

chkconfig --level 345 multipathd on

lsmod |grep dm_multipath

[root@RKDB01 Server]# chkconfig --level 345  multipathd on

[root@RKDB01 Server]# lsmod |grep dm_multipath

dm_multipath           58969  0 

scsi_dh                42561  1 dm_multipath

dm_mod                102417  4 dm_mirror,dm_multipath,dm_raid45,dm_log

[root@RKDB01 Server]# 

3、配置multipathd 使其正常工作,编辑/etc/multipath.conf,开放如下内容:

defaults {

        udev_dir                /dev

        polling_interval        10

        selector                "round-robin 0"

        path_grouping_policy    multibus

        getuid_callout          "/sbin/scsi_id -g -u -s /block/%n"

        prio_callout            none

        path_checker            readsector0

        rr_min_io               100

        max_fds                 8192

        rr_weight               priorities

        failback                immediate

        no_path_retry           fail

        user_friendly_names     yes

}

blacklist {

       wwid 26353900f02796769

        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"

        devnode "^hd[a-z]"

}

4、并关闭如下内容

#blacklist {

#        devnode "*"

#}

#defaults {

     27 #       user_friendly_names yes

     28 #}

5、完成之后执行如下命令发现多路径:
[root@RKDB01 Server]# modprobe dm-multipath

[root@RKDB01 Server]# multipath -F

[root@RKDB01 Server]# multipath dm-multipath

[root@RKDB01 Server]# multipath dm-round-robin

[root@RKDB01 Server]# service multipathd restart

正在关闭multipathd 端口监控程序:                          [确定]

正在启动守护进程multipathd:                               [确定]

[root@RKDB01 Server]# multipath -v2

[root@RKDB01 Server]# multipath -v2

[root@RKDB01 Server]# multipath -ll

mpath1 (3600d02310000011b16a5d57c6a1bd99a) dm-0 TOYOU,NetStor_iSUM510

[size=3.3T][features=0][hwhandler=0][rw]

\_ round-robin 0 [prio=2][ena bled]

 \_ 1:0:0:0 sdb 8:16  [failed][ready]

 \_ 1:0:1:0 sdc 8:32  [failed][ready]

[root@RKDB01 Server]# 

6、重启服务器后,我们可以看到多路径信息了:

[root@RKDB01 ~]# ll /dev/mapper/

总计 0

crw------- 1 root root  10, 60 11-05 22:35 control

brw-rw---- 1 root disk 253,  0 11-05 22:35 mpath1

brw-rw---- 1 root disk 253,  1 11-05 22:35 mpath2

[root@RKDB01 ~]# multipath -ll

mpath2 (3600d02310000011b76128b9c63138cf4) dm-1 TOYOU,NetStor_iSUM510

[size=3.2T][features=0][hwhandler=0][rw]

\_ round-robin 0 [prio=2][active]

 \_ 1:0:0:1 sdc 8:32  [active][ready]

 \_ 1:0:1:1 sde 8:64  [active][ready]

mpath1 (3600d02310000011b16a5d57c6a1bd99a) dm-0 TOYOU,NetStor_iSUM510

[size=20G][features=0][hwhandler=0][rw]

\_ round-robin 0 [prio=2][active]

 \_ 1:0:0:0 sdb 8:16  [active][ready]

 \_ 1:0:1:0 sdd 8:48  [active][ready]

7、通过fdisk 看可以生成了DM-0/DM-1两个盘,正是上面sdc/sde,sdb/sdd多路径后出来的:

[root@RKDB01 ~]# fdisk -l

Disk /dev/sda: 299.4 GB, 299439751168 bytes

255 heads, 63 sectors/track, 36404 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          38      305203+  83  Linux

/dev/sda2              39       13092   104856255   83  Linux

/dev/sda3           13093       19619    52428127+  83  Linux

/dev/sda4           19620       36404   134825512+   5  Extended

/dev/sda5           19620       26146    52428096   83  Linux

/dev/sda6           26147       28757    20972826   83  Linux

/dev/sda7           28758       30324    12586896   82  Linux swap / Solaris

/dev/sda8           30325       36404    48837568+  83  Linux

Disk /dev/sdb: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

Disk /dev/sdc: 3568.4 GB, 3568429957120 bytes

255 heads, 63 sectors/track, 433836 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdc doesn't contain a valid partition table

Disk /dev/sdd: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdd doesn't contain a valid partition table

Disk /dev/sde: 3568.4 GB, 3568429957120 bytes

255 heads, 63 sectors/track, 433836 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sde doesn't contain a valid partition table

Disk /dev/dm-0: 21.4 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-0 doesn't contain a valid partition table

Disk /dev/dm-1: 3568.4 GB, 3568429957120 bytes

255 heads, 63 sectors/track, 433836 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

Disk /dev/sdf: 4009 MB, 4009754624 bytes

255 heads, 63 sectors/track, 487 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

/dev/sdf4   *           1         488     3915744+   b  W95 FAT32

Partition 4 has different physical/logical endings:

     phys=(486, 254, 63) logical=(487, 125, 22)

[root@RKDB01 ~]# 

8、我们同时也可以在/dev/mapper目录中查看到多路径映射的信息:

[root@RKDB01 ~]# ll /dev/mapper/

总计 0

crw------- 1 root root  10, 60 11-06 00:49 control

brw-rw---- 1 root disk 253,  2 11-06 00:49 data-data001

brw-rw---- 1 root disk 253,  0 11-06 00:49 mpath1

brw-rw---- 1 root disk 253,  1 11-06 00:49 mpath2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: