`
yongshuai0314
  • 浏览: 18406 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

Heartbeat V2 模块分析

 
阅读更多

一、heartbeat模块:

     整个Heartbeat软件的通信模块,各个节点之间的任何通信都是通过这个模块完成。这个模块会根据不同类型的通信启动不同的事件 handler,当监听到不同类型的通信请求后会分给不同的handler来处理。这个从整个Heartbeat的启动日志中看出来。

二、CRM:cluster resource manager

     从这个名字就可以看出这个模块基本上就是v2的heartbeat的一个只会中心,整个系统的一个大脑了,他主要负责整个系统的各种资源的 当前配置信息,以及各个资源的调度。也就是根据各资源的配置信息,以及当前的运行状况来决定每一个资源(或者资源组)到底该在哪个节点运行。不过这些事情 并不是他直接去做的,而是通过调度其他的一些模块来进行。

     他通过heartbeat模块来进行节点之间的通信,调度节点之间的工作协调。随时将通过heartbeat模块收集到的各个成员节点的基 本信息转交给CCM某块来更新整个集群的membership信息。他指挥LRM(local resource manager)对当前节点的各资源执行各种相应的操作(如start、stop、restart和monitor等等),同时也接收LRM在进行各种操 作的反馈信息并作出相应的决策再指挥后续工作。另外CRM模块还负责将各个模块反馈回来的各种信息通过调用设定的日志记录程序记录到日志文件中。

三、LRM:local resource manager

     LRM是整个Heartbeat系统中直接操作所管理的各个资源的一个模块,负责对资源的监控,启动,停止或者重启等操作。这个模块目前好 像支持有四种类型的资源代理(resource agent):heartbeat自身的,ocf(open cluster framework),lsb(linux standard base,其实就是linux下标准的init脚本),还有一种就是stonith。stonith这种我还不是太清楚是一个什么类型的。

     四种类型的resource agent中的前三种所调用的脚本分别存如下路径:

         heartbeat:/etc/ha.d/resource.d/

         ocf:/usr/lib/resource.d/heartbeat/

         lsb:/etc/init.d/

     LRM就是通过调用以上路径下面的各种脚本来实现对资源的各种操作。每一种类型的脚本都可以由用户自定义,只要支持各类型的标准即可。实际 上这里的标准就是接受一个标准的调用命令和参数格式,同时返回符合标准的值即可。至于脚本中的各种操作时如何的LRM并不care。

四、PE:CRM Policy Engine

     他主要负责将CRM发过来的一些信息按照配置文件中的各种设置来进行计算,分析。然后将结果信息按照某种固定的格式通过CRM提交给TE (Transition engine)去分析出后续需要采取的相应的action。PE需要计算分析的信息主要是当前有哪些节点,各节点的状况,当前管理有哪些资源,各资源当前 在哪一个节点,在各个节点的状态如何等等。

五、TE:Transition engine

     主要工作是分析PE的计算结果,然后根据配置信息转换成后续所需的相应操作。个人感觉PE和TE组合成一个类似于规则引擎实现的功能,而且 PE和TE这两个模块只有在处于active的节点被启动。另外PE和TE并不直接通信,而都是通过Heartbeat的指挥中心CRM来传达信息的。

六、CIB:cluster information base

     CIB在系统中充当的是当前集群中各资源原始配置以及之后动态变化了的状态,统计信息收集分发中心,是一个不断更新的信息库。当他收集到任 何资源的变化,以及节点统计信息的变化后,都会集成整合到一起组成当前集群最新的信息,并分发到集群各个节点。分发动作并不是自己和各个节点通信,同样也 是通过heartbeat模块来做的。

     CIB收集整理并汇总出来的信息是以一个xml格式保存起来的。实际上Heartbeat v2的资源配置文件也就是从haresources迁移到了一个叫cib.xml文件里面。该文件实际上就是CIB的信息库文件。在运行过程中,CIB可 能会常读取并修改该文件的内容,以保证信息的更新。

七、CCM:consensus cluster membership

     CCM的最主要工作就是管理集群中各个节点的成员以及各成员之间的关系。他让集群中各个节点有效的组织称一个整体,保持着稳定的连接。heartbeat模块所担当的只是一个通信工具,而CCM是通过这个通信工具来将各个成员连接到一起成为一个整体。

八、LOGD:logging daemon(non-blocking)

     一个无阻塞的日志记录程序,主要负责接收CRM从各个其他模块所收集的相关信息,然后记录到指定额度日志文件中。当logd接收到日志信息后会立刻返回给CRM反馈。并不是一定要等到将所有信息记录到文件后再返回,日志信息的记录实际上是一个异步的操作。

九、APPHBD:application heartbeat daemon

     apphbd模块实际上是给各个模块中可能需要用到的计时用的服务,是通过watchdog来实现的。这个模块具体的细节我还不是太清楚。

十、RMD:recovery manager daemon

     主要功能是进程恢复管理,接受从apphbd所通知的某个(或者某些)进程异常退出或者失败或者hang住后的恢复请求。RMD在接受到请求后会作出restart(如果需要可能会有kill)操作。

 

转自:http://www.alidba.net/index.php/archives/66

觉得好分享一下。还有强烈推荐有道笔记,用了一年多了,适合学习。

 

分享到:
评论

相关推荐

    heartbeat V2在CentOS4.6上简要安装、配置笔记

    heartbeat V2在CentOS4.6上简要安装、配置笔记

    heartbeat v2 RPM安装包

    heartbeat v2 RPM 安装包,支持 heartbeat 2.1.4 . ..

    heartbeatv2

    5 Heartbeat 各模块分析 15 5.1 heartbeat模块: 15 5.2 CRM:cluster resource manager 15 5.3 LRM:local resource manager 15 5.4 PE:CRM Policy Engine 15 5.5 TE:Transition engine 16 5.6 CIB:cluster ...

    heartbeatv2 el5

    heartbeat v2 版 el5,用于v2版的ha高可用集群

    heartbeat v2 crm 实现HA LAMP组合1

    实现步骤: 1、IP地址分配 2、所需软件 heartbeat-2.1.4-12.el6.x86_64.rpm //主程序包 heartbeat-gui-

    Ceph Heartbeat技术原理分析.docx

    Ceph Heartbeat技术原理分析.docx

    Heartbeat的组成与原理

    Heartbeat提供了高可用集群合作管理机制、监控工具等。

    heartbeat-2.1.4-11.7z

    心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat项目里,由heartbeat模块实现了这两个功能。Heartbeat是目前开源HA项目中十分成功的一个例子,它提供了所有 HA 软件所需要的基本功能,比如心跳检测和...

    ceph_heartbeat分析.docx

    ceph_heartbeat分析.docx

    heartbeat安装配置手册

    Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。

    Heartbeat安装包

    Heartbeat安装包

    heartbeat文档

    heartbeat文档heartbeat文档heartbeat文档heartbeat文档heartbeat文档heartbeat文档

    heartbeat.tar.gz包含了heartbeat了所有rpm依赖包

    heartbeat-3.0.4-2.el6.x86_64.rpm PyXML-0.8.4-19.el6.x86_64.rpm cluster-glue-libs-1.0.5-6.el6.x86_64.rpm heartbeat-libs-3.0.4-2.el6.x86_64.rpm perl-TimeDate-1.16-13.el6.noarch.rpm resource-...

    Heartbeatv3

    Heartbeat 3.0.6.tar.bz2 Cluster Glue 1.0.12.tar.bz2 resource-agents-3.9.6.tar.gz

    heartbeat-5.6.8-amd64.deb

    Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。

    heartbeat-5.6.8-linux-x86_64.tar

    Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。

    heartbeat-5.6.8-windows-x86_64.zip

    Heartbeat 项目是 Linux-HA 工程的一个组成部分,它实现了一个高可用集群系统。心跳服务和集群通信是高可用集群的两个关键组件,在 Heartbeat 项目里,由 heartbeat 模块实现了这两个功能。

    Heartbeat + LVS + ldirectord

    Heartbeat + LVS + ldirectord构建可伸缩网络服务 ... by srsman ... 2 月前 ... 149次点击 Heartbeat + LVS + ldirectord构建可伸缩网络服务 网络环境: 机器数量:2 操作系统:Centos 5.0,Centos 5.2 机器名:...

    Heartbeat应用攻略.pdf

    heartbeat安装、部署以及基于pacemaker的配置

    双机热备heartbeat方案

    本文简要描述了双机热备heartbeat方案的工具安装、配置、测试,可使您短时间快速完成双机热备部署。

Global site tag (gtag.js) - Google Analytics