RHEL 5.5 下解决 IBM DS4700 的多路径问题
普通的电脑主机都是一个硬盘挂接到一个总线上,这里是一对一的关系。而到了有光纤组成的SAN环境,由于主机和存储通过了光纤交换机连接,这样的话,就构成了多对多的关系。也就是说,主机到存储可以有多条路径可以选择。主机到存储之间的 I/O 由多条路径可以选择,如下图:
根据上图所示,每个主机到所对应的存储可以经过几条不同的路径,如果是同时使用的话,I/O 流量如何分配?其中一条路径坏掉了,如何处理?还有在操作系统的角度来看,每条路径,操作系统会认为是一个实际存在的物理盘,但实际上只是通向同一个物理盘的不同路径而已,这样是在使用的时候,就给用户带来了困惑。多路径软件就是为了解决上面的问题应运而生的。多路径的主要功能就是和存储设备一起配合实现如下功能:
故障的切换和恢复
I/O 流量的负载均衡
磁盘的虚拟化
由于多路径软件是需要和存储在一起配合使用的,不同的厂商基于不同的操作系统,都提供了不同的版本。并且有的厂商,软件和硬件也不是一起卖的,如果要使用多路径软件的话,可能还需要向厂商购买 License 才行。比如EMC公司基于 Linux 下的多路径软件,就需要单独的购买 License。好在, RedHat 和 Suse 的2.6的内核中都自带了免费的多路径软件包,并且可以免费使用,同时也是一个比较通用的包,可以支持大多数存储厂商的设备,即使是一些不是出名的厂商,通过对配置文件进行稍作修改,也是可以支持并运行的很好的。但是,RedHat 自带的多路径软件包配置起来比较复杂一些,由于公司采购的是 IBM DS4700,所以我们采用了一种更简单便捷的方法来解决多路径问题。如果对如何配置 RedHat 自带的 multipath 多路径包感兴趣,请参考这篇文章。下面我来具体介绍一下如何在 RHEL 5.5 下解决 IBM DS4700 的多路径问题:
使用 unmae -r 命令查看当前 Linux 系统的内核版本:
[root@HQSUGAPP01 ~]# uname -r
2.6.18-92.el5PAE
[root@HQSUGAPP01 ~]#
下载 RDAC 驱动,登陆 rdac 官方网站。例如:rdac-LINUX-09.03.0C05.0504-source.tar.gz的描述,我们可以知道该驱动支持 RHEL5-u5 : 2.6.18-194
在 Linux 系统中安装驱动
[root@HQSUGAPP01 media]# tar -zxvfrdac-LINUX-09.03.0C05.0504-source.tar.gz
[root@HQSUGAPP01 media]# cdlinuxrdac-09.03.0C05.0504/
[root@HQSUGAPP01linuxrdac-09.03.0C05.0504]# make
[root@HQSUGAPP01linuxrdac-09.03.0C05.0504]# make install
编译时如果无法完成,请检查RDAC 驱动版本是否与 Linux 系统内核版本一致,以及 Linux 是否安装了编译所需的相关组件。
安装成功后,可以在/boot 目录下看到mpp-2.6.18-92.el5PAE.img 的文件:
[root@HQSUGAPP01linuxrdac-09.03.0C05.0504]# ls /boot/mpp-2.6.18-92.el5PAE.img
/boot/mpp-2.6.18-92.el5PAE.img
编辑 grub 启动菜单,加入启动项(加粗字体表示添加或更改的信息):
[root@HQSUGAPP01linuxrdac-09.03.0C05.0214]# vi /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grubafter making changes to this file
# NOTICE: You have a /boot partition. Thismeans that
# all kernel and initrd paths are relativeto /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version roroot=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
# boot=/dev/sda
default=2
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Red Hat Enterprise Linux Server(2.6.18-92.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-92.el5 roroot=/dev/VolGroup00/LogVol00 console=tty1 console=ttyS1,115200 rhgb quiet
initrd /initrd-2.6.18-92.el5.img
title Red Hat Enterprise Linux Server(2.6.18-92.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-92.el5
module /vmlinuz-2.6.18-92.el5xen roroot=/dev/VolGroup00/LogVol00 console=tty1 console=ttyS1,115200 rhgb quiet
module /initrd-2.6.18-92.el5xen.img
titleRed Hat Enterprise Linux Server (2.6.18-92.el5PAE)
root(hd0,0)
kernel/vmlinuz-2.6.18-92.el5PAE ro root=/dev/VolGroup00/LogVol00 console=tty1console=ttyS1,115200 rhgb quiet
initrd/mpp-2.6.18-92.el5PAE.img
重新启动 Linux 系统
大功告成