2014年4月23日星期三

CentOS 6.5 heartbeat高可用集群的详解实现以及工作流程

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
CentOS 6.5 heartbeat高可用集群的详解实现以及工作流程  阅读原文»

CentOS 6.5 heartbeat高可用集群的详解实现以及工作流程

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


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

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

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

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

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

ha_aware:如果一个应用程序自己能够利用底层心跳信息传递层的功能完成集群事物决策的过程的软件就叫ha_aware。

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

高可用集群中任何资源都不应该自行启动,而是由CRM管理启动启动的;
CRM:Cluster Resources Manager集群资源管理,真正做出决策的是CRM。


heartbeat v1版时就有了资源管理的概念,而v1版的资源就是heartbeat自带的,叫haresources,这个文件是个配置文件;而这个配置文件接口就叫haresources;
heartbeat v2第二版的时候,heartbeat被做了很大的改进,自己可以做为一个独立进程来运行,并而可以通过它接收用户请求,它就叫crm,在运行时它需要在各节点上运行一个叫crmd的进程,这个进程通常要监听在一个套接字上,端口就是5560,所以服务器端叫crmd,而客户端叫crm(可以称为crm shell),是个命令行接口,通过这个命令行接口就可以跟服务器端的crm通信了,heartbeat也有它的图形化界面工具,就叫heartbeat-GUI工具,通过这个界面就可以配置进行。
第三版heartbeat v3,被独立成三个项目heartbeat、pacemaker(心脏起博器)、cluster-glue(集群的贴合器),架构分离开来了,可以结合其它的组件工作了。

RA:resource agent资源代理,其实就是能够接收CRM的调度用于实现在节点上对某一个资源完成管理的工具,这个管理的工具通常是脚本,所以我们通常称为资源代理。任何资源代理都要使用同一种风格,接收四个参数:{start|stop|restart|status},包括配置IP地址的也是。每个种资源的代理都要完成这四个参数据的输出。
当某一个节点出现故障时,其上面的资源被自动转移到其它正常的备用节点上并启动的这个过程叫故障转移,也称为失效转移(failover)
如果出现故障的节点又回来的,那我们就要把这个节点添加回来,那这个添加回来的过程我们就叫失效转回,也称故障转回(failback)

资源争用、资源隔离:
万一集群发生分裂时,为了避免不再成为集群上的节点继续使用资源而发生资源争用情况,导致有挂载文件系统的系统文件发生崩溃,成为新的集群的就会给不再成为集群的节点补一枪,让不是集群节点的服务死透,不再接收请求,这就叫stonith(shoot the other node in the head),而这种功能就叫资源隔离。争用共享存储的后果是非常严重的,轻则共享存储崩溃,重则整个文件系统都崩溃,数据全部丢失。


资源隔离有两种级别:
节点级别:这种就叫STONITH,这种就是不管怎么样直接把对方的电源给切断,一般这种主机都是连接到电源交换机上的。
资源级别:这种需要依赖一些硬件设备来完成,比如连接到共享存储的光纤交换机,把需要踢除出去的节点的光纤接口屏蔽了,这种就叫资源级别的隔离。
对于服务器左右分隔的这种情况通常称为脑裂(brain-split),左右不协调了,在高可以用集群中避免资源争用完成资源隔离是我们在设计高可用集群中必须要考滤的问题。

两个节点的模式下,一旦发生集群分隔以后,其中一个节点发生故障,在我们无法判定哪个节点不正常的时候,而正常的节点一定是可以连到互联网上去的,这样的话就说明正常的节点是可以跟前端路由通信的,所以我们就把前端路由当成第三个节点,这里我们称为ping节点,当每个节点联系到对方之后先去ping前端的节点,如果可以ping通,那就说明自己是正常的,就说明该节点是有多票法定票数的节点,而前端的ping节点就叫仲裁设备,帮助节点判断哪个节点是优胜一方的,偶数节点数时就会借助于仲裁设备。

阅读更多内容

没有评论:

发表评论