IBMHACMP双机热备实施Hacmp(HighAvailabilityClusterMulti-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卡设置成TargetMode方式。1、作为双机系统的两台服务器(主机A和B)同时运行Hacmp软件;2、服务器除正常运行自机的应用外,同时又作为对方的备份主机;主机A(运行应用):Service_ip:172.16.1.1Standby_ip:172.16.2.1Boot_ip:172.16.1.3主机B(standby):Service_ip:172.16.1.2Standby_ip:172.16.2.2Boot_ip:172.16.1.43、两台主机系统(A和B)在整个运行过程中,通过“心跳线”相互监测对方的运行情况(包括系统的软硬件运行、网络通讯和应用运行情况等);4、一旦发现对方主机的运行不正常(出故障)时,故障机上的应用就会立即停止运行,本机(故障机的备份机)就会立即在自己的机器上启动故障机上的应用,把故障机的应用及其资源(包括用到的IP地址和磁盘空间等)接管过来,使故障机上的应用在本机继续运行;5、应用和资源的接管过程由Ha软件自动完成,无需人工干预;6、当两台主机正常工作时,也可以根据需要将其中一台机上的应用人为切换到另一台机(备份机)上运行。二、Hacmp安装配置前需作的准备工作1、划分清楚两台服务器主机各自要运行的应用(如A机运行应用,B机作为standby);2、给每个应用(组)分配Service_ip、Standby_ip、boot_ip和心跳线tty,如:3、按照各主机的应用的要求,建立好各自的磁盘组,并分配好磁盘空间;4、根据Ha软件的要求,对服务器操作系统的参数作必要的修改。三、IBMHACMP双机服务器系统的解决方案HACMP的安装配置步骤如下:(一)在两台服务器上分别安装HACMP软件#smitinstallp(二)分别检查两台主机上安装的软件是否成功#/usr/sbin/cluster/diag/clverifysoftwareclusterclverifysoftwareValidOptionsare:lppclverify.softwarelpp若没有error出现则安装成功。(三)分别配置两台服务器的bootIP地址和StandbyIP地址,保证boot网和Standby网能ping通(用smittcpip命令),用netstat命令检查配置是否正确:#netstat-i(四)利用smittty在两台主机上增加一个TTY接口,配置心跳线(RS232):#smittyttyTTYtty0TTYtypettyTTYinterfacers232DescriptionAsynchronousTerminalStatusAvailableLocation20-70-01-00Parentadaptersa2PORTnumber[0]EnableLOGINdisableBAUDrate[9600]PARITY[none]BITSpercharacter[8]NumberofSTOPBITS[1]用lsdev–Cctty查看tty是否配置好。#lsdev–Cctty在两台上分别输入如下命令:S85_1#cat/etc/hosts/dev/tty0S85_2#cat如果在S85_2机能接收到信息,则表明心跳线已经配置好。(五)具体配置及技巧注:HACMP的配置(或修改配置)只需要在其中的一台主机上进行,当配置(或修改)完毕后使用同步命令将配置结果传到另外一台主机上。一般选S85_1在进行配置。在S85_1上运行smithacmp,然后按照下面的步骤进行配置:#smithacmp1、ClusterConfiguration1.1、配置ClusterTopology配置ConfigureCluster/AddaClusterDefinition*ClusterID[100]*ClusterName[sb_ha]配置ConfigureNodes,增加两个Node*NodeNames[s85_a]*NodNames配置ConfigureAdapters,分别配置两台机的service地址,boot地址,standby地址及tty(a_svc、b_svc、a_boot、b_boot、a_stdby、b_stdby、a_tty、b_tty)*AdapterIPLabela_svcNetworkType[ether]NetworkName[ethnet]NetworkAttributepublicAdapterFunctionserviceAdapterIdentifier[172.16.1.1]AdapterHardwareAddress[]NodeName[s85_a]修改/etc/hosts及/.rhosts文件,如:修改/etc/hosts文件,增加以下内容:172.16.1.1a_svc172.16.1.2b_svc172.16.1.3a_boot172.16.1.4b_boot172.16.2.1a_stdby172.16.2.2b_stdby修改/.rhosts文件,增加以下内容:a_svcb_svca_bootb_boota_stdbyb_stdby1.2、同步cluster(ClusterConfiguration/ClusterTopology/SynchronizeClusterTopology)在进行同步的时候可以先进行模拟(Emulate)同步,当模拟同步OK后再进行实际(actual)同步:SynchronizeClusterTopologyTypeorselectvaluesinentryfields.PressEnterAFTERmakingalldesiredchanges.[TOP][EntryFields]IgnoreClusterVerificationErrors?[No]+*EmulateorActual?[Emulate]+2、配置ClusterResources2.1、定义一个资源组(DefineResourceGroups)注意,在定义资源组的时候,要注意ParticipatingNodeNames的先后顺序。ResourceGroupNamedata_resNewResourceGroupName[]NodeRelationshipcascadingParticipatingNodeNames[s85_as85_b]2.2、定义应用服务器(DefineApplicationServers)ServerNameora_appNewServerName[]startScript.[/etc/start]StopScript.[/etc/stop]2.3、修改资源组属性(Change/ShowResourcesforaResourceGroup)data_res组:ResourceGroupNamedata_resNodeRelationshipcascadingParticipatingNodeNamess85_as85_bServiceIPlabel[a_svc]Filesystems(defaultisall)[]FilesystemsConsistencyCheckfsckFilesystemsRecoveryMethodsequentialFilesystemstoExport[]FilesystemstoNFSmount[]VolumeGroups[datavglogvg]ConcurrentVolumegroups[]RawDiskPVIDs[]ApplicationServers[ora_app]2.4、同步资源组(SynchronizeClusterResources)在进行同步的时候可以先进行模拟(Emulate)同步,当模拟同步OK后再进行实际(actual)同步:SynchronizeClusterResourcesTypeorselectvaluesinentryfields.PressEnterAFTERmakingalldesiredchanges.[TOP][EntryFields]IgnoreClusterVerificationErrors?[No]+*EmulateorActual?[Emulate]+3、HACMP的启动及关闭(1)启动过程:#smitclstart#tail–f/tmp/hacmp.outMay2217:29:23EVENTCOMPLETED:node_up_completes85_a如果/tmp/hacmp.out文件显示类似上述信息,则表明HACMP在本机上可以正常启动。(2)关闭过程:#smitclstop4、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就会丢失。此时node1上的clustermanager(HACMP的“大脑”)会产生一个swap-adapter的事件,并执行该事件的script(HACMP中提供了大部分通用环境下的事件scripts,它们是用标准AIX命令和HACMP工具来写的)。每个节点上都有至少两块网卡,一块是serviceadapter,提供对外服务,另一块是standbyadapter,它的存在只有clustermanager知道,应用和client并不知道。一旦发生swap-adapter事件后,clustermanager将原来serviceadapter的IP地址转移到standbyadapter上,而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事件。此时将有资源接管,即放在共享磁盘陈列上的资源将由备份节点接管,接管包