|
Pacemaker是Linux 环境中使用最为广泛的开源集群资源管理器, Pacemaker利用集群基础架构(Corosync 或者Heartbeat)提供的消息和集群成员管理功能,实现节点和资源级别的故障检测和资源恢复,从而最大程度保证集群服务的高可用。从逻辑功能而言,Pacemaker在集群管理员所定义的资源规则驱动下,负责集群中软件服务的全生命周期管理, 这种管理甚至包括整个软件系统以及软件系统彼此之间的交互。Pacemaker仅是资源管理器,并不提供集群心跳信息,由于任何高可用集群都必须具备心跳监测机制,因而很多初学者总会误以为Pacemaker本身具有心跳检测功能,而事实上Pacemaker的心跳机制主要基于Corosync 或Heartbeat来实现。
从起源上来看, Pacemaker是为Heartbeat项目而开发的CRM项目的延续, CRM最早出现于2003年,是专门为Heartbeat项目而开发的集群资源管理器,而在2005年,随着Heartbeat2.0版本的发行才正式推出第一版本的CRM,即Pacemaker的前身。在2007年末, CRM正式从Heartbeat2. l .3版本中独立,之后于2008 年Pacemaker0.6稳定版本正式发行,随后的2010年3月CRM项目被终止,作为CRM项目的延续, Pacemaker被继续开发维护,如今Pacemaker已成为开源集群资源管理器的事实标准而被广泛使用。此外, Heartbeat到了3.0版本后已经被拆分为几个子项目了,这其中便包括Pacemaker、Heartbeat3.0、Cluster Glue和Resource Agent,这几个子项目之间的关系如图子2-1
所示。
图2-1 PaceMaker及相关功能最组件拓扑
(1)Heartbeat
Heartbeat项目最初的消息通信层被独立为新的Heartbeat项目,新的Heartbeat只负责维护集群各节点的信息、以及它们之间的心跳通信,通常将Pacemaker与Heartbeat或者Corosync共同组成集群管理软件,Pacemaker利用Heartbeat或者Corosync提供的节点及节点之间的心跳信息来判断节点状态。
(2)Cluster Glue
Cluster Glue相当于一个中间层, 它用来将Heartbeat和Pacemaker关联起来,主要包含两个部分,即本地资源管理器(Local Resource Manager, LRM)和Fencing设备(Shooting the Other Node In The Head, STONITH) 。
(3)Resource Agent
资源代理(Resource Agent, RA )是用来控制服务启停、监控服务状态的脚本集合, 这些脚本会被位于本节点上的LRM调用从而实现各种资源的启动、停止、监控等操作。
(4)Pacemaker
Pacemaker是整个高可用集群的控制中心,用来管理整个集群的资源状态行为,客户端通过Pacemaker来配置、管理、监控整个集群的运行状态。Pacemaker的功能包括以下几个方面:
- 监测并恢复节点和服务级别的故障。
- 存储无关,并不需要共享存储。
- 资源无关,任何能用脚本控制的资源都可以作为集群服务。
- 支持节点STONITH功能以保证集群数据的完整性和防止集群脑裂。
- 支持大型或者小型集群。
- 支持Quorum机制和资源驱动类型的集群。
- 支持几乎是任何类型的冗余配置。
- 自动同步各个节点的配置文件。
- 可以设定集群范围内的Ordering、Colocation and Anti-colocation等约束。
- 高级服务类型支持,例如:
- Clone功能,即那些要在多个节点运行的服务可以通过Clone功能实现, Clone功能将会在多个节点上启动相同的服务;
- Multi-State功能,即那些需要运行在多状态下的服务可以通过Multi-State来实现,在高可用集群的服务中,有很多服务会运行在不同的高可用模式下,如Active/Active模式或者Active/Passive模式等,并且这些服务可能会在Active与Standby(Passive)之间切换。
- 具有统一的、脚本化的集群管理工具。
|
|
|
|
|
|
|