一 简介

1 pacemaker:

Pacemaker是一个集群资源管理器。它利用集群基础构件(OpenAIS 、heartbeat或corosync)提供的消息和成员管理能力来探测并从节点或资源级别的故障中恢复,以实现群集服务(亦称资源)的最大可用性。

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来配置管理监控整个集群。

3 pacemaker 特点:

• 主机和应用程序级别的故障检测和恢复 • 几乎支持任何冗余配置 • 同时支持多种集群配置模式 • 配置策略处理法定人数损失(多台机器失败时) • 支持应用启动/关机顺序 • 支持,必须/必须在同一台机器上运行的应用程序 • 支持多种模式的应用程序(如主/从) • 可以测试任何故障或群集的群集状态

4 群集组件说明:

1.群集组件说明: • stonithd:心跳系统。 • lrmd:本地资源管理守护进程。它提供了一个通用的接口支持的资源类型。直接调用资源代理(脚本)。 • pengine:政策引擎。根据当前状态和配置集群计算的下一个状态。产生一个过渡图,包含行动和依赖关系的列表。 • CIB:群集信息库。包含所有群集选项,节点,资源,他们彼此之间的关系和现状的定义。同步更新到所有群集节点。 • CRMD:集群资源管理守护进程。主要是消息代理的PEngine和LRM,还选举一个领导者(DC)统筹活动(包括启动/停止资源)的集群。 • OpenAIS:OpenAIS的消息和成员层。 • Heartbeat:心跳消息层,OpenAIS的一种替代。 • CCM:共识群集成员,心跳成员层。

二 实现环境:

主机名 IP地址 作用描述
server 2 192.168.122.20 安装haproxy 和 群集软件用于实现高可用和负载均衡
server 3 192.168.122.30 安装haproxy 和 群集软件用于实现高可用和负载均衡
server 4 192.168.122.40 后端web服务器
server 5 192.168.122.50 后端web服务器

通过集群实现两个haproxy的高可用,通过haproxy实现对后端web服务的负载均衡

三 实验:

一 基本环境

两边都需要配置haproxy 配置文件内容如下:

二 安装集群相关软件:

三 添加配置文件并配置:

此处的IP网段一定要是与本网卡同一网段 此处相当于加了一个当corosync启动时,pacemaker也启动的模块 将配置文件复制到另一个节点上

四 启动服务并查看状态

五 设置开机自启动

六 使用crm 进行配置后续的步骤:

1 安装crmsh 软件

2 基本语法介绍:

1 crm 特性:

1 任何操作都需要commit提交后才能生效 2 想要删除一个资源之前需要先将该资源停掉 3 可以用help command 获取该命令的帮助 4 与Linux命令行一样,都支持tab补全

2 Crm 命令的两种工作方式:

1 命令行模式: #crm status 2 交互式 Crm# 进入交互式命令行接口

3 当前命令集合

1 cib 沙盒 2 Resource 所有的资源都在这个子命令后定义 3 configure 编辑集群配置信息 4 node 集群子节点管理命令 5 options 用户优先级 6 history 7 site 8 ra 9 center 资源代理子命令(所有与资源代理相关的命令都在此命令之下) 10status 11 help ? 当前区域可能的命令 12 end , cd ,up 返回第一级crm 13 quit bye exit 退出交互模式

4 常用子命令介绍

1 resource 子命令 # 定义所有资源状态 Crm resouece# help Status 显示资源状态信息 Start 启动一个资源 Stop 停止一个资源 Restart 重启一个资源 Promote 提升一个主从资源 Demote 降级一个主从资源 Manage 管理资源 Unmange Migrate 将资源迁移到另一个节点上 Param 管理资源的参数 Parameters 管理敏感参数 Meta 管理员属性 Failcount 管理失效计数器 Status 清理资源状态 LRM status #从LRM(LRM本地资源管理)更新CIB(集群信息库) Trace 启动资源代理 Untreace 禁用资源代理

2 Configure 子命令 # 资源粘滞性、资源类型、资源约束 Node 定义一个集群资源 Primitive 定义资源 Monitor 对一个资源添加监控选项(如果超时,启动失败后的操作) Group (将多个资源整合在一起) Clone 定义一个克隆类型 Ms resource :定义一个主从类型 Rsc_template : 定义一个资源模板 Location 定义位置约束优先级 Colocation 排列约束资源(多个资源在一起的可能性) Order 资源的启动先后顺序 Rsc_ticket Property 设置集群属性 Rsc_defaults 设置资源默认属性 Fencing_topology node fencing order 隔离节点顺序 Role 定义角色权限 User 定义用户访问权限 Op_defaults 设置资源默认选项 Schema Show 显示集群信息对 Edit 编辑集群信息对 Gilter 过滤CIB对象 Delete 删除CIB对象 Rename 重命名CIB对象 Modgroup 改变资源组 Refresh 重新读取CIB信息 Erase 清除CIB信息 Ptest
Commit 将更改后的信息提交写入CIB Verify CIB语法验证 Save #将当前CIB导入到一个文件中 Load 从文件内容载入CIB

3 Node 子命令# 节点管理和状态 Status 以XML格式显示节点状态信息 Show 命令行格式显示节点状态信息 Standby 模拟指定节点离线 Online 节点重新上线 Maintenance
Ready Fence 隔离节点 Clearstate 清理界节点状态信息 Delete 删除一个节点

4 Ra 子命令 # 资源代理类别的都放置在此处 Classes 为资源代理分类 List 显示一个类别中的提供的资源 Meta 显示一个资源代理序的可用参数 禁用stonith 设备 Configure property stonith-enabled=false

七基本配置

1 配置 stionst 关闭

2 配置VIP

查看

3 配置当节点down机后浮动IP也跟着到另一个集群节点上

查看配置 关闭一个节点服务,并查看VIP变化

4 添加haproxy 资源

5 将VIP与haproxy 进行绑定

其启动顺序是按照配置顺序而定的

6 测试:

当server3 服务down 后: 先开启server2服务 至此 高可用集群配置

7 配置fence

1 客户端安装fence 服务端启动原来关闭的服务: 安装客户端套件并生成密码发送到服务端:

服务端安装fence 套件:

查看文件内容

查看客户端服务是否开启

配置 查看设备域名

开启之间关闭的脑裂检测: