一、环境介绍
1. 系统环境
rhel6.5 selinux and iptables if disable
server1: 172.25.14.1 pacemaker + haproxy node1
server4: 172.25.14.4 pacemaker + haproxy node2
server2: 172.25.14.2 web1
server3:172.25..14.3 web2
2.前提条件
(因为之前有使用luci图形管理工具搭建高可用集群,所以在做本次实验之前确保这三个服务关闭并且不能开机子、自启动)
:::chkconfig cman off
:::chkconfig modclusterd off
:::chkconfig ricci off
:::/etc/init.d/ricci stop
:::/etc/init.d/modclusterd stop
:::/etc/init.d/cman
二、pacemaker介绍
Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS 、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。它可以做几乎任何规模的集群,并带有一个强大的依赖模式,让管理员能够准确地表达群集资源之间的关系(包括顺序和位置)。几乎任何可以编写的脚本,都可以作为管理起搏器集群的一部分。尤为重要的是Pacemaker不是一个heartbeat的分支,似乎很多人存在这样的误解。Pacemaker是CRM项目(亦名V2资源管理器)的延续,该项目最初是为heartbeat而开发,但目前已经成为独立项目。
1. pacemaker 特点
1)主机和应用程序级别的故障检测和恢复
2)几乎支持任何冗余配置
3)同时支持多种集群配置模式
4)可以测试任何故障或群集的群集状态
2. 关键组建
Pacemaker本身由四个关键组件组成:
•CIB (aka. 集群信息基础)
•CRMd (aka. 集群资源管理守护进程)
•PEngine (aka. PE or 策略引擎)
•STONITHd(心跳系统)
3. pacemaker的内部结构:
stonithd:心跳系统
lrmd:本地资源管理守护进程。它提供了一个通用的接口支持的资源类型。直接调用资源代理(脚本)
pengine:政策引擎。根据当前状态和配置集群计算的下一个状态。产生一个过渡图,包含行动和依赖关系的列表
cib:群集信息库。包含所有群集选项,节点,资源,他们彼此之间的关系和现状的定义。同步更新到所有群集节点
crmd:集群资源管理守护进程。主要是消息代理的PEngine和LRM,还选举一个领导者(DC)统筹活动(包括启动/停止资源)的集群
heartbeat:心跳消息层
CCM:共识群集成员,心跳成员
4. corosync
Corosync是集群管理套件的一部分,它在传递信息的时候可以通过一个简单的配置文件来定义信息传递的方式和协议。corosync可以实现故障检测功能,发现存在问题的资源,同时也具有心跳检测机制 ,检测服务是否启用,运行在每个节点上,多个节点之间通过组播的方式监测心跳。