用于多个集群的作业调度管理系统及方法 【技术领域】
本发明涉及计算机技术高性能领域,特别涉及一种作业调度管理系统及方法。
背景技术
随着计算机的发展,在计算机中出现了集群作业调度管理系统。集群作业调度管理系统是建立在集群系统中、用于统一管理和调度集群系统中作业与资源的系统。该系统根据用户的需求,充分利用集群系统中的各种软硬件资源和CPU时间,合理调度作业,统一管理和调度集群资源,保证用户提交的作业公平合理地共享集群资源,提高整个集群系统的利用率和吞吐率,从而提高用户的工作效率和增加企业的工作管理能力。
现有的调度系统多数仅提供了本地命令行接口或者本地的图形接口,无法满足用户的远程调度管理需求,并且,在多个调度集群、多种调度系统软件并存的情况下,没有一个统一的远程监控管理方法。除此之外,现有的商业调度系统仅仅提供针对自身系统的portal(门户)界面,没有一个调度系统监控和管理的标准接口。针对此问题,开源的Globus项目做了一些改进,但其实现过于复杂、效率太低。因此,需要一种系统和方法解决上述问题。
【发明内容】
针对相关技术中存在的一个或多个问题,本发明的目的在于提供一种用于多个集群的作业调度管理系统及方法,以解决上述问题中的至少之一。
为实现上述目的,本发明一方面提出一种用于多个集群的作业调度管理系统,包括表示层用户界面、作业管理中间件、调度策略中间件、一个或多个调度系统和数据库。表示层门户界面用于接收用户请求并且将用户请求提供给作业管理中间件,以及将作业管理中间件提供的响应结果呈现给用户。作业管理中间件用于接收来自表示层门户界面的用户请求,将用户请求解释为操作请求并将操作请求提供给调度策略中间件,以及将调度策略中间件反馈的响应结果返回给表示层门户界面。调度策略中间件用于根据来自作业管理中间件的操作请求进行策略配置,将配置信息应用至一个或多个调度系统以进行作业调度,以及将一个或多个调度系统反馈的响应结果返回给作业管理中间件。一个或多个调度系统用于根据调度策略中间件配置的策略信息进行作业调度并将响应结果反馈给调度策略中间件。数据库用于保存用于作业调度的各种信息。
优选地,表示层门户界面包括交互模块和处理模块。其中,交互模块用于为用户呈现监控管理界面并接收用户请求。处理模块用于根据用户请求进行监控管理界面的管理并将用户请求发送至作业管理中间件。
优选地,作业管理中间件包括请求接收模块、解释和描述模块、调用模块以及结果反馈模块。其中,请求接收模块用于接收来自表示层门户界面的用户请求。解释和描述模块用于将用户请求解释为对应的集群类型的操作请求。调用模块用于根据解释后的操作请求调用相关命令并将相关命令发送至一个或多个调度系统。结果反馈模块用于将一个或多个调度系统反馈的响应结果返回给表示层门户界面。
优选地,调度策略中间件包括策略管理模块和调度策略引擎。其中,策略管理模块用于从作业管理中间件获取操作请求并将操作请求传输至调度策略引擎,以及将调度策略引擎得到的配置信息应用至一个或多个调度系统。调度策略引擎用于根据操作请求调用配置命令并且得到配置信息。
优选地,表示层门户界面与作业管理中间件之间的通信实现方式包括以下至少之一:网络通信引擎ICE、公用对象访问程序体系CORBA和简单对象访问协议SOAP。
本发明另一方面还提供了一种用于多个集群的作业调度管理方法,包括以下步骤:表示层门户界面接收用户请求并且将用户请求提供给作业管理中间件。作业管理中间件接收来自表示层门户界面的用户请求,将用户请求解释为操作请求并将操作请求提供给调度策略中间件。调度策略中间件根据来自作业管理中间件的操作请求进行策略配置,将配置信息应用至一个或多个调度系统以进行作业调度。一个或多个调度系统根据调度策略中间件配置的策略信息进行作业调度并将响应结果反馈给表示层门户界面。
借助本发明上述至少一个技术方案,通过添加中间件实现了多个集群的统一远程监控管理。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明的用于多个集群的作业调度管理系统的结构图;
图2为根据本发明的用于多个集群的作业调度管理方法的流程图;以及
图3为根据本发明的一个用于多个集群的作业调度管理系统的例子的结构图。
【具体实施方式】
考虑到相关技术中存在的问题,本发明提供一种用于多个集群的作业调度管理系统及方法。下面详细描述本发明的实施例,所述实施例的示例在附图中示出。其中自始至终相同或类似的标号表示相同或类似地元件或具有相同或类似功能的元件。应理解,下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
图1为根据本发明的用于多个集群的作业调度管理系统的结构图。如图1所示,该系统包括表示层用户界面100、作业管理中间件200、调度策略中间件300、一个或多个调度系统400和数据库500。其中,表示层门户界面100用于接收用户请求并且将用户请求提供给作业管理中间件200,以及将作业管理中间件200提供的响应结果呈现给用户。作业管理中间件200用于接收来自表示层门户界面100的用户请求,将用户请求解释为操作请求并将操作请求提供给调度策略中间件300,以及将调度策略中间件300反馈的响应结果返回给表示层门户界面100。调度策略中间件300用于根据来自作业管理中间件200的操作请求进行策略配置,将配置信息应用至一个或多个调度系统400以进行作业调度,以及将一个或多个调度系统400反馈的响应结果返回给作业管理中间件200。一个或多个调度系统400用于根据调度策略中间件300配置的策略信息进行作业调度并将响应结果反馈给调度策略中间件300。数据库500用于保存用于作业调度的各种信息。
表示层门户界面100包括交互模块110和处理模块120。其中,交互模块110用于为用户呈现监控管理界面并接收用户请求。处理模块120用于根据交互模块110接收的用户请求进行监控管理界面的管理并将用户请求发送至作业管理中间件200。
作业管理中间件200包括请求接收模块210、解释和描述模块220、调用模块230以及结果反馈模块240。其中,请求接收模块210用于接收来自表示层门户界面100的用户请求。解释和描述模块220用于将用户请求解释为对应的集群类型的操作请求。调用模块230用于根据解释后的操作请求调用相关命令并将相关命令发送至一个或多个调度系统400。结果反馈模块240用于将一个或多个调度系统400反馈的响应结果返回给表示层门户界面100。
表示层门户界面100与作业管理中间件200之间的通信实现可以采用网络通信引擎ICE,也可以采用其他方式,如公用对象请求代理程序体系CORBA、简单对象访问协议SOAP等。
调度策略中间件300包括策略管理模块310和调度策略引擎320。其中,策略管理模块310用于从作业管理中间件200获取操作请求并将其传输至调度策略引擎320,以及将调度策略引擎320得到的配置信息应用至一个或多个调度系统400。调度策略引擎320用于根据操作请求调用配置命令并且得到配置信息。
一个或多个调度系统400可以为PBS、SGE、LSF等中的一种或几种。
下面结合附图2具体描述本发明的用于多个集群的作业调度管理方法,该方法包括以下步骤:
步骤S210,表示层门户界面100接收用户请求并且将用户请求提供给作业管理中间件200。
步骤S220,作业管理中间件200接收来自表示层门户界面100的用户请求,将用户请求解释为操作请求并将操作请求提供给调度策略中间件300。
步骤S230,调度策略中间件根据来自作业管理中间件200的操作请求进行策略配置,将配置信息应用至一个或多个调度系统400以进行作业调度。
步骤S240,一个或多个调度系统400根据调度策略中间件300配置的策略信息进行作业调度并将响应结果反馈给表示层门户界面100。
实施例1
图3为一个用于多个集群的作业调度管理系统的例子。如图3所示,该系统包括表示层用户界面100、作业管理中间件200、调度策略中间件300、调度系统400和数据库500。其中,表示层用户界面100、作业管理中间件200和调度系统400按照实际需求,划分成各个具体的功能实现模块。
表示层用户界面100按照功能分为作业查询模块、作业控制模块、节点监控模块、作业提交模块、记账管理模块、用户管理模块、队列管理模块、集群管理模块、策略配置模块和应用模板管理模块。其中,作业查询模块用于根据作业属性设定查询条件,并获取符合查询条件的作业信息,其中,作业属性包括作业名、用户名、提交时间等。作业控制模块用于对作业执行各种操作,如删除作业、保留作业、释放作业、挂起作业、恢复作业等。节点监控模块用于查询各个集群包含的节点信息,并向某个集群添加或者删除节点,其中,节点信息包括节点名称、节点状态、核数和运行作业等。作业提交模块用于设定待提交的作业的参数,并提交作业,其中,作业的参数包括目标集群、作业名、目标队列、资源请求和运行时间限制等。记账管理模块用于从数据库500中获取记账数据,生成统计报表。用户管理模块用于完成用户的增加、删除、修改、查询等操作。队列管理模块用于完成队列的增加、删除、修改、查询等操作。集群管理模块用于完成集群的增加、删除、修改、查询等操作。策略配置模块用于配置调度策略,如是否启用抢占、是否启用回填、是否启用预留等。应用模板管理模块用于管理各种应用的作业模板。
作业管理中间件200按照功能分为作业提交模块、作业监控模块、作业调度模块和对象管理模块。其中,作业提交模块用于设定待提交的作业的参数,并提交作业。作业监控模块用于对作业执行各种操作,如删除作业等。作业调度模块用于调用各种操作命令。对象管理模块,用于完成各种对象的增加、删除等操作,其中,各种对象包括用户、队列、集群等。
调度策略中间件300包括策略管理模块和调度策略引擎。其中,策略管理模块用于从作业管理中间件200获取操作请求并将其传输至调度策略引擎,以及将调度策略引擎得到的配置信息应用至一个或多个调度系统400。调度策略引擎用于根据操作请求调用配置命令并且得到配置信息。
调度系统400包括集群和队列管理模块、作业提交和控制模块和监控命令模块。对象管理模块用于完成集群和队列的增加、删除等操作。作业提交和控制模块,用于完成待提交的作业车的参数设置和提交,并在提交后进行控制。监控命令模块用于监控各种操作命令的执行状态。
应理解,上述实施例仅是示意性的实施例,并不限制本发明仅能够通过上述实施例实现。本领域的普通技术人员还能够根据上述方案提出其他修改或变化,例如改变接口通信实现方式或具体的功能实现模块等,这些修改或变化均应包含在本发明的包含范围之内。
本发明通过添加中间件实现了多个集群的统一远程监控管理。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。