高可用(HA)集群原理概述

一、高可用集群(High Availability Cluster)

集群(cluster)就是一组计算机,它们作为一个整体向用户提供一组网络资源。每一个单个的计算机系统都叫集群节点(node)。随着业务的增长,集群通过添加新的节点,满足资源的高可扩展性。

计算机硬件和软件易错性不可避免,这样在节点上的服务会不可避免的中断。高可用集群的出现是为保证即使节点失效,而服务能不中断。

高可用集群在一组计算机中,采用主备模式,主节点提供服务,备节点等待;一旦,主节点失效,备节点无需人工的无缝取代主节点提供服务,这样保证了服务的不中断。

高可用集群软件的主要作用就是实现故障检查和业务切换的自动化,以提供不中断的服务。

二、高可用集群(HA)的衡量标准

高可用性群集(High Available), 是通过系统的可靠性(reliability)和可维护性(maintainability)来度量的。

通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均维修时间(MTTR)来度量系统的可维护性。

故:HA=MTTF/(MTTF+MTTR)*100%

具体HA衡量标准:

  • 99% 一年宕机时间不超过4天
  • 99.9% 一年宕机时间不超过10小时
  • 99.99% 一年宕机时间不超过1小时
  • 99.999% 一年宕机时间不超过6分钟

三、高可用集群的层次结构

1.信息层(Messaging)

也叫底层基础架构层,主要用于节点之间传递心跳信息,也称为心跳层。节点之间传递心跳信息可以通过广播,组播,单播等方式。

心跳信息:集群中每一台服务器都不停的将自己在线的信息通告给集群中的其他主机。

心跳信息的传递是基于套接字通信的,通过软件提供服务监听套接字,实现数据发送、请求。必须安装软件,并开启服务,这是实现高可用集群的基础。

2.成员层(Membership)

这层最重要的作用是通过Cluster Consensus Menbership Service(CCM)这种服务由Messaging层提供的信息,来产生一个完整的成员关系。

CCM 组件(Cluster Consensus Menbership Service):作用,承上启下,监听底层接受的心跳信息,当监听不到心跳信息的时候就重新计算整个集群的票数和收敛状态信息,并将结果转递给上层,让上层做出决定采取怎样的措施。CCM 还能够生成一个各节点状态的拓扑结构概览图,以本节点做为视角,保证该节点在特殊情况下能够采取对应的动作。

Messaging & Membership一般由同一软件实现。

3.资源分配层(Resource Allocation)

也叫资源管理器层,真正实现集群服务的层。包含CRM(集群资源管理器,cluster Resource Manager),CIB(集群信息基库,Cluster Infonation Base),PE(策略引擎,Policy Engine),TE(实施引擎,Transition Engine), LRM(Local Resource Manager,本地资源管理器)。

CRM组件:核心组件,实现资源的分配和管理。每个节点上的CRM都维护一个CIB用来定义资源特定的属性,哪些资源定义在同一个节点上。主节点上的CRM被选举为DC(Designated Coordinator指定协调员,主节点挂掉会选出新的DC),成为管理者,它的工作是决策和管理集群中的所有资源。

任何DC上会额外运行两个进程,一个叫PE,;一个叫TE。

  • PE :定义资源转移的一整套转移方式,但只做策略,并不亲自来参加资源转移的过程,而是让TE来执行自己的策略。
  • TE : 就是来执行PE做出的策略的并且只有DC上才运行PE和TE。

CIB组件:XML格式的配置文件,工作的时候常驻内存,只有DC才能对CIB进行修改,其他节点上的复制DC上的CIB而来。集群的所有信息都会反馈在CIB中。

LRM组件:是执行CRM传递过来的在本地执行某个资源的执行和停止的具体执行人。

资源(补充)

在集群中构成一个完整服务的每一部分都叫资源,都需要配置和管理。

以web应用为例:vip是资源,web服务器是资源,存储也是资源。不同的服务的资源也不尽相同,其中存储资源的选择、配置、管理是高可用集群中的难点问题。

4.资源代理层(Resource Agents)

