文档库

最新最全的文档下载
当前位置:文档库 > AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

前言

为什么需要HACMP

各厂商现有的UNIX 服务器一般都拥有很高的可靠性,在这一点上IBM 的P 系列服务器表现尤为突出。但所有UNIX 服务器均无法达到如IBM 大型主机S/390 那样的可靠性级别,这是开放平台服务器的体系结构和应用环境所决定的。使用IBM 高可用性集群软件--HACMP,可以更好的保护关键业务应用不受故障影响。

HACMP 工作原理

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

作为双机系统的两台服务器同时运行HACMP 软件:

?两台服务器的备份方式有二种:

o一台服务器运行应用,另外一台服务器做为备份

o两台服务器除正常运行本机的应用外,同时又作为对方的备份主机;

?两台主机系统在整个运行过程中,通过" 心跳线" 相互监测对方的运行情况( 包括系统的软硬件运行、网络通讯和应用运行情况等);

?一旦发现对方主机的运行不正常( 出故障) 时,故障机上的应用就会立即停止运行,本机( 故障机的备份机) 就会立即在自己的机器上启动故障机上的应用,把故障机的应用及其资源( 包

括用到的IP 地址和磁盘空间等) 接管过来,使故障机上的应用在本机继续运行;

?应用和资源的接管过程由HACMP 软件自动完成,无需人工干预;

?当两台主机正常工作时,也可以根据需要将其中一台机上的应用人为切换到另一台机( 备份机) 上运行。

实验环境说明:

本文的实验环境以双机互备中比较复杂的多service 多网络的情况为例,其它类似设置可适当简化。

?机器一览表

节点机器名操作系统应用软件HA 版本

host2 AIX5305-CSP ORACLE 10g HA5208

host1 AIX5305-CSP Tuxedo8.1 HA5208

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

?用户和组规划表

用户USERID 组组ID 使用节点orarrunc 210 dba 201 host1

tuxrun 301 bea 301 host1

bsx1 302 bea 301 host1

xcom 401 dba 201 host1

orarun 209 dba 201 host2

?逻辑卷和文件系统规划表

PP size:128M

节点机器名逻辑卷文件系统大小(pp) 所有者用途

host1 ora10runclv /ora10runc 40 orarunc ORACLE 客户端软件host1 tux81runlv /tux81run 30 tuxedo Tuxedo 软件

host1 bsx1lv /bsx1 30 bsx1 宝信MES 应用程序host1 xcomlv /xcom 30 xcom 宝信xcom 通信软件host2 ora10runlv /ora10run 60 orarun ORACLE 数据库软件host2 oradatalv /oradata 100 orarun 数据库?路由规划表

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

HACMP 结构表

集群名: test_cluster

适配器名功能网络名网络类型属性节点名IP 地址host1_tty0 heartbeat host1_net_rs232 rs232 serial host1

host1_l2_boot1 boot1 host2_net_ether_2 ether public host1 10.2.2.1 host1_l1_boot1 boot1 host2_net_ether_1 ether public host1 10.2.1.1 host1_l2_svc Service host1_net_ether_2 ether public host1 10.2.200.1 host1_l1_svc1 Service host1_net_ether_1 ether public host1 10.2.100.1 host1_l1_svc2 Service host1_net_ether_1 ether public host1 10.2.101.1 host1_l2_boot2 boot2 host1_net_ether_2 ether public host1 10.2.12.1 host1_l1_boot2 boot2 host1_net_ether_1 ether public host1 10.2.11.1 host2_tty0 heartbeat host2_net_rs232 rs232 serial host2

host2_l2_boot1 boot1 host2_net_ether_2 ether public host2 10.2.2.2 host2_l1_boot1 boot1 host2_net_ether_1 ether public host2 10.2.1.2 host2_l2_svc service host2_net_ether_2 ether public host2 10.2.200.2 host2_l1_svc1 service host2_net_ether_1 ether public host2 10.2.100.2 host2_l1_svc2 service host2_net_ether_1 ether public host2 10.2.101.2

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

图1 HACMP 示意图

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

图2 实验环境示意图

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

应用脚本起停设计

?start_host1:

添加网关

运行start_host1_app

?stop_host1:

运行stop_host1_app

清理vg 进程

?start_host2:

添加网关

运行start_host2_app

?stop_host2:

运行stop_host1_app

清理vg 进程

?start_host1_app:

确认host2 已启动

整理路由

启动主应用程序

启动通信程序

?stop_host1_app:

停通信程序

停应用主程序

