专利名称:一种具有弹性体系架构的集群管理监控系统的构建方法
技术领域:
本发明属于计算机领域,涉及集群管理监控系统,特别涉及一种具有弹性体系架构的集群管理监控系统的构建方法。
背景技术:
集群就是通过高性能网络或局部网将一组计算机系统(节点)互联,形成的具有单一系统映像的高性能、高可用、高可扩展性、高性价比的多计算机系统。由于其相对于传统的大型机的高可用性和低价格的优势,用集群构造超级计算机或超级服务器成为一种流行的趋势。
近年来,随着技术的发展,集群的规模从过去的数个节点扩充到数百个节点甚至数千个节点,对集群系统的管理监控也变得越来越复杂,集群管理监控越来越成为一项具有挑战性的工作。如何保持对软件的更新、监视硬件和软件的运行状态以及对集群进行定期的维护等都成为集群管理员费时费力的工作。集群管理监控系统的出现大大解放了集群管理员的日常工作,使他们可以通过图形界面方便地实现对整个集群的管理。集群管理监控系统是集群系统软件的一部分,处于系统软件的最顶层,它对整个集群的软、硬件起到管理的作用,为集群的系统管理员和最终用户提供服务。集群系统的一个基本特点是“整个系统呈现给用户的是单一系统的映像”,为实现这一目标,应提供在单一控制台上包括对集群的规划、安装、配置、监控、日常维护、开机关机等系统管理全过程的控制支持。集群管理监控系统应提供一套多功能、易使用、可扩展的实用化管理工具,帮助管理员监控整个集群的工作状态,保证集群系统高效、稳定地运行。
基于B/S结构的集群管理监控系统已成为集群管理监控系统的发展趋势,而目前多数B/S结构的集群管理监控系统的体系架构分为四层,即WebServer、总管理节点、子管理节点和被管节点。命令从上到下依次转发,这种分层方式的缺点是任务转发次数过多,任务下达到被管节点需要在网络上进行三次交互,通信效率不高,尤其是当集群规模较小时,子管理节点根本没有存在的意义。这种体系架构无法根据集群规模灵活改变,并且通信次数过多,增加了网络负担,降低了任务执行效率。
发明内容
针对上述现有技术存在的缺陷和不足,本发明的目的在于,提供一种根据集群规模灵活改变体系架构的集群管理监控系统的构建方法。
为了实现上述任务,本发明采取如下的技术方案一种具有弹性体系架构的集群管理监控系统的构建方法,其特征在于,体系架构的构建采用分层设计,根据集群规模和管理节点、子管理节点和被管节点的角色划分层数,实现层级托管,对于小规模集群系统采用两层体系架构,大规模集群系统则采用三层体系架构;体系架构的改变通过一个配置文件即可快速实现;任务按业务类型分类,划分为管理、监控和报警三种类型,不同业务类型对应不同业务流程;任务的转发和执行采用多线程并发机制;采用B/S结构,客户端通过浏览器远程管理监控集群系统。
在本发明中,集群中的各节点(服务器)采用层级托管的方式进行管理和监控。当集群规模较小时,采用两层体系架构,即管理层和被管理层,并将Web Server置于管理层,即通过Web Server直接将命令转发给被管节点,Web Server和被管节点之间不再需要一个单独的管理节点,这种架构最大程度地减少了任务转发次数(零转发),降低了通信出错率,提高了通信效率;当规模较大时,采用三层体系架构,即管理层、子管理层和被管理层,分层托管,有效减少了直接与管理层交互的被管理节点数目,解决了管理节点的单点瓶颈问题,提高了集群系统的可扩展性。同时,层与层之间的任务转发采用多线程并发机制,大大提高了批量任务执行时管理监控系统的执行效率,提高了系统可靠性。在本发明中,将所有任务按业务类型划分(管理、监控和报警),不同业务类型对应不同业务流程,业务流程彼此独立,模块化结构好,提高了管理监控系统的可扩展性和易维护性。
图1为小规模集群管理监控系统体系架构及层间的交互流程图。
图2为大规模集群管理监控系统体系架构及层间的交互流程图。
以下结合附图和发明人给出的实施例对本发明进行进一步的详细说明。
具体实施例方式
在本发明的根据集群规模灵活改变体系架构的集群管理监控系统构建方法中,集群管理监控系统的构建采用分层设计,按集群规模和节点角色划分层数。当集群规模较小时采用两层体系架构,把Web Server作为管理层,不再需要一个单独的管理节点,而是由Web Server直接向各节点派发命令,这种体系架构最大程度地减少了任务转发次数(零转发),降低了通信出错率,提高了通信效率。当集群规模较大时采用三层架构,实现了层级托管,即Web Server(管理节点)转发任务给其下属的各子管理节点,各子管理节点再将任务派发给其辖域内的各被管节点,这种层级托管机制,有效减少了直接与管理节点交互的节点数目,解决了管理节点的单点瓶颈问题,提高了通信效率,同时还大大提高了集群系统规模的可扩展性。
在本发明中,系统能够根据集群规模灵活改变体系架构,同时确保命令在网络上的转发次数最少,极大地提高了任务执行效率。
本发明如附图1所示,其中,带箭头的虚线表示管理业务流程、带箭头的点划线表示监控业务流程、带箭头的实线表示报警业务流程、单向箭头表示层间单向交互,双向箭头表示层间双向交互。小规模集群管理监控系统采用两层体系架构,即管理层和被管理层。管理层包括三个模块Web Server、MonitorAgent和AlarmAgent,而被管理层仅包括一个接收和执行命令的模块。两层之间按业务类型的不同采用不同的交互流程。其中,管理流程为(图中带箭头的虚线所示)Web Server直接将管理命令派发到各被管节点,WebServer和被管节点之间无须再通过一个管理节点转发命令,被管节点执行命令后返回结果给Web Server,这种设计最大程度地减少了管理命令的转发次数(零转发),提高了通信效率;监控流程为(图中带箭头的点划线所示)MonitorAgent模块按一定时间间隔(用户可自由设定)定期收取各被管节点的性能和健康(服务器各部件的温度、电压和风扇转速等)信息,再将这些信息写入数据库(便于对历史数据进行再现和分析),管理节点的WebServer模块负责从数据库中按用户需求提取相应的监控数据,并以动态图形界面的形式呈现给用户;报警流程为(图中带箭头的实线所示)每个被管节点定期监控自身的性能和健康信息,若发现性能超标或节点不健康则主动向管理节点汇报,管理节点的AlarmAgent模块收到报警信息后,将立刻启动报警机制,在本发明中,实现了浏览器界面报警、email报警和拨号报警三种报警方式。此外,AlarmAgent执行完报警处理事务后,还要将报警信息写入数据库中,便于用户查看报警历史信息并进行数据分析。
如附图2所示,其中,带箭头的虚线表示管理业务流程、带箭头的点划线表示监控业务流程、带箭头的实线表示报警业务流程、单向箭头表示层间单向交互,双向箭头表示层间双向交互。大规模集群管理监控系统采用三层体系架构,即管理层、子管理层和被管理层。管理层包括两个模块WebServer和Alarm Agent,子管理层包括一个命令转发模块,被管理层包括一个命令执行模块。需要特别说明的是,在本发明中,子管理节点本身也是一个被管节点,它可以被它自己或其它子管理节点管理,否则,它将游离于整个集群管理监控系统之外。在大规模集群管理监控系统架构中,三层间的通信按业务类型采用不同的交互流程。其中,管理流程为(图中带箭头的虚线所示)Web Server将命令派发给子管理节点,子管理节点再将命令转发给被管理节点,命令执行完成后沿原路返回执行结果;监控流程为(图中带箭头的点划线所示)各子管理节点负责定期收取其所辖范围内的被管节点的监控信息,并将这些信息写入数据库(便于日后进行历史数据再现和分析),管理节点的Web Server模块负责从数据库中按用户需求提取相应的监控数据,并以动态图形界面的形式呈现给用户;报警流程(图中带箭头的实线所示)为管理节点的AlarmAgent模块负责所有子管理节点和被管节点的报警业务,具体的业务流程与小规模集群下的报警业务流程类似,不再赘述。通过流程分析可以看到,大规模集群系统下的这种层级托管机制,有效减少了直接与管理节点交互的被管节点的个数,解决了管理节点的单点瓶颈问题,提高了通信效率,同时还大大提高了集群系统规模的可扩展性。
在本发明中,用户只需要通过填写一个简单的配置文件,即可实现上述功能。以下为发明人给出的一种具体实施例用户填写配置文件,配置文件内容包括三项节点名、节点IP和节点角色。
启动Web Server和各节点的Agent。
Web server启动后,管理节点将自动读取配置文件信息并将此信息写入数据库的NodeInfo表(反映节点信息的表,包括节点名、节点IP和节点ID)和NMInfo表(反映节点角色及节点隶属关系,包括节点ID及其子管理节点ID)。同时,一个负责记录整个集群拓扑结构的类将读取这两个表中的信息并构建系统拓扑结构对象topology,并将此对象加载到内存中。当用户执行管理命令时,系统首先根据topology对象判断用户所选择的一系列节点分别隶属于哪些子管理节点,再将命令同时派发给这些子管理节点,通过子管理节点转发管理命令到被管节点上,被管节点收到命令后执行,执行结果将按原路返回给Web Server。若用户所选择的某些节点没有子管理节点,则web server将直接发送管理命令给这些节点,节点执行完成后将结果返回给Web Server,此时管理监控系统架构在局部范围内演变为小规模系统的两层架构。
各层在转发命令时,采用了多线程并发机制,具体实现是构建一个线程池,线程池为每一个任务分配一个独立的线程,各线程彼此独立,该机制保障了批量任务执行时管理监控系统的执行效率。此外,在本发明中所构建的线程池是一个自适应大小的线程池,它可以根据任务量的大小自行创建或杀死池中的线程,实现按需构建,从而确保任务执行效率和资源的最低使用。
管理节点或子管理节点Agent启动后,将从数据库读取其所管辖节点的ID列表,并加载所有监控方法到内存中,此时,系统将创建一个“任务规划线程池”,该池具有两个特点根据任务量自适应池中线程数目;周期性执行所计划的任务。通过该池实现了高效、低资源利用率地执行监控业务,即通过该池按一定周期定期监控各节点性能和健康信息。此外,在本发明中,为每一个节点的每一个监控方法在池中分配一个独立的线程,各线程独立运行,这种设计避免了由于某一个监控信息获取失败而导致其它信息无法获取的问题。各监控方法通过面向对象的通信协议RMI远程获取被管节点的监控信息并将信息写入数据库。需要特别说明的是,在本发明中,周期性执行各监控业务是指前一次任务必须执行完成(无论成功或失败)后间隔一定周期才执行下一次任务,而不是基于时间间隔的周期性执行(即无论前一次的任务完成与否,按时间间隔定期执行任务),基于时间间隔的这种执行方式容易导致大量任务的阻塞。
被管节点的Agent启动后,将启动报警守护进程,按一定时间间隔周期性监控本节点的性能和健康信息,若发现问题将主动向管理节点汇报。管理节点收到报警信息后,将立刻执行报警事务处理业务,并将报警信息写入数据库。此外,被管节点Agent还负责接受并执行来自管理节点或子管理节点的命令。
通过上述实施例可以看出,本发明的具有弹性体系架构的集群管理监控系统的构建方法,能够根据集群规模灵活改变管理监控系统的体系架构。当集群规模较小时采用两层架构,最大程度减少了任务转发次数(零转发),提高了通信效率。当规模较大时采用三层架构,有效减少了直接与管理节点交互的节点个数,解决了管理节点的单点瓶颈问题,提高了集群规模的可扩展性。体系架构的改变通过一个配置文件即可快速实现。按业务类型(管理、监控和报警)划分任务,不同业务类型对应不同的业务流程,各流程彼此独立,模块化结构较好,提高了管理监控系统的可扩展性和易维护性。引入多线程并发机制,大大提高了批量任务执行时管理监控系统的执行效率。此外,系统采用B/S结构,用户通过web浏览器即可方便地对集群系统进行远程管理监控。
权利要求
1.一种具有弹性体系架构的集群管理监控系统的构建方法,其特征在于,体系架构的构建采用分层设计,根据集群规模和管理节点、子管理节点和被管节点的角色划分层数,实现层级托管,对于小规模集群系统采用两层体系架构,大规模集群系统采用三层体系架构;体系架构的改变通过一个配置文件即可快速实现;任务按业务类型分类,划分为管理、监控和报警三种类型,不同业务类型对应不同业务流程;任务的转发和执行采用多线程并发机制;采用B/S结构,客户端通过浏览器远程管理监控集群系统。
2.如权利要求1所述的方法,其特征在于,所述的小规模集群系统的两层体系架构划分为管理层和被管理层两层;大规模集群系统的三层体系架构划分为管理层、子管理层和被管理层。
3.如权利要求2所述的方法,其特征在于,所述的两层体系架构的管理层有Web Server、MonitorAgent和AlarmAgent三个模块;被管理层仅有一个接收和执行命令的模块,两层之间按业务类型的不同采用不同的交互流程;其管理流程为Web Server直接将管理命令派发到各被管节点,WebServer和被管节点之间无须再通过一个管理节点转发命令,被管节点执行命令后返回结果给Web Server;监控流程为MonitorAgent模块按用户自定义的时间间隔定期收取各被管节点的性能和健康信息,再将这些信息写入数据库,用户通过WebServer从数据库中获取监控信息;报警流程为每个被管节点定期监控自身的性能和健康信息,若发现性能超标或节点不健康则主动向管理节点汇报,管理节点的AlarmAgent模块收到报警信息后,将立刻启动报警机制,此外,AlarmAgent执行完报警处理事务后,还要将报警信息写入数据库中,便于用户查看报警历史信息并进行数据分析。
4.如权利要求2所述的方法,其特征在于,所述的三层体系架构的管理层包括Web Server和Alarm Agent两个模块,子管理层包括一个命令转发模块,被管理层包括一个命令执行模块;子管理层中的各子管理节点本身也是被管节点,它可以被它自己或其它子管理节点管理,否则,它将游离于整个集群管理监控系统之外;三层之间按业务类型采用不同的交互流程,其各业务流程之间彼此相互独立;其管理流程为Web Server将命令派发给子管理节点,子管理节点再将命令转发给被管理节点,命令执行完成后沿原路返回执行结果;监控流程为各子管理节点定期收取其所辖范围内的被管节点的监控信息,并将这些信息写入数据库;报警流程为管理节点的AlarmAgent模块负责所有子管理节点和被管节点的报警业务,每个被管节点定期监控自身的性能和健康信息,若发现性能超标或节点不健康则主动向管理节点汇报,管理节点的AlarmAgent模块收到报警信息后,将立刻启动报警机制,此外,AlarmAgent执行完报警处理事务后,还要将报警信息写入数据库中,便于用户查看报警历史信息并进行数据分析。
5.如权利要求1所述的方法,其特征在于,所述的配置文件内容包括节点名、节点IP和节点ID,Web server启动后,管理节点将自动读取配置文件信息并将此信息写入数据库的反映节点信息的NodeInfo表和反映节点角色及节点隶属关系的NMInfo表,一个负责记录整个集群拓扑结构的类将读取这两个表中的信息并构建系统拓扑结构对象topology,并将此对象加载到内存中,系统依据此对象所存储的集群拓扑结构信息进行任务的转发。
6.如权利要求1所述的方法,其特征在于,所述的多线程并发机制是,任务转发时,上层节点为其辖域内的每一个子节点开辟一个或一组独立的线程进行单任务或多任务的转发和结果信息的获取。
全文摘要
本发明公开了一种具有弹性体系架构的集群管理监控系统的构建方法,该方法中,系统体系架构的构建采用分层设计,根据集群规模和节点角色划分层数,实现层级托管,对于小规模集群系统采用两层体系架构,实现了任务的零转发,提高了通信效率,大规模集群系统则采用三层体系架构,解决了管理节点的单点瓶颈问题,提高了通信效率和集群规模的可扩展性;体系架构的改变通过一个配置文件即可快速实现;任务按业务类型分类,不同业务类型对应不同业务流程;任务的转发和执行采用多线程并发机制,大大提高了批量任务执行时管理监控系统的执行效率;采用B/S结构,客户端通过浏览器即可方便地对集群系统进行远程管理监控。
文档编号G06F15/16GK1805379SQ20061004160
公开日2006年7月19日 申请日期2006年1月5日 优先权日2006年1月5日
发明者薛正华, 李景山, 董小社, 伍卫国, 胡雷钧, 李万城, 王守昊 申请人:西安交通大学, 浪潮电子信息产业股份有限公司