Chinaunix首页 | 论坛 | 博客
  • 博客访问: 25833668
  • 博文数量: 271
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 3358
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-12 15:28
文章分类

全部博文(271)

文章存档

2010年(71)

2009年(164)

2008年(36)

我的朋友

分类:

2010-04-15 18:59:52

马 国耀, 软件工程师, IBM

简介: 本文详细记录了实现最基本的 WebSphere Message Broker(WMB)主备 HA 配置所需要的步骤,为欲实现 WMB HA 的读者提供一个最简单而全面的入门点,寄希望于能起到抛砖引玉的作用,为读者将来实现更复杂的 HA 配置提供垫脚石 . 本文的目标读者是欲进行类似工作工程师,架构师以及系统管理员。为了更好的阅读本文档,读者应该了解 WebSphere Message Queue,WebSphere MessageBroker 以及 DB2 的相关概念;熟悉 AIX 操作系统的简单命令的使用;熟悉 HA 相关的概念以及 HACMP 工具的使用及配置过程。

目前,关于 WMQ,DB2 的单独实现 HA 的文档已有很多,但是将对 DB2,WMQ 和 WMB 联合在一起实现 HA 的文档却不多见,本文详细记录了实现最基本的 WMB 主备 HA 配置所需要的步骤,为欲实现 WMB HA 的读者提供一个最简单而全面的入门点,寄希望于能起到抛砖引玉的作用,为读者将来实现更复杂的 HA 配置提供垫脚石。

本文档介绍的内容是 WebSphere Message Broker HA 的配置。目标读者是欲进行类似工作工程师,架构师以及系统管理员。为了更好的阅读本文档,读者应该了解 WebSphere Message Queue,WebSphere Message Broker 以及 DB2 等产品的相关概念;熟悉 AIX 操作系统简单命令的使用;熟悉 HA 相关的概念以及 HACMP 工具的使用及配置过程。



WMB/MB WebSphere Message Broker
WMQ/MQ WebSphere Message Queue
Broker 代理,WMB 的运行时
QM Queue Manager,队列管理器。
ESB Enterprise Service Bus 企业服务总线
HA High Availability 高可用性
LV Logic Volume
VG Volume Group
FS File System


在这篇文档中,我们将实现主 - 备(standby)方式的 HA 架构,即有两台 AIX 机器(如 asup1 和 asup2),asup1 为主节点,asup2 位副节点。在正常情况下,asup1 运行 WMB,WMB 以及 DB2,而在 asup1 出现硬件问题的时候,asup2 接管 asup1 上 WMB,WMQ 以及 DB2 的相关工作 asup1 上的相应工作,继续提供服务。

总体部署架构图如图 1 所示:



图 1. Standby 的 HA 配置总体架构图

在上文的架构图中,asup1 即 asup1, asup2 即 asup2,两台机器的机型都是 P550A,下面是一个 DS4800 的磁盘阵列,加上上面的多个光纤交换机一起构成双机热备的高可用环境。

两天 asup 机器上都安装中间件软件,WMB,WMB 以及 DB2。同时安装 HA 软件 HACMP 用于管理中间件软件 HA 所依赖的资源组(包括服务 IP,Application Server 以及共享卷等资源),该资源组单机运行,双机为主备关系。

两台主机之间使用串口线连接,提供双机心跳服务。

WMB 的运行时称为代理(Broker),一个代理依赖于一个队列管理器(QM)和一个数据库(DB)作为 Broker 的配置数据库,其中队列管理器一定要和代理在同一台机器上,而数据库可以与 Broker 部署在不同的机器上,即 Broker 通过远程连接访问数据库。如图 2 所示 :



图 2. WMB 运行时依赖关系

在本次的环境中,数据库和 Broker 安装在同一台机器上。

在上文所述的 HA 环境中,我们要在 asup1,asup2 中都安装 DB2,WMQ 以及 WMB。而将 DB2 的实例,队列管理器的用户数据以及日志,WMB 的组件以及注册信息放在共享存储上。

在本文档中,我们将创建一个 DB2 的实例(db2iesb),队列管理器(esbqm)和一个代理(BRK01),所以我们的工作项如表 2 所示:



