HA集群架构

每个节点上都有 信息层和集群管理层

唯一区别的是: DC被推举出来运行资源的主机才有,只有DC上才有PE,TE、D

当DC上通过PE决策引擎改变了CIB配置文件后,会自动同步到每个节点的CIB(RA脚本定义到CIB库中)上去。

所以,每个节点上都要安装  corosync 和 pacemaker

高可用宏观工作机制:

首先,通过信息层(Msssaging Layer)获取各节点间的信息,这些信息通过资源管理器(CRM)来进行管理。

如果某一节点出现故障,DC(当前正在运行资源的那个节点才单独有的,如果不幸正在运行资源的那个节点挂了,那就要重新推选出一个DC)来计算剩下的票数,PE(Policy Engine 策略引擎)判断各节点是否能够作为一个集群进行运行,如果可以运行,它将通知给TE,TE就要根据这一结果指挥着LRM(每个节点上都有LRM,TE将决策结果传递给其他被选中的节点)来进行资源的转移或者动作,而RA(Resource Agent资源代理)则是提供执行这一动作的脚本,而这一系列的动作到保存在CIB库中。

这一问题解决了,我们接着回到CRM资源管理层上,在CRM上有几个相关概念:

CIB: 在CRM中,要知道一个节点上到底有哪些资源,资源间的约束关系有哪些以及刚刚我们提及的一个节点故障后剩余节点还有多少票等待,在CRM中都要定义其相关的配置文件,这个配置文件就叫做CIB—cluster information base :集群信息库,也可以理解为它是在每个节点上运行的一个进程,它在每个节点上都要保持一致。

PE: 集群策略引擎,它负责收集信息层中各节点信息,并判定接下来的节点还能否成为一个集群继续运行;

TE:集群事务引擎,PE是负责判定能不能运行,它则是负责将PE计算的结果指挥着各资源代理进行响应的操作;

LRM:本地资源代理,它即是TE要通知的代理,管理各资源的启动;

LRM,CIB是运行在各个节点上的,而PE,TE 是运行在DC上的

1) 共享信息层

在基础架构上实现心跳信息探测。双方节点可以随时探测到对方的心跳信息,以实现对对方主机工作状态的探测。三类控制信息:心跳(Heartbeats),集群事务信息(Cluster Transition Messages),重传信息(Retransmission Request)。 配置文件:/etc/ha.d/ha.cf。各节点间域共享密钥,实现节点间互相通信的认证。加密方式:MD5,HMAC-SHA1 。常用实现软件:HeartBeat、keepalived、ultramonkey、openais/corosync。红帽官方提供的集群套件RHCS底层使用的通信机制就是openais/corosync。

2) 资源分配子层

在资源分配上定义资源种类,界定资源归属,每个服务需要哪些资源及这些资源之间的前后次序。

集群资源管理器(CRM,常用软件pacemaker),管理双方向外提供服务所需用到的资源,包括IP地址、Web服务、共享存储等等。而这些资源需要依靠集群信息库CIB(XML文件)来定义,同时还必须保证一旦某个节点上的XML文件更新,即刻通知其他节点上的XML也要及时更新。

策略引擎(PE Policy Engine):定义法定人数以及根据法定人数所做出的动作等等。

本地资源管理器(LRM  Local Resource Manager):监控本地某个资源的工作状况。

3)  资源层

本地资源代理(Resource Agent),脚本文件,一旦集群资源管理器发现某个资源工作异常,立即通知本地资源代理重启服务。常用方法:

(1)Heartbeat v1;

(2)使用脚本LSB scripts (Linux Standards Base );

(3)OCF  Open Cluster Format 开放集群格式(最佳方式)。

3.1.2 高可用集群常用架构模型

(1)一主一从架构;

(2)互为主从架构:两台主机分别提供两种不同的服务;

(3)多主机架构:N台主机组成一个集群,分别提供不同的服务,一台服务器空闲做备节点。或者全部处于工作状态,一台服务器出故障,立刻将服务转移到其他主机上。各节点之间需要以多播的形式将自己的健康情况发送给其他主机。

故障转移域,如果一台主机发生故障,会将主机上的服务转移到域内的另一台主机上。

法定人数(Quorum) 集群超过这个值会正常工作,低于这个值会停止工作,同时也避免出现资源争用的情况。

脑裂和仲裁:在某种情况下,由于底层通知错误,或者传递信息的介质出现故障,会出现资源争用的情况,称之为脑裂。此时,每个部分都想取得对集群资源的控制权,以保证集群的高可用,这将破坏集群资源的完整性和一致性,导致整个集群瘫痪,硬件被破坏等严重后果。为防止脑裂的放生,将由仲裁协议即法定代表人数来决定哪个部分取得对集群资源的控制权。

