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

(pacemaker官方网站: http://clusterlabs.org/)

一、pacemaker 是什么

二、pacemaker 特点

三、pacemaker 软件包供应商

四、pacemaker 版本信息

五、pacemaker 配置案例

六、pacemaker 支持集群架构

七、pacemaker 内部结构

八、pacemaker 源代码组成

九、Centos6.4+Corosync+Pacemaker 实现高可用的Web集群

 

一、pacemaker 是什么

1.pacemaker 简单说明

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

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

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

2.pacemaker 由来

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

Heartbeat 3.0拆分之后的组成部分:

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

Cluster Glue:相当于一个中间层,它用来将heartbeat和pacemaker关联起来,主要包含2个部分,即为LRM和STONITH。

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

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

 

二、pacemaker 特点

主机和应用程序级别的故障检测和恢复

几乎支持任何冗余配置

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

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

支持应用启动/关机顺序

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

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

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

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

三、pacemaker 软件包供应商

目前pacemaker支持主流的操作系统,

Fedora(12.0)

红帽企业Linux(5.0,6.0)

openSUSE(11.0)

Debian

Ubuntu的LTS(10.4)

CentOS (5.0,6.0)

四、pacemaker 版本信息

 

目前,最新版的是pacemaker 1.1.10 ,是2013年7月发布的

五、pacemaker 配置案例

1.主/从架构

说明:许多高可用性的情况下,使用Pacemaker和DRBD的双节点主/从集群是一个符合成本效益的解决方案。

 

2.多节点备份集群

说明:支持多少节点,Pacemaker可以显着降低硬件成本通过允许几个主/从群集要结合和共享一个公用备份节点。

 

3.共享存储集群

说明:有共享存储时,每个节点可能被用于故障转移。Pacemaker甚至可以运行多个服务。

 

4.站点集群

说明:Pacemaker 1.2 将包括增强简化设立分站点集群

 

六、pacemaker 支持集群

1.基于OpenAIS的集群

 

2.传统集群架构,基于心跳信息

 

七、pacemaker 内部结构

 

1.群集组件说明:
stonithd:心跳系统。

lrmd:本地资源管理守护进程。它提供了一个通用的接口支持的资源类型。直接调用资源代理(脚本)。

pengine:政策引擎。根据当前状态和配置集群计算的下一个状态。产生一个过渡图,包含行动和依赖关系的列表。

CIB:群集信息库。包含所有群集选项,节点,资源,他们彼此之间的关系和现状的定义。同步更新到所有群集节点。

CRMD:集群资源管理守护进程。主要是消息代理的PEngine和LRM,还选举一个领导者(DC)统筹活动(包括启动/停止资源)的集群。

OpenAIS:OpenAIS的消息和成员层。

Heartbeat:心跳消息层,OpenAIS的一种替代。

CCM:共识群集成员,心跳成员层。

2.功能概述

CIB使用XML表示集群的集群中的所有资源的配置和当前状态。CIB的内容会被自动在整个集群中同步,使用PEngine计算集群的理想状态,生成指令列表,然后输送到DC(指定协调员)。Pacemaker 集群中所有节点选举的DC节点作为主决策节点。如果当选DC节点宕机,它会在所有的节点上, 迅速建立一个新的DC。DC将PEngine生成的策略,传递给其他节点上的LRMd(本地资源管理守护程序)或CRMD通过集群消息传递基础结构。当集群中有节点宕机,PEngine重新计算的理想策略。在某些情况下,可能有必要关闭节点,以保护共享数据或完整的资源回收。为此,Pacemaker配备了stonithd设备。STONITH可以将其它节点“爆头”,通常是实现与远程电源开关。Pacemaker会将STONITH设备,配置为资源保存在CIB中,使他们可以更容易地监测资源失败或宕机。

八、pacemaker 源代码组成

 

说明:大家可以看到Pacemaker主要是由C语言写的,其次是Python,说明其效率非常高。最后我们来说一个小案例,实现高可用的Web集群。

九、Centos6.4+Corosync+Pacemaker 实现高可用的Web集群

1.环境说明

(1).操作系统

CentOS 6.4 X86_64 位系统

(2).软件环境

Corosync 1.4.1

Pacemaker 1.1.8

crmsh 1.2.6

(3).拓扑准备

 

2.Corosync与Pacemaker 安装与配置

Corosync与Pacemaker安装与配置我就不在这里重复说明了,大家参考一下这篇博文: http://freeloda.blog.51cto.com/2033581/1272417 (Linux 高可用(HA)集群之Corosync详解)

3.Pacemaker 配置资源方法

(1).命令配置方式

crmsh

pcs

(2).图形配置方式

pygui

hawk

LCMC

pcs
———————————–
https://blog.51cto.com/freeloda/1274533

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/309898.html

(0)
上一篇 2023年12月12日
下一篇 2023年12月12日

相关推荐

发表回复

登录后才能评论