export HAHOME SERVICENAME=$1 CHECKTIME=$2
while test \do
RETURN=0
mdax=`ps -ef | grep mDAXSave | grep -v grep | wc -l` if test $mdax -eq 1 then RETURN=0 else
RETURN=1
$HAHOME/bin/APIERROR.x $SERVICENAME CheckError fi
# Report the result to HA daemon
if test $CHECKTIME -eq 0 then
if test $RETURN -eq 0 then
exit 0 else
exit 1 fi fi
26
if test $RETURN -eq 0 then
$HAHOME/bin/APIOK.x $SERVICENAME fi
sleep $CHECKTIME continue done echo $0 exit
红色部分需要根据实际情况改写为自定义服务开启时的进程名(例如自定服务mDAXSave开启时的进程名为mDAXSave,自此处填写mDAXSave)。其余代码无需改动。
注意:启动 监控 停止脚本名不能与自定义服务的进程名相同(也就是ha_ag_**.sh、**_start.sh、**_stop.sh中的**处的填写不能与自定义服务的进程名相同)。
10 手动测试
服务配置完成后,在ROSEHA中带入服务之前,需要手动测试配置在RoseHA中的启动、停止及监控脚本。
10.1 修改启动/停止脚本文件
因为RoseHA使用启动脚/停止脚本去启动/停止HA中配置的服务,因此,启动/停止脚本必须编写正确。RoseHA提供缺省的启动/停止脚本文件,在使用之前,必须根据本地的实际情况分别修改两台主机的这些脚本文件。
例如:
#cd /opt/roseha/bin #vi tmp_start.sh #vi tmp_stop.sh
注意:确保脚本中使用到的设备名称、挂载点、应用的用户账号和启动命令
27
正确无误。
10.2 手动挂载活动IP和卷
? 确保另外一台主机没有试用活动IP地址和挂载共享卷后,在本机的公网网卡上手动挂在活动IP地址:
#ifconfig eth0:1 192.168.3.199 up
? 如果需要,手动挂载共享卷到指定的挂载点
如果RoseHA的管理工具中配置了共享卷资源,并且它不是裸设备,手动挂载共享卷到指定的挂载点上(若使用启动/停止脚本去处理共享卷资源,请跳过此步)。
10.3 测试启动/停止脚本文件
? 进入到目录/opt/roseha/bin,手工执行tmp_start.sh来启动应用服务:
#./<脚本文件名><参数一﹕test><参数二﹕该脚本文件对应的服务(在RoseHA中的JOB)名称>
如:
#cd /opt/roseha/bin #./tmp_start.sh test job
其中tmp_start.sh是启动脚本名称,第一个参数是“test”,第二个参数“job”是RoseHA中应用服务的名称,此处为job。
判断tmp_start.sh的执行是否正常,应用服务是否正常启动。如果发现脚本文件错误,请将它修改正确。
? 进入到目录/opt/roseha/bin,手动执行监控脚本,检查监控脚本是否工作正常,在执行监控脚本之前,请确保应用服务已经正常启动,然后执行监控脚本,格式如下:
#HAHOME=`cat/etc/init.d/HAHOME` #export HAHOME #./ha_ag_tmp.sh job 0 #echo $?
查看echo $?的输出值,如果应用服务启动时,执行监控脚本,输出值应该为
28
0;如果应用服务停止时,执行监控脚本,输出值应该为1。
如果应用服务启动时测试结果不等于“0”,那么就表明启动脚本或者监控脚本有问题,此时我们可以用一个调试参数来查看命令在哪个地方出错,从而找到出问题的地方,在执行启动脚本或监控脚本时,在脚本命令最前面加上“sh –x”,就表明执行脚本时,脚本会打印出每一步的执行结果,这样我们就可以找出脚本执行异常的地方。例如:
#sh –x tmp_start.sh test job #sh –x ha_ag_tmp.sh job 0
? 进入到目录/opt/roseha/bin,手工执行tmp_stop.sh来停止应用服务。命令格式同上:
#./tmp_stop.sh test job
判断tmp_stop.sh的执行是否正常,应用服务是否停止。如果发现问题,修改正确。
? 手工释放Active IP地址,执行:
#ifconfig eth0:1 192.168.3.199 down
? 手工卸载共享卷资源(若使用启动/停止脚本去处理共享卷资源,请跳过此步)。
在另外一台主机上重复10.1~10.3步骤。
注:在上述的手工测试中,对于发现脚本中的错误,比较有帮助。在实际操作中一定要特别小心仔细。两台主机分别都测试成功之后,在进行下一步操作。
五 验证RoseHA的配置
【重要说明】上述四节说明的RoseHA应用服务资源配置完成之后,仅代表应用服务资源的完成;在资源配置完成之后,还需要测试RoseHA的集群功能,待测试结果无误之后,RoseHA集群功能才能正式上线应用。
1 手工切换测试
? 选择应用Job,点击工具栏中“Bringin”按钮将服务带入,然后通过客户
29
端访问应用服务,验证应用服务能否正常使用。
? 选择应用Job,点击工具栏,选择“Failover”将应用服务切换至备机,然后再通过客户端访问应用服务,检验应用服务是否可以继续使用。
2 关机测试
? 关闭主机
当应用服务处于带入状态时,关闭活动主机,备机检测到主机关机,开始接管主机的应用服务资源,接管完成以后,通过客户端访问应用服务,验证应用服务能否正常使用。
? 关闭备机
当应用服务处于带入状态时,关闭备机,当备机关闭后,主机检查到备机故障,但应用服务不会切换。
3 拔线测试(公网)
在进行拔线测试时,该测试主要针对公网进行 ? 拨活动主机公网
当应用服务在活动主机运行时,拔掉活动主机的公网网线,RoseHA检测到公网故障,会主动将应用服务切换到备机。然后通过客户端访问应用服务,验证应用服务能否正常使用。
? 拔备机公网
当应用服务在活动主机上运行时,拔掉备机的公网网线,RoseHA检测到备机公网网卡故障,应用服务不会切换。
4 杀进程测试
当应用服务在活动主机上运行时,通过任务管理器查询到应用服务进程信息,然后结束应用服务的进程,此时RoseHA检测到应用服务异常,RoseHA主动将应用服务资源切换到备机或在当前主机上重启应用服务,通过客户端访问应用服务,验证应用服务能否正常使用。
30