asup1 asup2 Shared Disk
DB2 创建 DB2 实例使用的共享文件系统
创建用户 同步用户
安装 DB2 安装 DB2
同步其他配置文件
创建实例 连接实例
建库并测试并验证 DB2 成功部署 连接到 asup1 中所建的库,并进行测试
WMQ 创建 MQ 的队列管理器所需要的共享文件系统
创建 WMQ 用户 同步用户
安装 WMQ 安装 WMQ
创建 QM 连接 QM
测试 QM 测试 QM
WMB 创建 MB 所使用的共享文件系统
创建 WMB 用户 同步用户
安装 WMB 安装 WMB
创建 Broker 使用的数据库及 ODBC 设置 连接数据库并同步 ODBC 设置
创建代理 连接代理
测试代理 测试代理
HACMP 配置 Cluster 同步
配置 ServiceIP 同步
配置应用服务器 同步
创建应用服务器起,停脚本 同步
配置资源组 同步
启动 启动
切换资源组并测试 切换资源组并测试

本文档创建了两个 VG,在每个卷组上创建了一个 LV 以及一个文件系统。如表 3 所示



VG 名称 LV 名称 文件系统 用途
db2vg1 db2fs1 /dbinst1 DB2 实例所在的文件系统
mbvg1 mbmqlv /mqhafs QM 的数据和日志以及 Broker 的 component 以及 registry 所存在的文件系统

在这里,我们没有单独建立为 Broker 建立共享文件系统,因为 Broker 所使用的共享文件目录将存在于 QM 的共享文件目录之下,下节将对此详细介绍。

下面我们在 MQ 的文件系统之上创建 MQ 所需的数据(data)和日志(log)目录,在创建之前,先需要将该文件系统 mount 到一个节点之上,比如 asup1 中,然后创建目录,具体步骤参见后文。

注意:不需要为DB2Broker创建进一步的子文件夹。

  • 对于 DB2,我们只需要将创建实例的 DB2 用户的 home 目录指定到 /dbinst1 上,在创建实例的过程中,会自动在该文件系统上建立数据库实例。请注意后面创建 DB2 用户部分的脚本。
  • 对于 Broker,我们将在后面介绍 IBM 提供的用于创建 MQ、MB 的 HA 的辅助工具 MC91 和 IC91,在 IC91 的创建 Broker 的脚本中,会自动找到 Broker 对应的 QM 的 data 目录,然后在这个目录下面建立 /component 和 /registry 目录。

在这次部署中,一共需要创建 5 个用户,5 个用户组。如表 4,表 5 所示:



用途 组名 组 ID
MQ 管理员组 mqm 914
WMB 管理员组 mqbrkrs 915
DB2 管理员组 db2igesb 901
DB2 Fence 用户组 db2fgesb 902
DAS 用户组 db2vgesb 903



用途 用户名 组 ID 用户 ID
MQ 管理员用户 mqm 914 914
WMB 管理员 esbadmin 914/916 915
DB2 管理员用户 db2iesb 901 901
DB2 Fence 用户 db2fesb 902 902
DAS 用户 dasuser 903 903

MC91 和 IC91 是 IBM 提供的实施 WMQ 和 WMB HA 的 SupportPac,这两个 SupportPac 提供了配置 HA 的脚本示例辅助我们进行 WMQ 和 WMB 的 HA 环境的配置,从以下位置可以找到最新的文档和软件包:

IC91:

MC91:

下载到的包是:mc91.tar.Z 和 ic91.tar.Z,将它们通过 ftp 方式传到 asup1 和 asup2 之上,建立一个 /MQHA/bin 目录,并解压缩这两个文件,如下列清单所示 mc91.tar.Z 的解压缩:



				 
 # mkdir -p /MQHA/bin
 # 
 # cd /opt/software/mq
 # uncompress mc91.tar.Z
 # tar -xvf mc91.tar ./hacmp
 x ./hacmp 
 x ./hacmp/hacrtmqm, 4214 bytes, 9 media blocks. 
 x ./hacmp/hadltmqm, 2453 bytes, 5 media blocks. 
 x ./hacmp/halinkmqm, 4217 bytes, 9 media blocks. 
 x ./hacmp/hamqproc, 180 bytes, 1 media blocks. 
 x ./hacmp/hamqm_stop_su, 5067 bytes, 10 media blocks. 
 x ./hacmp/hamqm_stop, 803 bytes, 2 media blocks. 
 x ./hacmp/hamqm_start_su, 3499 bytes, 7 media blocks. 
 x ./hacmp/hamqm_start, 806 bytes, 2 media blocks. 
 x ./hacmp/hamqm_running, 1777 bytes, 4 media blocks. 
 x ./hacmp/hamqm_qm_directory, 2353 bytes, 5 media blocks. 
 x ./hacmp/hamqm_applmon_su, 1974 bytes, 4 media blocks. 
 # 
 #mv hacmp/* /MQHA/bin
 # 
 #rm -rf hacmp
 # 
 #chmod 755 /MQHA/bin/ha*
 # 
 #chown -R mqm.mqm /MQHA/bin
 # 