清理路由

?start_host2_app:

如在host1 机器上执行stop_host1_app

启动Oracle 数据库及监听程序

如在host1 机器上执行start_host1 ?stop_host2_app:

停数据库及监听程序

回页首安装篇

规划

万事开头难,对于一个有经验的HACMP 工程师来说,会深知规划的重要性,一个错误或混乱的规划将直接导致实施的失败和不可维护性。

HACMP 实施的根本目的不是安装测试通过,而是在今后运行的某个时刻突然故障中,能顺利的发生自动切换或处理,使得服务只是短暂中断即可自动恢复,使高可用性成为现实。

规划前的需求调研

在做规划之前,或者说一个准备实施HACMP 来保证高可用性的系统初步设计之前,至少需要调查了解系统的以下相关情况,这些都可能影响到HACMP 的配置。

?应用特点

1. 对负荷的需求,如CPU、内存、网络等特别是I/O 的负载的侧重。

2. 对起停的要求,如数据库重起可能需要应用重起等等。

3. 对于自动化的限制,如重起需要人工判断或得到命令,需要在控制台执行。

?网络状况和规划

包括网段的划分、路由、网络设备的冗余等等在系统上线前的状况和可提供条件,以及实施运行过程中可能出现的变更。

?操作系统情况

目前IBM 的HACMP 除了AIX,还支持Linux。

目前新装机器都是AIX5.3,即使安装HA5.4 也没有问题。但如果安装可能是在老机器上进行升级,需要仔细了解操作系统版本及补丁情况。

?主机设计

1. 可能实施的机器网卡的数量, 网卡是否只能是双口或更多。

2. 是否有槽位增加异步卡

3. 主机之间的距离,这影响到串口线的长度。

4. 预计实施高可用性的情况

?希望实施HACMP 的机器数量

希望方式,如一备一,双机互备,一备多,环形互备等等。

HACMP 版本确定

IBM HACMP 自从出了5.2 版本后,到了5.205 后比较稳定,并经过我们自己充分的测试(见测试篇)和实践证明(已有多个系统成功自动切换)。目前考虑到HA 5.3 的过渡性,HACMP V5.4 的补丁还不够,推荐版本为HACMP V5.209。

IP 地址设计

IP 地址切换(IPAT) 方式有3 种方式:

图3,4和5 中描述了三个主要的IPAT 配置场景。

?第一个拓扑模式:IPAT via Replacement

在分开的子网中包含boot 和standby 网卡。当集群服务启动的时候boot 地址被换成service 地址。尽管这种方式有效性强,但是在需要实现多服务IP 地址的环境下这种方式是不可取的。集群的管理员不得不利用pre- 和post-events 定制其环境建立额外的别名,

并且需要确认这些别名在下一次接管发生前被删除。

图3 IPAT via Replacement

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

?第二个拓扑模式:IPAT via Aliasing

HACMP 4.5 开始引入了IPAT via Aliasing 作为缺省的拓扑模式。在这种新的模式中,standby 网卡的功能被另外一个boot 网卡替换。子网需求的不同点是还需要一个另外的子网,每一个boot 网卡需要它自己的子网,并且任何service 或persistent 的IP 将在其本身的子网上操作,所以一共三个子网。当集群服务启动并且需要service IP 的时候,boot IP 并不消失。这个设计和第一种是不同的,在同一个HACMP 网络中有多个service IP 存在并且通过别名来控制。

图4 IPAT via Aliasing

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

?第三种模式:EthernetChannel(EC)

这种模式把底层的以太网卡藏到一个单一的―ent‖接口之后。该模式不是对前述任何一种方式的替换,而是可以和前述的任一种模式共同存在。因为在每一个节点EC 都被配置成冗余方式,可以在HACMP 中使用IP 别名定义它们每一个作为单一网卡网络。因为在每个节点只有一个网卡被定义,所以只有两个子网,一个是用作boot(每个节点的基本IP 地址),另一个是用于提供高可用服务。

图5 IPAT via EthernetChannel

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

本文讨论实际工作中使用最多的为第2种 : 别名方式(IPAT via Aliasing),逐步推荐第3 种。

这样设计时就需要注意以下事项:

?网段设计:

一个服务地址需要3 个网段对应,boot 地址网段不能和服务地址一致。避免网络变更造成的系统不可用,boot 地址的网段不要和实际其它系统的网段一致。在网段比较紧张的地方,建议设计时询问网络管理员。

举例来说,下面的地址将会由于网络变更后打通合一后可能造成冲突:

