使用CRM方式管理heartbeat

Heartbeat 是一个基于Linux开源的,被广泛使用的高可用集群系统。主要包括心跳服务和资源接管两个高可用集群组件。其资源管理方式可以使用基于haresource文件方式进行管理,也可以通过基于CIB方式进行管理。基于CIB方式其集群资源采用了xml格式来保存其资源配置信息。可以把基于haresouce文件管理的资源转换为基于CIB方式管理。其最大的优势是通过CIB方式管理使得集群的管理更方便和易于监控。本文主要描述crm方式命令行管理heartbeat。
有关heartbeat相关参考:
HeartBeat 集群组件概述
Linux 下安装及配置heartbeat
Linux基于heartbeat配置httpd高可用服务

一、相关配置文件描述

###节点信息
# more /etc/hosts
127.0.0.1 localhost.localdomain localhost

#public ip
192.168.21.10 orasrv1.xlk.com orasrv1
192.168.21.13 orasrv2.xlk.com orasrv2

#private ip
192.168.144.128 orasrv1-priv.xlk.com orasrv1-priv
192.168.144.129 orasrv2-priv.xlk.com orasrv2-priv

###配置文件信息
# cat /etc/ha.d/ha.cf        ###ha.cf文件
logfile /var/log/ha-log
keepalive       2
deadtime        15
warntime        30
initdead        60
udpport         694
bcast           eth0
auto_failback   off
node orasrv1.xlk.com
node orasrv2.xlk.com
ping 192.168.21.254
respawn hacluster  /usr/lib64/heartbeat/ipfail
crm respawn ###此项用于定义开启crm方式,或者说是pacemaker(heartbeat V3后)

#CRM与Resources并不兼容,如果ha.cf中定义了CRM,HA服务不会去读取/etc/ha.d/haresources配置文件
#在日志文件中会看到这样的提示:This file is not used because crm is enabled

# cat /etc/ha.d/authkeys ###authkeys文件
auth 1
1 md5 74a6a503b5bec9373b22bb630608df41

# more /etc/ha.d/haresources  ###资源文件
orasrv1.xlk.com IPaddr::192.168.21.1 httpd

###使用ha_propagate同步配置文件,注意,不包含haresource文件
###ha_propagate使用的基于等效ssh下scp命令方式,同时连接到节点上使用chkconfig开启heartbeat自启动
[root@orasrv1 heartbeat]# /usr/lib64/heartbeat/ha_propagate

二、启动heartbeat服务

# service heartbeat start                 ###节点1
# ssh orasrv2 'service heartbeat start'   ###节点2
# netstat -nltp|grep 5560                 ###查看mgmtd端口
tcp        0      0 0.0.0.0:5560                0.0.0.0:*                   LISTEN      4128/mgmtd
# ssh orasrv2 'netstat -nltp|grep 5560'
tcp        0      0 0.0.0.0:5560                0.0.0.0:*                   LISTEN      3434/mgmtd    

###查看heartbeat相关进程
# ps -AHfww | grep heartbeat |grep -v grep
root       5564      1  0 Nov11 ?        00:00:40   heartbeat: master control process
nobody     5567   5564  0 Nov11 ?        00:00:04     heartbeat: FIFO reader
nobody     5568   5564  0 Nov11 ?        00:00:09     heartbeat: write: bcast eth0
nobody     5569   5564  0 Nov11 ?        00:00:03     heartbeat: read: bcast eth0
nobody     5570   5564  0 Nov11 ?        00:00:07     heartbeat: write: ping 192.168.21.254
nobody     5571   5564  0 Nov11 ?        00:00:02     heartbeat: read: ping 192.168.21.254
496        5575   5564  0 Nov11 ?        00:00:04     /usr/lib64/heartbeat/ccm
496        5576   5564  0 Nov11 ?        00:00:07     /usr/lib64/heartbeat/cib
nobody     5577   5564  0 Nov11 ?        00:00:03     /usr/lib64/heartbeat/lrmd -r
nobody     5578   5564  0 Nov11 ?        00:00:04     /usr/lib64/heartbeat/stonithd
496        5579   5564  0 Nov11 ?        00:00:02     /usr/lib64/heartbeat/attrd
496        5580   5564  0 Nov11 ?        00:00:03     /usr/lib64/heartbeat/crmd
496        8978   5580  0 08:55 ?        00:00:00       /usr/lib64/heartbeat/tengine
496        8979   5580  0 08:55 ?        00:00:00       /usr/lib64/heartbeat/pengine
root       5581   5564  0 Nov11 ?        00:00:03     /usr/lib64/heartbeat/mgmtd -v

