如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx

上传人:b****7 文档编号:8803309 上传时间:2023-02-01 格式:DOCX 页数:10 大小:330.51KB
下载 相关 举报
如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx_第1页
第1页 / 共10页
如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx_第2页
第2页 / 共10页
如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx_第3页
第3页 / 共10页
如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx_第4页
第4页 / 共10页
如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx

《如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx》由会员分享,可在线阅读,更多相关《如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx(10页珍藏版)》请在冰豆网上搜索。

如何在UNIX操作系统的HA 集群CLUSTER环境配置MQ的高可用性MQ的问题.docx

如何在UNIX操作系统的HA集群CLUSTER环境配置MQ的高可用性MQ的问题

如何在UNIX操作系统的HA集群(CLUSTER)环境配置MQ的高可用性?

内容提要:

本文详细介绍了如何在HA的集群(cluster)环境下创建和配置MQ队列管理器,也介绍了如何配置HA产品,以支持MQ的高可用性配置.本文提到的HA环境为Solaris,AIX,HP的高可用软件;也可适用其他UNIX系统包括linux操作系统.此文内容来自MQsupportpacMC91.

说明:

MQ产品本身提供了很多有助于高可用性的功能,比如mq集群.MQ集群主要用于简化管理和负载均衡,同时也提供了比单一的MQ队列管理器更好的高可用性.比如,一个队列管理器发生故障,消息仍然可以发到cluster中配置了相同的队列实例的队列管理器上.但WMQ的集群无法提供队列管理器故障的自动检测和恢复,而借助操作系统的HA集群CLUSTER,则可以实现这些功能.将MQ和操作系统HA产品的结合,可以进一步提供WMQ队列管理器的高可用性.通过一个正确配置的HAcluster,可以检测到电源,节点,磁盘控制器,网络,网络适配器和队列管理器进程的故障,并自动触发恢复的程序,让受到影响的MQ队列管理器尽快恢复工作.

注释:

1)本文中提到的HAcluster专指节点和资源的集合,用于提供cluster内部服务的高可用性,与MQ的cluster概念不同.

2)高可用性软件名称:

AIX平台:

HACMP

Solaris平台:

VCS

HP平台:

serviceguard

正文:

下面将详细介绍如何配置MQ在HA集群CLUSTER环境的高可用性.预先要求是操作系统,HA产品已经成功安装.下图为配置的示意图:

MQ在HAcluster环境配置的中心问题就是将MQ队列管理器的互斥数据放在各自独立的文件系统中,而把队列管理器的其它数据放在共享文件系统上。

(一)安装

1.安装MQ产品

在HACLUSTER的每个节点上按照常规安装MQ,多个节点无法共享一个MQ安装.安装MQ的注意事项如下:

1)MQ要安装在每个节点机器内盘上,不要安装在共享盘上所有节点的MQ版本要相同,除非在做版本升级的过程中.

2)安装mq时,注意不要如MQ信息中心所述,创建独立的/var/mqm和/var/mqm/log文件系统.

3)所有节点定义的mqm用户和mqm组对应的id号要全部相同.

2.安装MQsupportpacMC91

supportpac下载网址:

在每个cluster中的节点,以mqm或root登录.

对于HACMP和serviceguard软件,创建/MQHA/bin目录.对于VCS软件,创建/opt/VRTSvcs/bin/MQM目录.此为例子脚本指定的工作目录.也可以把脚本放到不同的目录,但需要相应的修改脚本.将下载的supportpac文件解压缩后放到所选目录.确保所有此目录下的脚本具有执行权限:

AIX平台和HP平台:

#chmod755ha*

Solaris平台:

#chmod+xonlineofflinemonitorcleanha*explain

另外,对于Solaris平台,Agent的方法是由perl语言写的.需要拷贝或链接ScriptAgent的二进制到MQM的代理目录.

#cp/opt/VRTSvcs/bin/ScriptAgent/opt/VRTSvcs/bin/MQM/MQMAgent

MQM的资源类型需要被加到cluster的配置文件:

当cluster运行时,可以使用VCCS图形配置或HA命令实现.当cluster停止时,编辑.cf类型的文件.详细情况请参考mc91.pdf的附录A.

配置和重新启动cluster,确认新的资源已经被认可:

hatype-displayMQM

(二)配置

所有的HA产品都有一个切换单元(unitoffailover)的概念.这是一套包含用于完成高可用服务的相关所有进程和资源的一套定义.这个方法最大化了每个服务的独立性,提供了灵活性和最小化故障发生的影响.在HACMP环境,切换单元名称为资源组.VCS环境名为服务组.HPserviceguard名为package.

