收藏 分享(赏)

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

上传人:dreamzhangning 文档编号:2286043 上传时间:2018-09-09 格式:DOCX 页数:11 大小:387.58KB
下载 相关 举报
如何在UNIX操作系统的HA 集群(CLUSTER)环境配置MQ的高可用性  MQ的问题new.docx_第1页
第1页 / 共11页
如何在UNIX操作系统的HA 集群(CLUSTER)环境配置MQ的高可用性  MQ的问题new.docx_第2页
第2页 / 共11页
如何在UNIX操作系统的HA 集群(CLUSTER)环境配置MQ的高可用性  MQ的问题new.docx_第3页
第3页 / 共11页
如何在UNIX操作系统的HA 集群(CLUSTER)环境配置MQ的高可用性  MQ的问题new.docx_第4页
第4页 / 共11页
如何在UNIX操作系统的HA 集群(CLUSTER)环境配置MQ的高可用性  MQ的问题new.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

1、如何在 UNIX 操作系统的 HA 集群(CLUSTER)环境配置 MQ 的高可用性?内容提要: 本 文详细介绍了如何在 HA 的集群(cluster)环境下创建和配置 MQ 队列管理器,也介绍了如何配置 HA 产品,以支持 MQ 的高可用性配置.本文提到的 HA 环境为 Solaris,AIX,HP 的高可用软件;也可适用其他 UNIX 系统包括 linux 操作系统.此文内容来自 MQ supportpac MC91. 说明:MQ 产品本身提供了很多有助于高可用性的功能,比如 mq 集群.MQ 集群主要用于简化管理和负载均衡,同时也提供了比单一的 MQ 队列管理器更好的高可用性.比如,一个

2、队列管理器发生故障,消息仍然可以发到 cluster 中配置了相同的队列实例的队列管理器上.但 WMQ 的集群无法提供队列管理器故障的自动检测和恢复,而借助操作系统的 HA 集群 CLUSTER,则可以实现这些功能.将 MQ 和操作系统 HA 产品的结合,可以进一步提供 WMQ 队列管理器的高可用性. 通过一个正确配置的 HA cluster, 可以检测到电源,节点,磁盘控制器,网络,网络适配器和队列管理器进程的故障,并自动触发恢复的程序,让受到影响的 MQ 队列管理器尽快恢复工作. 注释:1)本文中提到的 HA cluster 专指节点和资源的集合,用于提供 cluster 内部服务的高可用

3、性,与 MQ 的 cluster 概念不同.2)高可用性软件名称:AIX 平台:HACMPSolaris 平台:VCSHP 平台 :service guard正文:下面将详细介绍如何配置 MQ 在 HA 集群 CLUSTER 环境的高可用性.预先要求是操作系统,HA 产品已经成功安装.下图为配置的示意图:MQ 在 HA cluster 环境配置的中心问题就是将 MQ 队列管理器的互斥数据放在各自独立的文件系统中,而把队列管理器的其它数据放在共享文件系统上。(一) 安装1.安装 MQ 产品在 HA CLUSTER 的每个节点上按照常规安装 MQ,多个节点无法共享一个 MQ 安装.安装 MQ 的注

4、意事项如下:1)MQ 要安装在每个节点机器内盘上,不要安装在共享盘上所有节点的 MQ 版本要相同, 除非在做版本升级的过程中.2)安装 mq 时,注意不要如 MQ 信息中心所述,创建独立的/var/mqm 和/var/mqm/log 文件系统.3)所有节点定义的 mqm 用户和 mqm 组对应的 id 号要全部相同.2.安装 MQ supportpac MC91supportpac 下载网址:http:/ 管理器的 ip 地址和队列管理器.可以把多个队列管理器放在相同的资源组中,但是,如果这样,多个队列管理器在发生切换时,将一起切换.这可能导致不必要的 应用中断;另外,如果要使用应用监控,资源

5、组中只有一个队列管理器可以被监控.如果要检测多个,需要自己编写监控程序.1.配置 HA cluster,这里只是简要描述,详细情况需要参考相应 HA 高可用软件的说明.HACMP:1)在 cluster 节点配置 TCP/IP. 2)配置 cluster,cluster 节点,和适配器3)同步 cluster topology.VCS:1)参照 VCS 文档,配置 VCS cluser2)创建一个 cluster,按照常规配置网络和系统Serivice Guard:1)创建和配置 ASCII package 的配置文件模板.设置 PACKAGE_NAME设置 NODE_NAME设置 RUN_S