设计人机器名服务地址boot1 地址boot2 地址

张三app1_db 10.66.1.1 10.10.1.1 10.10.1.1

张三app1_app 10.66.1.2 10.10.2.2 10.10.2.2

李四app2_db 10.66.2.1 10.66.3.1 10.66.1.1

李四app2_app 10.66.2.2 10.66.3.2 10.10.1.2

王五app3_db 10.66.3.1 10.66.1.110.66.2.1

王五app3_app 10.66.3.2 10.66.1.210.10.2.2

?boot 地址的设计:

不要和实际其它同网段机器的boot 地址冲突,最好不同网段。即这个规划不能只考虑系统本身,还需要从同网段的高度考虑。

举例来说,下面的地址由于2 个系统分开设计,同时开启将直接导致2 个系统不可用。

boot 地址的设计表1

设计人机器名服务地址boot1 地址boot2 地址

张三app1_db 10.66.3.1 10.10.1.1 10.10.1.1

张三app1_app 10.66.3.2 10.10.1.2 10.10.1.2

李四app2_db 10.66.3.11 10.10.1.110.10.1.1

李四app2_app 10.66.3.12 10.10.1.210.10.1.2

所以在设计时,我们建议boot 地址的IP 地址最后一段参照服务地址,这样虽然可记忆性不是很好,但即使设计在同一网段,也可以避免上述错误发生。更改设计如下:

boot 地址的设计表2

设计人机器名服务地址boot1 地址boot2 地址

张三app1_db 10.66.3.1 10.10.1.1 10.10.1.1

张三app1_app 10.66.3.2 10.10.1.2 10.10.1.2

李四app2_db 10.66.3.11 10.10.1.1110.10.1.11

李四app2_app 10.66.3.12 10.10.1.1210.10.1.12

此外,如果是每个网卡多个网口,记得设计时必须注意同一网络的boot 地址要分开到2 块网卡,以保证真正的冗余。

心跳设计

配置HACMP 的过程中,除了TCP/IP 网络之外,您也可以在其它形式的网络上,如串行网络和磁盘总线上配置心跳网络。

?TCP/IP 网络

优点:要求低,不需要任何额外硬件或软件,即可实现。

缺点:占用IP 地址,不能避免由于TCP/IP 的软件问题导致HACMP 崩溃,系统不可用。

?串口网络

优点:真正实现高可用性,不占用IP 地址。

缺点:需要硬件支持,对于p5 机器,需要新增异步卡,而中低端的机器的插槽有限。

?磁盘心跳

优点: 不占用插槽,磁盘总线上的心跳网络能够在TCP/IP 网络资源有限的情况下提供额外的HACMP 节点间的通信手段,并且能够防止HACMP 节点之间由于TCP/IP 软件出现问题而无法相互通信。

缺点:需要操作系统和存储支持,如使用增强型卷组,此外对于I/O 读写负荷高的应用,也需要慎用。正如IBM 红皮书所说,条件许可的情况下,强烈推荐使用串口网络,其次是磁盘心跳。

资源组设计

对于HACMP 来讲,服务IP 地址和磁盘VG、文件系统、应用服务器都是资源,如何规划需要根据实际情况来,包括以下内容:

资源组的数量即资源:一般情况下每台机器只要建立一个资源组即可,包括服务IP 地址、应用服务器及VG。但对于2 节点的oracle RAC 来讲,就需要3 个,2 个IP 和应用资源组,1 个并发VG 资源组。现在不推荐具体确定VG 里的文件系统,这是因为确定后,有可能造成有些新增文件系统不在HACMP 的控制范围,结果是HACMP 切换时由于这些文件系统没有unmount 掉而导致切换失败。

资源组的策略:分failover( 故障切换) 和fallbak(回切)。一般选缺省,当然你可以根据具体情况修正,如oracle RAC 的并发VG 资源组的选择就不一样。

磁盘及VG 设计

虽然实际上HACMP 是靠PVID 来认磁盘的,但集群的机器上磁盘顺序不一,磁盘对应不一致会造成某种混乱。以致于安装配置和维护时很容易产生各种人为错误,所以我们强烈建议机器上看到的磁盘和VG 名称都一一对应,此外VG 的MajorNumber 也需要预先设计规划,以免不一致。

用户及组设计

HA 要求所有切换需要用到的用户必须所有节点对应,ID 完全相同,用户运行的环境变量完全相同,即当系统切换时,对使用该用户的程序用户即组设置没有区别的。

