高可用集群Heartbeat简述

一、什么是高可用集群?高可用集群是怎么工作的?

高可用集群(HA:High Availability),就是为了保证服务的持续可用性,使用1个或多个备用主机来保证主服务器宕掉后能自动接替其工作的方案。

这些主机中,正在工作的,我们称为主节点,看着主节点挂掉然后才能干活的,我们称之为备节点,一般高可用集群中,只有两个节点是很特殊的HA集群,一般都是3个或3个以上。

而主机工作一般都是提供各种服务,不管是网页服务还是邮件服务或者数据库服务等,我们将这些服务和服务所需的一些特性或者属性称为资源:(resource) 常见的资源类型有:磁盘分区、文件系统、IP地址、服务程序、NFS文件系统,以及不常见的primitive(本地类型),group,clone,Master-slave等.

HA集群中,主节点一般会不停的发出一些广播信息,告知其他节点,他在工作,当其他节点收不到这信息时,就认为他挂了,然后接替他的工作。看起来似乎很不错,对吧。对了,主节点发出的这个信息,一般都称之为心跳信息。

但实际上,试想一种情况,当网络问题,主备节点不能通信怎么办?又也许,主节点忙的没时间发心跳信息怎么办?凉拌么,亲?不管是那种情况,备用节点在指定的时间周期内收不到主节点的信息就会开始篡权了。那么,数据怎么办?服务资源怎么办?跟主节点混?谁是主节点?大家都是!所以,数据等资源就躺着也中枪了。

这些集群中可能发生的事情,例如节点系统故障、网络连通故障、网卡故障、应用程序故障等,我们称之为:事件(event)。这种各节点各自为政的行为,一般称之为:脑裂(Split-brain)

为了解决脑裂问题,那些V5的设计人员又折腾了出了一个霸气的机制:爆头(STONITH->Shoot The Other Node In The Head),可以肯定的是,肯定不会拿把枪把服务器给崩了,虽然这会很爽。实际上,简单来讲:就是谁最先抢到主节点,然后发现有别人还跟自己抢的话,就把对方的电源给掐了或是让对方重启。

爆头调用的设备,在红帽的RHCS套件中又叫隔离设备(Fence),其实就是当主节点挂了,备节点不急着抢资源,而是调用Fence设备,将其隔离(重启,关机或者断网),隔离成功后,再安安心心的接管。

再试想一种场景,当一个高可用集群中有很多台服务器,其中一个主节点挂了,其资源给谁呢?谁抢的快给谁?不是的,我们可以定义,这个资源,譬如http服务的主节点挂了,我们在它正常的时候可以定义,如果他挂了,他优先选择转移到哪个节点上工作,或者只能选择哪个节点,或者哪个节点一定不能去,或者等他修好了,http服务还在这个节点上工作,这种方式就是对资源的约束,又叫资源粘性Stickness。

控制着资源在自己挂了之后的选择方式叫:资源转移(failover),而故障的主节点正常后,资源再主动回来的情况叫failback。

如果有一个集群,有10台正在工作,因为老鼠把网线咬断了,集群分裂了,其中6个可以通讯,另外4个可以通讯,那么此时的集群,到底谁干活?大家都干?显然不是的,那么怎么办?投票有木有?好,那就投票,很简单,票数多于半数的,则继续干活,票数少的,则放弃服务。那么此时呢?肯定是6个的继续,4个放弃么?错了,要知道,票数(quorum)可不等于服务器个数,亲。管理投票的节点叫做DC(Designated Coordinator 指定的协调员)。

看了笔者废话这么多,纳尼是不是要问:这丫的到底咋工作的?来点清晰的东西。先来个图吧,当然,不是笔者自己画的…

时间: 2024-12-24 02:16:23

高可用集群Heartbeat简述的相关文章

