扫一扫
关注微信公众号

征文:四大要点管理维护双机热备系统 上
2007-11-15   IT168

本人在省信息中心负责电子政务技术支持与运行管理,为了保证政务外网WEB系统、公务员考试网上申报、在线访谈等一些关键业务的稳定运行,我们采用了多台双机热备系统。

理解双机热备,必须要认清这样几点:

1. 对于一台服务器而言,坏的可能总是存在的。故障的原因多种多样,包括硬件、软件、人为故障等,任何一个环节都有可能发生。
2. 服务中断不仅可能发生在管理员在的时候,也可能发生在机房空无一人的时候,而一台跑着应用系统的数据库服务器,并不是很容易就能恢复的。
3. 数据备份当然是重要的数据保护措施,但只是事后的解决方法,无法预防应用停止。
4. RAID只能解决硬盘的问题,解决不了服务器的问题。

当然如果系统中没重要应用,我们没必要考虑双机热备。或者我们可以容忍应用系统停止运行一天,双机系统也并非十分重要。但是,如果应用停上一个小时就会带来严重的问题,那么就无疑应该考虑一下双机系统,而如果业务系统停上十分钟都难以承受,这时候双机热备方案就是必须的了。

双机系统实际上是服务器应用的冗余备份,但是因为通常采用外置磁盘阵列存储数据,因而企业可以更方便集中的对数据进行管理和备份,从而进一步提高整个系统的效率和可用性。当一台服务器上的应用发生故障时,系统可以方便无缝的切换到另外一台服务器,承担起原有该服务器所承担的大部分应用,从而保证业务的不停顿运行。最重要的是,整个切换过程是自动进行的,前端几乎很难察觉到后台的服务器系统的故障。

双机热备系统本身已经是较为稳定的系统,这表现在双机热备系统已经具备了一定的抗风险能力,但是双机热备系统也意味着更复杂的管理、维护和升级工作。因此,在这里,我们通过两台IBM P630小型机和7133磁盘阵列实现双机热备为例,来说明通过HACMP 5.1来实现AIX 5.2的Oracle 9i数据库主从热备系统的运行维护和升级管理工作。

1

IBM HACMP双机热备方案说明

HACMP 是 High Availability Cluster Multi-Processing 的缩写。HACMP 是 IBM 公司在 P 系列 AIX 操作系统上的高可靠集群软件,配置冗余,消除单点故障,保证整个系统连续可用性和安全可靠性。HACMP是利用网络来侦测主机及网卡的状况,搭配AIX所提供的硬盘镜像等功能,在主机、网卡、硬盘控制卡、硬盘或网络任何一个环节发生故障时,都可自动切换到另一套备用元件上重新工作;若是主机故障还切换至备份机上继续应用系统的运行。

""

图1

""

图2

如上图,两台主机A和B分别都安装AIX 5.2系统,HACMP软件和Oracle 9i数据库,数据和应用系统安装在7133磁盘阵列上。作为双机系统的两台服务器A和B同时运行 HACMP 软件,一台P630作为主机A运行oracle 9i和应用系统,另一台P630作为备份机B处于备份状态(此时没有运行数据库和应用系统)。

在整个运行过程中,通过 串口的SCSI“心跳线”相互监测对方的运行情况 (包括系统的软硬件运行、网络通讯和应用运行情况等)一旦发现对方主机A运行不正常时,备份机B就会立即在自己的机器上启动应用,把主机A的应用及其资源(包括用到的IP地址和磁盘空间等)接管过来,使主机A上的应用在备份机B继续运行。

主机和备份机的确定取决于哪台机器先启动了HACMP服务,先启动的就是主机,另外一台就是备份机。应用和资源的接管过程由 HACMP 软件自动完成,无需人工干预;当两台主机正常工作时,也可以根据需要将其中一台机上的应用人为切换到另一台机 (备份机)上运行。

双机系统的维护与管理更为复杂一点,在双机热备系统的维护与管理中,个人认为以下四大环节是必须注意的:

1

一、重视双机热备的启动程序

双机热备系统的开机顺序是必须重视的,我们以前不久机房的一次断电事故来说明双机热备系统启动程序的重要性。

由于单位进行机房改造,需要切换市电。为保证业务不间断运营,我们通过60KVA的梅兰日蓝UPS给机房提供不间断供电,同时考虑到60KVA所带的负载较重,关闭了一些不重要的服务器,也做了一些应急措施。但是当机房停电5分钟时间后,UPS突然宕机,随即机房的所有网络设备和服务器全体“罢工”。