###下面可以查看到了自动生成的cib.xml文件,此文件不含具体资源信息
# cd /var/lib/heartbeat/crm
# ls -hltr
total 16K
-rw------- 2 hacluster haclient 484 Nov 11 16:54 cib.xml.last
-rw------- 2 hacluster haclient 484 Nov 11 16:54 cib.xml
-rw-r--r-- 2 hacluster haclient  32 Nov 11 16:54 cib.xml.sig.last
-rw-r--r-- 2 hacluster haclient  32 Nov 11 16:54 cib.xml.sig

# ifconfig |grep eth0:0
# ssh orasrv2 'ifconfig |grep eth0:0 -A2'  ###此时vip在第二个节点
eth0:0    Link encap:Ethernet  HWaddr 00:0C:29:F1:2E:E4
          inet addr:192.168.21.1  Bcast:192.168.21.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

三、使用crm相关命令管理集群

crm相关命令行工具,通常位于/usr/sbin
所有的命令均可以通过<command> --help 方式来获取帮助

    crm_verify    --校验集群配置文件
    crm_uuid      --查看节点的uuid
    crm_standby   --操作节点的备用属性以确定资源是否可在此节点上运行
    crm_resource  --资源管理工具
    crm_mon       --集群健康状态监控
    crm_master    --管理主/从属资源的自选设置,以在给定节点上提升
    crm_failcount --管理记录每个资源的故障计数的计数器。
    crm_diff      --识别对群集配置所做的更改,并将增补程序应用到配置文件
    crm_attribute --允许查询、修改和删除节点属性和群集选项。
    crmadmin      --控制群集资源管理器
    crm_sh        --crm命令提示符下的工具集
    cibadmin      --提供对群集配置的直接访问

# crm_verify -x /var/lib/heartbeat/crm/cib.xml  ###校验配置文件
# crm_uuid                                      ###查看节点uuid
512505ec-63f0-4a51-be40-58ba0e2f613d
# ssh orasrv2 crm_uuid
6ae0f853-b98c-470b-9ce9-4cd0077179ee

# crm_resource --list                           ###查看资源,当前无任何资源
NO resources configured

# crm_mon -1                                    ###集群状态监控,当前2节点在线
============
Last updated: Wed Nov 11 17:14:18 2015
Current DC: orasrv2.xlk.com (6ae0f853-b98c-470b-9ce9-4cd0077179ee)
2 Nodes configured.
0 Resources configured.
============
Node: orasrv2.xlk.com (6ae0f853-b98c-470b-9ce9-4cd0077179ee): online
Node: orasrv1.xlk.com (512505ec-63f0-4a51-be40-58ba0e2f613d): online

haresources文件资源转到到CIB xml
###使用haresources2cib.py将haresource文件内容转换到CIB xml文件
# /usr/lib64/heartbeat/haresources2cib.py
cib.xml or cib.xml.sig exist in /var/lib/heartbeat/crm/
please remove them before generating new cib.xml
# mkdir /var/lib/heartbeat/crm/old
# mv /var/lib/heartbeat/crm/cib* /var/lib/heartbeat/crm/old
# /usr/lib64/heartbeat/haresources2cib.py
# ls /var/lib/heartbeat/crm/
cib.xml  old

###重启2节点
# service heartbeat restart                 ###节点1
# ssh orasrv2 'service heartbeat restart'   ###节点2

# crm_resource --list                       ###查看所有资源,有一组资源
Resource Group: group_1
    IPaddr_192_168_21_1 (ocf::heartbeat:IPaddr)
    httpd_2     (lsb:httpd)

