集群——HA理论

高可用集群的前提:

1、节点需要不停的向其他节点通告自己的心跳信息,以判断节点的健康状态。

2、需要使用加密暗号进行沟通,防止任意主机的加入。

3、使用投票机制决定哪个主机为活动主机。一般高可用集群节点为奇数个(至少3个),且当节点过多时,会被划分为多个小的集群,当其中一个小的集群不能与另一个小集群连通时,这时多于半数的小集群就会被当做主集群。而少于半数的小集群则放弃所有服务。

高可用集群的资源:

就是运行在集群中的服务,比如httpd、sshd等。

failover:节点主机故障后,运行在其上的资源转移到备用节点上的过程。

failback:故障节点恢复后,资源转移回来的过程。

资源粘性:资源启动后,更倾向于运行在哪个节点主机上。

资源约束:(constraints)

位置约束:locations

定义资源和节点间的关系,比如资源更倾向于运行在哪个节点上。

定义范围是正无穷(inf)到负无穷(-inf)。

正无穷表示只要有可能运行在当前节点就运行。负无穷则相反。

但是正无穷和负无穷相加,结果是负无穷。因为正无穷需要额外资源。

顺序约束:order

当有多个资源时,定义资源的启动和关闭的先后顺序。

比如web服务,必须先有IP资源,再有Filesystem,最有才是httpd

排列约束:colocations

定义资源间的关系,也就是2个资源要不要在一起启动的倾向性。

比如IP和Filesystem必须要在一起。

依然使用正无穷(inf)和负无穷(-inf)来确定。

当集群中有很多主机时,如果任由一个资源在主机间游动,那么过几天肯定无法找到那个资源的位置。所以需要定义一个故障转移策略限定资源的故障转移域。

左对称:使用白名单,资源只能转移到预定的主机上。

右对称:使用黑名单,资源不能转移到某些主机上面。

高可用集群的层次结构:

1、信息和成员关系层(Messaging and
Membership),Messaging主要用于节点之间传递心跳信息,也称为心跳层。节点之间传递心跳信息可以通过广播,组播,单播等方式。成员关系(Membership)层,这层最重要的作用是主节点(DC)通过Cluster
Consensus Menbership
Service(CCM或者CCS)这种服务由Messaging层提供的信息,来产生一个完整的成员关系。这层主要实现承上启下的作用,承上,将下层产生的信息生产成员关系图传递给上层以通知各个节点的工作状态;启下,将上层对于隔离某一设备予以具体实施。能够直接运行在信息层上的软件叫做高可用软件,由于这种软件开发难度高和周期长,所以又有了第二层。

2、集群资源管理层(Cluster Resource
Manager),真正实现集群服务的层。在该层中每个节点都运行一个集群资源管理器(CRM,cluster Resource
Manager),它能为实现高可用提供核心组件,包括资源定义,属性等。在每一个节点上CRM都维护有一个CIB(集群信息库
XML文档)和LRM(本地资源管理器)组件。对于CIB,只有工作在DC(Designated
Coordinator,指定的协调员。主节点)上的文档是可以修改的,其他CIB都是复制DC上的那个文档而来的。对于LRM,是执行CRM传递过来的在本地执行某个资源的执行和停止的具体执行人。当某个节点发生故障之后,是由DC通过PE(策略引擎)和TE(实施引擎)来决定是否抢夺资源,DC是集群自动选举出来的,不用手动修改。

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

各层的实现工具介绍:

Message  Layer CRM RA
heartbeat  V1
haresource:heartbeat  V1

haresource:heartbeat  V1
heartbeat  V2
crm:heartbeat  V2,crm牌CRM