本节介绍在 asup1 上执行 DB2 安装的全过程

  1. 创建用户和组

    使用如下代码清单创建 DB2 运行过程中需要使用的用户和组:




    				 
     # mkgroup id='901' db2igesb 
     # mkgroup id='902' db2fgesb 
     # mkgroup id='903' db2vgesb 
     # mkuser pgrp=db2igesb groups=db2vgesb,db2igesb home=/dbinst1/db2iesb id='901' 
      db2iesb 
     # mkuser pgrp=db2fgesb home=/dbinst1/db2fesb id='902' db2fesb 
     # mkuser pgrp=db2vgesb home=/dbinst1/dasuser id='903' dasuser 
    

    然后,为用户设置密码。

  2. 挂接卷组和文件系统

    执行如下清单 3 所示的命令 :




    				 
     #varyonvg db2vg1 
     #mount /dbinst1 
    

  3. 安装 DB2

    Developerworks 上已经有很多介绍 DB2 安装的文档,本文不再赘述。欲了解详细安装过程,请参考 DeveloperWorks 相应文章。不过,要注意的一点是,安装过程中不要创建 DB2 的实例,而是在产品安装完毕后手动创建实例,下一节中会介绍该信息。安装成功后,还需要做一件事情,即关掉默认监控,如下图所示:




    图 3. 关闭 DB2 实例的默认监控

  4. 创建DB2实例并测试

    通过如下代码清单创建 DB2 的实例。创建完成实例后,再启动该实例之前,需要在 /etc/services 文件中加入如下一行,指定 db2iesb 的服务端口

    db2c_db2iesb 50000/tcp




    				 
     #cd /usr/IBM/db2/V9.1.01/instance/db2icrt -a SERVER -s ese -u db2fesb -w 32 
     -p db2c_db2iesb db2iesb 
     #su - db2inst1                                  # become the instance owner 
     db2start 
     db2sampl                                         # create the sample database 
     db2 'connect to sample'                       # test with the default sample db 
     db2 'select * from staff where dept=20'
     db2 terminate 
     db2stop 
     exit 
    

  5. 卸除卷组和文件系统

    通过如下命令卸除文件系统。




    				 
     #umount /dbinst1 
     #varyoffvg db2vg1 
    

