rhel4中配置FC多路径管理
一、测试环境:
服务器:IBM bladecenter HS21
存储: Netapp FAS2050 (双控制器)
操作系统:Redhat Enterprise4 u4
实验目的:通过rhel4连接上Netapp存储,并使用系统自带device-mapper-multipath软件来测试多路径的冗余和负载均衡功能
,以保证用户数据的高可用性和高可靠性。
二、测试步骤
1.部署测试环境,主机上两块Emulex光线卡连接到光纤交换机,通过光纤交换机再连接到Netapp存储,形成SAN拓扑结构。并划
分1个10G的LUN分配给主机。
2.主机安装操作系统(rhel4),并安装Emulex光纤卡驱动程序和相关软件(略)
所需软件(系统光盘自带):
(1)device-mapper-1.02.07-4.0.RHEL4.i386.rpm #该软件运行在底层,主要进行设备虚拟化和映射。
(2)device-mapper-multipath-0.4.5-16.1.RHEL4.i386.rpm(可能需要自己安装) #通过device-mapper-multipath用户工具来
验证多路径的负载均衡及路径失效切换功能:
3、启动多路径管理软件
a、使用fdisk命令能看到系统识别出来的4个磁盘设备,这是多条路径得到的设备名,实际上指向存储上的同一个LUN,这说明
Linux已经正确识别到了存储划分出来的LUN。
[root@blade2-2 tmp]# fdisk -l
Disk /dev/sda: 146.0 GB, 146000000512 bytes
255 heads, 63 sectors/track, 17750 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 17750 142472452+ 8e Linux LVM
Disk /dev/sdb: 10.7 GB, 10714349568 bytes
64 heads, 32 sectors/track, 10218 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
Disk /dev/sdc: 10.7 GB, 10714349568 bytes
64 heads, 32 sectors/track, 10218 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
Disk /dev/sdd: 10.7 GB, 10714349568 bytes
64 heads, 32 sectors/track, 10218 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
Disk /dev/sde: 10.7 GB, 10714349568 bytes
64 heads, 32 sectors/track, 10218 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Device Boot Start End Blocks Id System
[root@blade2-2 tmp]#
实际上这4个设备对应的是同一个LUN,只不过通过不同的路径看到的。
b、(1)、编辑文件/etc/multipath.conf。在文件头部注释掉如下内容:
devnode_blacklist {
devnode "*"
}
如下例:
# devnode_blacklist {
# devnode "*"
# }
(2)、取消文件 /etc/multipath.conf中这段的注释,这段内容可以让 device-mapper multipathing 不用扫描所有的设备。
etc/multipath.conf file:
defaults {
multipath_tool "/sbin/multipath -v0"
udev_dir /dev
polling_interval 10
default_selector "round-robin 0"
default_path_grouping_policy multibus
default_getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
default_prio_callout "/bin/true"
default_features "0"
rr_wmin_io 100
failback immediate
}
devnode_blacklist {
wwid 26353900f02796769
devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
devnode "^hd[a-z][0-9]*"
devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
}
这段设置了默认的 device-mapper 的动作,并且去出了通常不会有多路径的设备,如IDE硬盘和软盘。
(3)、为了实现简单的failover功能,下例中,defaults 组中的默认的 default_path_grouping_policy 选项被设置成为 failover
。
defaults {
multipath_tool "/sbin/multipath -v0"
udev_dir /dev
polling_interval 10
default_selector "round-robin 0"
default_path_grouping_policy failover
default_getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
default_prio_callout "/bin/true"
default_features "0"
rr_wmin_io 100
failback immediate
}
c、退出编辑并保存设置,执行如下命令
modprobe dm-multipath
modprobe dm-round-robin
service multipathd start
multipath -v2 #命令 multipath -v2 可以显示多路径,从而可以知道那些设备工作在多路径下。如果没有任何输出,确认所有的SAN连接被正
确的设置,系统有没有正确的开启多路径功能。执行如下命令确认多路径服务有无启动。
chkconfig multipathd on
4、然后执行dmsetup ls --target multipath,这个命令将会返回一个长的数字。你会看到一个>类似(255, #)的输出,其中的
#就是设备映射号。这个数字可以用来对照哪个dm设备对应系统的多路径设备组,例如/dev/dm-2.
[root@blade2-2 ~]# dmsetup ls --target multipath
mpath1 (253, 2)
此时可以看到/dev/dm-2就是多路径设备组。
5、使用fdisk命令对/dev/dm-2设备进行分区并格式化文件系统,挂载即可使用。
fdisk /dev/dm-2 对dm-2设备进行分区,分区后的信息为/dev/mpath/dm-2p1
mkfs.ext3 /dev/mpath/dm-2p1
mount /dev/mpath/dm-2p1 /directory