首页 理论教育 Pacemaker需求分析成果分享

Pacemaker需求分析成果分享

时间:2023-10-17 理论教育 版权反馈
【摘要】:Pacemaker是一个集群资源管理者,它用资源级别的监测和恢复来保证集群服务(资源)的最大可用性。(二)Pacemaker架构一个HA集群的高层架构由三个部分组成:Messaging & Membership部分是基础核心,负责消息传递以及集群中的成员关系管理。Pacemaker由以下4个关键组件组成。Pacemaker会推举一个CRMD实例作为master来集中做出所有决策。

Pacemaker需求分析成果分享

Pacemaker是一个集群资源管理者,它用资源级别的监测和恢复来保证集群服务(资源)的最大可用性。它可以使用基础组件(Corosync或者是Heartbeat)来实现通信和关系管理。

(一)Pacemaker特性

Pacemaker包含以下关键特性:监测并恢复节点和服务级别的故障;存储无关,并不需要共享存储;资源无关,任何能用脚本控制的资源都可以作为服务来管理;支持使用STONITH来保证数据一致性;支持大型或者小型的集群;支持quorate(法定人数)或resource(资源)驱动的集群;支持几乎所有的冗余配置,包括Active/Active、Active/Passive、N+1、N+M、N-to-1andN-to-N;自动同步各个节点的配置文件;可以设定集群范围内的ordering、colocation、anti-colocation来加以约束;支持更多高级服务类型;支持需要在多个节点运行的服务,支持需要多种模式的服务,(如主/从、主/备)统一的、可脚本化的clustershell。

(二)Pacemaker架构

一个HA集群的高层架构由三个部分组成:Messaging & Membership部分是基础核心,负责消息传递以及集群中的成员关系管理。CRM部分是集群的大脑,负责对集群(节点的加入或退出)和资源(失效监测)的各种事件做出反应和决策。LRM及RS是直接和服务相关的底层组件。CRM调用LRM来管理资源,而LRM调用RS来和具体的服务打交道。当与Corosync集成时,Pacemaker也支持常见的开源集群文件系统,根据集群文件系统社区的最新标准,它们共用一个通用的分布式锁控制器,LRM 靠Corosync通信并且用Pacemaker管理成员关系(哪些节点是开启或关闭的)和隔离服务。

(三)Pacemaker内部组件

LRMD(Local Resource Manager Demaon):本地资源管理守护进程(非集群感知守护进程),提供一个统一的接口去支持不同的资源类型,直接与Resourceagents(脚本)交互。

CCM(Consensus Clusterme Mbership):ccm的最主要工作就是管理集群中各个节点的成员以及各成员之间的关系。它让集群中各个节点有效地组成一个整体,保持着稳定的连接。

HEARTBEAT:心跳消息层(可以被OpenAIS替代),Heartbeat模块所担当的只是一个通信工具,而ccm通过这个通信工具来将各个成员连接到一起成为一个整体。

OPENAIS:指OpenAIS的消息和成员层。Pacemaker由以下4个关键组件组成。(www.xing528.com)

PENGINE(PEor Policy Engine PE或者策略引擎):主要负责将CRM发过来的一些信息按照配置文件中的各种设置(基于目前的状态和配置)计算集群的下一个状态,产生一个包括一系列行动和依赖关系的过渡图。

STONITHD(Shoot-The-Other-Node-In-The-Head):通常用远程电源开关来充当。在Pacemaker中,STONITH设备被当成资源(并且是在CIB中配置)从而轻松地监控,然而Stonithd会注意理解STONITH拓扑,如它的客户端请求隔离一个节点,它会重启那个机器。

CRMD(Cluster Resource Management daemon,集群资源管理守护进程):主要作为pengine和lrm的消息代理,它同时要选择一个leader去协调管理集群的活动(包括集群资源的停止和启动)。

CIB(Cluster Information Base,集群信息基础):CIB在系统中充当的是当前集群中各资源原始配置以及之后动态变化了的状态,统计信息收集分发中心,是一个不断更新的信息库(包含所有群集选项、节点、资源以及它们的相互关系和当前状态的定义)。当他收集到任何资源的变化,以及节点统计信息的变化后,都会集成整合到一起组成当前集群最新的信息,并分发到集群各个节点。

CIB用XML来展示集群的配置和资源的当前状态。CIB的内容会自动在集群之间同步,并被pengine用来计算集群的理想状态和如何达到这个理想状态。

这个指令列表之后会被交给DC(指定协调者)。Pacemaker会推举一个CRMD实例作为master来集中做出所有决策。如果推举的CRMD繁忙中,或者这个节点不够稳定,一个新的master会随即被推举出来。

DC会按顺序处理pengine的指令,然后把它们发送给LRMD(本地资源管理守护进程)或者通过集群消息层发送给其他CRMD成员(把这些指令依次传给LRMD)。

节点会把它们所有操作的日志发给DC,然后根据预期的结果和实际的结果之间的差异,执行下一个等待中的命令,或者取消操作,并让Pengine根据非预期的结果重新计算集群的理想 状态。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