检查UPS发现供电电池出现问题,不能提供30分钟的正常供电,我们只好重新恢复市电工作。断电前由于没有及时关闭P630小型机和7133磁盘阵列的电源开关,当市电启用时,小型机和7133磁盘阵列也就自动启动了。

AIX系统起来后,我们到两台小型机上查看运行ORACLE数据库和应用系统时,发现找不到“数据盘”,用Lsvg显示当前系统的所有卷组,发现只有rootvg,没有datavg,而数据卷组是放在7133磁盘阵列上的。这就是典型的因为掉电造成的非正常关机和开机导致了无法正常启动。

在这个方案中,双机热备系统正确的开机步骤应当是这样的:

  • 先开外设如磁盘阵列7133和磁带机
  • 然后再开两台主机A和B
  • 等主机AIX系统启动后,然后再分别启动HACMP服务,注意不能同时启动HACMP服务
  • 最后启动ORACLE数据库和应用系统。
  • 关机则正好相反,先关闭ORACLE数据库服务和应用系统,再停止HACMP服务,然后关闭主机系统,最后关闭磁盘阵列7133和磁带机。

所以启动双机热备系统的时候遵循正确的启动程序非常重要,在上面的案例中,因为来电时,小型机和磁盘阵列同时启动,等AIX启动好后就认不出磁盘阵列等外设了。解决方法是关闭小型机和7133磁盘阵列,再按照规范开机顺序开启系统,等AIX系统起来后,启动HACMP,再查看数据卷组时,就能找到了。启动数据库和应用服务,测试结果一切正常。这一点与现在的PC机操作不同,外设和主机同时启动都不会出什么问题的。

此外,在使用HACMP服务时,两台小型机也不能同时打开,必须按先后顺序来开机。这是因为我们采用的双机热备模式是主从热备,启动HACMP服务的先后顺序决定了哪一台作为主机,哪一台作为备机。因此,当两台机器同时启动的时候,就会造成HACMP服务运行“混乱”,结果当一台小型机发生故障时,另外一台小型机不能进行自动接管,不能真正达到双机热备的效果。

同样地关机时也要严格按照关机顺序,如果先关闭7133磁盘阵列时,就有可能引发的数据丢失。这必须要引起大家在运行维护中高度重视,否则的话,造成数据丢失,后果将是非常严重的。

1

二、定期查询HACMP的运行状态
我们需要定期地查询HACMP 双机系统的状态,在双机系统的运行当中,我们经常需要知道双机系统的当前状态,才有可能对双机系统出现的异常情况进行恢复处理,才能保证双机系统的高可用性和高容错性。查询HACMP 双机系统的状态只需以root 用户进入需要查询的节点进行下列操作:

首先检查HACMP 双机软件在该节点是否已启动命令如下。
# lssrc -g cluster

若是系统显示出下面类似的信息则说明HACMP 双机软件已正常启动。
Subsystem Group PID Status
clstrmgr cluster 22500 active
clsmuxpd cluster 23674 active
clinfo cluster 28674 active

在已确认双机软件HACMP 正常启动的情况下在命令行执行下述命令来察看双机系统的当前状态。
# /usr/sbin/cluster/clstat -a

HACMP运行时只去检测网卡、网络和节点是否发生故障,并作出相应的转移、接管行为。对于其他故障,那么HACMP缺省不作任何动作。对于双机热备时出现硬盘控制卡和应用故障处理方法,一般是结合AIX基本功能和HACMP提供的一些机制,如Error Notification Facility, clinfo API 等,同样可以实现对故障的监控并采取相应措施。

如果用户的应用有kernel call调用,或以root身份来启动等,一旦应用发生故障,很容易导致AIX操作系统down掉,发生死机。这时实际上等于节点故障,HACMP会采取相应接管措施。如果只是应用自身死掉,AIX仍正常运行,HACMP最多利用Error Notification Facility来提供监控功能,对应用本身不采取任何动作。

但如果应用中调用了AIX的SRC (System Resource Controller)机制所提供的API接口,就可以使应用在down掉后自动重新启动。除了SRC提供API接口外,HACMP中的clinfo也提供这样的API。clinfo是cluster Information daemon,它负责维护整个cluster的状态的信息,clinfo API允许应用程序利用这些状态信息来采取相应行动。

1

热词搜索:

上一篇:VLAN的无线接入
下一篇:征文:四大要点管理维护双机热备系统 下

分享到: 收藏