SUSE-多路径Device-Mapper+Multipath

  • 格式:doc
  • 大小:322.50 KB
  • 文档页数:18

Device-Mapper Multipath

一 DM-Multipath概述

DM-Multipath 能够使服务器与存储控制器间multiple I/O路径变成一个单一的设备。I/O路径是由线缆、交换机、控制器组成的物理SAN。DM-Multipath能够创建一个由I/O路径聚集组成的新设备。

在不配置DM-Multipath的情况下,盘阵的一个LUN从控制器主机端口映射到服务器,在操作系统里被识别成一个独立的设备,这样就会造成同一个LUN通过盘阵不同的主机端口映射到服务器被识别成不同的设备。作为一种解决方案,DM-Multipath通过在物理设备上创建一个单独的多路径设备,提供了一种在逻辑上管理I/O路径的机制,这样盘阵的LUN从控制器主机端口映射到服务器,在操作系统里被识别成一个多路径设备。

每个多路径设备拥有一个唯一标识的World Wide Identifier(全球识别号,WWID),默认情况下,多路径设备的名称被设置成它的WWID。通过修改multipath.conf文件中的user_friendly_names选项参数,可以设置多路径设备的别名为mpathn。例如如下的配置环境:一个拥有两个HBA的服务器通过一个未配置zone的FC交换机连接到有两个主机端口的盘阵控制器(盘阵仅有一个LUN)上,在操作系统里能够看到四个设备:/dev/sda, /dev/sdb,

dev/sdc, 和/dev/sdd。通过配置multipath.conf文件,DM-Multipath就会创建一个拥有WWID的多路径设备,多路径设备受控于DM-Multipath,我们可以在三个不同目录查看多路径设备:/dev/目录;/dev/mapper/mpathn,/dev/mpath/mpathn;/dev/dm-n.。使用/dev/mapper目录中的设备名对多路径设备进行管理,如创建逻辑卷,创建文件系统等。/dev/mpath将所有的多路径设备放到该目录下,只是便于查看,不要使用该目录下的设备进行创建逻辑卷,创建文件系统等操作。/dev/dm-n只是用于系统内部的使用,不要使用这里面的设备。

二 DM-Multipath功能

DM-Multipath能够提供:

冗余

在active/passive模式中,DM-Multipath提供失效转移功能。active/passive环境中,在任何时间内只有一半的I/O路径被使用。如果一个I/O路径内的元素例如线缆、交换机、控制器失效,DM-Multipath切换到轮换的路径。

提高性能

DM-Multipath能够被配置在active/ active模式下,在这种模式下,I/O路径处于round-robin方式。DM-Multipath能够动态的平衡I/O负荷。

三 DM-Multipath应用环境示例

① Active/ Passive Multipath Configuration with One RAID Device

该配置里服务器有两个HBA,两个SAN交换机和两个控制器。从服务器到一个RAID存在两个I/O路径。如下图:

该配置中,第一条I/O路径通过hba1,SAN1和controller1 。第二条I/O路径通过hba2,SAN2和controller2。这个配置中存在多种潜在的失效因素:

HBA failure

FC cable failure

SAN switch failure

Array controller port failure

如果出现以上任何一个失效点,DM-Multipath会切换到轮换的路径。

② Active/Active Multipath Configuration with One RAID Device

该配置里服务器有两个HBA,一个SAN交换机和两个控制器,如下图:

该配置中,从服务器到一个存储存在四条I/O路径:

hba1 to controller1 hba1 to controller2

hba2 to controller1

hba2 to controller2

配置DM-Multipath后,DM-Multipath能够监测每条I/O路径的负载,动态的平衡I/O负荷。

四Setting Up DM-Multipath

在系统准备DM-Multipath之前,请确保系统包含device-mapper-multipath包,操作系统安装光盘内包含该rpm包。

①编辑/etc/multipath.conf文件,将以下内容的注释移除,使multipathing功能开启。

blacklist {

devnode "*"

}

修改完应如下

# blacklist {

# devnode "*"

# }

②保存配置

③modprobe dm-multipath

