HACMP配置方案总结

本资料无预览

如感兴趣请购买后下载

立即下载

资料简介:
Hacmp(High Availability Cluster Multi-Processing)双机热备份软件的主要功能是提高客户计算机系统及其应用的可靠性,而不是单台主机的可靠性。
一、Hacmp双机系统的工作原理
HACMP的工作原理是利用LAN来监控主机及网络、网卡的状态。在一个HACMP环境中有TCP/IP网络和非TCP/IP网络。TCP/IP网络即应用客户端访问的公共网,该网可以是大多数AIX所支持的网络,如Ethernet,T.R.,FDDI,ATM,SOCC,SLIP,等等。非TCP/IP网络用来为HACMP对HA环境(Cluster)中的各节点进行监控而提供的一个替代TCP/IP的通讯路径,它可以是用RS232串口线将各节点连接起来,也可以是将各节点的SCSI卡或SSA卡设置成Target Mode方式。
1、作为双机系统的两台服务器(主机A和B)同时运行Hacmp软件;
2、服务器除正常运行自机的应用外,同时又作为对方的备份主机;
主机A(运行应用):                 Service_ip:      172.16.1.1                 Standby_ip:      172.16.2.1                 Boot_ip:         172.16.1.3主机B(standby):                 Service_ip:      172.16.1.2                 Standby_ip:      172.16.2.2                 Boot_ip:         172.16.1.4
3、两台主机系统(A和B)在整个运行过程中,通过 “心跳线”相互监测对方的运行情况(包括系统的软硬件运行、网络通讯和应用运行情况等);
4、一旦发现对方主机的运行不正常(出故障)时,故障机上的应用就会立即停止运行,本机(故障机的备份机)就会立即在自己的机器上启动故障机上的应用,把故障机的应用及其资源(包括用到的IP地址和磁盘空间等)接管过来,使故障机上的应用在本机继续运行;
5、应用和资源的接管过程由Ha软件自动完成,无需人工干预;
6、当两台主机正常工作时,也可以根据需要将其中一台机上的应用人为切换到另一台机(备份机)上运行。


HACMP双机系统结构图

二、Hacmp安装配置前需作的准备工作

1、划分清楚两台服务器主机各自要运行的应用(如A机运行应用,B机作为standby);

2、给每个应用(组)分配Service_ip、Standby_ip、boot_ip和心跳线tty,如:

3、按照各主机的应用的要求,建立好各自的磁盘组,并分配好磁盘空间;

4、根据Ha软件的要求,对服务器操作系统的参数作必要的修改。

三、IBM HACMP双机服务器系统的解决方案
HACMP的安装配置步骤如下:
(一)在两台服务器上分别安装HACMP软件

#smit installp

(二)分别检查两台主机上安装的软件是否成功

#/usr/sbin/cluster/diag/clverify
software
cluster
clverify>software
Valid Options are:
lpp
clverify.software> lpp
若没有error出现则安装成功。
(三)分别配置两台服务器的boot IP地址和Standby IP地址,保证boot 网和Standby网能ping通(用smit tcpip命令),用netstat命令检查配置是否正确:

#netstat -i

(四)利用smit tty在两台主机上增加一个TTY接口,配置心跳线(RS232):
#smitty tty      TTY                                        tty0      TTY type                                   tty      TTY interface                              rs232      Description                                Asynchronous Terminal      Status                                     Available      Location                                   20-70-01-00      Parent adapter                             sa2     PORT number                                [0]                    Enable LOGIN                               disable                      BAUD rate                                  [9600]                        PARITY                                     [none]                        BITS per character                         [8]                           Number of STOP BITS                        [1]
用lsdev –Cc tty查看tty是否配置好。

#lsdev –Cc tty

在两台上分别输入如下命令:

S85_1# cat /etc/hosts >/dev/tty0
S85_2# cat

如果在S85_2机能接收到信息,则表明心跳线已经配置好。
(五)具体配置及技巧
注:HACMP的配置(或修改配置)只需要在其中的一台主机上进行,当配置(或修改)完毕后使用同步命令将配置结果传到另外一台主机上。一般选S85_1在进行配置。
在S85_1上运行smit hacmp,然后按照下面的步骤进行配置:
#smit hacmp
1、 Cluster Configuration
1.1、配置Cluster Topology
  配置Configure Cluster/ Add a Cluster Definition      * Cluster ID                          [100]                       * Cluster Name                       [sb_ha]配置Configure Nodes,增加两个Node    * Node Names                                    [s85_a]    * Node Names                                    [s85_b]配置Configure Adapters,分别配置两台机的service地址,boot地址,standby地址   及tty(a_svc、b_svc、a_boot、b_boot、a_stdby、b_stdby、a_tty、b_tty)    * Adapter IP Label                             a_svc       Network Type                                  [ether]                       Network Name                                  [ethnet]                     Network Attribute                             public                       Adapter Function                              service                      Adapter Identifier                            [172.16.1.1]      Adapter Hardware Address                      [ ]      Node Name                                     [s85_a] 修改/etc/hosts及/.rhosts文件,如:修改/etc/hosts文件,增加以下内容:      172.16.1.1            a_svc      172.16.1.2            b_svc      172.16.1.3            a_boot      172.16.1.4            b_boot      172.16.2.1            a_stdby      172.16.2.2            b_stdby修改/.rhosts文件,增加以下内容:      a_svc      b_svc      a_boot      b_boot      a_stdby      b_stdby

