Ibm Hacmp

HACMP全攻略

HACMP全攻略之概念篇

一些容易混淆或常被问及的问题、基本概念、什么情况下不要用HA

一些容易混淆或常被问及的问题:

  • hacmp不是错误避免,只能减少宕机时间,不可能避免。
  • 不是有了HA就OK的,它需要包括各种软硬件、仔细的设计规划及管理等,ha软件只是其中一部分。
  • hacmp是通过减少单点故障来减少宕机时间的。
  • hacmp的plan非常重要,要仔细考虑。
  • hacmp既可以减少计划外的宕机时间,也可以减少计划内的宕机时间。90%的宕机时间是计划内的,减少计划内的宕机时间只能靠管理员不断提高自己的水平来解决了。
  • hacmp是无法解决所有问题的,ha解决不了诸如硬盘、硬盘适配器、硬盘总线的损坏,当然也解决不了ha自身的问题。这些问题应该在操作系统层面上解决。
  • 可以通过自定义的事件来实现大多数个性化的需求。
  • hacmp心跳信号用的是snmp协议,同时在TCP/IP和非TCP/IP网络上跑,非TCP/IP包括RS232/RS422、SSA、SCSI等。所以心跳线不只是使用串口线。
  • 没有配非TCP/IP网络的,即没有心跳线的HA是可以跑的。前面已经说了心跳信号在TCP/IP网络上也在跑。但是,没有非TCP/IP网络的HA是无法区分TCP/IP失败还是节点失败,这样的话网络的失败会造成孤立的节点,备用会对资源进行错误的接管。
  • hacmp es最多可支持128个节点,但实际很少会见到超过3个节点的Cluster。
  • 任何时候都不要kill ha进程。
  • 即使用了ha,备份依旧是不可缺少的。

基本概念

  • 拓扑:一个逻辑概念,包括节点、网络、网卡以及之间的关系。
  • 资源:ip地址、文件系统、卷组、应用等。
  • 资源组:一组资源,包含在接管中所要用的所有资源。一个节点可以有多个资源组。
  • 应用服务器:启动/停止应用的脚本。
  • 同步:在所有节点中更新配置,ha 4.x拓扑和资源是分开同步的,5以后就只要同步一次就可以了。
  • 事件:状态的改变。可以通过自定义事件来实现个性化的要求。
  • 进程:核心进程包括clstrmgr和clsmuxpd。此外还有,clinfo-提供显示群集的状态,cllockd-提供并发控制,在concurrent模式下使用。
  • cascading模式,有优先级,按优先级来接管资源。优先级高的节点恢复后将回拉资源。
  • rotating模式,节点是平等的,按预先定义的顺序接管资源,节点恢复后不会回拉资源。
  • concurrent模式,并发模式,应用跑在所有的的节点上,不存在资源接管的问题。

什么情况下不要用HA

  • 如果不能忍受任何宕机时间。7*24小时的服务或生命系统的服务需要使用错误避免。
  • 如果你的系统安全和网络安全得不到保障的话,使用HA也是没有意义的。
  • 如果没有经过培训的系统管理员,或常有用户在上面瞎搞得话,还是不用为好。

HACMP全攻略之准备篇

首先当然是要安装操作系统了。AIX的安装这儿就不讲了,记着打补丁、升微码,应该没什么问题吧。

共享硬盘的准备。

1、共享硬盘为scsi盘。要考虑scsi卡和总线可能是单点故障,scsi硬盘的id号不要设为7。
2、共享硬盘为ssa盘,即7133之类。每个节点要有两个ssa卡并仔细规划好结构,保证没有单点故障。
3、确保各节点都能访问到共享的硬盘,并保证各节点上使用相同的VG major number。用lvlstmajor看可用的major number,在importvg时用-V指定major number。
4、把共享vg的auto-varryon属性设为no。

串口网络:

1、接好线。
2、定义RS-232,选择正确的端口号,并禁止登录。
3、在所有节点上做测试。

TCP/IP网络

1、规划好网络拓扑,包括各节点的boot、service和standby地址。HA5以后就没有boot地址的概念了,只有service和standby。
2、编辑/etc/hosts文件。
3、service和standby网卡应分别接在不同的交换上以防止单点故障。
4、编辑/.rhosts文件,保证各节点可互相访问。在ha同步时要用,配置完后要记得删除。

HACMP全攻略之安装与配置

在此之前我们已经设计好了cluster、定义了TCP/IP网络、串口网络、LVM。下面就要开始安装HA软件包了。

