Pacemaker 体系结构
Pacemaker 自己由 4 个关键组件组成(下面颜色的描述和之前那个概念上一样)
CIB(Cluster Information Base 集群信息基础)
CRMd(Cluster Resource Management daemon 集群资源管理守护进程)
PEngine(PE or Policy EnginePE 或者策略引擎)
STONITHd
CIB 使用 XML 替代了集群中的集群配置和所有资源的当前状态。CIB 自动在整个集群中保持同步同时被PEngine用来评估集群的理想状态和如何达到这个状态。指令的列表传递给 DC(指派的协调者)。Pacemaker 通过选举一个CRMd 线程作为主控的方式来收集集群中作出的决策。如果在选举的过程中或者选在一个节点上的时候失败了,那一个新的就会被很快的建立起来。
DC 通过必要的命令来实现 PEngine 的指示,通过集群消息架构(这个消息架构可以轮流把命令传递给他们的 LRMd 进程)把命令传递个 LRMd(本地资源管理守护进程)或者其他节点上的 CRMd。同级节点他将们的操作返回汇报给DC,同时基于真实的和期望的结果,将会需要等待前置任务完成再来执行任何响应,或者忽略进程告知 PEngine 根据意外的结果重新计算理想的集群状态。
在有些情况下关闭节点来保护共享数据或者完全恢复资源是很有必要的。为了这个
Pacemaker 出现了 STONITHd。STONITH 是 Shoot-The-Other-Node-In-The-Head
的缩写,通常用远程电源开关来充当。在 Pacemaker 中,STONITH 设备是一个资源模块
(配置在 CIB 中),使用它们可以很容易监控故障,然而 STONITHd 关心理解 STONITH 的
拓扑结构这样在 client 请求把一个节点保护起来 STONITHd 就可以重启了。
Pacemaker 模块介绍
Pacemaker 是集群资源管理。它利用你的集群基础组件(如 heartbeat)来停止,启动甚至监控你希望集群提供服务的健康状况。它可以在任何大小规模的集群中工作,伴随使用可靠的模块,
管理可以很准确的描述集群中资源的关系。
下图为Pacemaker模块中各个资源模块的关系
集群堆栈概述:
在最顶层,集群由三部分组成集群的核心基础提供消息和成员功能(红色描述)非集群组件(蓝色描述)。在 Pacemaker 集群中,这一块不仅仅包含了知道如何启动,停止及监控资源的脚本,同时还有一个本地守护进程来掩饰脚本执行不同标准之间带来的差异。
头脑(绿色显示)用来响应和处理从集群(节点的脱离和加入),资源(监控健康),及管理员对于配置文件变更的事件。对于这些事件的响应,Pacemaker 将会评估出集群的理想状态同时划分出一个路径用来打包。这可能会包括移动资源,停止节点,甚至是通过远程switches 强迫他们离线。