1.2、同步cluster(Cluster Configuration/ Cluster Topology/ Synchronize Cluster Topology)
在进行同步的时候可以先进行模拟(Emulate)同步,当模拟同步OK后再进行实际(actual)同步:
Synchronize Cluster Topology
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[TOP] [Entry Fields]
Ignore Cluster Verification Errors? [No] +
* Emulate or Actual? [Emulate] +

2、配置Cluster Resources
2.1、定义一个资源组(Define Resource Groups)
注意,在定义资源组的时候,要注意Participating Node Names的先后顺序。
Resource Group Name                           data_res      New Resource Group Name                       []    Node Relationship                             cascading      Participating Node Names                      [s85_a  s85_b]    2.2、定义应用服务器(Define Application Servers)    Server Name                                   ora_app      New Server Name                               [ ]    start Script                                  [/etc/start]    Stop Script                                   [/etc/stop]    2.3、修改资源组属性(Change/Show Resources for a Resource Group)    data_res组:            Resource Group Name                       data_res       Node Relationship                         cascading       Participating Node Names                  s85_a  s85_b       Service IP label                          [a_svc]       Filesystems(default is all)               []                       Filesystems Consistency Check             fsck        Filesystems Recovery Method               sequential       Filesystems to Export                     []        Filesystems to NFS mount                  []                 Volume Groups                             [datavg logvg]        Concurrent Volume groups                  []                  Raw Disk PVIDs                            []         Application Servers                       [ora_app]
2.4、同步资源组(Synchronize Cluster Resources)
在进行同步的时候可以先进行模拟(Emulate)同步,当模拟同步OK后再进行实际(actual)同步:

Synchronize Cluster Resources
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[TOP] [Entry Fields]
Ignore Cluster Verification Errors? [No] +
* Emulate or Actual? [Emulate] +

3、HACMP的启动及关闭
(1)启动过程:

#smit clstart
#tail –f /tmp/hacmp.out
May 22 17:29:23 EVENT COMPLETED: node_up_complete s85_a
如果/tmp/hacmp.out文件显示类似上述信息,则表明HACMP在本机上可以正常启动。
(2)关闭过程:

#smit clstop

4、HACMP功能的测试
在HACMP配置完成并检查没有错误后,即可按3的方法启动HACMP,进行功能测试。包括应用在同一台服务器的两个网卡能否切换,在两台服务器间能否切换等。可用命令:

