Linux高可用集群系统的结构和原理分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2007-09-15 第一作者简介:左 婷(1979-),女,吉林省四平市人,现为吉林师范大学信息网络中心研究实习员.
2007年11月
吉林师范大学学报(自然科学版) .4第4期Journal of Jilin Normal University(Natural Science Edition)Nov.2007
Linux 高可用集群系统的结构和原理分析
左 婷1,吴会军2
(1.吉林师范大学信息网络中心,吉林四平136000;2.吉林省水文水资源局,吉林长春130000)
摘 要:通过对目前常用Linux 平台上高可用集群系统的软、
硬件基本结构和工作原理的分析与研究,构建容易扩展、高可用、易维护和管理、高性价比的计算机系统.
关键词:L inux;高可用集群系统;结构;原理
中图分类号:T P393 文献标识码:A 文章编号:1000-1840-(2007)04-0115-02
目前,很多国际知名软件公司和计算机厂商都推出了
自己的集群产品,其中值得一提的是T he H igh A vailability
L inux Project 的开放源代码Heartbeat,已经同商业集群软件
一样成熟,而且较后者应用更为灵活.本文将着重介绍SuSE
L inux Enterpr i se Server 10平台上Heartbeat2.0.8组成结构
和工作原理.1 Linux 高可用集群系统的基本概念伴随着集群技术的发展,出现了一些关于集群系统的概念和术语.(1)集群资源和集群资源代理.在集群系统中,所有由集
群控制和管理,并将其以单一和统一的形式提供给客户端用
户使用的计算机资源称为集群资源,例如:一种服务、一个
IP 地址、一个磁盘驱动,甚至可以说:除了节点,其它任何软
硬件资源都可以成为集群资源.而集群资源代理是为了控制
和管理某一集群资源而编写的代理程序脚本,集群软件通过
特定集群资源代理来操控某一集群资源,Heartbeat 套件本
身已经包含了一些常用资源代理,开发人员也可以自己按照
一定的规范编写;(2)指定协调者(也称主节点).主节点除了
具有其它一般节点具有的集群节点基本功能外,还负责对整
个集群系统的状态进行监控、分析和转换,对集群系统下达
集群指令,协调各节点的操作等,实际上是整个集群系统的
大脑!,显然一般情况下,整个集群系统只有一个主节点,但
当某些特殊情况发生时,例如主节点不再是集群中的节点,
主节点将发生迁移,即位置发生了变化,另一个节点将代替
它成为主节点;(3)ST ON IT H.英文 Shoot T he Other Node
In T he Head !的缩写,代表一种将错误操作的节点进行隔离
的技术,为了防止错误操作的节点对集群资源进行破坏性控
制和操作,使其不断重新启动或关机,从而使其无法取得对
集群资源的控制权;(4)裂脑和仲裁.在某种情况下,由于软
硬件失败导致各节点无法相互确定彼此的状态时,整个集群将被分裂为几个部分,每个部分都想取得对集群资源的控制权,以保证集群的高可用,这种对集群资源的竞争将严重破坏集群资源的完整性和一致性,甚至导致整个集群瘫痪、硬件被损坏的严重后果,这种情况称为裂脑.为了防止裂脑的发生,由仲裁协议决定哪个部分来取得对集群资源的控制
权,为了继续保证系统的高可用,一般将控制权交给节点数
超过原集群节点数一半的部分,同时将其它节点进行隔离;
(5)单点故障(失败).单点故障是指由于系统中某一组件的
故障或运行失败从而导致整个集群系统瘫痪和应用服务完
全停止,因此,在高可用集群的构建中应尽量避免单点故障.2 Heartbeat 的主要进程Heartbeat 的所有集群功能都是由它的进程和它们之间相互通信来具体实现的.(1)集群资源管理器(CRM ,Cluster Resource M anager).CRM 是集群系统中最主要的管理进程,它负责对整个集群资源的管理和约束,包括资源的配置及相互间依赖关系,并决定资源运行的状态、位置和时间等.另外它还负责监控本地资源管理器完成这些工作,CRM 通过与系统的每一个组件通信来相互作用和协调操作,CRM 通过heartbeat 通讯模块进行节点间通讯,从CCM 接受当前集群的成员信息,指令ST O NI TH Daremon 如何工作,负责记录系统日志等;(2)策略引擎(PE,CR M Policy Eng ine).PE 是CRM 的一个组件,只能在主节点上运行.PE 的功能是根据当前集群的状态及集群资源的约束配置计算出集群的下一个状态,即为T E 生成将要执行的计划和策略;(3)执行引擎(T E,CRM T ransi tion Engine).T E 也是CRM 的一个组件,只能在主节点上运行.T E 的功能是按照P E 生成的集群状态变化计划和策略,指令集群节点上的LRM 对具体的集群资源进行操作;(4)∀115∀
集群信息库(CIB,Cluster Information Base).作为CRM的一个组件,CIB进程实际上是自动复制的、由CRM收集的关于集群资源和节点信息的副本,为了方便使用,这个副本的所有信息都将写入cib.x ml文件;(5)身份认证进程(CCM, Consensus Cluster M embership).CCM主要负责对集群节点变化的监控,集群状态的变化很大程度上取决于资源运行节点的状态变化;(6)本地资源管理器(L RM,L ocal Resource M anager).L RM实际上是一种抽象的资源代理,在CRM的控制下,通过相应的资源代理对本地资源进行操作.由于具有插件式的结构,L RM支持多种类型的资源代理(对应的规范不同):OCF(Open Cluster F ramewo rk)类,hear tbeat类,LSB (L inux Standar ds Base)类和ST ON IT H类;(7)ST ON IT H Daremon.ST ON IT H代理的功能是对集群中节点通过调用ST O NIT H API实施隔离,确保ST ON IT H设备(或资源)仅被集群中的某个节点子集访问;(8)无阻塞日志代理(log d).新版本Heartbeat为防止因消息过多造成阻塞,容易丢失日志,使用了logd,CRM可以将系统日志完整写入syslog或某一文件;(9)hear tbeat底层通讯模块.heartbeat通讯模块主要负责各节点间的集群信息传递,能够在多种传输媒介以多种传输方式通信,其功能十分强大;(10)应用心跳代理(ap phbd,Application heartbeat Daremo n).apphbd是可选的,功能主要是单独为某一应用提供更高一个级别(而不是系统级)的可用性,它定时对某一应用进行更深入的检测,发现错误后通知RM D,RM D将采取一系列措施在应用级别对应用进行恢复;(11)应用恢复代理(RM D,R ecovery M anager Dare mon).与apphbd一起配合在应用级别提供高可用性.3 Heartbeat工作原理
(1)启动Heartbeat后,集群中所有组件之间的通讯也就开始了,各组件之间的信息交换是通过heartbeat底层通讯模块执行的,同时,hear tbeat底层通讯模块还提供各节点之间通讯连接状态信息,包括连接的节点信息,连接失败和恢复的时间等;(2)一旦这种连接状态发生改变,消息将被传送给CCM,CCM则发送信息包给集群中其它节点的CCM,当前哪些节点通过身份认证,哪些没有,从而最终确定集群中的节点状态是否改变;(3)如果CCM确认集群节点的状态发生了改变,它将首先通知CIB进程,CIB进程则根据最新的节点状态更新自己的信息,然后,CCM再通知CRM,CRM 确认CIB进程的信息改变后,将触发PE,PE通过检查CIB 中状态信息等,根据预先定义的策略,生成相应的集群状态变化操作指令序列,并将其传递给CRM;(4)然后CRM又将操作指令序列提交给T E进行进一步执行;(5)T E根据操作指令序列操控集群中每个L RM执行特定的操作,如按特定顺序启动某些资源服务;(6)T E将跟踪每个操作的执行情况,直至指令序列全部完成,然后将执行结果反馈给CRM;
(7)以上过程在集群运行过程中是按顺序重复执行的.
4 总结
只有在高可用集群的结构和工作原理深入理解基础上,根据客户的具体需求,才能够构建出高性价比集群系统.同时,对构建的高可用集群系统进行全面的测试也是至关重要的,这有助于发现系统构建过程中未发现的问题,为了应付将来的系统扩展、升级和维护,建立一个试验集群是必须的.
参考文献
[1]周孝生,龚菊仙,韩东儒.SUSE Linux10[M].北京:人民邮电出版社,2007.
[2][美]威尔(W ehrle K.),汪青青,卢祖英(译).Linux网络体系结构∀∀∀Linux内核中网络协议的设计与实现[M].北京:清华大学出版社,
2006.
[3][美]科珀(Dopper,K.).Linux企业集群∀∀∀用商用硬件和免费软件构建高可用集群[M].北京:中国水利水电出版社,2007.
The Analysis on Architecture and Principles of the
High Availability Cluster System
Z UO Ting1,W U H ui-j un2
(1.College of Informati on Netw ork,Jilin Normal Un i versity,S ipi ng136000,China;
2.Surveying Bureau of Hydrology and Water Resources of Jilin Province,Changchun130000,China)
Abstract:T hrough the analysis and research on basic architecture and work pr inciples o f the High-Availabilit y Cluster System based on L inux,to create easily-extended,hig hly available,and easily-maintain-and-manage computer system w ith hig h per formance and price ratio.
Key words:L inux,the hig h availability cluster system,ar chitecture,principles
∀
116
∀