STONITH (Shoot  The  Other  Node In  The Head ):避免出现资源争用的情况,为了防止错误操作的节点对集群资源进行破坏性控制和操作,使其不断重新启动或关机,从而使其无法取得对集群资源的控制权。

转载于:https://blog.51cto.com/xz159065974/1400807

高可用集群HA基本知识概述相关推荐

  1. 高可用集群HA之双机集群

    高可用集群HA之双机集群 HA:High Availability  高可用性:主要目的就是让运行在服务器上的服务尽可能减少的中断的技术,保证服务运行的连续性:原理如上图所示,本文实现双机集群系统,首 ...

  2. linux高可用集群(HA)原理详解

    高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服 ...

  3. Hadoop 高可用集群(HA)

    1. 配置 1.修改 core-site.xml <configuration><!-- 指定hdfs的nameservice为ns1 --><property>& ...

  4. HA高可用集群与RHCS集群套件

    一.HA基本概念 linux高可用集群(HA)原理详解:https://blog.csdn.net/xiaoyi23000/article/details/80163344 负载均衡.集群.高可用(H ...

  5. 主要Linux 平台高可用集群软件(High Availability Cluster- HA)简介

    Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 高可用集群( High Availability Cluster) 负载均衡集群(Load Balance Cluster) ...

  6. Hadoop的HA机制原理解析,与HA高可用集群环境搭建

    2019独角兽企业重金招聘Python工程师标准>>> Hadoop的HA工作机制示意图 下面我们开始搭建这一套高可用集群环境 hadoop2.0已经发布了稳定版本了,增加了很多特性 ...

  7. 红帽436——HA高可用集群之概念篇

    一.集群概念: 集群:提高性能,降低成本,提高可扩展性,增强可靠性,任务调度室集群中的核心技术. 集群作用:保证业务不断 集群三种网络:业务网络,集群网络,存储网络 二.集群三种类型: HA:高可用集 ...

  8. HA集群实现原理 切换 JAVA_HA(一)高可用集群原理

    高可用集群原理 LVS集群DR模式简单的架构图如下所示: 在上图的架构中,当Director服务器因软件.硬件.人为原因造成故障时,整个集群服务不可用,因此,需要再添加一台服务器实现Director服 ...

  9. HA(高可用)集群之AIS(corosync),高可用httpd+NFS

    **高可用集群的定义** 高可用集群,High Availability Cluster,简称HA Cluster:集群就是一组计算机,它们作为一个整体向用户提供各种资源,集群里的host就是节点(n ...

最新文章

  1. arm 饱和指令_ARM平台下NEON使用方法详解
  2. nginx优化25条
  3. 解决MSSQL 2008不能用IP登录的问题
  4. spark yarn任务的executor 无故 timeout之原因分析
  5. tableau certificate
  6. mysql解压版下载安装教程_mysql 解压版安装配置方法教程
  7. 在Marketplace上销售应用【WP7学习札记之十八】
  8. Python基础学习五 内置模块
  9. java连接phpstudy_PHPStudy快速自动搞定所有配置文件
  10. R语言︱数据集分组、筛选(plit – apply – combine模式、dplyr、data.table)
  11. php 字符串方法名,PHP使用字符串名称调用类的方法是什么
  12. 数学建模论文排版(摘要部分)
  13. imx6ull 485 调试
  14. Tip - 彻底卸载删除3721(雅虎助手)。快速!
  15. 如何把书上的字弄到电脑
  16. 固定连接修改后无觅推荐结果问题修改
  17. java四舍五入保留两位小数方法整理
  18. PS怎么制作下雨天玻璃水雾图片效果
  19. Excel中VBA编程学习笔记(一)
  20. 2012年9月ITbrand电信业4G技术品牌排行榜

热门文章

  1. MySQL8.0.14 - 新特性 - InnoDB Parallel Read简述 1
  2. Java线程池—ThreadPool简介
  3. Linux高可用负载均衡 集群理解
  4. C#使用IHttpModule接口修改http输出的方法浅谈
  5. 使用Zabbix中遇到的问题:snmp监控端口流量偶尔会断图
  6. RHEL/Centos7下使用EPEL和REMI源
  7. Bind服务简单应用之一(介绍)
  8. 通过输入方式在Android上进行微博OAuth登录
  9. Java中方法的重载(overload)与重写/覆写(override)
  10. 【大数相乘】LeetCode 43. Multiply Strings