天天看点

openais的前世今生

OpenAIS是对Service Availability Forum的AIS(Application Interface Specification)规范的开源实现

AIS规范的主要目的就是为了提高中间组件可移植性和应用程序的高可用性

OpenAIS提供一种集群模式,这个模式包括集群框架,集群成员管理,通信方式,集群监测等,能够为集群软件或工具提供满足 AIS标准的集群接口,但是它没有集群资源管理功能,不能独立形成一个集群(需要pacemaker或者rgmanager)。

OpenAIS主要分两个分支(wilson和whitetank)

whitetank:0.8x

wilson:1.X

OpenAIS Whitetank分支包括如下几部分:

AIS组件

AMF(Availability Management Framework)

CKPT(Checkpoint Service)

CLM(Cluster Membership Service)

EVT(Event Service)

LCK(Lock Service)

MSG(Message Service)

核心管理组件(具体功能在后面corosync有介绍)

Totem protocol

配置管理(CFG)

配置数据库(CONFDB)

extended virtual synchrony(EVS)

closed process group(CPG)

OpenAIS Wilson分支仅包括AIS组件

AIS组件:

TMR(Timer Service)  —— Whitetank分支没有

Whitetank一分为二成Wilson和corosync

Wilson分支在Whitetank的基础上将核心管理组件这部分(其实就是exec目录中除去)独立出来放到了corosync中

Wilson分支仅为AIS规范部分组件的开源实现

Wilson分支在集群中作为corosync的一个插件使用

OpenAIS从openais0.90开始独立成两部分,一个是Corosync;另一个是AIS标准接口Wilson ,Corosync是OpenAIS发展到Wilson版本后衍生出来的开放性集群引擎工程

Corosync包含如下核心管理组件:

实现virtual synchrony(VS),在集群节点间复制状态

包括SRP、RRP、MRP

Extended virtual synchrony(EVS)

扩展VS,在集群节点间复制状态

A closed process group communication model(CPG)

A CPG is typically used to replicate state among cooperating processes on different cluster nodes.

Fence,dlm_controld, gfs_controld基于CPG同步状态。

A configuration and statistics in-memory database(CFG)

A quorum  system

Quorum管理,状态变化(比如quorum丢失)可以通知应用

Cman并没有使用这个功能