本节介绍在 asup2 上进行 DB2 的安装配置过程。

  1. 同步用户

    同步用户有两种方法 :

    1. 使用在 asup1 种相同的脚本执行一遍 , 最好需要保证在两个节点上的 id 都是一样的 .
    2. 将 asup1 中以下文件中的通过 3.1.1 过程中增加的条目拷贝到 asup2 中相应的文件中
     /etc/passwd 
     /etc/group 
     /etc/security/passwd 
     /etc/security/group 
     /etc/security/user 
    

  2. 挂接卷组和文件系统

    同节点 1 的做法相同。

  3. DB2 产品安装

    与节点 1 相同,注意要保证安装目录在两台机器上完全一致,这样才能保证很多环境变量在两个节点上的一致性。

  4. 链接实例并测试

    打开 asup1 的 /etc/services 文件,将最下面的如下几行拷贝到 asup2 种相应的文件中。

     DB2_db2inst1    60000/tcp 
     DB2_db2inst1_1  60001/tcp 
     DB2_db2inst1_2  60002/tcp 
     DB2_db2inst1_END 60003/tcp 
     db2c_db2iesb    50000/tcp 
    

    在连接测试之前,需要查看 db2nodes.cfg 文件,要确保中间一列的 hostname 和本机的 hostname 一致,由于该实例是在 asup1 中创建的,所以这里的值应该是 asup1 的 hostname,将其修改成 asup2 的 hostname。

    连接共享数据库实例并进行测试,使用与节点 1 中相同的测试方法即可。

  5. 卸除卷组和文件系统

  1. 创建用户

    创建 MQ 的用户和组,请参考 规划用户和组一节。

    1. 挂接卷组和文件系统
  2. 安装 WMQ

    DeveloperWorks 及其他文档都有详细的 WMQ 的安装过程的介绍,故在此省略,其安装过程同在单节点上的安装无异。欲了解详细安装过程,请参考 developerWorks 相应文章。

  3. 创建 QM 并测试

    在这里,将要通过 MC91 的脚本创建供 Broker 使用的 QM,创建过程如下:

    1. 用 root 用户进入 /MQHA/bin 目录下(已经创建和解压缩相应的 MC91 和 IC91 的脚本)
    2. 执行如下命令创建 QM(名字是 esbqm),需要注意的是在运行命令之前先用 export 命令传入两个环境变量:MQHAFSDATA 及 MQHAFSLOG,它们分别是队列管理器的数据目录和日志目录,应该存放在共享存储上。代码清单 6 如下:
    3. 测试步骤 2 中创建的队列管理器,清单 7 如下:



    				 
     # cd /MQHA/bin
     # 
     # export MQHAFSDATA="/mqhafs/esbqm/data"
     # export MQHAFSLOG="/mqhafs/esbqm/log"
     # 
     # ./hacrtmqm esbqm
     WebSphere MQ queue manager created. 
     Creating or replacing default objects for esbqm. 
     Default objects statistics : 40 created. 0 replaced. 0 failed. 
     Completing setup. 
     Setup completed. 
     The halinkmqm script will now be run on this machine. On other 
     machines which will potentially takeover this queue manager you 
     must run the following command while logged on as "mqm". 
     halinkmqm esbqm esbqm /mqhafs/esb/data 
     # 
    




    				 
     # su - mqm
     $ 
     $ dspmq
     QMNAME(esbqm) STATUS(Ended immediately) 
     $ 
     $ strmqm esbqm
     WebSphere MQ queue manager 'esbqm' starting. 
     5 log records accessed on queue manager 'esbqm' during the log replay phase. 
     Log replay for queue manager 'esbqm' complete. 
     Transaction manager state recovered for queue manager 'esbqm'. 
     WebSphere MQ queue manager 'esbqm' started. 
     $ 
     $ dspmq
     QMNAME(esbqm) STATUS(Running) 
     $ 
     $ runmqsc esbqm
     5724-H72 (C) Copyright IBM Corp. 1994, 2005. ALL RIGHTS RESERVED. 
     Starting MQSC for queue manager esbqm. 
     def ql(ql.test) replace 
     1 : def ql(ql.test) replace 
     AMQ8006: WebSphere MQ queue created. 
     end 
     2 : end 
     One MQSC command read. 
     No commands have a syntax error. 
     All valid MQSC commands were processed. 
     $endmqm esbqm
    			

  4. 卸除卷组和文件系统

本节介绍在 asup2 上 WMQ 的链接及验证。

  1. 同步用户

    参考 DB2 在节点 2 上进行的操作。

  2. 挂接卷组和文件系统
  3. 安装 WMQ
  4. 连接 QM 并测试

在节点 1 创建共享队列管理器的过程中,执行 ./hacrtmqm esbqm 命令成功之后, 最下面有一句话:

halinkmqm esbqm esbqm /mqhafs/esbqm/data

这里首先需要链接共享队列管理器,在 asup2 上切换到 mqm 用户下执行该行命令进行 QM 在 asup2 上的链接,链接成功后使用节点 1 中相同的步骤进行测试。

  1. 卸除卷组和文件系统

