免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: applegump
打印 上一主题 下一主题

heartbeat crm模块如何使用 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2012-08-21 19:41 |显示全部楼层
本帖最后由 sacry 于 2012-08-21 19:41 编辑

瞅了两眼没看出root case。
不过有几点

1,使用的是什么版本的...
2,oradb2-1上crm_mon出现[Not connected:Refresh in 3s...]的话,是oradb2-1上crm还没启动起来吧。
3,版本不明,所以这里也不太确定。不过ha.cf里配置了crm yes,那haresources文件应该没用了(也许还有效,但是不推荐再在那里配置)。
4,http有community版脚本的,不需要自己写。
4a,ps | grep会把grep这个进程也算进去,所以会比实际的多。
4b,rh的话可以引入/etc/rc.d/init.d/functions, 里面有status函数。 不是rh也可以参照下其他脚本怎么写的,你现在写的这个用在ha里有点纠结...
5,如果有你用的版本有crm命令的话,可以用crm configure show贴出配置。xml的配置看起来还是有点麻烦的。
5a,cib配置似乎没有什么问题。

以上所说不太能解决你描述的问题的样子,唯一像一点的原因还是2,oradb2-1上crm根本没有启动起来
看log里有:
ccm[13739]: 2012/08/21_17:34:14 ERROR: socket_wait_conn_new: unlink failure(/usr/local/var/run/heartbeat/ccm/ccm): Permission denied

heartbeat[13821]: 2012/08/21_17:34:21 info: Starting "/usr/local/lib/heartbeat/ccm" as uid 503  gid 501

503 501是你的ha用户组?有/usr/local/var/run/heartbeat/ccm/的访问权限吗?

论坛徽章:
0
2 [报告]
发表于 2012-08-22 09:29 |显示全部楼层

论坛徽章:
0
3 [报告]
发表于 2012-08-22 09:31 |显示全部楼层
主节点的heartbeat能正常拉起httpd,能分配到 192.1.101.212这个IP,但是备节点oradb2-1还是不能拉起httpd


primitive资源本来就不能同时启动,只能Failover。
如果有crm命令的话,贴一下crm configure show的结果,xml看起来麻烦。
不过多半不是资源配置的问题,你那lsb脚本....

论坛徽章:
0
4 [报告]
发表于 2012-08-22 09:43 |显示全部楼层
本帖最后由 sacry 于 2012-08-22 09:52 编辑

如果你贴出来的脚本是全部的话,那铁定错了。

heartbeat要的lsb脚本是遵循linux standard base的脚本(主要是指返回值)。
http://linux-ha.org/wiki/LSB_Resource_Agents
http://refspecs.linuxbase.org/LS ... ic/iniscrptact.html

你写的脚本是给人看,不是给程序看的。
不管启动停止都是echo,返回值都是0,
两台机器,不管自己的http有没有启动,读到的都是0(program is running or service is OK),所以会悲剧。

PS;判断程序是否启动不是这么判断的..
一个简单通用的做法是
  1. if [ -f $pidfile ] ; then
  2.     pid=`cat $pidfile`
  3.     if [ "x"$pid != "x" ] && kill -0 $pid > /dev/null 2>&1 ; then
  4.         return 0
  5.     else
  6.         return 1
  7.     fi
  8. else
  9.     return 3
  10. fi
复制代码

论坛徽章:
0
5 [报告]
发表于 2012-08-22 13:43 |显示全部楼层
回复 26# applegump

apache httpd这种很流行的软件,community肯定会提供脚本的。
事实上推荐的是OCF标准的脚本而不是LSB标准的,你设置的IP资源就是用的OCF的脚本
<primitive class="ocf" id="IPaddr_192_1_101_212" provider="heartbeat" type="IPaddr">

可以试着用这个命令找一下ocf资源放哪个文件夹的,默认提供了哪些脚本。
    locate resource.d

想自己写的话,即使不熟悉shell,照着规范努力下也能敲出来。但是测试环境用用可以,生产环境就.....


=====

为什么还要使用2.0.8版本啊,应该没什么特别的好处。

论坛徽章:
0
6 [报告]
发表于 2012-08-22 15:00 |显示全部楼层
本帖最后由 sacry 于 2012-08-22 15:01 编辑

回复 28# applegump

===================================
》我真正想说的

ocf脚本不是这么启动的,这又是另外一个挺长的话题。

不知道你是学习,还是急着就要部署。
如果时间充分的话重头来比较好,重装一个新点的版本什么的。
不是稳定不稳定的问题,而是2.0.x其实文档较少(整个heartbeat文档就不多),依赖MaillingList,别人的经验。
相比之下,3.x的crm其实就是pacemaker,资料全一点(虽然是英文的)。

===================================
》 可能对你有用的。

LSB是Linux Starnd Base,其实就是/etc/init.d下面的东西,一般可以用来被集群使用,
但是有一些不足,比如不能传参数,只能启动一个实例等。
OCF是open cluster framework,集群专用的标准,对使用来说最大的特点就是【参数】。

想命令行启动的话
export OCF_ROOT=/usr/lib/ocf
export OCF_RESKEY_httpd=/apache/bin/httpd
export OCF_RESKEY_configfile=/apache/conf/httpd.conf
注:我记得要配置PIDFILE的样子。
然后再使用脚本。

想配置到集群的话,没有crm命令只能用cibadmin命令改xml,参照pacemaker文档配吧,
简单点的只要照着ip那个来就可以了。

===================================
》 补充说明

-Hearbeat 1.0
    只支持2台机器...
    没有资源管理。(也就是不可以Apache在节点A上跑MySQL在节点B上跑,要么全A要么全B。)

-Heartbeat 2.0
   多了CRM(集群资源管理) 同时支持旧的haresources和新的cib.xml配置。

-Heartbeat 3.0
   CRM从Heartbeat项目分离成Pacemaker,成为主要要使用的东西,
   Heartbeat本身只是个通信层而已,man一下ha.cf各种deprecated。

heartbeat2.0的最后版本是2.0.14的样子,已经是很久以前的事了(估计四五年是有的了)。
目前heartbeat社区这么个东西已经废了,pacemaker的还挺活跃的,文档还在更新。

所以如果没什么特别要求,现在开始学的话学3(其实是学Pacemaker了)可能好点,资料相对较多。

===================================
》 其他

问道有先后,术业有专攻,人人都是“在路上”,没什么见笑。

我不懂,因为我不想懂不需要懂!
我不懂,但是我明天会懂!!
学,必有所得!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP