ITPub博客

首页 > 数字化转型 > ERP > Heartbeat CRM模式

Heartbeat CRM模式

原创 ERP 作者:logzgh 时间:2008-07-23 14:44:07 0 删除 编辑

heartbeat默认模式是没法监控资源的,也就是说其中某个资源要是crash掉了,也不会发生任何动作,它只有当它认为对方机器dead后才会发生动作。也就是机器crashed,网络断掉了之类。这显然没法达到我们的目标。

为了达到我们的目标就要采用crm(cluster resource management)模式了。

[@more@]

首先,先按默认模式配置heartbeat(详见heartbeat新手上路)

默认模式配置成功后,再按下面的步骤操作:

1)在ha.cf里面增加

crm on

2)将haresources资源文件转换成cib.xml文件,2.1.3自带有转换脚本

/usr/local/lib64/heartbeat/haresources2cib.py haresources

输出文件在/usr/local/var/lib/heartbeat/crm/cib.xml

3)如果haclusterhaclient用户和用户组是在安装heartbeat之后创建的话,则需要执行下面命令修改权限

修改heartbeat目录权限,可以用以下命令:

find / -type d -name "heartbeat" -exec chown -R hacluster {} ;

find / -type d -name "heartbeat" -exec chgrp -R haclient {} ;

4)在2.0的版本中ipfailcrm 模式有冲突,所以在ha.cf中不可打开ipfail

5) cib.xml文件的修改

如果在IPaddr中有下面两行,则删除:

2.1.3版本生成的cib.xml文件中,mysql资源是ocf格式的,而它自带的mysql角本是无法启动mysql的,所以需要修改,有两种方法。在修改前先介绍一下ocflsb格式的区别:

LSB格式的角本必须支持status功能,必须能接收start,stop,status,三个参数;而如果是OCF格式,则必须支持start,stop,monitor三个参数.其中statusmonitor参数是用来监控资源的,非常重要.

例如LSB风格的脚本,运行./mysql status时候,

返回值包含OK或则running则表示资源正常

返回值包含stopped或者No则表示资源不正常。

假如是OCF风格的脚本,运行./mysql monitor时候,

返回0表示资源是正常的,

返回7表示资源出现问题.

ocf格式的启动角本在/usr/lib/ocf/resource.d/heartbeat(也许你的机器上目录不是这个,可以搜索ocf来查找)

lsb格式的启动角本在/usr/lib/lsb/resource.d/heartbeat目录下。

两种修改方法

1.修改cib.xml,将mysqlocf改成lsb。然后在/usr/lib/lsb/resource.d/heartbeat(如果该目录不存在,则手工创建,并将权限赋给hacluster:haclient)下面执行ln -s /etc/init.d/mysql mysql

注意,如果修改过cib.xml文件后,需要将同目录下面其他文件均删除!

2.修改/usr/lib/ocf/resource.d/heartbeat下面的mysql的角本,使之能正常工作。或者将/etc/init.d/mysql拷过来,修改使它支持monitor操作

6) 然后启动heartbeat即可。Service heartbeat start.

7)如果mysql采用双master的话,则在stop资源后,记的将mysql手动起来。

Heartbeat CRM模式管理

1)查看所有资源

[root@alssme_probe3 sbin]# crm_resource -L

Resource Group: group_1

IPaddr_172_18_158_111 (heartbeat::ocf:IPaddr)

mysql_2 (lsb:mysql)

2)查看资源跑在哪个节点上

[root@alssme_probe3 sbin]# crm_resource -W -r mysql_2

resource mysql_2 is running on: alssme_probe3

4)启动/停止资源(cluster不会发生切换,手工停mysql,将会重新启动或者发生切换)

[root@alssme_probe4 crm]# crm_resource -r mysql_2 -p target_role -v started

[root@alssme_probe3 sbin]# crm_resource -r mysql_2 -p target_role -v stopped

5)查看资源在cib.xml中的定义

[root@alssme_probe3 sbin]# crm_resource -x -r mysql_2

mysql_2 (lsb:mysql): Started alssme_probe3

raw xml:

60s" name="monitor" timeout="30s"/>

即每60秒检测资源运行情况,如果发现资源不在,则尝试启动资源,如果30s后还未启动成功,则资源切换向另节点。时间可以修改( mysql一般建议采用这个时间值)

6)将资源移向指定节点

crm_resource -M -r mysql_2 -H alssme_probe4

7)允许资源回到正常的节点

crm_resource -U -r mysql_2

NOTE: the values of resource_stickiness and default_resource_stickiness may mean that it doesnt move back. In such cases, you should use -M to move it back and then run this command.

9)将资源从CRM中删除

crm_resource -D -r mysql -t primitive

10)将资源组从CRM中删除

crm_resource -D -r my_first_group -t group

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/100091/viewspace-1007707/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    97
  • 访问量
    976761