《如何在UNIX操作系统的HA-集群(CLUSTER)环境配置MQ的高可用性.docx》由会员分享,可在线阅读,更多相关《如何在UNIX操作系统的HA-集群(CLUSTER)环境配置MQ的高可用性.docx(10页珍藏版)》请在优知文库上搜索。
1、如何在UNIX操作系统的HA集群(CLUSTER)环境配置MQ的高可用性?内容提要:本文详细介绍了如何在HA的集群(CIUStCr)环境下创立和配置MQ队列管理器,也介绍了如何配置HA产品,以支持MQ的高可用性配置.本文提到的HA环境为Solaris,AIX,HP的高可用软件;也可适用其他UNIX系统包括IinUX操作系统.此文内容来自MQsupportpacMC91.说明:MQ产品本身提供了很多有助于高可用性的功能,比方mq集群.MQ集群主要用于简化管理和负载均衡,同时也提供了比单一的MQ队列管理器更好的高可用性.比方,一个队列管理器发生故障,消息仍然可以发到cluster中配置了相同的队列
2、实例的队列管理器上.但WMQ的集群无法提供队列管理器故障的自动检测和恢复,而借助操作系统的HA集群CLUSTER,那么可以实现这些功能.将MQ和操作系统HA产品的结合,可以进一步提供WMQ队列管理器的高可用性.通过一个正确配置的HAcluster,可以检测到电源,节点,磁盘控制器,网络,网络适配器和队列管理器进程的故障,并自动触发恢复的程序,让受到影响的MQ队列管理器尽快恢复工作.注释:1)本文中提到的HAcluster专指节点和资源的集合,用于提供ClUSter内部效劳的高可用性,与MQ的ClUSter概念不同.2)高可用性软件名称:AIX平台:HACMPSolaris平台:VCSHP平台:
3、serviceguard正文:下面将详细介绍如何配置MQ在HA集群CLUSTER环境的高可用性.预先要求是操作系统,HA产品已经成功安装.下列图为配置的示意图:ClusterDiagram-htkM8Ml0Nh*M3PMfU&iCMidpMCiXfMoftXJM*5dMSMQ在HACIUSter环境配置的中心问题就是将MQ队列管理器的互斥数据放在各自独立的文件系统中,而把队列管理器的其它数据放在共享文件系统上。(一)安装L安装MQ产品在HACLUSTER的每个节点上按照常规安装MQ,多个节点无法共享一个MQ安装.安装MQ的考前须知如下:DMQ要安装在每个节点机器内盘上,不要安装在共享盘上所有节
4、点的MQ版本要相同,除非在做版本升级的过程中.2)安装mq时,注意不要如MQ信息中心所述,创立独立的varmqm和varmqmIog文件系统.3)所有节点定义的mqm用户和mqm组对应的id号要全部相同.2.安装MQsupportpacMC91Supportpac下载网址:在每个cluster中的节点,以mqm或root登录.对于HACMP和serviceguard软件,创立MQHAbin目录.对于VCS软件,创立optVRTSvcsbinMQM目录.此为例子脚本指定的工作目录.也可以把脚本放到不同的目录,但需要相应的修改脚本.将下载的Supportpac文件解压缩后放到所选目录.确保所有此目
5、录下的脚本具有执行权限:AIX平台和HP平台:# Chlnod755ha*Solaris平台:# ChnIOd+xonlineofflinemonitorcleanha*explain另外,对于Solaris平台,Agent的方法是由perl语言写的.需要拷贝或链接ScriptAgent的二进制到MQM的代理目录.# CPoptVRTSvcsbinScriptAgent/opt/VRTSvcs/bin/MQMMQMgentMQM的资源类型需要被加到cluster的配置文件:当cluster运行时,可以使用VCCS图形配置或HA命令实现.当CIUSter停止时,编辑.Cf类型的文件.详细情况请参
6、考mc91.pdf的附录A.配置和重新启动cluster,确认新的资源已经被认可:hatype-displayMQM(二)配置所有的HA产品都有一个切换单元(Unitoffailover)的概念.这是一套包含用于完成高可用效劳的相关所有进程和资源的一套定义.这个方法最大化了每个效劳的独立性,提供了灵活性和最小化故障发生的影响.在HACMP环境,切换单元名称为资源组.VCS环境名为效劳组.HPserviceguard名为Package.MQ的最小切换单元为一个队列管理器.最优化的配置是把每个队列管理器放在不同的资源组中,资源组包含由队列管理器使用的共享磁盘(可以是卷组或磁盘组);用于连接队列管理
7、器的ip地址和队列管理器.可以把多个队列管理器放在相同的资源组中,但是,如果这样,多个队列管理器在发生切换时,将一起切换.这可能导致不必要的应用中断;另外,如果要使用应用监控,资源组中只有一个队列管理器可以被监控.如果要检测多个,需要自己编写监控程序.1 .配置HAcluster,这里只是简要描述,详细情况需要参考相应HA高可用软件的说明.HACMP:1)在CIUSter节点配置TCP/IP.2)配置cluster,cluster节点,和适配器3)同步CIUStertopology.VCS:1)参照VCS文档,配置VCSCluser2)创立一个cluster,按照常规配置网络和系统Serivi
8、ceGuard:1)创立和配置ASCnpackage的配置文件模板.设置PACKAGE,NAME设置N0DE_NAME设置RUN_SCRIPT设置HALT,SCRIPT设置SERVER,NAME设置SUBNET2)创立和配置PaCkage控制脚本设置VG,LV和IP设置SUBNET设置SERvlCE_NAME3)使用提供的hamqm_start脚本,建立customer_define_runcmds功能4)使用提供的hamqmstop脚本,建立customerdefinestopcmds功能5)禁止使用nodefai1fast.-翻开package切换功能针对所有平台:确认初始的配置功能正确.
9、比方可以创立一个独立的文件系统,测试它可从一个系统切换到另外一套系统.2 .创立共享卷组.在共享卷上创立队列管理器需要的数据和日志存放的文件系统.参考下列图:FilesystemorganisationThgrttxftr.3q.ueEeQercienacsciMQHAdata用于存放队列管理器的数据MQHAIOg用于存放队列管理器的日志var/mqm不能建成一个文件系统,而应该为每个队列管理器建立如上的文件系统,这是因为安装补丁有时需要访问varmqm目录,如果只有活动节点可以访问此目录,那么standby机器将无法安装补丁;另外也可保证halinkmqm脚本可以更新备份节点的mqs.ini
10、.3 .创立MQ队列管理器使用脚本hacrtmqm脚本创立队列管理器,此脚本会调用halinkmqm脚本,会对MQ队列管理运行需要的互斥数据保存在本地,并创立如下图的目录和链接.确认队列管理器可以正常启动,定义所需的object,确认其他节点可以使用halinkmqm脚本启动队列管理器.4 .配置可移动的资源.资源组将IP地址作为效劳的标签.这是客户端和通道连接队列管理器的IP地址.可以为cascading或rotating.HACMP:1)创立一个资源组,自己选择配置种类2)配置资源组,添加serviceIP标签,卷组,文件系统资源.3)同步CIUSter资源4)在每个CIUSter节点启动
11、HACMP.确保cluster稳定性.各自的卷组已经切好,文件系统正确安装.VCS:1)创立一个SerViCegoup,注意选择适宜的SyStemLiSt,Parallel,OnlineRetryLimit,OnlineRetrylnterval,FailoverPolicy,AutoStart,AutoRestart,和AutoFailover属性2)添加磁盘组和IP地址到效劳组3)确保效劳组可以在节点间正常切换,并且符合属性设置.SCrViCCGUard:(详细步骤由HP提供)1)配置clusterLl)创立ascii模板文件Cmquerycl-v-Cetccmclustercluster
12、.ascii-nptaca2-11ptaca31.2)修改模板,反映环境的改变,确认cluster配置cmcheckconf-v-C/etc/cmcluster/cluster,ascii1. 3)应用配置文件,这将创立cluster,自动在cluster中分发Cmclconfig文件1. 4)启动和停止clustercmruncl-v-nptaca2-nptaca3cmviewcl-vcmhalt-f-vcmruncl-nptaca2-nptaca32)在第一个节点配置被称为mql的SCrViCeGUardpackage2. 1)创立和修改mql的packagecdetccmclusterm
13、kdirmqlCmmakepkg-smql.conf2. 2)编辑mql.conf文件2. 3)进到新创立的mql目录,执行命令Cmmakepkg-Smqltl2. 4)停止CIUStercmhaltcl-f-v2. 5)散发配置文件cmapplyconf-v-Cetccmclustercluster.ascii-P/etc/cmcluster/mql/mql.conf3)测试cluster和package启动3. 1)停止所有队列管理器3. 2)unmount所有卷组中的逻辑卷3. 3)deactivate卷组3. 4)启动clustercmruncl3. 5)检查package已经启动Cm
14、viewcl-v4)分配package的动态IP地址4. 1)暂停packageCmhaltpkgmql4.2)编辑mqltl脚本,添加package的ip地址4. 3)重新启动packageCmrunpkg-vmql4. 4)检查package己经启动,并且有客户端Cmviewcl-v5)添加第2个节点到cluster5. 1)编辑mq.conf文件,添加下面一行NODE_NAMEptaca25. 2)应用新配置cmapplyconf-V-Cetccmclustercluster.ascii-Pmq1.ascii5. 3)暂停clustercmhaltcl-f-v5. 4)重新启动CIUSt
15、ercmruncl-v6. 测试package切换6.1)停止mqlpackageCmhaltpkgmql6.2)machinePtaCa3上启动mqlpackagecmrunpkg-nptaca2mql6.3)在ptaca3上给mqlpackage的翻开package转换.6.4)暂停mqlpackageCmhaltpkgmql6.5)在机器ptaca2上启动mqlpackagecmrunpkg-11ptaca2mql6.6)在ptaca2上给mqlpackage翻开package转换cmmodpkg-emql5.配置应用效劳器或agent在HAClUStCr环境的资源组中,队列管理器由应用效劳器或agent代表.MQ的Supportpac中包含了例子效劳器启停方法,允许HA产品在对应cluster事件和命令时,启动和停止mq队列管理器.对于HACMP和ServieGuard,脚本hamqm_start,hamqm_stop,hamqm-applon程序为ksh脚本对于VC