#netstat-in
来看地址的切换情况
四、HACMP常见的故障解决方法
HACMP将诊测并响应于三种类型的故障:1网卡故障,2网络工作,3节点故障。下面就这三种故障分别进行介绍。
1、网卡故障
HACMP的群集结构中,除了TCP/IP网络以外,还有一个非TCP/IP网络,它实际上是一根“心跳”线,专门用来诊测是节点死机还是仅仅网络发生故障。如下图所示,一旦节点加入了 Cluster(即该节点上的HACMP已正常启动),该节点的各个网卡、非TCP/IP网络就会不断地接收并送Keep-Alive信号,K-A的参数是可调的,HA在连续发送一定数量个包都丢失后就可确认对方网卡,或网络,或节点发生故障。因此,有了K-A后,HACMP可以很轻易地发现网卡故障,因为一旦某块网卡发生故障发往该块网卡的K-A就会丢失。
此时node 1上的cluster manager( HACMP的“大脑”)会产生一个swap-adapter的事件,并执行该事件的script(HACMP中提供了大部分通用环境下的事件 scripts,它们是用标准AIX命令和HACMP工具来写的)。每个节点上都有至少两块网卡,一块是service adapter,提供对外服务,另一块是standby adapter,它的存在只有cluster manager知道,应用和client并不知道。
一旦发生swap-adapter事件后,cluster manager将原来service adapter的 IP地址转移到standby adapter上,而standby地址转移到故障网卡上,同时网络上其他节点进行ARP的刷新。网卡互换(swap-adapter)在几秒内就可完成,以太网为3秒,并且这种转换对应用和client来说是透明的,只发生延迟但连接并不中断。
2、网络故障
如果发往node1上的service和standby网卡上的K-A包全都丢失,而非TCP/IP网络上的K-A仍然存在,那么HACMP判断node1仍然正常而网络发生故障。此时HACMP执行一个。
3 、节点故障
如果不仅TCP/IP网络上的K-A全部丢失,而且非TCP/IP网络上的K-A也丢失,那么HACMP断定该节点发生故障,并产生node-down事件。此时将有资源接管,即放在共享磁盘陈列上的资源将由备份节点接管,接管包括一系列操作:Acquire disks,Varyon VG, Mount file systems,Export NFS file systems, Assume IP network Address, Restart highly available applications,其中IP地址接管和重新启动应用由HACMP来实现,而其他是由AIX来完成。
当整个节点发生故障时,HACMP将故障节点的service IP address转移到备份节点上,使网络上的client仍然使用这个IP地址,这个过程称为IP地址接管(IPAT),当一个节点down掉后,如果设置了IP地址接管,网络上的clients会自动连接到接管节点上;同样,如果设置了应用接管,该应用会在接管节点上自动重启,从而使系统能继续对外服务。对于要实现接管的应用,只需在HACMP中把它们设置成application server,并告诉HACMP启动这个应用的start script的全路径名和停止该应用的stop script的全路径名。由此可见,应用接管的配置在HACMP中十分简单,重要的是start script和stop script的写作,这需要用户对自己应用的了解。
4、其他故障
HACMP只去检测网卡、网络和节点是否发生故障,并作出相应的转移、接管行为。对于其他故障,那么HACMP缺省不作任何动作。
a、硬盘故障
一般我们都将硬盘设置成RAID-5方式或mirror方式,从而提供硬盘的高可用性。RAID-5将奇偶较验位分散在硬盘组中,因此当一组内的一个硬盘坏掉,组内的其他硬盘可以通过奇偶较验位将该硬盘上的数据恢复出来。RAID-5方式一般是由硬件实现的,如下7133的SSA适配器,而且如果同一组内的两个硬盘坏掉,该组硬盘的数据很可能就会全部丢失。mirror方式是将同一个数据写到至少两个物理外置上,因此它的效率没有RAID-5好,而且用盘量大,但安全性比RAID-5高,而且它易于实现,通过AIX中的(Logic Volume Management)可以很方便地设置。
b、硬盘控制卡
存储设备连接到主机上都必须通过一块控制卡,SCSI设备是SCSI Adapter, SSA设备是SSA Adapter,如果这块卡坏掉,与之连接的外设就无法利用。有几种办法可以解决这个问题。
一种办法是用多个adapter。每个主机上都有两块或两块以上adapter,分别连接mirror的数据,因此无论是硬盘坏掉,还是Adapter坏掉,所有好数据还是可以被主机利用,不会出现单点故障。这种方法实现起来并不难,但必须配置多块adapter,而且必须采用数据mirror方式。这种方法也不用通过HACMP来实现。
另一种方法仍只用一块adapter,利用HACMP中的Error Notification Facility( 错误通告机制)来解决。
Error Notification Facility是HACMP提供的对其他设备的监控工具,任何报告给AIX的错误(error)都能被捕获被采取相应措施。HACMP提供了smit界面,使配置简单化。
我们已知道,用LVM可实现硬盘镜像,当一个盘坏掉,仍有一份数据在镜像盘里,数据仍可进行读写,但此时数据不再有可用性,若镜像盘也坏掉则数据全部丢失。所以在此例中,PV丢失(LVM_PVMISS)的信息会大幅显示在控制台面上,从而提醒用户去仔细查看error log找出故障并修复它。同样,此例中HACMP提供了界面,结合AIX的功能,从而监控故障的发生。
c.、应用故障
如果用户的应用有kernel call调用,或以root身份来启动等,一旦应用发生故障,很容易导致操作系统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允许应用程序利用这些状态信息来采取相应行动。
d.、HACMP故障
如果cluster中节点的HACMP进程down掉,HACMP将其升级为节点故障,从而发生资源接管。
如上所述,HACMP只全权负责诊断网卡故障、网络故障和节点故障这三类故障,并负责实现IP地址转换或接管,以及整个系统资源( 硬件、文件、系统、应用程序,等等)的接管。对于这三类故障外的其他故障,可以结合AIX基本功能和HACMP提供的一些机制,如Error Notification Facility, clinfo API 等,同样可以实现对故障的监控并采取相应措施。
2009-10-16
浏览11520
下载0

已下载用户的评价

您还未下载该资料,不能发表评价;
查看我的 待评价资源
daoguo525daoguo525系统工程师世纪五岳(北京)科技有限公司2014-02-23
没用
学习了,谢谢楼主!
我爱aix我爱aix技术总监维修公司2014-02-22
没用
我觉得这方案算比较可靠了,技术很先进
hshm8023hshm8023系统分析师test2014-02-21
没用
很好很详细!:handshake
pysx0503pysx0503系统工程师第十区。散人2014-02-21
没用
简单明了。思路清晰。让初学者很容易理解。支持
mdl9630mdl9630系统运维工程师西安民航凯亚科技2014-01-27
没用
挺好的,学习了!
pwrypwry售前技术支持成都成冠实业有限公司2012-01-04
没用
谢谢,非常详细
mi_zymi_zy软件开发工程师民航山西空管分局2011-01-15
没用
内容翔实,还有图,好谢了
antinousantinous系统架构师中金富捷数据设备技术有限公司2011-01-11
没用
又补了一遍知识。
taotaotaotao软件开发工程师广州咨元信息科技有限公司2011-01-11
没用
很不错啊
monk2008monk2008系统架构师yinhe2010-11-15
没用
谢谢分享....

贡献者

simon_cheng系统运维工程师,颀中科技(苏州)有限公司
X社区推广