《OpenStack高可用集群(上册):原理与架构》—3.3 Pacemaker集群架构
3.3 Pacemaker集群架构
从高层次的集群抽象功能来看,Pacemaker的核心架构主要由集群不相关组件、集群资源管理组件和集群底层基础模块三个部分组成。
(1)底层基础模块
底层的基础架构模块主要向集群提供可靠的消息通信、集群成员关系和Quorum等功能,底层基础模块主要包括像Corosync、CMAN和Heartbeat等项目组件。
(2)集群无关组件
在Pacemaker架构中,这部分组件主要包括资源本身以及用于启动、关闭以及监控资源状态的脚本,同时还包括用于屏蔽和消除实现这些脚本所采用的不同标准之间差异的本地进程。虽然在运行多个实例时,资源彼此之间的交互就像一个分布式的集群系统,但是,这些实例服务之间仍然缺乏恰当的HA机制和独立于资源的集群治理能力,因此还需要后续集群组件的功能支持。
(3)资源管理
Pacemaker就像集群大脑,专门负责响应和处理与集群相关的事件,这些事件主要包括集群节点的加入、集群节点脱离,以及由资源故障、维护、计划的资源相关操作所引起的资源事件,同时还包括其他的一些管理员操作事件,如对配置文件的修改和服务重启等操作。在对所有这些事件的响应过程中,Pacemaker会计算出当前集群应该实现的最佳理想状态,并规划出实现该理想状态后续需要进行的各种集群操作,这些操作可能包括了资源移动、节点停止,甚至包括使用远程电源管理模块来强制节点下线等。
Pacemaker的架构组成如图3-6所示。
当Pacemaker与Corosync集成时,Pacemaker也支持常见的主流开源集群文件系统,而根据集群文件系统社区过去一直从事的标准化工作,社区使用了一种通用的分布式锁管理器来实现集群文件系统的并行读写访问,这种分布式锁控制器利用了Corosync所提供的集群消息和集群成员节点处理能力(节点是在线或离线的状态)来实现文件系统集群,同时使用Pacemaker来对服务进行隔离(Fencing)操作,在这种使用方式下,
Pacemaker的组件构成如图3-7所示。
当然,这只是Pacemaker与Corosync结合使用到集群文件系统的一个成功范例,在我们的Openstack高可用集群配置中,暂未使用到社区这种开源分布式集群文件系统。需要指出的是,尽管Pacemaker也支持Heartbeat,但是,因为分布式锁管理器需要使用某种技术栈来提供集群的消息机制和成员关系,而Corosync比较符合集群文件系统社区的标准,因此,多数情况下都会采用Pacemaker与Corosync的组合而不是与Heartbeat的组合,不过从技术角度而言,在开源集群文件系统中使用Heartbeat也是可行的。
- 点赞
- 收藏
- 关注作者
评论(0)