- 相关推荐
集群组管理原理与系统的实现
欢迎浏览,以下是YJBYS求职网给您推荐一篇关于集群组管理原理与系统的实现的计算机应用毕业论文
摘要:集群系统的出现允许用户把普通商用硬件系统组成集群,并根据需要随时在集群中增加新的硬件,提高了系统的伸缩性和可用性,从而能够在价格相对低廉的中低端平台上享用过去只有高端系统才具备的高可伸缩性和高可用性,既提高了系统的性能,同时也降低了成本。因此,集群成为了高性能计算领域瞩目的焦点。
引言
随着Internet商业服务的飞速发展,服务系统的可用性程度对服务提供者的商业利益具有重大的影响。同时,由于通过计算机服务系统提供的服务内容和服务范围都在不断扩大,计算机服务系统的规模也需不断扩大,现有的小规模的高可用系统己经难以满足这样大规模计算机系统对高可用性支持的需求。因此研究可扩展的高可用集群系统十分重要。
1、心跳技术
失效监测是所有高可用性的基础,如何才能做到尽快、尽可能准确地对节点的失效进行监测,这需要有一个好的模型。
心跳模型被广泛应用于2~8个节点的小规模集群中。相对于上百个节点的大规模集群来说,小规模的集群使用心跳模型监测,对系统造成的负荷较小,并且小规模集群的网络带宽大、速度较快、延迟较小,这样心跳模型可以作出较为精确的判断。当心跳模型应用于两个服务器的集群时,两个服务器采用活动/备份,或者活动/活动集群模型工作,它们之间使用心跳模型进程相互监测,这个框架应用得相当普遍。但是当集群的节点数大于2的时候,心跳模型同样也能较好的保证准确、迅速地对失效节点作出判断。
2、集群组管理原理
(1)节点加入:每一个节点在启动的时候,会读取自身的配置文件,配置文件中包括节点ID号,自身IP地址,多播IP地址和端口号,初始化消息和自身节点。接着会周期性地发送
加入请求消息,直到收到其他节点的加入确认消息。
(2)节点的离开/故障:首先需要监控节点的状态,是通过对方发送的心跳消息来监测的,即如果在三个周期内没有收到某节点的心跳消息,则认为它离开了或出现故障了。这里有两种情况:一是备份节点的离开/故障,直接将该节点从节点列表中删除即可。二是主节点的离开/故障,那么需要重新从剩余的节点中选择一个新的主节点,选择策略很简单,即从剩余节点中选择一个ID号最小的为新主节点,并删除离开或出现故障的主节点。
(3)正常运行:由于节点正常运行,它会周期性的发送心跳消息,标识自己的存在,那么其他节点会周期性的收到该节点的心跳消息,从而维护着一个集群节点列表。
3、集群组管理系统的实现
3.1 节点加入前的准备工作
每一个节点都有一个配置文件configure.file,存放在./config目录下。前面定义了节点类型,消息类型,在节点启动的时候,首先读取配置文件(主要由函数read_profile( )实现),将配置信息:节点ID号,自身IP地址,多播IP地址和端口号等初始化自身节点和待发送的消息,并将自身节点首先加入到节点列表中。
3.2线程同步的实现
一个进程中的所有线程共享相同的全局内存,这使得线程很容易共享信息,但是这种简易性也带来了同步(synchronization)问题。一个进程中的所有线程不仅共享全局变量,而且共享:进程指令、大多数数据、打开的文件(如描述字)、信号处理程序和信号设置、当前工作目录、用户ID和组ID。现实中,涉及到多个线程同时运行,比如gm_listener线程,它负责监控接收到的多播消息,并作相应的处理,比如收到加入消息判断是否在节点列表中,不在则将之加入,并发送加入确认消息,收到加入确认消息,判断是否在节点列表中,不在则将之加入,收到心跳信息,则将对应节点标志变量加一。heartbeater线程,通过对状态的查询每隔一个心跳周期发送加入请求消息或心跳消息,add_flag线程对标识每个节点的状态的标志变量flag作周期性的减一操作,而test线程周期性的对每个列表中的节点检测标志变量是否小于0,也即是列表中的节点是否失效或离开。
4、结果测试与分析
为了跟踪消息来源,每次都将收到的消息、类型、发送节点的IP地址、角色、状态都在控制台显示出来,以便分析程序中的问题。而且也在每次test线程执行一次检测后输出整个节点列表,这样有助于了解哪些节点加入进来了,哪些节点离开或失效了。
实验的过程主要通过结束集群管理进程来模拟节点的失效或离开,通过启动某节点的集群管理进程来模拟节点的加入,正常运行的进程来模拟节点正常运行。为此设计了以下几个测试用例:
(1)第一个启动的节点的确立。在集群组中还没有成员的情况下,第一个启动的节点自动成为主节点,后来启动的节点为备份节点。实验过程为:启动其中任何一个节点集群管理程序,接着启动其他节点集群管理程序。实验结果与预期一致。
第一个启动4号节点,实验截图如图1:
图 1 第一个启动的节点默认为主节点
(2)节点的加入。其实这个过程已经在上述测试用例中达到了目的。新加入的节点按预期的要求加入到集群组中,并维护着统一的成员列表。
6、总结
在商业和科学领域,集群管理还涉及到许多其他的内容,因此针对一些具体的应用,还有很多的不足。我觉得可以从以下方面来考虑:
(1) 建立一个对集群节点信息的详细监控。比如针对机柜系统环境、每节点硬件配置情况、每节点电压、各部件温度、风扇转速等硬件状态、系统CPU、内存、网络使用情况等,可指定节点,也可以图形方式对各节点的单项数据进行对比。以便针对具体故障进行处理。
(2) 事件服务。系统管理员应该能够通过事件服务设置系统对事件的自动响应。
(3)基于网络的管理:重起,关机;基于串口的管理:开电源、关电源、硬件重监测、控制台重定向。
(4)实现任务分发,负载均衡,高可用性。
(5)开发友好的管理界面,提高管理的安全性和方便性。
参考文献:
[1] 胡庆平.新型心跳监测技术的研究与实现.华中科技大学.2004:31~44
[2 万春.基于linux数据库集群系统的研究.华中科技大学.2004
[3] 李英壮,李先毅等.基于linux的集群管理系统设计与实现[J].大连理工大学学报.2003,12:168~170
【集群组管理原理与系统的实现】相关文章:
工资管理系统设计与实现论文11-30
学生成绩管理系统的设计与实现03-18
科研项目管理系统的设计与实现03-06
论科研项目管理系统的设计与实现03-02
浅析物流仓储管理系统的设计与实现论文11-28
物流企业管理系统的设计与实现11-17
关于设计管理系统信息需求的分析与实现03-03
学习管理系统及其标准化实现03-18
供应链系统管理原理研究12-07