`
yongshuai0314
  • 浏览: 19195 次
  • 性别: 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 . ..

    heartbeat v2 crm 实现HA LAMP组合1

    【标题】:“heartbeat v2 crm 实现HA LAMP组合1” 【描述】:本教程主要涉及使用heartbeat v2和CRM来实现高可用性(Linux, Apache, MySQL, PHP,即LAMP)集群,确保即使在节点故障时也能提供连续的服务。我们将重点...

    heartbeatv2

    ##### 3.1 heartbeat 模块 这是 Heartbeat 的核心组件,负责集群内的消息传递和状态同步。 ##### 3.2 CRM (Cluster Resource Manager) CRM 是集群资源管理器,负责管理集群中的资源,包括资源的分配、状态改变等。 ...

    heartbeatv2 el5

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

    heartbeat12个安装包官网下载

    - `heartbeat-pils-2.1.3-3.el5.centos.i386.rpm`:可能是Heartbeat的某个特定模块或插件,用于扩展其功能。 - `heartbeat-ldirectord-2.1.3-3.el5.centos.i386.rpm`:Ldirectord是Heartbeat的一个组件,负责负载...

    ceph_heartbeat分析.docx

    Ceph Heartbeat 分析 CephHeartbeat 分析是 Ceph 集群中一个非常重要的组件,它用于及时发现 OSD 的状态变化,并将变化同步到相关的 OSD。下面是 Ceph Heartbeat 分析的详细信息: 一、Heartbeat 的作用 ...

    Ceph Heartbeat技术原理分析.docx

    以下是对Ceph Heartbeat技术原理的详细分析: 一、Heartbeat的作用 Heartbeat的主要目的是实时检测OSD的状态变化,如OSD的上线(up)或下线(down)。当Monitor接收到Heartbeat信号后,会更新OSD映射表(osdmap),...

    Heartbeat的组成与原理

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

    heartbeat-2.1.4-11.7z

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

    Heartbeatv3

    这个包包含了三个核心的软件组件,分别是Heartbeat 3.0.6、Cluster Glue 1.0.12和resource-agents 3.9.6。 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-...

    heartbeat安装包

    其次,`heartbeat-pils-*.rpm`可能是心跳程序的扩展或插件包,"pils"可能代表某些特定的功能模块或服务。这些扩展可能提供了额外的监控功能、日志处理、报警机制或其他定制化的服务,以增强Heartbeat的监控能力。 ...

    LVS之HeartBeat原理讲解与实例配置

    - heartbeat模块:负责节点间的心跳通信,检测彼此的状态。 - ha-logd:记录集群事件日志,便于故障排查和分析。 - CCM(Consensus Cluster Membership):保持集群成员的一致性,管理节点间的联系和资源分配。 - ...

    双机HA源代码---heartbeat_2.1.4.tar.gz

    4. **配置文件解析**:分析配置文件的解析逻辑,学习如何配置Heartbeat以满足特定的HA需求。 5. **错误处理和日志**:查看错误处理机制,以及日志记录的实现,这对于调试和优化系统非常重要。 6. **API接口**:...

    heartbeat安装配置手册

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

    Heartbeat安装包

    Heartbeat安装包

    heartbeat的RPM包下载

    heartbeat是Linux系统中的一种分布式集群管理工具,主要负责在集群节点之间进行监控和通信,确保服务的高可用性。RPM(Red Hat Package Manager)包是Linux发行版中广泛使用的软件包管理格式,用于安装、升级和卸载...

    heartbeat文档

    - **模块化**:系统由多个可互换的模块组成,可以根据需要添加或移除特定功能。 - **层次化**:架构分为不同的层,每层负责处理特定的功能领域,如网络通信、资源管理等。 - **可扩展性**:支持通过添加新节点来轻松...

Global site tag (gtag.js) - Google Analytics