免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3930 | 回复: 7
打印 上一主题 下一主题

[集群与高可用] 求助!Rose HA 自定义设置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-05-01 10:50 |只看该作者 |倒序浏览
求助各位高手,谁能给我提供一个ROSE HA自定义设置start、stop、agent脚本编写的例子或设置详解。我自定义切换一个exe文件,用start和kill做了两个bat文件,放在start和stop executable中,但是双机切换后总是不能成功打开。难道是我的脚本写的不对?

论坛徽章:
0
2 [报告]
发表于 2008-05-01 11:01 |只看该作者
自己顶一下,比如说我要在A服务器开机后始终运行cala.exe,切到B服务器后,A终止cala.exe,B运行cala.exe,这个自定义应该怎么设置?

论坛徽章:
0
3 [报告]
发表于 2008-05-01 18:52 |只看该作者
创建一个新的基于用户应用的自定义资源需要 agent, start script 和 stop script
如果 你要 自定义得应用很简单 ,你直接可以在 RoseHA的 图形界面上添加 如下命令

创建一个新的基于用户应用的自定义资源需要 agent, start script 和 stop script
如果 你要 所说的很简单 ,你直接可以在 RoseHA的 图形界面上添加 如下命令
Start Executable: haagent-start c:\test\text.txt

Stop Executable: haagent-stop c:\test\text.txt

Agent: haagent-monc:\test\text.txt

test 文本里写入

Agent:c:\winnt\system32\ cala.exe  应该就够了

带入是会启动 cala.exe 带出时 会停止 cala.exe

带入时 系统会监控cala.exe程序,当发生故障后 也会自动切换

[ 本帖最后由 jiayanzhao 于 2008-5-1 19:34 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-05-01 18:59 |只看该作者
编写脚本需要用到这几个命令
Start:运行执行程序后,在StartTimeOut时间后由RoseHA杀掉

Agent:运行执行程序后,RoseHA开始监控此程序

Agentless:运行执行程序后,RoseHA不监控此程序

StartTimeOut:启动程序超时时间值

Stop:运行执行程序后,在StopTimeOut时间后由RoseHA杀掉

StopTimeOut:停止程序超时时间值

[ 本帖最后由 jiayanzhao 于 2008-5-1 19:34 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2008-05-01 19:01 |只看该作者
例如c:\my_bin\test.txt  test.txt内容为
Start:c:\winnt\system32\calc.exe
Agent:c:\winnt\system32\clock.exe
Agentless:c:\winnt\regedit
Stop:c:\winnt\system32\notepad.exe
StartTimeOut:5000
StopTimeOut:5000

在Start Executable栏中输入
“haagent -start c:\my_bin\test.txt”
在Stop Executable栏中输入
“haagent -stop c:\my_bin\test.txt”
在Agent栏中输入
“haagent -mon c:\my_bin\test.txt”

将会有如下结果:

当启动自定义服务时,RoseHA所做动作:
启动 calc.exe,过5秒后终止该程序
启动 clock.exe, RoseHA将去监控clock进程
启动 regedit.exe, RoseHA不关心它的状态,任其自生自灭

当停止自定义服务时,RoseHA所做动作:
执行notepad.exe,过5秒后终止该程序
停止 clock.exe 程序
停止 regedit.exe 程序

[ 本帖最后由 jiayanzhao 于 2008-5-1 19:36 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-05-01 19:23 |只看该作者
在Start Executable、Stop Executable、Agent三项中填入如下格式的命令, 其中:
Start Executable: c:\haapi\start.bat
Stop Executable: c:\haapi\stop.bat
Agent: c:\haapi\haag.exe
特别提醒注意:在Agent编辑框中填写的Agent程序存放的目录名中如有“空格”字符,应该将Agent编辑框中的填写的内容加双引号括起来,例如:
Agent: ”c:\program files\NT cluster\agent.exe”
Start.bat 文件内容:启动clock时钟程序
start /B clock
使用参数“/B”,目的是使程序在后台运行。
stop.bat 文件内容:杀掉 时钟程序和agent 程序,注意有时可能每个语句需要执行两次,也就是说在stop.bat文件中将同一个kill 语句写两遍,“-f”参数是强制杀进程。
kill -f clock
kill -f clock
haag.exe 用户自己编写的监控程序,这里的例子是检测clock进程是否存在。
#include <stdio.h>
#include <stdlib.h>
#include "haapi.h"
#define PROCESS "CLOCK.EXE"
int ExistProcess(char *szName)
{
char bf[256];
FILE *fp;
sprintf(bf,"ps | grep %s",szName);
fp=_popen(bf,"r");
if(fp==NULL)return -1;
bf[0]=0;
fgets(bf,sizeof(bf),fp);
_pclose(fp);
return bf[0]!=0;
}
void main(int argc,char *argv[])
{
int nRet;
char szResource[128];
unsigned int uTime;
if(argc!=3)
{
printf("Usage: haag.exe ResoureName TimeOut");
exit(1);
}
sprintf(szResource,argv[1]);
uTime=atol(argv[2]);
//Open the resource
ApiOpen(szResource);
while(1)
{
nRet=ExistProcess(PROCESS);
if(nRet==1)
ApiOk(szResource);
else
ApiError(szResource);
_sleep(uTime/3+1000);
}
//Close the resource
ApiClose(szResource);
exit(0);
}

在实际配置过程中,用户可以自己的应用放在启动脚本中,停止的时候可以使用系统的kill程序将自己的程序停止,或自己有退出应用的方法,也可以在停止脚本中使用,而Agent程序需要特别注意一个参数:Agent Timeout,此参数缺省为0,表示HA会查这个Agent的
进程,当此进程在,HA认为服务正常,当此进程不在,HA认为服务异常,就会发生切换;而当此值为非0的正值时,HA需要该Agent程序报告检测应用的状况,也就是上面c++例子编写的情况,它需要调用HA的API接口函数来向HA报告检测情况。

[ 本帖最后由 jiayanzhao 于 2008-5-1 19:37 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2008-05-05 08:46 |只看该作者
少写一个HAAPI.LIB吧,如果不做link,build agent不能用。没有这个文件在系统的system32下,也不行。

[ 本帖最后由 下一秒 于 2008-5-5 08:47 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2008-05-05 22:02 |只看该作者
非常感谢楼上的大侠!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP