这是我第一次做双机热备和存储,以前只是自己玩玩linux 再深入的东西就没有了,对存储也只有一个大概的认识。所以这个系统调试对我来说很有意义,而且确实遇到了很多问题,放在这里和大家分享,共同学习,因为我也是第一次做 ,双机热备的软件是用的专业软件,所以这里对双机的探讨不多。
硬件:服务器:两台hp dl 380g4 ,双cpu ,两块scsi硬盘78g(smart array 6i控制器),做成raid1,hba卡为每台服务器两块qlogic2300,板带双网卡bcm5700
光交换机 两台 hp storage works 2/8q fiber channel switch
5m FC cable x 6
msa1000 1个 控制器2个。(右边是主,左边是从),raid1+0,14块硬盘(都是148g)
软件:redhat 2.1 (kernel 2.4.9-e3) 惠普带的smartstart cd
开始:
硬盘做成raid1,可以在开始按f8在bios(是不是叫bios啊,反正台式机里这么叫)里边对两块硬盘做初始化,创建logic分区。不过最好是用服务器带的smart cd 里边的工具还是很好用的,最好在安装前先看好所带的说明书。
安装linux系统
1、硬盘问题
因为要与以前的系统兼容,所以需要安装redhat 7.2,后来又换成了2.1,首先就是安装时候系统认不出硬盘,因为服务器只带了for win 和 netware 的驱动(不知道for netware的驱动行不行 能不能用,我没试),去惠普的英文网站上下载了for 380G4的smart array 6i 的驱动程序,用rawwrite做成驱动软盘,安装时用 linux dd,成功加载驱动,系统安装成功。
--说明:如果随机带的东西没有你需要的驱动,那么去hp英文网站找驱动吧,那里比较全,很多你在中文网站上是根本就找不到的(鄙视一下,为什么就不把中文支持做的好一些),如果hp网站上没有,可以去板卡的生产厂家去找(比如网卡,hba卡什么的)。
2、网卡驱动
网卡是bcm5700,这个可以在bios里边看到的,安装后网卡当然是认不出来了 内核太老了,去下载了驱动,结果安装完成后用不了,insmod bcm5700后提示内核版本不对,呵呵,折腾了几次,换了几个版本的驱动尝试(不知道这样会不会有什么潜在的危险),最后,我仔细看了几个驱动的安装说明,最后安装了最正确的版本的驱动程序,(注意:这里我要说的是,仔细阅读安装的说明文件是很重要的,我就是按照上边提示的步骤一步一步去做,最后做成了)安装终于成功。insmod 加载模块后,设置好网卡的地址什么的,记住要按照安装说明在/etc/modules.conf里边加上相关的说明语句。安装完成后系统启动后会自动加载模块,因为在安装驱动的时候这部分已经被编译进了内核。这和后边的hba卡驱动不同。
3、hba卡驱动
hba卡实际上是qlogic的qla2300
还是去qlogic网站上下载驱动,具体的安装过程我就不说了去按照说明安装,只要你选对了版本,比网卡的安装要简单多了。
安装好后insmod qla2300,光纤交换机的灯终于亮了。然后的一个问题就是:系统启动时候光纤卡驱动不会自动load,那么在rc.local 里边加上吧,这样系统启动的最后,会加载这个模块,我在里边加的语句是:
insmod qla2300 ql2xfailover=1
这里重点说说failover参数,这个参数的作用就是把两路光纤通路绑定为一路。我试过不加failover参数,就可以杂dmesg里边看到加载了sda和sdb两个空间,所以要加这个参数。还有一个作用就是双路切换,如果一路出现问题,有这个参数就可以自动切换到另一路,很多人讨论的 secure path 其实就是一个用第三方软件来实现failover参数的功能,因为支持failover(并不是所有hba卡都支持这个参数),所以我没有安装三方软件。
到这里linux系统的安装就完成了。双机软件我们用的专业软件,配置方面是厂家做的,不再多说。
msa1000的初始,用带的smartstart cd 去对msa1000进行初始化设置,这部分只要根据安装说明文档根据需要进行,也不多说了。初始化好以后。就可以把它作为sda1 mount到系统里边去了。
4、故障的排除。
全部安装好以后,做了几次测试,就是把服务器、光交换机进行人造故障,使其不能正常工作,观察是否能够保持系统的可用性,所谓热备也就是这么回事吧。(具体点,服务器全好,光交换机全好;一台服务器好,两台光交换机好,两台服务器好,一台光交换机好,一台服务器好,一台光交换机好,翻来覆去试吧,最好把可能的情况都试试,要对客户负责^_^)
后来发现问题了:两台服务器有时候可以正常切换,但是有时候双机是可以切换的,但是系统的数据库服务却无法正常运行,看日志,不能mount sda1,此时我做试验,lsmod看qla2300已经正常加载了,fdisk -l 无法看到sda 。出问题的是服务器1,我试用rmmod qla2300,然后再insmod qla2300 ql2xfailover=1,加载过程很漫长(仔细观察的话,可以发现这点,聪明的你可能已经会找出问题所在了),加载后,还是无法mount, 我再试,停止,再次加载模块,这次我用的是insmod qla2300,没有加failover参数,结果加载成功,可mount,再观察msa1000,控制器已经切换到另外一台了,此时,如果我对这套系统稍有经验,或者能够静些心 仔细分析,能够马上就得出hba卡有问题的结论(因为灯都亮,但是仔细观察,会发现有一路灯是在切换时候不闪烁的),但是当时关心则乱。以为是软件安装设置有问题,(仔细想想,第二台服务器是正常的,两台服务器的软件是相同的),调了很久,最后,我觉得和msa的控制器有关,因为两个控制器当其中从控制器起作用时候,那么系统是运行正常的,当主控制器控制时,就会有1号服务器无法正常mount的问题,我把1号服务器的两条光纤位置换一下,发现这时候主控制器控制时 能正常,从控制器控制时,系统有问题,而直到这时(该打!!)我猛然发现二号服务器完全正常啊,然后把二号服务器的一块hba卡拔下来到1号服务器上单独试,一切正常。(在这里说起来简单,其实中间先后测了卡和不同的插槽,试了很多次),确定问题所在:hba卡。
为什么呢?因为只有1路是好的,所以只有连接到一台交换机的通路是通的,而那台交换机刚好连接到msa 的从控制器。这样当从控制器控制时,我加不加failover参数,服务器都能找到一条通道来看到msa1000,一切都正常,而当主控制器控制时, 我加failover参数,这时候正常的一路因为连接的是从控制器,无法看到msa1000,而failover到另外一路,这时候因为hba卡有问题,所以是找不到通路的,所以failover失败。这时候是看不到msa的,当我手工rmmod后再从新用insmod2300,不加failovre,此时服务器自动去找好的链路去msa,这时候加载成功了,而且msa1000的控制器会切换到1号服务器正常线路所在的从控制器来进行控制。(msa1000会接受服务器的控制信号?)
这就是我第一次调试的过程,还有很多地方不懂,估计配置里可能会存在问题,希望高手看了,能给出些指引。
网卡和阵列卡的驱动都应该直接从hp站点上下载,又专门的驱动的.
FCA2214(oem qlogic2312) 在firmware上还是和原来的那个不太一样的,msa1000的controller, SSP要打开,connection profile要选择正确的操作系统. 这些如果都不做好,用起来会有问题的.