service multipathd start

multipath –v2 // multipath –v2命令输出多路径设备,如果没有任何输出,确保SAN正确连接。

④chkconfig multipathd on //确保multipath daemon 开机自动启动

⑤本地的硬盘设备不建议使用DM-Multipath,需要将本地硬盘从多路径设备中忽略。有两种方式,方式一:

vi /etc/multipath.conf

将blacklist {

devnode "*"

}

修改成

blacklist {

devnode "^sda" //扫描除本地硬盘的多路径设备

}

方式二:

/etc/multipath.conf文件中添加

blacklist{

wwid SIBM-ESXSST336732LC____F3ET0EP0Q000072428BX1(该值为本地硬盘的WWID)

}

然后再运行

multipath –F

multipath –v2 [root@rh4cluster1 ~]# multipath –F

//移除多路径设备

[root@rh4cluster1 ~]#

multipath -v2

create: 3600a0b80001327d80000006d43621677

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:0 sdb 8:16

\_ 3:0:0:0 sdf 8:80

create: 3600a0b80001327510000009a436215ec

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:1 sdc 8:32

\_ 3:0:0:1 sdg 8:96

create: 3600a0b80001327d800000070436216b3

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:2 sdd 8:48

\_ 3:0:0:2 sdh 8:112

create: 3600a0b80001327510000009b4362163e

[size=12 GB][features="0"][hwhandler="0"]

\_ round-robin 0

\_ 2:0:0:3 sde 8:64

\_ 3:0:0:3 sdi 8:128

⑥大多数的磁盘阵列型号支持DM-Multipath,如果要添加的设备不是/etc/multipath.conf文件里默认支持的设备,可以参照默认配置添加设备情况,例如添加一个如下的设备:

devices {

device {

vendor "HP"

product "OPEN-V."

getuid_callout "/sbin/scsi_id -g -u -p0x80 -s

/block/%n"

}

}

附:北大某学院项目实际案例:

项目实施过程中由于要实现光纤链路的多路径,由于DS6310FE没有提供LINUX下的多路径冗余软件,所以采用了LINUX系统下的device mapper multipath解决方案。

SAN组织结构如下:

DS6310FE:双控制器,每个控制器2个4G FC主机端口,全部连接到FC交换机。4组RAID,其中一个LUN同时映射给三个主机,其它三个LUN分别映射给各自的主机。

Brocade 200E FC Switch

Server:每个配置一个Qlogic QLE2460 HBA卡,连接交换机

这样LUN到主机的光纤链路存在多个。

以下为配置步骤

①# rpm -qa | grep device-mapper

device-mapper-1.02.13-1.el5 device-mapper-multipath-0.4.7-8.el5 如果显示如上说明系统已经安装了device-mapper-multipath,如果未安装,在安装光盘可以找到该rpm包进行安装

# rpm -ivh device-mapper-multipath-0.4.7-8.el5.i386.rpm

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

1:device-mapper-multipath##################### [100%]

#

②配置/etc/multipath.conf文件

进行备份,cp /etc/multipath.conf /etc/multipath.conf.bak

vi /etc/multipath.conf

将devnode_blacklist {

devnode "*"

}

修改成

devnode_blacklist {

devnode "^sda" //扫描除本地硬盘的多路径设备

}

③执行# multipath -v3

load path identifiers cache

#

# all paths in cache :

#

222770001551df74d 6:0:0:0 sdb 8:16 1 [active] Dawning /Diskarray DS6310/0330

222f5000155f4aab4 6:0:0:1 sdc 8:32 1 [active] Dawning /Diskarray DS6310/0330

222770001551df74d 6:0:1:0 sdd 8:48 1 [active] Dawning /Diskarray DS6310/0330

222f5000155f4aab4 6:0:1:1 sde 8:64 1 [active] Dawning /Diskarray DS6310/0330

222770001551df74d 6:0:2:0 sdf 8:80 1 [active] Dawning /Diskarray DS6310/0330

222f5000155f4aab4 6:0:2:1 sdg 8:96 1 [active] Dawning /Diskarray DS6310/0330