集群资源代理,能够管理本节点上的属于集群资源的某一资源的启动,停止和状态信息的脚本,资源代理分为:LSB(/etc/init.d/*),OCF(比LSB更专业,更加通用)。

任何资源代理都要使用同一种风格,接收四个参数:{start|stop|restart|status},每个种资源的代理都要完成这四个参数据的输出。

工作机制:PE根据CIB获取资源的配置信息(集群上的所有信息都会收集到DC的CIB,同步到其它节点),而后做出决策,一旦做得决策就会进行资源的管理。PE借助于本地的CCM通知给其它节点CIB来实现对某些资源管理信息的传递,比如说通告其它CRM要启动某一资源了,收到信息后CRM并不负责启动,转由LRM(Local Resource Manager本地资源管理)启动,而并发资源又借助于RA(Resource Agent资源代理)实现资源管理。

四、高可用集群软件

Messaging and Membership Layer(信息与关系层):

  • heartbeat (v1,v2,v3)
  • corosync
  • cman
  • keepalived
  • ultramokey

Cluster Resource Manager Layer(资源管理层,简称:CRM):

  • haresource,crm (heartbeat v1/v2)
  • pacemaker (heartbeat v3/corosync)
  • rgmanager (cman)

常用组合:

  • heartbeat v2+haresource(或crm) (一般常用于CentOS 5.X)
  • heartbeat v3+pacemaker (一般常用于CentOS 6.X)
  • corosync+pacemaker (现在最常用的组合)
  • cman + rgmanager (红帽集群套件中的组件,还包括gfs2,clvm)
  • keepalived+lvs (常用于lvs的高可用)

五、补充

1.STONITH(Shoot The Other Node in the Head,"爆头")组件

这种机制直接操作电源开关,控制故障节点的电源开关,通过暂时断电又上电的方式,使故障节点重启,这种方式需要硬件支持。

主节点在某一端时间由于某种原因,没时间传递心跳信息,这个时候集群会选取新的DC,从新分配资源提供服务,如果主节点服务器还没有宕掉,这样就会导致服务器分隔、资源争用,这种情况被称为脑裂(brain-split)。此时,用户能访问,一旦有写的操作,就会导致文件系统崩溃,损失惨重。为避免这种情况,新的DC一旦产生,第一时间对主节点执行stonith,这种操作叫做资源隔离。

2.资源隔离

  • 节点级别:这种就叫STONITH,直接把对方的电源给切断,一般这种主机都是连接到电源交换机上的。
  • 资源级别:同样需要依赖一些硬件设备来完成。比如节点通过光纤交换机连接到共享存储,通过把需要踢除出去的节点的光纤接口屏蔽来实现资源隔离。

3.仲裁设备

  • ping node:两个节点的模式下,一旦其中一个节点发生故障,发生集群分隔以后,无法判定哪个节点不正常,但工作正常的节点一定是可以连到互联网,故正常的节点是可以跟前端路由通信,所以可以把前端路由当成第三个节点,如果可以ping通,那就说明自己是正常的,可以将对方隔离掉。
  • qdisk: RHCS不是使用ping节点来判断,而是使用一个共享存储的设备,节点按照心跳信息频率每隔一个信息频率时间就往磁盘里写一个数据位,如果设备每隔一个心跳时间间隔就更新一次数据位,就说明这个设备处于活动状态的,可以将对方隔离掉。

写在最后

此博文很多要点均是自己理解并整理所得,由于时间原因并没有时间去通读官方文档得到更详细更权威的解说,故若细节之处如有错误,万望指出。

以后有暇,通读文档,还来润色。

高可用(HA)集群原理概述

时间: 2024-10-10 11:00:42

高可用(HA)集群原理概述的相关文章

corosync+pacemaker实现高可用(HA)集群

corosync+pacemaker实现高可用(HA)集群(一) ????重要概念 在准备部署HA集群前,需要对其涉及的大量的概念有一个初步的了解,这样在实际部署配置时,才不至于不知所云 资源.服务与主机(又称节点)的关系: 资源包括vip,httpd,filesystem等: 可整合多个资源形成一个服务: 服务必运行在某个主机上,主机上也可不运行服务(此为空闲主机): 服务里的所有资源应该同时运行在同一个节点上,实现方式有2种: 资源组: 排列约束 资源类型 primitive(或native

iscsI服务的配置+lvm逻辑卷 高可用(HA)集群铺设的业务Apache+iscsI服务的配置

主机环境 redhat6.5 64位 实验环境 服务端1 ip 172.25.29.1 主机名:server1.example.com ricci iscsi  apache     服务端2 ip 172.25.29.2  主机名:server2.example.com ricci iscsi  apache     管理端1 ip 172.25.29.3  主机名:server3.example.com  luci  scsi     管理端2 ip 172.25.29.250     fe

VMware8实现高可用(HA)集群

陈科肇 =========== 操作系统:中标麒麟高级操作系统V6 x86-64 实现软件:中标麒麟高可用集群软件 ======================== 1.环境的规划与配置 硬件要求 服务器 服务器至少需要 2 台,每台服务器至少需要 2 块网卡以做心跳与连接公网使用 存储环境 建议使用一台 SAN/NAS/ISCSI 存储作为数据共享存储空间 软件要求 1.需要在每台服务器上安装中标麒麟 Linux 服务器操作系统 V5.4 以上版本 2.需要将中标麒麟高可用集群软件分别安装在每

Linux HA Cluster高可用服务器集群,所谓的高可用不是主机的高可用,而是服务的高可用。

什么叫高可用:一个服务器down掉的可能性多种多样,任何一个可能坏了都有可能带来风险,而服务器离线通常带来的代价是很大的,尤其是web站点,所以当某一台提供服务的的服务器down掉不至于服务终止的就叫高可用. 什么叫心跳:就是将多台服务器用网络连接起来,而后每一台服务器都不停的将自己依然在线的信息很简短很小的通告给同一个网络中的备用服务器的主机,告诉其实主机自己依然在线,其它服务器收到这个心跳信息就认为本机是在线的,尤其是主服务器. 心跳信息怎么发送,由谁来收,其实就是进程中的通信两台主机是没法

Redis高可用复制集群实现

redis简单介绍 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库.Redis 与其他 key - value 缓存产品有以下三个特点: 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用. 不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储. 支持数据的备份,即master-slave模式的数据备份. Redis的持久化 RDB:snapshotting 二进制格式:按

构建生产环境可用的高可用kubernetes集群

kubernetes集群三步安装 构建生产环境可用的高可用kubernetes集群 | sealos项目地址 特性 [x] 支持任意节点的etcd集群自动构建,且etcd集群使用安全证书,通过static pod方式启动,这样可以通过监控pod来监控etcd集群健康状态 [x] 支持多master节点,允许任意一台master宕机集群功能不受影响 [x] calico使用etcd集群,配置安全证书,网络管控数据无单点故障 [x] 包含dashboard, heapster coreDNS add

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置

CentOS Linux 负载均衡高可用WEB集群之LVS+Keepalived配置 LB集群是locd balance集群的简称.翻译成中文是:负载均衡集群的意思:集群是一组相互独立的.通过高速网络互联的计算机相互之间构成一个组合,并以单一的系统的模式加以管理.LVS是Linux Virtual Server的简写,翻译中文是Linux虚拟服务器,是一个虚拟的服务器集群系统. 负载均衡集群:是为了企业提供更为实用,性价比更高的系统机构解决方案.负载均衡集群把用户的请求尽可能的平均分发到集群的各

直接路由的高可用LVS集群配置

 直接路由的高可用LVS集群配置: 调度服务器IP:(106.3.43.240)192.168.11.100,节点服务器分别为:192.168.11.101,192.168.11.102 一.安装ipvsadmin: 1.yum -y install ipvsadmin(推荐用第一种方法) 2.下载http://www.linuxvirtualserver.org/software/,找到相应的版本: 注意对应自己的内核版本 ipvsadm-1.24.tar.gz tar zxvf ipvs

RHCS集群原理概述

一. 什么是RHCS RHCS是Red Hat Cluster Suite的缩写,也就是红帽集群套件,RHCS是一个能够提供高可用性.高可靠性.负载均衡.存储共享且经济廉价的集群工具集合,它将集群系统中三大集群架构融合一体,可以给web应用.数据库应用等提供安全.稳定的运行环境. 更确切的说,RHCS是一个功能完备的集群应用解决方案,它从应用的前端访问到后端的数据存储都提供了一个行之有效的集群架构实现,通过RHCS提供的这种解决方案,不但能保证前端应用持久.稳定的提供服务,同时也保证了后端数据存