LSB:/etc/rc.d/init.d/*
heartbeat  V3
pacemaker:独立出heartbeat的项目,适配多款软件。

OCF:Open Cluster Framework开放集群框架
RHCS:cman(rhel5)
RHCS:rgmanger(RHEL6)

STONITH:电源交换机爆头开关,防止集群分类时的资源争用
coroync

在RHEL6上有多种可供选择的信息层+CRM组合方案

1、cman+rgmanger

2、cman+pacemaker

3、heatbeat V3+pacemaker

4、corosync+pacemaker

安装corosync时,由于制作RPM时会依赖于heartbeat的一些RA,所以会同时装上heartbeat,但是heartbeat不一定启动。但是heartbeat却不会依赖corosync的。

编辑HA集群的接口:

1、直接编辑配置文件

2、CLI:crmsh(SUSE),pcs(redhat)命令行方式

3、GUI:heartbeat-GUI、LCMC、HAWK、pygui、RHCS的Conga

fencing:

当正在服务的节点突然宕机时,为了保证其在宕机瞬间不再继续占用集群资源,比如仍然在使用块级别的存储设备SAN,这时很有可能就会破坏文件,所以就需要让其瞬间彻底的脱离集群。

节点级别的fencing:使用STIONITH,能接受网络信号的电源交换机,

当资源进入新的主机,那么可以发信号切断老主机电源

当老主机是虚拟机时,就可以直接杀死那个进程就可以了。

资源级别的fencing:在SAN设备上直接阻断老主机进入的端口的流量。

XML: eXtended Markable
Language扩展的可标记语言,但是很难配置,不易用

资源类型:

primitive,native:主资源,只能运行在一个节点上的资源

group:组资源,一个组资源也只能运行在一个节点上。

clone:克隆资源,需要运行在多个节点上,比如stonith,需要运行在多个节点上,

当资源转移时,随时枪毙老资源。

master/slave:主从类资源,也是克隆类资源,但分主从,比如drdb。

集群模式:

active/passive:主备模型

active/active:双活动节点,通过corosync提供的功能,实现一个资源(包括主资源)可以运行在多个节点上。

N对M:N个节点,M个服务。

N对N:N个节点,N个服务。

双节点集群:,

一般HA集群至少是3个节点,但是双节点在提供其他配置的情况下,也是可以运行的。

1、ping node,可以提供多个,可以使路由器。

2、qdisk(quarum disk):仲裁磁盘,也就是一个共享磁盘

主节点不停的向qdisk上写数据,然后由备用节点不停的监测,如果在规定时间内看不到新数据了,那么就判定主节点已经挂掉,然后将其stonith并抢占资源。

时间: 2024-08-03 10:55:21

集群——HA理论的相关文章

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

高可用集群 一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务.高可用集群是用于单个节点发生故障时,能够自动将资源.服务进行切换,这样可以保证服务一直在线.在这个过程中,对于客户端来说是透明的. 二.高可用集群的衡量标准 高可用集群一般是通过系统的可靠性(reliability)和系统的可维护性(maintainability)来衡量的.通常用平均无故障时间

高可用集群HA(heartbeat)

HA 即 (high available)高可用,又被叫做双机热备,用于关键性业务. 简单理解就是,有两台机器A和B,正常是A提供服务,B待命闲置,当A宕机或服务宕掉,会切换至B机器继续提供服务. 下面我们使用heartbeat来做HA集群,并且把nginx服务作为HA对应的服务. 试验准备: 两个机器, 都是centos6.5,网卡eth1 ip如下: master  192.168.11.24 master1  192.168.11.23 1. hostname 设置好,分别为master 

Codis3.2集群HA高可用方案

Codis高可用方案官方推荐使用Sentinel Redis 本身就是最终一致性的.Master 挂了,Promote Slave 成为新的 Master 需要时间(测试15秒内).其实 Sentinel 就是这个逻辑.Codis3.2 自己没有实现 HA,而是直接依赖 Sentinel 的. 注意事项: Sentinel需要使用原生的Redis-server,版本要等于或高于Codis3.2里面的3.2.8版本, 这里是在Redis3.2.9的下配置测试的,另外Protected-mode n

高可用集群HA之双机集群

HA:High Availability  高可用性:主要目的就是让运行在服务器上的服务尽可能减少的中断的技术,保证服务运行的连续性:原理如上图所示,本文实现双机集群系统,首先通关管理虚拟机LUCI服务对ClusterVM1.ClusterVM2进行管理,维护等工作,而他们之间沟通的桥梁是RICCI服务,所以ClusterVM1.ClusterVM2均安装RICCI服务.主要工作原理是ClusterVM1.ClusterVM2构成集群的双机,将其中一台作为活动机,也就是运行服务的主机(Clust

集群——LVS理论(转)

原文:http://caduke.blog.51cto.com/3365689/1544229 当单个服务器性能 不能满足日益增多访问流量时,服务器的扩展策略: Scale Up :向上扩展,提升单个物理主机的性能,比如增加CPU.内存等. Scale Out:向外扩展,将相互依赖的服务器(LAMP等)做层次上的划分,然后将各个层次的服务器分别安装在不同的层次的物理主机上.当哪个层次的服务器无法承受压力时只要增加其层次的主机即可. 划分层次的过程也叫做解耦的过程,也就是将此程序之间的耦合度.不同

linux高可用集群(HA)原理详解(转载)

一.什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个 节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务.高可用集群是用于单个节点发 生故障时,能够自动将资源.服务进行切换,这样可以保证服务一直在线.在这个过程中,对于客户端来说是透明的. 二.高可用集群的衡量标准 高可用集群一般是通过系统的可靠性(reliability)和系统 的可维护性(maintainability)来衡量的.通常用平均无故障时间(MT

转:Linux集群-----HA浅谈

通过特殊的软件将若干服务器连接在一起并提供故障切换功能的实体我们称之为高可用集群.可用性是指系统的uptime,在7x24x365的工作环境中,99%的可用性指在一年中可以有87小时36分钟的DOWN机时间,通常在关键服务中这种一天多的故障时间是无法接受的,所以提出了前面提到的错误恢复概念,以满足99.999%的高可用性需求. 这里我们先说一下几个概念: 服务(Service),是HA集群中提供的资源,包括Float IP,共享的存储,apache等等. 成员服务器(Member Server)

高可用集群HA架构搭建

HA含义为在集群服务器架构中,当主服务器故障时,备份服务器能够自动接管主服务器的工作,并及时切换过去,以实现对用户的不间断服务. (1)基本安装 Server1和server2 为High Availability的两个节点 在两个节点上配置完整的rhel6.5的yum源,安装ricci,创建ricci用户,密码westos,启动并设置开机启动ricci. 将instructor机作为管理机(M端),安装luci,启动luci服务 web上配置 在web上输入https://instructor

记录配置集群HA的坑

配置core-site.xml <configuration> <!-- 把两个NameNode)的地址组装成一个集群mycluster --> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <!-- 指定hadoop运行时产生文件的存储目录 --> <property>