Pacemaker理论

Corosync

 要说明corosync的由来首先我们得从AIS说起然后说明OpenAIS最后才会说到corosync。

AIS概述

   应用接口规范AIS是用来定义应用程序接口API的开放性规范的集合这些应用程序作为中间件为应用服务提供一种开放、高移植性的程序接口。是在实现高可用应用过程中是亟需的。服务可用性论坛SA Forum是一个开放性论坛它开发并发布这些免费规范。使用AIS规范的应用程序接口API可以减少应用程序的复杂性和缩短应用程序的开发时间这些规范的主要目的就是为了提高中间组件可移植性和应用程序的高可用性。SAF AIS是一个开放性工程在不断更新中。

OpenAIS概述

   OpenAIS是基于SA Forum 标准的集群框架的应用程序接口规范。OpenAIS提供一种集群模式这个模式包括集群框架集群成员管理通信方式集群监测等能够为集群软件或工具提供满足 AIS标准的集群接口但是它没有集群资源管理功能不能独立形成一个集群。OpenAIS组件包括AMF,CLM,CKPT,EVT,LCK,MSGTMR,CPG,EVS等因OpenAIS分支不同组件略有不同。下面介绍OpenAIS主要包含三个分支PicachoWhitetankWilson。Wilson是最新的比较稳定的版本是从openais 1.0.0到openais1.1.4。Whitetank现在是主流分支版本比较稳定的版本是openais0.80到openais0.86。Picacho第一代的OpenAIS的分支比较稳定的版本是openais0.70和openais0.71。现在比较常用的是Whitetank和Wilson两者之间有很多不同。OpenAIS从Whitetank升级到Wilson版本后组件变化很大Wilson把Openais核心架构组件独立出来放在CorosyncCorosync是一个集群管理引擎里面。Whitetank包含的组件有AMFCLMCKPTEVTLCK ,MSG, CPGCFG,EVS, aisparser, VSF_ykdbojdb等。而Wilson只含有AMFCLMCKPTLCK, MSG,EVT,TMRTMRWhitetank里面没有这些都是AIS组件。其他核心组件被放到了Corosync内。Wilson被当做Corosync的一个插件。(详细请查看官方文档)

Corosync概述

   Corosync是OpenAIS发展到Wilson版本后衍生出来的开放性集群引擎工程。可以说Corosync是OpenAIS工程的一部分。OpenAIS从openais0.90开始独立成两部分一个是Corosync另一个是AIS标准接口Wilson。Corosync包含OpenAIS的核心框架用来对Wilson的标准接口的使用、管理。它为商用的或开源性的集群提供集群执行框架。Corosync执行高可用应用程序的通信组系统它有以下特征

一个封闭的程序组A closed process group communication model通信模式这个模式提供一种虚拟的同步方式来保证能够复制服务器的状态。

一个简单可用性管理组件A simple availability manager这个管理组件可以重新启动应用程序的进程当它失败后。

一个配置和内存数据的统计A configuration and statistics in-memory database内存数据能够被设置回复接受通知的更改信息。

一个定额的系统A quorum  system,定额完成或者丢失时通知应用程序。

简单的说AIS就是一个通用的应用程序编程接口OpenAIS是AIS的子项目标准的集群框架的应用程序接口规范而corosync是OpenAIS是具体实现。

Coreosync是集群管理套件的一部分它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议等。它是项目Openais  , 它由于过大分裂为两个子项目其中可以实现HA心跳信息传输的功能就是Corosync ,它的代码60%左右来源于Openais。Corosync可以提供一个完整的HA功能但是要实现更多更复杂的功能那就需要使用Openais 了。主要传递发集群信息与心跳信息的并没有资源管理功能资源管理还得依赖于上层的crm(Cluster resource Manager集群资源管理器)最著名的资源管理器就是pacemaker它是heartbeat v3分离出去的子项目。


Pacemaker是一个集群管理器。它利用首选集群基础设施OpenAIS 或heartbeat提供的消息和成员能力由辅助节点和系统进行故障检测和回收实现性群集服务亦称资源的高可用性。

 

 

Pacemaker

1.pacemaker 简单说明

   pacemaker(直译心脏起搏器)是一个群集资源管理器。它实现最大可用性群集服务亦称资源管理的节点和资源级故障检测和恢复使用您的首选集群基础设施OpenAIS的或Heaerbeat提供的消息和成员能力。

   它可以做乎任何规模的集群并配备了一个强大的依赖模型使管理员能够准确地表达群集资源之间的关系包括顺序和位置。几乎任何可以编写脚本可以管理作为心脏起搏器集群的一部分。

   我再次说明一下pacemaker是个资源管理器不是提供心跳信息的因为它似乎是一个普遍的误解也是值得的。pacemaker是一个延续的CRM亦称Heartbeat V2资源管理器最初是为心跳但已经成为独立的项目。

2.pacemaker 由来

大家都知道Heartbeat 到了V3版本后拆分为多个项目其中pacemaker就是拆分出来的资源管理器。

Heartbeat 3.0拆分之后的组成部分

Heartbeat将原来的消息通信层独立为heartbeat项目新的heartbeat只负责维护集群各节点的信息以及它们之前通信

Cluster Glue相当于一个中间层它用来将heartbeatpacemaker关联起来主要包含2个部分即为LRMSTONITH

Resource Agent用来控制服务启停监控服务状态的脚本集合这些脚本将被LRM调用从而实现各种资源启动、停止、监控等等。

Pacemaker : 也就是Cluster Resource Manager 简称CRM用来管理整个HA的控制中心客户端通过pacemaker来配置管理监控整个集群。

二、pacemaker 特点

监测并恢复节点和服务级别的故障

几乎支持任何冗余配置

同时支持多种集群配置模式

配置策略处理法定人数损失多台机器失败时

支持应用启动/关机顺序

支持必须/必须在同一台机器上运行的应用程序

支持多种模式的应用程序如主/

可以测试任何故障或群集的群集状态

存储无关,并不需要共享存储

资源无关,任何能用脚本控制的资源都可以作为服务

Supports STONITH for ensuring data integrity

支持大型或者小型的集群

注说白了意思就是功能强大现在最主流的资源管理器。