6、CRIPT设置 HALT_SCRIPT设置 SERVER_NAME设置 SUBNET2)创建和配置 package 控制脚本设置 VG,LV 和 IP设置 SUBNET设置 SERVICE_NAME3)使用提供的 hamqm_start 脚本,建立 customer_define_run_cmds 功能4)使用提供的 hamqm_stop 脚本,建立 customer_define_stop_cmds 功能5)禁止使用 node fail fast. - 打开 package 切换功能针对所有平台:确认初始的配置功能正确.比如可以创建一个独立的文件系统,测试它可从一个系统切换到另外一套系统.2

7、.创建共享卷组.在共享卷上创建队列管理器需要的数据和日志存放的文件系统.参考下图:/MQHA/data 用于存放 队列管理器的数据/MQHA/log 用于存放 队列管理器的日志var/mqm 不能建成一个文件系统,而应该为每个队列管理器建立如上的文件系统,这是因为安装补丁有时需要访问/var/mqm目录,如果只有活动节点可以访问此目 录,则 standby 机器将无法安装补丁;另外也可保证 halinkmqm 脚本可以更新备份节点的 mqs.ini.3.创建 MQ 队列管理器使 用脚本 hacrtmqm 脚本创建队列管理器,此脚本会调用 halinkmqm 脚本,会对 MQ 队列管理运行需要的

8、互斥数据保存在本地,并创建如图所示的目录 和链接.确认队列管理器可以正常启动,定义所需的 object,确认其他节点可以使用 halinkmqm脚本启动队列管理器.4.配置可移动的资源.资源组将 IP 地址作为服务的标签. 这是客户端和通道连接队列管理器的 IP 地址.可以为 cascading 或 rotating.HACMP:1)创建一个资源组,自己选择配置种类2)配置资源组,添加 service IP 标签,卷组,文件系统资源.3)同步 cluster 资源4)在每个 cluster 节点启动 HACMP. 确保 cluster 稳定性. 各自的卷组已经切好,文件系统正确安装.VCS:1

9、) 创建一个 service goup,注意选择合适的 SystemList , Parallel, OnlineRetryLimit,OnlineRetryInterval,FailoverPolicy,AutoStart,AutoRestart, 和 AutoFailover 属性2)添加磁盘组和 IP 地址到服务组3)确保服务组可以在节点间正常切换,并且符合属性设置.ServiceGuard:(详细步骤由 HP 提供)1)配置 cluster1.1)创建 ascii 模板文件cmquerycl -v -C /etc/cmcluster/cluster.ascii -n ptaca2 -n

10、 ptaca31.2) 修改模板,反映环境的改变,确认 cluster 配置cmcheckconf -v -C/etc/cmcluster/cluster.ascii1.3)应用配置文件,这将创建 cluster,自动在 cluster 中分发 cmclconfig 文件1.4)启动和停止 clustercmruncl -v -n ptaca2 -n ptaca3cmviewcl -vcmhalt -f -vcmruncl -n ptaca2 -n ptaca32)在第一个节点配置被称为 mq1 的 ServiceGuard package2.1) 创建和修改 mq1 的 packagecd

11、/etc/cmclustermkdir mqlcmmakepkg -s mql.conf2.2)编辑 mql.conf 文件2.3)进到新创建的 mql 目录,执行命令cmmakepkg -s tl2.4)停止 clustercmhaltcl -f v2.5)散发配置文件cmapplyconf -v -C /etc/cmcluster/cluster.ascii -P /etc/cmcluster/mql/mql.conf3)测试 cluster 和 package 启动3.1)停止所有队列管理器3.2)unmount 所有卷组中的逻辑卷3.3)deactivate 卷组3.4)启动 clus

12、tercmruncl3.5)检查 package 已经启动cmviewcl -v4)分配 package 的动态 IP 地址4.1)暂停 packagecmhaltpkg mql4.2)编辑 tl 脚本,添加 package 的 ip 地址4.3)重新启动 packagecmrunpkg -v mql4.4)检查 package 已经启动,并且有客户端cmviewcl -v5)添加第 2 个节点到 cluster5.1)编辑 mq.conf 文件,添加下面一行NODE_NAME ptaca25.2)应用新配置cmapplyconf -v -C /etc/cmcluster/cluster.as

