当集群软件newstart HA部署并上线后,后期维护变得既是重点也是难点,如何管理?出现问题如何处理?这对接触集群软件不深的维护人员来说是首要面对的难题.下面与大家一起深入了解newstart HA,解决这两难题。


管理工具:CLI

Newstart HA提供了命令行下的管理工具cli来对其进行日常管理,所以要想管理好集群软件,必须熟悉它。Cli工具使用很简单,只要了解其操作指令即可,下面来详细讲解。


首先,命令行下直接输入cli即可进入该工具:

# cli


       NewStartHA High  Available System. Version 3.0.1.07, release 20130107.

       Copyright  2008-2012 Guangdong NewStart Technology Service Ltd.


You are using a trial license, and 61 days remain. Please  register.

Product SN = 00TB24-FC0TCF-629A1H-B00D46


cli:~>


关于查询提供的管理指令,进入cli工具后双击Tab键会列出所有管理指令,如:

cli:~>

alarmIP-modify        cluster-show           help                  resource-stop        service-modify      check-config         cluster-start         lockdisk-adm         service-add    service-show     check-script     cluster-stat                  modify-config    service-delete      service-start      clear-fault   cluster-stop         quit                 service-disable         service-stop cluster-init         exit                 resource-critical    service-enable       show-status        cluster-modify       heartbeat-add        resource-enable      service-init         thirdpartyip-add  cluster-restart      heartbeat-delete     resource-start       service-migrate      thirdpartyip-delete

管理指令简述:

alarmIP-modify:配置SNMP告警监控

cluster-show显示集群配置

help:查看管理指令的说明及用法,如help + 指令

resource-stop:      停止服务中的某些资源

service-modify:调整服务配置,如增、删和修改服务中某些资源

check-config:检查集群及服务配置文件

cluster-start启动集群

lockdisk-adm:配置仲裁盘

service-add增加一个服务

service-show显示服务详细配置信息

check-script:用于检测HA脚本是否合理的工具,要求全pass.

cluster-stat:持续显示集群状态

modify-config:转换集群及服务配置文件

service-delete:删除一个服务

service-start:启动服务

clear-fault:刷新集群状态显示,重置显示界面

cluster-stop集群停止

quit/exit:退出cli工具

service-disable:服务脱离集群管控

service-stop停止服务

cluster-init:集群初始化,刚部署完程序才会用动,后续很少用

resource-critical:设置关键资源

service-enable集群重新管控服务

show-status:显示一次集群状态

cluster-modify:集群配修改

heartbeat-add增加心跳链路

resource-enable:服务的脚本资源管控/脱控

service-init:服务初始化

thirdpartyip-add:增加第三方IP,与工作链路同一网段的存在的IP

cluster-restart:集群重启

heartbeat-delete删除心跳链路

resource-start:启动服务中的脚本资源、

service-migrate服务手动切换

thirdpartyip-delete:删除第三方IP


从上面列出的指令来看,数量也有几十个,但只需熟悉其中的一些(粗体标识)即可轻松管理好集群软件,为了加深印象,下面结果实际场景来说明。在此之前,有个小技巧要分享一下,指令可以使用tab键补全,不用每个字符敲。

1、查询当前集群运行状态。

指令:cluster-stat/show-status


2、确认当前集群和服务的配置情况。

指令:cluster-show、service-show


3、集群中的机器名称(hostname)需要修改,则需要调整集群及服务的配置文件。

指令:cluster-modify、service-modify

PS:

这两指令是最重要,最常用的,因为配置文件里面涉及的资源都可修改/调整,如增/删浮动IP,修改服务名称,重定义脚本路径等。


4、集群环境中按需求新增/删除一个服务

指令:service-add/service-delete


5、业务需升级,涉及的操作有集群停止、集群启动和升级后的服务进行倒换。

指令:cluster-stop、cluster-start、service-migrate

6、集群软件推出新版本,对其新增功能有需求,需要升级到新版本,但又不想影响业务运行;此需求需要把业务脱离HA管控,待升级后重新管控业务。

指令:service-disable、service-enable


7、原集群中仅有一条心跳链路,存在风险,现需增加一条心跳链路。

指令:heartbeat-add

同样,删除心跳使用指令:heartbeat-delete


8、业务做维护,需要停止,待检查完成后再手动启动

指令:service-stop、service-start


故障处理

运行的系统难免会出现一些“意外”,这也是维护人员存在的原因,那针对集群环境,在遇到故障时如何排查?如何分析?如何处理?首先,当出现可能性故障时,先登陆cli管理工具查看集群运行状态,一般情况下可以从状态图看出哪方面出现问题。举个例子:假如业务tomcat 运行在1节点上,下面有人反应某个时间点出现过业务系统登陆不上的情况,登陆cli查看集群运行状态,如:

               Press  Ctrl-C or 'Q' to exit

               Date:  Tue May 14 13:54:07 2013


Member                  status

centos6-1               UP

centos6-2               UP      


WorkLink                centos6-1               centos6-2

eth0                    ONLINE                  ONLINE  


HeartbeatLink           centos6-1               centos6-2               status  

network                 eth1                    eth1                    ONLINE

network                 eth2                    eth2                    ONLINE  


ServiceName             centos6-1               centos6-2               Enable  

*tomcat                   stopped:stu(A)         running                 YES


str start fail, stp  stop fail, stu status fail, op  operation fail, G Gateway

A Application, I IP, M Mount, S Storage, W Work link,T Time out B  Split Brain

从上面状态图可以看到,集群节点、工作链路和心跳链路都是正常的(up或online),但服务tomcat现已切换到2节点,1节点tomcat停止,报stu(A),查看最后两行的简述得知业务的状态检测发现业务(应用)异常,并已成功倒换,这时候就要查看业务的日志定位具体异常原因并做出处理。


从集群状态图中可以了解集群运行状态及故障出现原因的大体定位,但很多时候需了解当时详细情况,这就需要分析HA(ha-log)及系统(messages)的相关日志。messages日志相信大家都不陌生,这里就不多说,下面来了解一下HA的日志.

HA日志级别分为四级:错误(error/ERROR),警告(warn/WARN),信息(info),调试(debug/DEBUG),我们主要关注其中的错误及警告级信息(这些信息打印挺简单,阅读起来也挺容易的),其它两级日志较次要,可以跳跃查看/不看。同时,HA日志打印的信息量较大,在比较紧急情况下,还是建议直接发给HA专业人员分析,以便快速定位;日志分析有时需要结合其它资料来看,如配置文件,系统相关信息等,为了方便收集分析所需的全部资料,HA提供了名为hareport的资料收集工具,使用方法的话,在命令行下输入工具名称,然后直接运行即可。


先与大家分享这些,希望对你有所帮助,同时相信了解并熟悉以上两块的知识后,后期集群维护工作也会变得容易起来。