如host2 上oracle 用户为orarun,host1 上的orarun 必须为切换保留,ID 均为209,host1 上平时用的oracle 用户就设为orarunc。

逻辑卷和文件系统设计

HACMP 要求切换相关的文件系统和lv 不能重名,如host2 上oracle 软件目录为/ora10run,host1 上的/ora10run 必须为切换保留,改为/ora10runc。

此外,集群下相关的文件系统和lv,在各个节点主机的定义也需要一致, 如/etc/filesystems 里是一致的,这个通过importvg 或HACMP 的C-SPOC 来保证。

路由设计

对于有通信需求的主机,很可能对路由有一定要求,如本次实验环境,就有2 个网段走的不是缺省路由,需要设计清楚,最后在起停脚本实现。

应用脚本设计

我们这里说的应用,是包括数据库在内除OS 和HACMP 之外的所有程序,对于应用程序的起停顺序和各种要求,都需要预先和应用人员加以沟通,并预先设计伪码,最终编写脚本实现。

准备

安装前提

?操作系统版本要求:

实验要求为AIX5203 以上,实际HA5.4 要求AIX5301 和AIX5206,具体安装时可查看以下安装版本的《High Availability Cluster Multi-Processing for AIX 5L Installation Guide》Prerequisites 一节。

?系统参数要求

作为集群的各个节点机,我们建议各个参数最好完全一致,需要注意的参数有:

o异步I/O 服务进程配置(Asynchronous I/O servers)

o用户最大进程数

o系统时间

o用户缺省的limits 参数

o其它可能影响应用的参数

?环境要求

此时,没有建立任何HACMP 占用设计ID 相关的用户和组,同样也没有建立VG 和文件系统,包括名称冲突文件系统、lv 和Major numver 冲突的VG。

?用户和组确认

[host1][root][/]>lsuser -a id ALL

root id=0

daemon id=1

bin id=2

sys id=3

adm id=4

uucp id=5

……

[host2][root][/]>lsuser -a id ALL

root id=0

daemon id=1

……

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

安装结束后,仍会报failed,检查除以下包没装上外,其它都已安装上:cluster.doc.en_US.pprc

cluster.doc.en_US.websphere

cluster.es.ercmf

cluster.es.pprc

cluster.es.svcpprc

cluster.es.websphere

cluster.xd.glvm

补丁可在IBM 网站下载:

http://www.wendangku.net/doc/c1f94d0a3169a4517723a3cd.html/eserver/support/fixes/

图6 补丁下载示意图

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

重启机器

记住一定要重起机器, 否则安装将无法正常继续。安装确认

1)确认inittab:

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

2)确认安装和补丁包:(着重确认cluster.es.server.rte)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

3)确认进程

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

总结

本部分主要对HACMP 的规划和设计进行了详尽的描述,对于HACMP 的实施,实际是相当重要和具有实用价值的。同时,还对准备和安装部分进行了论述,也是实际HACMP 实施的整理和总结,相信对大家有所帮助。后面将对HACMP 的配置进行专门论述,从而形成完整的实施步骤。

配置准备

总的来说,配置前的准备必不可少,这一步还要仔细小心,准备不充分或有遗漏以及这步的细节疏忽会导致后面的配置出现网卡、磁盘找不到等现象。将会直接导致后面的配置失败。

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

?修改loglv 名称

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

AIX HACMP 5.x 完全手册(IBM官方文档库资料,不可多得的hacmp学习手册)

修改IP 地址

按照规划,使用smitty tcpip命令修改2 台机器的IP 地址,最终修改为:[host1][root][/]>netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts

Oerrs Coll

en0 1500 link#2 0.9.6b.dd.e1.aa 2177624 0

1368126 0 0

en0 1500 10.2.1 10.2.1.1 2177624 0 1368126

0 0

en1 1500 link#3 0.9.6b.dd.e1.ab 1928315 0

1222071 0 0

en1 1500 10.2.2 10.2.2.1 1928315 0 1222071

0 0

en2 1500 link#4 0.11.25.8.cf.23 1532962 0

868518 0 0

en2 1500 10.2.11 10.2.11.1 1532962 0 868518

0 0

en3 1500 link#5 0.11.25.8.cd.fa 1633025 0

969811 0 0

en3 1500 10.2.12 10.2.12.1 1633025 0 969811

0 0

[host2][root][/]>netstat -in

Name Mtu Network Address Ipkts Ierrs Opkts

Oerrs Coll

en0 1500 link#2 0.9.6b.dd.e5.64 1169895 0

1119848 0 0