[root@orasrv1 ~]# crm_resource -Q -r IPaddr_192_168_21_1 ###查询指定资源
Resource Group: group_1
    IPaddr_192_168_21_1 (ocf::heartbeat:IPaddr)
    httpd_2     (lsb:httpd)                              

[root@orasrv1 ~]# crm_resource -QW -r IPaddr_192_168_21_1 ###查询资源所在的节点
orasrv1.xlk.com

# crmadmin --version
HA Version 2.1.4, CRM Version 2.0 (CIB feature set 2.0) node: aa909246edb386137b986c5773344b98c6969999

[root@orasrv1 ~]# crmadmin --nodes                   ###查询节点成员名
normal node: orasrv2.xlk.com (6ae0f853-b98c-470b-9ce9-4cd0077179ee)
normal node: orasrv1.xlk.com (512505ec-63f0-4a51-be40-58ba0e2f613d)

# crm_sh
/usr/sbin/crm_sh:31: DeprecationWarning: The popen2 module is deprecated.  Use the subprocess module.
  from popen2 import Popen3
crm # help
Usage: crm (nodes|config|resources)
crm # nodes
crm nodes # help
Usage: nodes (status|list)
crm nodes # list
   <node id="6ae0f853-b98c-470b-9ce9-4cd0077179ee" uname="orasrv2.xlk.com" type="normal"/>
   <node id="512505ec-63f0-4a51-be40-58ba0e2f613d" uname="orasrv1.xlk.com" type="normal"/>

crm nodes # config   --无法切换到config路径下
crm nodes # help
Usage: nodes (status|list)
crm nodes # resources   --同样无法切换到config路径下
crm nodes # help
Usage: nodes (status|list)

###验证httpd服务,从下面的查询可以看出,当前的服务在第2个节点
# curl http://192.168.21.1/
orasrv1.xlk.com

###更多命令的详细描述,请参考:
http://www.novell.com/zh-cn/documentation/sle_ha/book_sleha/data/cha_ha_management.html

四、切换测试

[root@orasrv1 crm]# crm_standby -v true
[root@orasrv1 crm]# curl http://192.168.21.1/
orasrv2.xlk.com

###也可以通过指定节点的方式进行切换
###假定节点2为主,则可以在节点1上执行一下命令将其切换为备
# crm_standby -v true -U orasrv2.xlk.com  

五、小结

1、在heartbeat v2之后的版本,可以将haresources方式管理的资源转化为基于CIB方式进行管理
2、使用CRM(CIB)管理,需要配置ha.cf,添加crm respawn
3、CRM与haresources方式并不兼容,即二者选其一
4、可以使用crm相关命令对集群进行相关配置,监控,切换等管理
5、使用CRM管理方式,也可以基于图形化界面进行管理,本文略

时间: 2024-10-10 00:14:29

使用CRM方式管理heartbeat的相关文章

SaaS市场增长迅速 企业借CRM消灭管理黑洞

本文讲的是SaaS市场增长迅速 企业借CRM消灭管理黑洞,[IT168 资讯]相对于ERP,CRM的市场需求更加广泛.只要存在和上下游的供需关系,就会有CRM的需求.日前,由计世资讯发布的<2008-2009年中国软件运营服务(SaaS)市场研究报告>显示:2008年管理型SaaS市场增长率达到75.6%.越来越多的企业开始注意到在线CRM在企业管理上的重要作用. 立足企业,消灭 "黑洞" 调查中发现,许多管理者都会经常低估或遗漏某些IT成本.究其原因是他们对IT成本管理的

SaaS软件市场增长迅速 企业借CRM消灭管理黑洞

本文讲的是SaaS软件市场增长迅速 企业借CRM消灭管理黑洞,[IT168 资讯]相对于ERP,CRM的市场需求更加广泛.只要存在和上下游的供需关系,就会有CRM的需求.日前,由计世资讯发布的<2008-2009 年中国软件运营服务(SaaS)市场研究报告>显示:2008 年管理型SaaS 市场增长率达到75.6%.越来越多的企业开始注意到在线CRM在企业管理上的重要作用. 立足企业,消灭 "黑洞" 调查中发现,许多管理者都会经常低估或遗漏某些IT成本.究其原因是他们对IT

struts2-spring配置方式管理hibernate事务的情况下,每过一段时间产生的错误

