大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全家桶1年46,售后保障稳定
1. 简介
Pacemaker是一个集群资源管理者。他用资源级别的监测和恢复来保证集群服务(aka.资源)的最大可用性。它可以用你所擅长的基础组件(Corosync或者是Heartbeat)来实现通信和关系管理。
2. 特性
Pacemaker包含以下的关键特性:
- 监测并恢复节点和服务级别的故障
- 存储无关,并不需要共享存储
- 资源无关,任何能用脚本控制的资源都可以作为服务来管理
- 支持使用STONITH来保证数据一致性。
- 支持大型或者小型的集群
- 支持quorate(法定人数) 或 resource(资源) 驱动的集群
- 支持几乎所有的冗余配置,包括Active/Active, Active/Passive, N+1, N+M, N-to-1 and N-to-N
- 自动同步各个节点的配置文件
- 可以设定集群范围内的ordering, colocation , anti-colocation约束
- 支持更多高级服务类型:支持需要在多个节点运行的服务,支持需要多种模式的服务。(比如 主/从,主/备)
- 统一的,脚本化的,cluster shell
3. 架构
一个HA集群的高层架构由三个部分组成 :
- Messaging & Membership部分是基础核心,负责消息传递以及集群中的成员关系管理;
- CRM部分是集群的大脑,负责对集群(节点的加入或退出)和资源(失效监测)的各种事件做出反应和决策;
- LRM及RS是直接和服务相关的底层组件,CRM调用LRM来管理资源,而LRM调用RS来和具体的服务打交道。
从更具体的层次来看,由Pacemaker管理的集群,基本架构如下:
GUI console是一个图形管理界面;Pacemaker充当的是CRM的角色;Heartbeat(Corosync)充当的是Messaging& Membership的角色; Cluster Glue和Resource Agents,对应的是LRM和Resource Scripts,虽然把Glue和Resource Agents归为了同一类,但实际上它们是完全平行的两个部分,参考:http://www.linux-ha.org/wiki/Cluster_Glue。
Resource Agents是什么?
它是标准化的Cluster Resource接口,Pacemaker通过这个接口对Cluster Resource进行操作。Pacemaker支持三种类型的Resource Agents:LSB,OCF,和Heartbeat
LSB Resource Agents:LinuxStandard Base Resource Agents,就是那些/etc/init.d下的脚本。
OCF Resource Agents:Open ClusterFramework,是对LSB Resource Agents的扩展。
Heartbeat Resource Agents:Heartbeat遗留下来的ResourceAgents
这些RA的语法跟linux的/etc/init.d/下的普通自启动脚本有点不同,若要配置自己的RA,在配置自己的RA之前,阅读一下参考文档:http://www.linux-ha.org/wiki/Resource_Agents,特别注意LSB标准和OCF标准各自RA的写法。
2) 支持的集群架构
由Pacemaker的介绍我们知道Pacemaker支持使用Corosync(即Openais)或者是Heartbeat来实现通信和关系管理。
Pacemaker&Openais
Pacemaker&Heartbeat
当与Corosync集 成时,Pacemaker也支持常见的开源集群文件系统,根据来着集群文件系统社区的最新标准,他们用一个通用的分布式锁控制器,它靠Corosync通 信并且用Pacemaker管理成员关系(哪些节点是开启或关闭的)和隔离服务。 尽管Pacemaker也支持Heartbeat,但是文件系统也要用 基层软件来通信和维护节点关系,Corosync看来是他们的标准,技术上来说,让它们支持Heartbeat也是可能的,但是看起来他们没多大兴趣 。
- lrmd(local resource manager demaon):本地资源管理守护进程(非集群感知守护进程),提供一个统一的接口去支持不同的资源类型,直接与Resource agents(脚本)交互.
- ccm(consensus cluster membership):CCM的最主要工作就是管理集群中各个节点的成员以及各成员之间的关系。他让集群中各个节点有效的组织称一个整体,保持着稳定的连接。
- heartbeat:心跳消息层(可以被OpenAIS替代),heartbeat模块所担当的只是一个通信工具,而CCM是通过这个通信工具来将各个成员连接到一起成为一个整体。
- openais:指OpenAIS的消息和成员层。
Pacemaker 自己由以下4 个关键组件组成:
- pengine(PE or Policy EnginePE 或者策略引擎):主要负责将CRM发过来的一些信息按照配置文件中的各种设置(基于目前的状态和配置)计算集群的下一个状态。产生一个包括一系列行动和依赖关系的过渡图。
- stonithd(Shoot-The-Other-Node-In-The-Head ):通常用远程电源开关来充当。在 Pacemaker 中,STONITH设备被当成资源(并且是在CIB中配置)从而轻松地监控,然而Stonithd会注意理解STONITH拓扑,比如它的客户端请求隔离一个节点,它会重启那个机器。
- crmd(Cluster Resource Management daemon 集群资源管理守护进程):主要作为pengine和lrm的消息代理,它同时也得选举一个leader去协调管理集群的活动(包括集群资源的停止和启动)
- cib(Cluster Information Base 集群信息基础):CIB 在系统中充当的是当前集群中各资源原始配置以及之后动态变化了的状态,统计信息收集分发中心,是一个不断更新的信息库(包含所有群集选项,节点,资源以及 他们的相互关系和当前状态的定义)。当他收集到任何资源的变化,以及节点统计信息的变化后,都会集成整合到一起组成当前集群最新的信息,并分发到集群各个 节点。
由Pacemaker的特性我们知道Pacemaker对环境的要求不高,支持几乎所有的冗余配置,包括Active/Active, Active/Passive ,N+1, N+M, N-to-1 and N-to-N ,以下是常见的几种配置例子。
使用Pacemaker和DRBD的双节点主备方案作为一种经济的解决方案被很多高可用环境所采用。
支持多个节点,允许多个Active/Passive集群共享一个共同的备份节点, Pacemaker可以大幅降低硬件成本。
共享存储时,每个节点都可以被用于故障切换。Pacemaker甚至可以运行服务的多个副本来展开工作量。
Pacemaker1.2在简化分站点集群的搭建方面有了进一步的增强。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/209963.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...