Smitty install

smitty 说明参见此处

选择安装:
Cluster.adt.*
Cluster.base.*
Cluster.cspoc
Cluster.msg
以上是4.x下的,5把标版和ES版合并了,所以小有变化。
安装的时候如果提示有包没有装的话,先装一下。
软件装好了就开始配置吧。
先看HA4.5。5的变化比较大,回头再说。

Smitty hacmp

                            HACMP 

Move cursor to desired item and press Enter. 

Cluster Configuration 
Cluster Services 
Cluster System Management 
Cluster Recovery Aids 
RAS Support

Cluster Configuration

Move cursor to desired item and press Enter. 

Cluster Topology 
Cluster Security 
Cluster Resources 
Cluster Snapshots 
Cluster Verification 
Cluster Custom Modification 
Restore System Default Configuration from Active Configuration 
Advanced Performance Tuning Parameters

Cluster Topology

Move cursor to desired item and press Enter. 

Configure Cluster 
Configure Nodes 
Configure Adapters 
Configure Sites 
Configure Networks 
Configure Global Networks 
Configure Network Modules 
Configure Topology Services and Group Services 
Show Cluster Topology 
Synchronize Cluster Topology

Configure Cluster

Move cursor to desired item and press Enter. 

Add a Cluster Definition 
Change / Show Cluster Definition 
Remove Cluster Definition

Add a Cluster Definition

Type or select values in entry fields. 
Press Enter AFTER making all desired changes. 

                                                      [Entry Fields] 
**NOTE: Cluster Manager MUST BE RESTARTED 
        in order for changes to be acknowledged.** 

* Cluster ID                                         [1]   # 
* Cluster Name                                       [test_cluster]

注意:Cluster ID在同一网络内必须是唯一的。

Configure Nodes

Move cursor to desired item and press Enter. 

Add Cluster Nodes 
Change / Show Cluster Node Name 
Remove a Cluster Node

Add Cluster Nodes

Type or select values in entry fields. 
Press Enter AFTER making all desired changes. 

                                                      [Entry Fields] 
* Node Names                                         [servera serverb]

使用一个有意义的标示,如hostname。
可以同时添加多个节点,用空格分开。

Configure Networks

Move cursor to desired item and press Enter. 

Configure IP-based Networks 
Configure Non IP-based Networks

Add an IP-based Network

Type or select values in entry fields. 
Press Enter AFTER making all desired changes. 

                                                      [Entry Fields] 
* Network Name                                       [tcp_1] 
* Network Attribute                                   public                     + 
Network Type                                       [ether]                   + 
Subnet(s)                                          [192.168.1.0/24]         +

Configure Adapters

Move cursor to desired item and press Enter. 

Configure IP-based Interfaces / IP Labels 
Configure Adapters on Non IP-based networks

Configure IP-based Interfaces / IP Labels

Move cursor to desired item and press Enter. 

Add Initial Interfaces 
Discover IP Topology 
Add Multiple IP-based Interfaces 
Add Multiple Service IP Labels to a Network 
Add IP Labels Requiring Individual Configuration 
Change / Show an Interface / IP Label 
Remove Interface(s) / Label(s)

Add an Initial Interface

Type or select values in entry fields. 
Press Enter AFTER making all desired changes. 

                                                      [Entry Fields] 
* IP Label                                           [servera_boot] 
Network Type                                        ether 
Network Name                                       tcp_1 
* Interface Function                                 [boot] 
Interface IP Address                               [198.162.1.1] 
* Node Name                                          [servera] 
Netmask                                            []

就这样把所有节点中的boot、service和standby网卡都设好。注意Network Name要和hosts里的label一样。Ip地址和netmask可以自动从hosts中获得。

下面设置心跳:

Add a Non IP-based Network

Type or select values in entry fields. 
Press Enter AFTER making all desired changes. 

                                                      [Entry Fields] 
* Network Name                                       [serialnet0] 
* Network Type                                       [rs232]

Add a Non IP-based Adapter

Type or select values in entry fields. 
Press Enter AFTER making all desired changes. 

                                                      [Entry Fields] 
* Adapter Label                                      [servera_tty] 
Network Type                                        rs232 
Network Name                                        serialnet0 
* Device Name                                        [/dev/tty3] 
* Node Name                                          [servera]

把所有的节点的心跳都配置好拓扑就ok了。

++++下面同步拓扑结构:

Synchronize Cluster Topology

Type or select values in entry fields. 
Press Enter AFTER making all desired changes. 

                                                      [Entry Fields] 