本节介绍在 asup1 上进行 WMB 的安装,创建 Broker,及验证。

  1. 创建用户和组

    创建 Broker 所需的用户和组, 请参考 规划用户和组一节。

  2. 挂接卷组和文件系统
  3. 安装 WMB

    DeveloperWorks 及其他文档都有详细的 WMB 的安装过程的介绍,故在此省略,安装过程同在单节点上的安装无异。欲了解详细安装过程,请参考 developerWorks 相应文章

  4. 创建 Broker 数据库及 ODBC 数据源

    Broker 要使用一个配置数据库,Broker 对该数据库的连接是通过 ODBC 配置完成的,详细的介绍请参考 WMB 相关文档。数据库可以存在于本机,也可以是一个远程数据库。在本文的场景中,数据库和 Broker 位于同一台机器。对于远程数据库的情况,需要在本地创建一个客户端类型的实例,并将远程数据库 catalog 到本地,然后再配置 ODBC 数据源,若要了解远程数据库连接要做的工作,请参考相应的 WMB 文档。

  5. 创建数据库,使用具有 DB2 系统管理权限的用户来创建数据库

    db2 CREATE DB BRK1DB USING CODESET UTF-8 TERRITORY US

    1. 为 esbadmin 设置权限

在创建数据库之后,需要进行一些设置,让 Broker 的管理员(esbadmin)可以使用 DB2 的命令,这是通过如下方式实现的:

  • 修改 esbadmin 用户的 .profile 文件

#su - esbadmin

复制如下三行到 esbadmin 用户的 .profile 下

 if [ -f /dbinst1/db2iesb/sqllib/db2profile ]; then 
 . /dbinst1/db2iesb/sqllib/db2profile 
 fi 

注意,这行命令的作用是让 esbadmin 用户执行 db2profile 使其能够找到执行 DB2 的命令,一定要确保“/db2inst1/db2iesb/sqllib/db2profile”该文件路径正确无误。

接下来,为 esbadmin 用户授权使用某些 DB2 的命令

 db2 grant connect, createtab, bindadd, create_external_routine on database \ 
  to user esbadmin 

  1. 创建 ODBC

    创建 ODBC 通过更新 odbc64.ini 文件实现。odbc64.ini 位于 /opt/IBM/mqsi/6.1/ODBC64/V5.3/ 下。

    下面将 odbc.ini 添加到环境变量中

    更改 /etc 下的 profile 文件

    添加此行:ODBCINI=/opt/IBM/mqsi/6.1/ODBC64/V5.3/odbc64.ini

    更改此行 export LOGNAME MAIL MAILMSG TERM ODBCINI(其中 ODBCINI 对应于上面的定义。)

  2. 创建 Broker 并测试

    用 IC91 中的脚本创建 Broker,在创建 Broker 之前,需要确保下列前提条件:

    • esbadmin 用户已经存在。
    • 数据库已经创建,配置好了 ODBC 数据源,且 esbadmin 有执行 DB2 命令的权限。
    • QM 已创建 (esbqm)。

    执行下列脚本创建 Broker,参数和在单机环境下的参数一致。脚本如下清单 8 所示,用 esbadmin 用户执行 mqsistartbroker BRK01 测试,确保能够成功启动。




    				 
     # cd /MQHA/bin 
     # 
     # ./hamqsicreatebroker – i esbadmin – a esbadmin – q esbqm – n BRK1DB 
     – u db2iesb – p db2iesb 
    

  3. 卸除卷组和文件系统

本节介绍在 asup2 中安装 WMB,链接 Broker 以及测试。

  1. 同步用户
  2. 挂接卷组和文件系统
  3. 安装 WMB
  4. 连接 Broker 数据库,同步 ODBC 数据源

同节点 1 中的内容,除了不需要创建数据库之外,其他步骤都需要执行。

  1. 连接 Broker 并测试

    执行如下清单所示的脚本,连接上文中创建的 Broker,hamqsiaddbrokerstandby 的三个参数依次是代理名字,QM 的名字和 Broker 管理员的名字。用 esbadmin 用户执行 mqsistartbroker BRK01 并进行测试,确保能够成功启动。




    				 
     # cd /MQHA/bin 
     # 
     # ./hamqsiaddbrokerstandby BRK01 esbqm esbadmin 
    

  2. 卸除卷组和文件系统

