Linux 高可用(HA)集群之Corosync详解

大纲
一、Corosync 概述
二、Corysync与Pacemaker 安装
三、Corosync 详细配置
四、Corosync 启动信息

推荐阅读:

一、Corosync 概述   
1.简单概述
  要说明corosync的由来,首先我们得从AIS说起,然后说明OpenAIS,最后才会说到corosync。
2.AIS概述
  应用接口规范(AIS)是用来定义应用程序接口(API)的开放性规范的集合,这些应用程序作为中间件为应用服务提供一种开放、高移植性的程序接口。是在实现高可用应用过程中是亟需的。服务可用性论坛(SA Forum)是一个开放性论坛,它开发并发布这些免费规范。使用AIS规范的应用程序接口(API),可以减少应用程序的复杂性和缩短应用程序的开发时间,这些规范的主要目的就是为了提高中间组件可移植性和应用程序的高可用性。SAF AIS是一个开放性工程,在不断更新中。
3.OpenAIS概述
  OpenAIS是基于SA Forum 标准的集群框架的应用程序接口规范。OpenAIS提供一种集群模式,这个模式包括集群框架,集群成员管理,通信方式,集群监测等,能够为集群软件或工具提供满足 AIS标准的集群接口,但是它没有集群资源管理功能,不能独立形成一个集群。OpenAIS组件包括AMF,CLM,CKPT,EVT,LCK,MSG,TMR,CPG,EVS等,因OpenAIS分支不同,组件略有不同。(下面介绍)OpenAIS主要包含三个分支:Picacho,Whitetank,Wilson。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核心架构组件独立出来放在Corosync(Corosync是一个集群管理引擎)里面。Whitetank包含的组件有AMF,CLM,CKPT,EVT,LCK ,MSG, CPG,CFG,EVS, aisparser, VSF_ykd,bojdb等。而Wilson只含有AMF,CLM,CKPT,LCK, MSG,EVT,TMR(TMR,Whitetank里面没有),这些都是AIS组件。其他核心组件被放到了Corosync内。Wilson被当做Corosync的一个插件。(详细请查看官方文档)
4.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),定额完成或者丢失时通知应用程序。

5.AIS、OpenAIS,Corosync的关系
(1).AIS与Whitetank的关系
由图3,可以看出,OpenAIS的分支版本Whitetank除了包含AIS标准的应用程序接口,同时也有自己独立的管理模块,这些独立的模块为图3中浅黄色部分,包含CPG,CFG,EVS, aisparser, VSF_ykd,bojdb等控制模块。

Linux 高可用(HA)集群之Corosync详解

(2).AIS与Wilson的关系
当OpenAIS到了Wilson以后,OpenAIS一分为二,Wilson的组件基本都是AIS组件。其他控制的核心组件被添加到Corosync中,关系如图4所示。

Linux 高可用(HA)集群之Corosync详解

(3).Corosync与OpenAIS关系

Linux 高可用(HA)集群之Corosync详解
图5所示,Wilson与Whitetank的主要区别在于Wilson相比Whitetank缺少核心架构。Wilson 作为Corosync的插件支持SA Forum 。

6.OpenAIS集群实例
(1).CMAN
  CMAN是红帽RHCS套件的核心部分,CCS是CMAN集群配置系统,配置cluster.conf,而cluster.conf其实就是openais的配置文件,通过CCS映射到openais。
(2).Pacemaker1.x+corosync1.x
  Pacemaker升级到1.0版本后,从Heartbeat独立出来,Pacemaker achieves maximum availability for your cluster services by detecting and recovering from node and service-level failures. It achieves this by utilizing the messaging and membership capabilities provided by your preferred cluster infrastructure (currently either Corosync or Heartbeat)
7.总结
  简单的说,AIS就是一个通用的应用程序编程接口,OpenAIS是AIS的子项目,标准的集群框架的应用程序接口规范,而corosync是OpenAIS是具体实现。这样说大家应该很好理解吧!
8.corosync版本
官方网站:http://corosync.github.io/corosync/ ,目前官方同在维护两个版本分别为,
corosync 1.x –> corosync 1.4.6(最新) 代号:flatiron

corosync 2.x –> corosync 2.3.1(最新) 代号:needle

9.corosync与pacemaker组合

Linux 高可用(HA)集群之Corosync详解