13、cii -P mql.ascii5.3)暂停 clustercmhaltcl -f -v5.4) 重新启动 clustercmruncl -v6)测试 package 切换6.1)停止 mql packagecmhaltpkg mql6.2)在 machine ptaca3 上启动 mql package cmrunpkg -n ptaca2 mql6.3)在 ptaca3 上给 mqlpackage 的打开 package 转换.6.4)暂停 mql packagecmhaltpkg mql6.5)在机器 ptaca2 上启动 mql packagecmrunpkg -n ptaca2 mq

14、l6.6)在 ptaca2 上给 mql package 打开 package 转换cmmodpkg -e mql5.配置应用服务器或 agent在 HA cluster 环境的资源组中,队列管理器由应用服务器或agent 代表. MQ 的 supportpac 中包含了例子服务器启停方法,允许 HA 产品在对应 cluster 事件和命令时,启动和停止 mq队列管理器.对于 HACMP 和 ServieGuard, 脚本 hamqm_start,hamqm_stop,hamqm_applmon 程序为 ksh 脚本对于 VCS,由 online,offline,monitor,clean 的

15、 perl 程序提供HACMP:1)定义启动和停止队列管理器的应用服务器. 启动和停止脚本包含在 supportpac 中. 可以客户化后使用,也可以不修改.脚本名称为 hamqm_start 和 hamqm_stop2)添加 application server 到资源组的定义中.3).同步 cluster 配置4).测试系统可以通过将资源组 online 或 offline,成功启停队列管理器.VCS:1)在/etc/VRTSvcs/conf/config/main.cf 文件中添加一个资源 entry. 参考文档的附录 A,看完整的 main.cf 文件内容.客户化此文件中的属性2)在队

16、列管理器资源,文件系统和 IP 地址间创建资源的依赖性. 3)启动服务组,检查可以成功启动队列管理器. 4)停止服务组,检查是否停止了 MQ 队列管理器.Service guard:1)定义 start 命令,这样用户可以在 Serviceguard 的控制下,使用 mqm 用户启动 mq 队列管理器.su mqm -c “/MQHA/bin/hamqm_start_su $qmgr“定义 stop 命令这样可以在 Serviceguard 的控制下使用 mqm用户停止 mq 队列管理器.在脚本/etc/cmcluster/mql/tl 中添加下面一行,创建 wrapper 功能.#su mq

17、m -c “/MQHA/bin/hamqm_stop_su $qmgr 30“6.配置应用监控器HACMP如果您使用 HACMP/ES,你不仅可以配置节点或网络故障恢复,也可以配置应用监控器监控队列管理器的健康和触发恢复措施,恢复的措施包括启动本地队列管理器或者将资源组切换到另外一个节点上.当使用 hacrtmqm 脚本创建队列管理器,就会在/MQHA/bin 目录夏创建一个名为 hamqm_applmon$qmgr.例子的应用监控器会监控 MQ 队列管理器是否在启动,或是否认为自己已经被启动.由于队列管理器的启动时间不同,取决与有多少 log 记录需要重放. 如果用户自己编写应用监控器,需要

18、考虑稳定期,以确保一个有效的 mq 队列管理器不被中断或错过问题的检测.1)打开队列管理器监控. 定义客户化的应用监控. 提供监控脚本的名字. 告诉 HACMP 多长时间调用一次.设置稳定间隔为10 秒(除非你的队列管理器需要很长时间才能启动).2)同步 cluster 资源3) 测试应用监控器的操作. 特别要确认本地启动的功能已经配置. 一个方便的测试方法是杀掉 amqzxma0 进程做测试VCS:不需特别配置. 监控功能已经被自动调用Service guard:1)创建一个监控脚本. 这个脚本为 supportpac 中提供的/MQHA/bin/hamqm_applmon_su 脚本.它将通过使用 ping qmgr 命令监控队列管理器的健康状况.监控脚本将由针对队列管理器的 package control 脚本调用(etc/cmcluster/mql/tl).具体方法是通过添加下面几行到 tl 文件.对于所有平台:当 stop 脚本被调用后,如果 mq 队列管理器无法停止所有进程,将强制杀掉所有与此队列管理器相关的 mq 进程, 关于如何将 cluster 中的队列管理器移走或删除,本文就不再讲述.如果用户有此需要,可参考 mc91.pdf 一书.1021 是 否 有 帮 助 反 馈 成 功 反 馈 失 败2607038I19000

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报