基于corosync+pacemaker的nginx高可用集群安装配置

  一.corosync.pacemaker介绍 corosync是用于高可用环境中的提供通讯服务的,它位于高可用集群架构中的底层(Message Layer),扮演着为各节点(node)之间提供心跳信息传递这样的一个角色; pacemaker是一个开源的高可用资源管理器(CRM),位于HA集群架构中资源管理.资源代理(RA)这个层次,它不能提供底层心跳信息传递的功能,它要想与对方节点通信需要借助底层的心跳传递服务,将信息通告给对方.通常它与corosync的结合方式有两种: pacemaker

CentOS6.5高可用集群LVS+Keepalived(DR模式)

环境介绍 操作系统:CentOS6.5_x64 mini 负载均衡模式:DR(直接路由) LVS与Keepalived简述: LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.使用集群技术和Linux操作系统实现一个高性能.高可用的服务器,很好的可伸缩性.可靠性和管理性. LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构

CentOS 7下搭建高可用集群

CentOS 7下搭建高可用集群 本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为192.168.122.169 . 一.安装集群软件 必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件 二.配置防火墙 1.禁止防火墙和selinux # systemctl disable firewalld # systemctl stop firewalld

Linux之HA高可用集群的基础概念总结

HA(High Availability)高可用集群,其特点为根据实际需求为前端Diretor,后端RS-server,数据库服务器,共享存储等集群节点做一个从备份服务器或者多个服务器互相备份,一旦主服务器挂掉,备份服务器能立马检测到并取代主服务器上的资源继续运行服务,从而最大限度避免了因服务器宕机造成的服务中止.  主节点(active/primary)备节点(passive/standby)  主调度器(Director)一般为集群中的关键节点,所以一般都有备份节点的存在:而后端RS-ser

高可用集群HA及负载均衡集群LB的实现方法

集群是个热门话题,在企业中越来越多地应用Linux操作系统提供邮件.Web.文件存储.数据库等服务,随着Linux应用的日益增长,高可用及http://www.aliyun.com/zixun/aggregation/13996.html">负载均衡Linux集群也在企业中逐步地发展起来.Linux平台的低成本.高性能.高扩展性使得Linux集群能够以低廉的价格很好地满足各种应用的需求. 本文介绍Linux集群的基础知识,集群的分类.在熟悉集群的基础知识后会以RHCS(RedHat Clu

轻松构建Mysql高可用集群系统

一. MySQL复制的实现原理 MySQL支持单向.双向复制.异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器.主服务器将更新写入一个二进制日志文件中,并创建一个索引文件以跟踪日志循环.这些日志可以记录发送到从服务器的更新.当一个从服务器连接主服务器时,日志文件会通知主服务器,从服务器在日志中读取的最后一次成功更新的位置.接着,从服务器在上次成功更新的位置处开始进入更新操作.更新完成后从服务器开始进入等待状态,等待主服务器后续的更新. 需要注意的是:在进行复制时,所

CentOS 7下怎么搭建高可用集群?

  CentOS 7下怎么搭建高可用集群.高可用集群是指以减少服务中断时间为目的的服务器集群技术.它通过保护用户的业务程序对外不间断提供的服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度.那么新的centos下怎么来搭建高可用集群. 环境:本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为192.168.122.169 . 一.安装集群软件必须软件pcs,pacemaker,corosync,fence-agen

ActiveMQ私有云、公有云以及Docker环境高可用集群方案汇总

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1749983 ActiveMQ软件概述 ActiveMQ提供消息队列服务. ActiveMQ高可用原理 ActiveMQ高可用由三部分组成. 1.ActiveMQ的master-slave 两个运行的ActiveMQ instance如果同时使用一套持久化存储,那么这两个ActiveMQ instance就会构成ma

memcached+magent+keepalived高可用集群二

memcached+magent+keepalived高可用集群二. 上篇我们已经配置好memcached+magent了下面 那如果magent宕机了,讲不能继续提供服务,所以就用到了keepalived,添加一台备用的magent代理服务器.当一台magent宕机了由另一台来接替. 配置步骤: 两台magent代理服务器,一台做主一台做从,当主的宕机了由从的接替继续工作. 两台magent代理服务器再启动时指定相同的主缓存节点与备份缓存节点. 通过keepalived配置文件设置优先级来决定