问题描述 spring配置方式管理hibernate事务的情况下,每过一段时间产生的错误 项目的背景是struts2+spring+hibernate3 weblogic服务器集群环境 数据库oracle spring管理hibernate 采用配置的方式,配置在了service层. 数据库连接方面使用了hibernate自带的连接池(用其他第三方连接池也试了,问题依旧) 现象:每过一段时间便会报错:(部分) jdbc rollback failed ... TransactionExcepti

老板要用市场的方式管理企业

一个客户的销售下滑,和我一起讨论对策.调查了这个企业的情况后我发现,这个公司有几个不同产品,而所有产品的销售计划都是由一个销售总监做的,总监做出销售计划后再交由下面的各个销售部门执行.我问为什么这样做?老总的解释是销售总监是公司里最能干的人,同时又是对公司最熟悉的人,他来做计划能够保证不遗漏任何的销售机会.和销售总监谈话后我发现,一方面他非常强调公司统一指挥的重要性,认为现在由他一人做全面计划是非常必要的,另一方面又不断抱怨自己的时间不够用,他没有办法了解和管理足够多的事情.他挂在嘴边的话是:如

SaaS软件市场增长迅速企业借CRM消灭管理黑洞

相对于ERP,CRM的市场需求更加广泛.只要存在和上下游的供需关系,就会有CRM的需求.日前,由计世资讯发布的<2008-2009 年中国软件运营服务(SaaS)市场研究报告>显示:2008 年管理型SaaS 市场增长率达到75.6%.越来越多的企业开始注意到在线CRM在企业管理上的重要作用. 立足企业,消灭 "黑洞" 调查中发现,许多管理者都会经常低估或遗漏某些IT成本.究其原因是他们对IT成本管理的"黑洞"缺乏足够的重视和认识,结果自然就使得IT成本

从八成企业仍用纸张方式管理差旅谈起

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;      最近看到有个报道说,超过八成以上国内企业仍在沿用纸张方式进行差旅规划管理.虽然只是一个简单的数字,意味却极为深远--一方面它揭示了国内企业在商旅管理方面的观念仍然十分滞后,另外一方面也说明了中国商旅的巨大商机. 这个报道说,企业自动化IT系统使用不足,超过八成的受访企业仍然沿用传统的纸张方式来处理旅游管理程序.同样地,公司信用卡也未普及使用,企业仍透过现金

CloudCC CRM探讨管理控制系统的特征

CRM管理控制系统的设计要考虑到组织机构的变化有多种因素及其带来的影响.如组织机构的扁平化.控制的面更宽.授权和员工激励.团队和行动导向的学习.团队精神.市场导向的组织结构.在企业内部的阻力及外部服务.供应商和客户的阻力.国际经营的协调和控制,等等.因此,管理控制系统应具有以下几个主要特征. 1.更重视共享价值观. 一些适合环境并被员工广泛和深入地共享的正确价值观,往往比正式的控制制度更有效.这些价值观诸如客户至上.终身学习.持续改善和提高质量.良好的行为规范.灵活性.团队精神.忠诚信任.尊重事

销售易CRM:提高管理效率需做好业绩预测

销售易CRM结合销售漏斗管理体系,可以帮助企业更加精准的预测销销售业绩.那么对于不同规模的公司,销售预测的价值不同. 对于上市公司,销售预测的精准度除了对业务管理非常重要,对于股票市场也非常重要.在美国,上市公司CEO每个季度都要给华尔街的分析师和投资人业绩盈利的预期情况,如果预计的业绩收入远未达到预期,公司的股价就会大幅下跌.资本市场和投资人根据这点就可以判断出公司的管理执行力比较差.或者管理比较粗放,他们对公司的信心就会受到打击.所以一些上市公司对销售预测的准确性非常关注. 对于制造企业,销

在C#中以编程的方式管理IIS7

最先我需要在IIS下创建虚拟目录,用的是DirecotryEntry这个类,怎么也不能,总会报![System.Runtime.InteropServices.COMException]{"未知错误(0x80005000)"} 这个错误. private static void TestDirectoryEntry() { try { string path = "IIsWebService://" + System.Environment.MachineName