Ignore Cluster Verification Errors?                [No] 
* Emulate or Actual?                                 [Actual] 
* Skip Cluster Verification                          [No] 

Note: 
Only the local node's default configuration files 
keep the changes you make for topology DARE 
emulation. Once you run your emulation, to 
restore the original configuration rather than 
running an actual DARE, run the SMIT command, 
"Restore System Default Configuration from Active 
Configuration." 
We recommend that you make a snapshot before 
running an emulation, just in case uncontrolled 
cluster events happen during emulation. 

NOTE: 
If the Cluster Manager is active on this node, 
synchronizing the Cluster Topology will cause 
the Cluster Manager to make any changes take 
effect once the synchronization has successfully 
completed.

资源组的配置

下面开始定义资源

首先增加一个资源组:

             Define Resource Groups
Move cursor to desired item and press Enter.
  Add a Resource Group
  Change / Show a Resource Group                       
  Remove a Resource Group                           
  Change / Show Resource Group Processing Order      
             Add a Resource Group
Type or select values in entry fields.
Press Enter AFTER making all desired changes.

                                                        [Entry Fields]
* Resource Group Name                                [test_app]
* Node Relationship                                              cascading        +
* Site Relationship                                       ignore          +
* Participating Node Names / Default Node Priority                [servera serverb]     +

在这确定接管方式和顺序。

下面增加Application Servers

             Define Application Servers
Move cursor to desired item and press Enter.
  Add an Application Server
  Change / Show an Application Server
  Remove an Application Server

                                                     Add an Application Server
Type or select values in entry fields.
Press Enter AFTER making all desired changes.

                                                        [Entry Fields]
* Server Name                                        [test_s ]
* Start Script                                           []
* Stop Script                                          []

脚本要写绝对路径。

然后设置资源组属性:

                Change/Show Resources/Attributes for a Resource Group
Type or select values in entry fields.
Press Enter AFTER making all desired changes.

                                                        [Entry Fields]
  Resource Group Name                                 test_app
  Node Relationship                                   cascading
  Site Relationship                                   ignore
  Participating Node Names / Default Node Priority    servera serverb
  Dynamic Node Priority                              []             +

  Service IP label                                   [servera_svc]      +
  Filesystems (default is All)                          []                          +
  Filesystems Consistency Check                       fsck                 +
  Filesystems Recovery Method                         sequential        +
  Filesystems/Directories to Export                  []             +
  Filesystems/Directories to NFS mount               []            +
  Network For NFS Mount                              []          +
  Volume Groups                                      [servera_vg]         +
  Concurrent Volume groups                           []                                   +
  Raw Disk PVIDs                                     []                        +
  Connections Services                               []                     +
  Fast Connect Services                              []               +
  Tape Resources                                     []                   +
  Application Servers                                [test_s]                     +
  Communication Links                                []                          +
  Primary Workload Manager Class                     []                      +
  Secondary Workload Manager Class                   []                      +
  Miscellaneous Data                                 []
  Automatically Import Volume Groups                  false    +
  Inactive Takeover Activated                         false     +
  Cascading Without Fallback Enabled                  false     +
  Disk Fencing Activated                              false   +
  Filesystems mounted before IP configured            false      +

配置好了就开始同步:

                Synchronize Cluster Resources
Type or select values in entry fields.
Press Enter AFTER making all desired changes.

                                                        [Entry Fields]
  Ignore Cluster Verification Errors?                [No] +
  Un/Configure Cluster Resources?                    [Yes] +
* Emulate or Actual?                                 [Actual] +
* Skip Cluster Verification                          [No] +

  Note:
  Only the local node's default configuration files
  keep the changes you make for resource DARE
  emulation. Once you run your emulation, to
  restore the original configuration rather than
  running an actual DARE, run the SMIT command,
  "Restore System Default Configuration from Active
  Configuration."
  We recommend that you make a snapshot before
  running an emulation, just in case uncontrolled
  cluster events happen during emulation.

一切ok的话,ha的配置过程就算结束了。

上面的环境是ha4.5,ha5就更加简单了。主要的步骤都差不多,只是菜单变化比较大,熟悉一下就应该可以了。当然5的功能还是强了许多,特别在同步上,感觉方便多了。
还有很多事可以做,比如利用各种事件来监控系统和应用啦。

Reference:
http://www.ibm.com/developerworks/cn/aix/lp/hacmp/
blog.chinaunix.net
http://www.chinaitpower.com/2005September/2005-09-13/203169.html