高可用集群的概念理解

来源:互联网 发布:数据库订单管理模板 编辑:程序博客网 时间:2024/06/07 10:27

高可用集群详解及工作流程

所谓的高可用不是主机的高可用,而是服务的高可用

什么是高可用:任何一个服务down掉的可能性多种多样,任何一个可能坏了都可能带来风险,而服务器离线通常带来的代价是很大的,尤其是web站点,所以当一台服务器提供服务器down掉不至于服务终止的就叫高可用

什么叫心跳:就是将多台服务器用网络连接起来,而后每一台服务器都不停的将自己依然在线的信息很简短很小的通告给同一网络中的备用服务器的主机,告诉其实主机自己依然在线,其他服务器收到这个心跳信息,就认为本机是在线的,尤其是主服务器;

心跳怎么发送,由谁来接收,其实就是进程中的通信两台主机是没法通信的,只能利用网络功能,通过进程监听在某一个套接字上,实现数据的发送,数据请求,所以多台服务器就得运行同等的进程,这两个进程不停的 通信,主节点不停地向对方同等的节点发送自己俄 心跳信息,那这个软件就叫高可用集群的基准层次,也叫心跳信息传递层以及事务信息的传递层,这个进程是个服务软件,关机后需要将其启动起来,主机间才可以传递信息。

一般是主节点传给备节点。

 

所谓资源:web为例,vip是资源,web服务也是资源,还有网页面也是资源,一个服务包括多个资源 ,而像web的共享资源也是不同的,而共享存储是高可用集群中最难解决的问题。

 

如果主节点挂了,多个备节点怎么样来选择一个备节点来提供提供这个服务的一个节点呢,而这种应该选择哪个备用节点来做为提供服务机制的就叫做集群事务决策的过程。、

 

Ha_aware 如果 一个应用程序自己能够利用底层心跳信息的功能完成集群事务决策的过程的阮家就叫ha_aware

 

DC: designated coordinator选定的协调员,当DC所在的主机挂了就会选择出一个DC,再由DC做出事务的决策。注意:在高可用集群中最核心的,最底层的管理的单位叫资源,把资源组合起来的组合成一个服务;

 

高可用集群中的任何资源都不应该自己启动 ,而是由CRM管理启动的。

 

CRMCLuster resources manager集群资源管理,真正做出决策的是CRM

 

Heartbeat v1:版时就有资源管理的概念,而v1的资源就是heartbeat自带的haresources,这个文件是个配置文件,而这个配置文件接口就是haresources;

 Heartbeat v2版,做了很大的改进,自己可以作为一个独立的进程来运行,并而可以通过它接收用户请求,它就叫crm.在运行的时候它需要在各节点上运行一个叫做crmd的进程,这个进程通常要监听在一个套接子上,端口就是5560,所以服务器端叫crmd,而客户端叫crm,是个命令接口,通过这个命令行接口,就可以跟服务器端的crm通信了,Heartbeat也有它图形化界面,就叫hearbeat-GUI工具,通过这个界面就可以配置进行;

Heartbeat v3被分成三个独立的项目,heartbeat packmaker,cluster-glue(集群的贴合器),架构分离开来了,可以结合其他的组件工作了。

 

 

RA资源代理:其实就是能够接收CRM的调度用于实现在节点上的对某一个资源完成管理的工具,通常是脚本,所以我们称为资源代理,任何资源代理都要使用同一中风格,接收四个参数start,stop,replace,status包括配置IP的地址也是,

 

如果某一个节点出现故障,其上面的资源被自动转移到其他正常的备用节点上并启用的这个过程叫故障转移,

如果故障的节点又回来,那我们就要把这个节点添加回来,那这个添加回来的过程就叫失效转回。

 

为万一集群发生分裂,为了避免不再称为集群上的节点继续使用资源而发生资源争用的情况,导致有挂载文件系统的系统文件发生崩溃,让不是集群节点的服务死透,不再接收请求,这就叫做stonith,这种功能就叫资源隔离,

资源隔离有两种级别:

节点级别这种就叫stonith,这种就是不管怎么样直接把对方的电源给切断,一般这种主机都是连接到电源交换机上的。

资源级别:这种需要依赖一些硬件设备来完成,比如连接到共享存储的光迁交换机,把需要踢除出去的节点的光纤接口屏蔽了,这种就叫资源级别的隔离

 

 

那心跳是怎么传递的呢,在多台主机之间又是怎么互相工作良好的呢,

信息层:主从两个节点的心跳信息都要基于信息层来实现,也叫底层基础架构层,拥有传递心跳信息的,而能够实现这种功能的有corosyncheartbeat

资源分配层:这层的核心组建叫CRMCRM上必须有一个资源被推举成管理者,叫leader,它的工作是决策集群种的所有事务的,这里称为DC(指定协调员),任何DC上会额外运行两个进程,一个叫PE(策略引擎)所谓策略引擎就是将底层信息层收集整个集群中的所有节点上的信息在本地生成一个大图big pic来策略节点运行在哪个节点上,并通知其实节点上的资源管理器来实现资源的启动和关闭等操作;一个叫TE(传输引擎),它主要是把做出 的决策通告给对应节点上的CRM

 

集群资源管理器必须借助于message layer通告给每一个节点,自动的广播给每一个节点,这样就保证了每一个节点上的信息都是一样的,而这些数据在计算机中又怎样来交互数据呢,这里就要基于扩展标记语言,开实现数据的格式传递,这种叫半结构化数据基于XML的,所以在各节点之间实现配置信息保存都是通过XML文件保存的,而要能够理解这个XML文件保存的信息,使用到一个工具叫CIB(集群信息库);只要能连接到CRM上都可以去配置这个XML文件,首先它会保存到DCXML,然后在由DC同步到每个节点上的XML文件中去;

 

Resource层:而PE就是根据XML这个库u来获取资源的配置信息的,并通过messaging layer获取当前节点的活动信息的,而后做出决策,一旦做出决策就要启动资源了,所有PE借助于本地的message layer通知给其实节点的集群信息库来实现对某些资源的传递。比如通告其他CRM要启动某一资源了,收到信息后CRM并不负责启动,转由LRM(本地资源管理)启动,每个节点上都运行在这个LRM,而并发资源又借助RA,实现资源管理,这即是它的工作原理,CRM负责收集信息,推举DC的由PE运行,PE负责整合整个集群中的所有资源,并确保某些资源在合适的节点上运行,一旦做出决策就会通告给其他节点上的CRM,对应节点上的CRM收到通告以后会调用自己的LRM,由LRM指挥RA完成相关操作。

0 0
原创粉丝点击