MQ的最小切换单元为一个队列管理器.最优化的配置是把每个队列管理器放在不同的资源组中,资源组包含由队列管理器使用的共享磁盘(可以是卷组或磁盘组);用于连接队列管理器的ip地址和队列管理器.可以把多个队列管理器放在相同的资源组中,但是,如果这样,多个队列管理器在发生切换时,将一起切换.这可能导致不必要的应用中断;另外,如果要使用应用监控,资源组中只有一个队列管理器可以被监控.如果要检测多个,需要自己编写监控程序.

1.配置HAcluster,这里只是简要描述,详细情况需要参考相应HA高可用软件的说明.

HACMP:

1)在cluster节点配置TCP/IP.

2)配置cluster,cluster节点,和适配器

3)同步clustertopology.

VCS:

1)参照VCS文档,配置VCScluser

2)创建一个cluster,按照常规配置网络和系统

SeriviceGuard:

1)创建和配置ASCIIpackage的配置文件模板.

设置PACKAGE_NAME

设置NODE_NAME

设置RUN_SCRIPT

设置HALT_SCRIPT

设置SERVER_NAME

设置SUBNET

2)创建和配置package控制脚本

设置VG,LV和IP

设置SUBNET

设置SERVICE_NAME

3)使用提供的hamqm_start脚本,建立customer_define_run_cmds功能

4)使用提供的hamqm_stop脚本,建立customer_define_stop_cmds功能

5)禁止使用nodefailfast.

-打开package切换功能

针对所有平台:

确认初始的配置功能正确.比如可以创建一个独立的文件系统,测试它可从一个系统切换到另外一套系统.

2.创建共享卷组.在共享卷上创建队列管理器需要的数据和日志存放的文件系统.参考下图:

/MQHA//data用于存放队列管理器的数据

/MQHA//log用于存放队列管理器的日志

var/mqm不能建成一个文件系统,而应该为每个队列管理器建立如上的文件系统,这是因为安装补丁有时需要访问/var/mqm目录,如果只有活动节点可以访问此目录,则standby机器将无法安装补丁;另外也可保证halinkmqm脚本可以更新备份节点的mqs.ini.

3.创建MQ队列管理器

使用脚本hacrtmqm脚本创建队列管理器,此脚本会调用halinkmqm脚本,会对MQ队列管理运行需要的互斥数据保存在本地,并创建如图所示的目录和链接.确认队列管理器可以正常启动,定义所需的object,确认其他节点可以使用halinkmqm脚本启动队列管理器.

4.配置可移动的资源.

资源组将IP地址作为服务的标签.这是客户端和通道连接队列管理器的IP地址.可以为cascading或rotating.

HACMP:

1)创建一个资源组,自己选择配置种类

2)配置资源组,添加serviceIP标签,卷组,文件系统资源.

3)同步cluster资源

4)在每个cluster节点启动HACMP.确保cluster稳定性.各自的卷组已经切好,文件系统正确安装.

VCS:

1)创建一个servicegoup,注意选择合适的SystemList,Parallel,OnlineRetryLimit,OnlineRetryInterval,FailoverPolicy,AutoStart,AutoRestart,和AutoFailover属性

2)添加磁盘组和IP地址到服务组

3)确保服务组可以在节点间正常切换,并且符合属性设置.

ServiceGuard:

(详细步骤由HP提供)

1)配置cluster

1.1)创建ascii模板文件

cmquerycl-v-C/etc/cmcluster/cluster.ascii-nptaca2-nptaca3

1.2)修改模板,反映环境的改变,确认cluster配置

cmcheckconf-v-C/etc/cmcluster/cluster.ascii

1.3)应用配置文件,这将创建cluster,自动在cluster中分发cmclconfig文件

1.4)启动和停止cluster

cmruncl-v-nptaca2-nptaca3

cmviewcl-v

cmhalt-f-v

cmruncl-nptaca2-nptaca3

2)在第一个节点配置被称为mq1的ServiceGuardpackage

2.1)创建和修改mq1的package

cd/etc/cmcluster

mkdirmql

cmmakepkg-smql.conf

2.2)编辑mql.conf文件

2.3)进到新创建的mql目录,执行命令

cmmakepkg-stl

2.4)停止cluster

cmhaltcl-f–v

2.5)散发配置文件

cmapplyconf-v-C/etc/cmcluster/cluster.ascii-P/etc/cmcluster/mql/mql.conf

3)测试cluster和package启动

3.1)停止所有队列管理器

3.2)unmount所有卷组中的逻辑卷

3.3)deactivate卷组

3.4)启动cluster

cmruncl

3.5)检查package已经启动

cmviewcl-v

4)分配package的动态IP地址