配置 HACMP 的过程分成以下几个步骤:

  1. 建立一个 HA 集群(Cluster),该步骤包含定义集群的名字,并设定集群保护那些节点,本里中是(asup1 和 asup2)
  2. 建立服务 IP,该服务 IP 是集群对外暴露的 IP 地址,当集群启动时,客户端通过该 IP 访问正在运行的 DB2,WMQ 及 BROKER 的服务。
  3. 配置应用服务器,应用服务器主要管理两个几点的启动和关闭的脚本。动脚本中包含所有在节点启动时,启动所有响应服务所需的命令;关闭脚本包含在节点切换时,关闭所有相关服务所需的命令。
  4. 配置资源组,资源组对于与该集群进行切换时,在两个节点间切换的资源,它包括共享磁盘(包括卷组,文件系统等)、服务 IP 地址、及应用服务器等。在集群切换的过程中,集群会自动完成共享磁盘及 IP 地址的切换,并执行相应的应用服务器的起、停脚本。
  5. 在两个节点上同步 HA 配置。

使用 smitty hacmp 进入配置

选择 Initialization and Standard Configuration

再选择 Add Nodes to an HACMP Cluster,在此新增一个集群拓扑。

在 Add/Change/Show an HACMP Cluster 页面

* Cluster Name [asupha] 键入集群名

Currenttly configured nodes [asup1 asup2] 选择要加入该集群的节点名。

按 F4 选择两节点 boot 地址 , 如图 4 所示



图 4. 配置集群拓扑

在 asup1 和 asup2 上定义 service IP 地址 :

使用 smitty hacmp 进入配置:

选择 Initialization and Standard Configuration

选择 Configure Resources to Make Highly Available (服务 IP 是高可用资源之一)

选择 Configure Service IP Labeles/Addresses

选择 Add a service IP Labeles/Addresses 添加一个服务 IP

在图 5 所示的 Add a Service IP Label/Address (standard) 页面

[ 输入字段 ]

* IP Label/Address [db2ser] + 键入服务 IP 的名字

* Network Name [net_ether_02] + 选择网络类型

【注意:网络类型分为 IP 网络和非 IP 网络,这里的 net_ether_02 是由 AIX 系统管理员实现配好的 IP 网络地址】



图 5. 配置服务 IP

下面定义应用服务器,该应用服务器也是高可用资源的一部分。

使用 smitty hacmp 进入配置

选择 Initialization and Standard Configuration

选择 Configure Resources to Make Highly Available

选择 Configure Application Servers

选择 Add an Application Server,在此新建一个应用服务器

在图 6 所示的 Add Application Server 页中

* Server Name [db2app] 键入应用服务器名

* Start Script [/usr/IBM/db2/script/mbclsstart.sh] 启动脚本的位置

* Stop Script [/usr/IBM/db2/script/mbclsstop.sh] 停止脚本的位置

【注意,起停脚本要在两个 Node 上都存在,起停脚本用书启动和停止高可用环境中所管理的应用程序,如消息队列,代理和数据库服务】



图 6. 配置应用服务器

配置启动脚本

简单起见,这里只给出启动 MQ,DB2,和 Broker 三个服务的脚本,实际的脚本要考虑一些异常情况,必要时杀掉相关进程。请参考 MC91 和 IC91 下相应的启动和停止脚本示例,简单的方法就是在指定的启动停止脚本中引用 MC91 和 IC91 中的相应脚本。以下清单显示了示例的启动脚本:



				 
 su - dasuser -c 'db2admin start'
 su - db2iesb -c 'db2start'
 su - esbadmin -c 'mqsistart BRK01'

配置停止脚本

以下清单为示例停止脚本



				 
 su - dasuser -c 'db2admin stop'
 su - db2iesb -c 'db2stop'
 su - esbadmin -c 'mqsistop BRK01 -q'

下面定义共享资源组:

使用 smitty hacmp 进入配置

选择 Initialization and Standard Configuration

选择 Configure HACMP Resource Group

在选择 Add a Resource Group 在此添加一个资源组,将所有高可用资源包含进来

在下图所示的 Add a Resource Group 页面中

*Resource Group Name [db2_RG] 填入资源组的名字

*Participating Node Names (Default Node Priority) [asup1 asup2] + 选择参与节点



图 7. 配置资源组

配置完毕后查看一下配置是个好习惯 .

选择 Initialization and Standard Configuration

进入 Configure HACMP Resource Group

进入 Change/Show Resources for a Resource Group (standard)

使用 smitty hacmp 进入配置

选择 Initialization and Standard Configuration