4.1)暂停package

cmhaltpkgmql

4.2)编辑tl脚本,添加package的ip地址

4.3)重新启动package

cmrunpkg-vmql

4.4)检查package已经启动,并且有客户端

cmviewcl-v

5)添加第2个节点到cluster

5.1)编辑mq.conf文件,添加下面一行

NODE_NAMEptaca2

5.2)应用新配置

cmapplyconf-v-C/etc/cmcluster/cluster.ascii-Pmql.ascii

5.3)暂停cluster

cmhaltcl-f-v

5.4)重新启动cluster

cmruncl-v

6)测试package切换

6.1)停止mqlpackage

cmhaltpkgmql

6.2)在machineptaca3上启动mqlpackage

cmrunpkg-nptaca2mql

6.3)在ptaca3上给mqlpackage的打开package转换.

6.4)暂停mqlpackage

cmhaltpkgmql

6.5)在机器ptaca2上启动mqlpackage

cmrunpkg-nptaca2mql

6.6)在ptaca2上给mqlpackage打开package转换

cmmodpkg-emql

5.配置应用服务器或agent

在HAcluster环境的资源组中,队列管理器由应用服务器或agent代表.MQ的supportpac中包含了例子服务器启停方法,允许HA产品在对应cluster事件和命令时,启动和停止mq队列管理器.

对于HACMP和ServieGuard,脚本hamqm_start,hamqm_stop,hamqm_applmon程序为ksh脚本

对于VCS,由online,offline,monitor,clean的perl程序提供

HACMP:

1)定义启动和停止队列管理器的应用服务器.启动和停止脚本包含在supportpac中.可以客户化后使用,也可以不修改.脚本名称为hamqm_start和hamqm_stop

2)添加applicationserver到资源组的定义中.

3).同步cluster配置

4).测试系统可以通过将资源组online或offline,成功启停队列管理器.

VCS:

1)在/etc/VRTSvcs/conf/config/main.cf文件中添加一个资源entry.参考文档的附录A,看完整的main.cf文件内容.客户化此文件中的属性

2)在队列管理器资源,文件系统和IP地址间创建资源的依赖性.

3)启动服务组,检查可以成功启动队列管理器.

4)停止服务组,检查是否停止了MQ队列管理器.

Serviceguard:

1)定义start命令,这样用户可以在Serviceguard的控制下,使用mqm用户启动mq队列管理器.

sumqm-c"/MQHA/bin/hamqm_start_su$qmgr"

定义stop命令这样可以在Serviceguard的控制下使用mqm用户停止mq队列管理器.在脚本

/etc/cmcluster/mql/tl中添加下面一行,创建wrapper功能.

#sumqm-c"/MQHA/bin/hamqm_stop_su$qmgr30"

6.配置应用监控器

HACMP

如果您使用HACMP/ES,你不仅可以配置节点或网络故障恢复,也可以配置应用监控器监控队列管理器的健康和触发恢复措施,恢复的措施包括启动本地队列管理器或者将资源组切换到另外一个节点上.

当使用hacrtmqm脚本创建队列管理器,就会在/MQHA/bin目录夏创建一个名为hamqm_applmon$qmgr.

例子的应用监控器会监控MQ队列管理器是否在启动,或是否认为自己已经被启动.由于队列管理器的启动时间不同,取决与有多少log记录需要重放.如果用户自己编写应用监控器,需要考虑稳定期,以确保一个有效的mq队列管理器不被中断或错过问题的检测.

1)打开队列管理器监控.定义客户化的应用监控.提供监控脚本的名字.告诉HACMP多长时间调用一次.设置稳定间隔为10秒(除非你的队列管理器需要很长时间才能启动).

2)同步cluster资源

3)测试应用监控器的操作.特别要确认本地启动的功能已经配置.一个方便的测试方法是杀掉amqzxma0进程做测试

VCS:

不需特别配置.监控功能已经被自动调用

Serviceguard:

1)创建一个监控脚本.这个脚本为supportpac中提供的/MQHA/bin/hamqm_applmon_su脚本.

它将通过使用pingqmgr命令监控队列管理器的健康状况.

监控脚本将由针对队列管理器的packagecontrol脚本调用(etc/cmcluster/mql/tl).具体方法是通过添加下面几行到tl文件.

对于所有平台:

当stop脚本被调用后,如果mq队列管理器无法停止所有进程,将强制杀掉所有与此队列管理器相关的mq进程,

关于如何将cluster中的队列管理器移走或删除,本文就不再讲述.如果用户有此需要,可参考mc91.pdf一书.

 

 

 

窗体顶端

窗体底端

 

窗体顶端

窗体底端

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 实习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1