选择 Verify and Synchronize HACMP Configuration

确认并等待其正确完成。

在测试过程中,我们可以通 HACMP 提供的命令去模拟两个节点之间的接管。本次进行的高可用配置共涉及的应用程序包含 DB2,MQ 及 Broker,共享磁盘有两个文件系统 /mqhafs 及 /dbinst1,服务 IP 有一个 db2ser,在测试切换的过程中,我们需要检查:

  • 磁盘资源是否切换
  • 服务 IP 是否切换
  • 应用程序是否切换,并已在接管节点上启动。
  1. 在两个节点使用如下命令启动 HA,smitty clstart

    由于 asup1 为主节点,所以,默认情况下文件系统和资源应挂接在 asup1 之上。通过如下方式验证正确挂接上。

    • 查看卷组是否在本节点上处于 active 状态。
    • 查看文件系统是否加载
    • 查看数据库是否已启动,检查其监听端口是否开启
    • 查看 QM 是否已启动,可以用 mqm 用户执行 runmqsc esbqm 验证。
    • 查看 Broker 是否已启动,Broker 启动以后会启动三个进程 httplistener, bipbroker 和 bipservice.
    • 查看服务 ip 地址是否已经漂移到本节点
  2. 验证无误后,通过使 asup1 的资源组 offline 的方式模拟 asup1 故障,步骤如下:

    由 smitty hacmp 进入配置

    进入 system management(C-SPOC)

    选择 HACMP Resource Group and Application Management

    选择 Bring a Resource Group offline

    选择 db2_RG

    再选择 asup1

    按 Enter 并等待其正确结束。

    通过类似于上文的检查,判断资源组是否成功从 asup1 中移除。

    下面通过让资源组 online 的方式手动启动 asup2 的资源。

    注:在真实故障发生时,是通过心跳检测,自动接管的。

  3. 让 asup2 上的资源 online

    由 smitty hacmp 进入

    进入 system management(C-SPOC)

    选择 HACMP Resource Group and Application Management

    选择 Bring a Resource Group Online

    选中要 online 的 RG

    等待其完成后,使用本节中验证 asup1 成功挂接的 5 个步骤验证 asup2 是否已成功接管 asup1。

至此,WMB 的安装配置及测试过程完毕。由于文体的限制,不能详细给出具体的配置步骤,读者若需要详细配置手册,请通过电子邮件与作者联系,maguoyao@cn.ibm.com。


学习

  • IBM DeveloperWorks:IBM 维护的用于开发者交流的论坛

  • : 下载 WebSphere DataPower 相关的红皮书(REDP4327 redp4366 redp4364 redp4365)

  • IBM ESBs 及产品比较:本文首先介绍了企业级应用程序的发展以及 ESB 的定义;随后,分析了 ESB 在 SOA 解决方案中所起的作用,并比较介绍了三款 ESB 产品在支持实现一个 ESB 解决方案中所起的作用。

  • ,从这里可以找到 DB2 的安装文档

  • ,从这里可以找到 WMQ 的安装文档

  • ,从这里可以找到 WMB 的安装文档

  • 介绍高可用相关的成功案例,解决方案等。

  • developerWorks WebSphere 专区:针对使用 WebSphere 产品的开发人员的技术信息和资源。developerWorks WebSphere 提供产品下载、how-to 信息、支持资源以及一个免费技术库,该技术库包含 2000 多篇技术文章、教程、最佳实践、IBM 红皮书和在线产品手册。无论您是初学者、专家还是介于二者之间,您都能发现使用基于开源标准的 WebSphere 软件平台构建企业级 SOA 解决方案所需的信息和资源。

获得产品和技术

  • WebSphere 下载中心,您可以获得最新的 WebSphere 产品的试用版和免费版,让您可以提前免费体验相关产品的强大功能。

马国耀,2007 年毕业于北京大学信息科学技术学院后加入 IBM,在 CDL 的 BPTSE 工作,专门负责战略合作伙伴的 SOA 和 WebSphere 技术和产品的 Enablement 和 Education 相关的工作。有丰富的 SOA 和 WebSphere 产品相关的实施经验。曾在 developerWorks 中文网站发表过 2 篇文章(DataPower 和 ESB 方面)。

阅读(2470) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~