专利名称:一种面向网格的机群作业管理系统及其实现方法
技术领域:
本发明涉及网格及机群系统技术领域,特别是指一种面向网格的机群作业管理系统及其实现方法。
背景技术:
在一个大型企业中,各个部门都有相对独立的机群系统,现有的单个独立机群系统的作业与资源管理系统一般由四部分组成,分别为用户命令,包括图形用户界面(GUI)或命令行方式,用户服务器(Server)、作业调度器(Sched)和作业执行器(Execd)。
图1所示为现有的单个机群系统的作业与资源管理系统。提交节点101接收用户命令,该用户命令可分为普通用户、操作员和管理员三级,均可以通过命令行或图形用户界面方式运行,是用户和系统管理员进行作业提交、作业监控和系统管理配置的接口。服务节点中的用户服务器102负责管理机群中的作业和资源信息、接收来自客户端的各种请求,维护着机群中的节点、队列、作业和用户权限信息的表。调度节点中的作业调度器103通过从Server收集机群中所有节点上的作业和资源信息,从Execd获取负载状态,根据调度策略,决定在哪些执行节点上运行。执行节点中的作业执行器104主要实现三个功能一是根据Server的指令,运行作业,建立资源限制,监测作业占用的资源,通知用户服务器作业运行结束等;二是资源管理功能,响应Sched的资源监测请求,如作业的运行状态和可用内存等;三是和运行作业的其他节点上的Execd通信,确保并行作业的正常加载和结束。
现有的机群作业管理系统虽然能够实现对本机群内的资源进行管理和调度,但随着社会的发展,人们求解问题领域的不断拓展,所遇到的问题越来越复杂,在求解这些新问题的过程中,局部的计算资源已无法满足人们的需求。而现有的机群作业管理系统无法实现多个机群之间的作业管理和资源共享,即无法实现对网格资源的管理和作业调度,不能联合网格中的多种资源完成作业管理,不能适应目前的网格系统。
现有网格中与作业管理和提交相关的部分,主要是信息服务中心(InfoService)和资源管理者(Resource Manager)。网格中的信息服务中心主要完成对网格计算环境中信息的发现、注册、查询、修改等工作,提供对网格计算环境的一个真实、实时的动态反映。其处理的信息主要是网格计算环境中的各种资源,如数据资源和计算资源等,服务和其它主体(entity)的描述。网格中的每个资源都由相应唯一的网格资源管理者进行管理,资源管理者主要实现对所管理资源的使用和状态监控。
网格用户提交作业之前首先需要向信息服务中心提交作业需要的资源请求,信息服务器中心维护一个资源信息列表,当收到用户请求后,查找资源信息列表,返回所有可用的资源列表。根据这些可用的资源列表,由用户选择所使用的资源,并将作业和一份详细的资源需求表提交给选定的资源管理者执行,资源管理者在所管理的资源上运行该用户作业。资源管理者随时监控网格的资源使用状况,并时时将最新的资源使用情况通知给信息服务中心,信息服务中心及时更新资源信息列表,随时响应网格中的作业提出的资源请求。
上述网格中的作业管理系统和提交方法存在以下缺陷资源的使用和调度对用户并不透明,用户必须要事先咨询信息服务中心,以获取满足作业需求的所有资源信息并自己做出选择,即决定将作业提交给哪个资源管理者。而信息服务中心维护的信息资源列表总是和目前的资源使用状况有一定的时间滞后和误差。当这种误差较大时,可能会导致作业运行不成功。此外,这种方式下,用户需要等待资源查询结果,并需要参与资源分配过程,降低了用户的工作效率。
如何使现有的机群作业管理系统能够支持网格系统,且在支持网格的作业管理过程中不需要用户参与任何资源调度以及管理工作,已成为目前的研究内容之一。
发明内容
有鉴于此,本发明的目的在于提供一种面向网格的机群作业管理系统及其实现方法,使用户不需要参与任何资源调度和管理工作,只需要在网格上提交作业即可。
为达到上述目的,本发明的技术方案是这样实现的一种面向网格的机群作业管理系统,至少包括由独立的机群作业管理系统构成的一个以上的网格,该网格内包括用户服务器Serverd和作业执行器,该系统还包括仲裁器Arbitor、调度器Negotiator和存储需要联合调度作业队列的存储器,其中,所述仲裁器,接收来自用户服务器的作业请求信息,查询满足接收到的作业请求所需资源的节点,并将该作业请求信息发送给该网格节点内的用户服务器,或者,将不能由单个网格资源完成的作业请求信息放入需要联合调度作业队列的存储器中;或者,将调度器计算的资源调度结果返回给执行该作业节点所属网格内的用户服务器;或者,控制作业队列较长的用户服务器通过路由队列将处于排队状态的的作业传送给处于空闲状态网格节点的用户服务器;所述调度器,从仲裁器中获取待作业信息,从网格内的作业执行器获取当前资源的使用状况信息,按照预先设定的算法进行全局资源调度,并将调度结果返回给仲裁器。
一种应用如上所述系统的实现方法,其特征在于,该方法包括以下步骤a、仲裁器接收到用户的作业请求信息后,判断全局资源是否能够满足该接收到的作业所需的资源,如果是,则执行步骤b,否则向用户返回系统资源不足的错误信息并结束本流程;b、判断当前全局资源中是否有某个网格内的资源能够满足步骤a所述作业所需的资源,如果是,则将步骤a所述作业请求发送给能够满足该作业的节点所在网格内的用户服务器,并结束本流程;否则将步骤a所述作业请求放入需要联合调度作业的队列中等待调度,并结束本流程。
较佳地,步骤b所述判断是根据仲裁器从各个网格节点的用户服务器获取的总体资源信息来完成的。
较佳地,该方法进一步包括仲裁器将来自调度器的调度结果,转发给能够满足作业所需资源节点所在网格内的用户服务器,该用户服务器接收到来自Arbitor的作业请求信息后,更改本地资源当前的使用状况信息,并通知该能够满足作业所需资源的节点启动并运行。
较佳地,所述调度器进行资源调度的方法是调度器从仲裁器获取待作业信息后,向所有网格调度节点内的作业执行器Schedd发出锁定资源命令,并从各个Schedd获取当前资源的使用状态信息,根据预先设定的算法进行资源调度;调度完成后,释放资源锁,同时通知各个Schedd根据调度结果更改当前资源的使用状况信息,然后向仲裁器返回调度结果。
较佳地,如果仲裁器接收到的用户作业请求信息来自于网格节点内,则该方法进一步包括步骤a执行之前,网格内的用户服务器接收到用户的作业请求信息后,首先判断本地资源是否能够满足该作业所需的资源,如果是,则将该作业请求信息放入本地维护的作业列队中,否则,再执行步骤a;步骤b所述将步骤a所述作业请求发送给能够满足作业所需资源的节点所在网格内的用户服务器后,仲裁器将执行该作业的节点所在网格内的用户服务器的地址告知发起该作业请求信息的用户服务器。
较佳地,该方法进一步包括仲裁器控制作业队列较长的Serverd通过路由队列将处于排队状态的的作业传送给处于空闲状态网格节点的用户服务器。
应用本发明所提供的面向网格的机群作业管理系统,由仲裁器(Arbitor)维护需要联合调度的作业信息以及从各个网格节点的Serverd取得的总体资源信息,由调度器(Negotiator)负责大型作业的联合调度的,从而实现了不需要用户参与任何资源调度以及管理工作,只需要在网格上提交作业的目的。应用本发明,对于用户而言,其使用方式与在机群、局域网中使用作业管理系统的方式完全一致。本发明充分利用了网格中的各种资源,大大提高了资源的利用率,而且还能完成单个计算资源无法实现的作业。
图1所示为现有的单个机群系统的作业与资源管理系统;图2所示为应用本发明的面向网格的机群作业管理系统的总体结构框架示意图;图3所示为应用本发明的从某个网格节点内提交作业给仲裁器的处理流程图;图4所示为应用本发明的非网格节点内客户端直接提交作业给仲裁器的处理流程图。
具体实施例方式
为使本发明的技术方案更加清楚,下面结合附图再对本发明做进一步地详细说明。
本发明的思路是由仲裁器(Arbitor)维护需要联合调度的作业信息以及从各个网格节点的Serverd取得的总体资源信息,由调度器(Negotiator)负责大型作业的联合调度的,从而使用户不需要参与任何资源调度以及管理工作,只需要在网格上提交作业即可,其使用方式与在机群、局域网中使用作业管理系统的方式完全一致。应用本发明,不仅能够充分利用网格中的各种计算资源,大大提高资源的利用率,而且还能完成单个计算资源无法实现的作业。
图2所示为应用本发明的面向网格的机群作业管理系统的总体结构框架示意图。Arbitor 202用于维护需要联合调度的作业信息以及从各个网格节点的Serverd获取的总体资源信息。仲裁器接收来自用户服务器的作业请求信息后,根据该作业请求信息查询能够满足该作业所需资源的网格节点,并将该作业请求信息传送给能够满足该作业所需资源的网格节点所在网格内的Serverd。如果系统中所有单个网格节点的资源都不能满足该作业请求所需的资源,则Arbitor将该作业请求放入存储需要联合调度作业队列的存储器201中,即所有需要联合调度的作业都被放入Arbitor维护的需要联合调度作业队列中。另外,如果某个网格节点中的作业队列比较长,而某些网格节点处于空闲状态,则Arbitor控制作业队列较长的Serverd通过路由队列将处于排队状态的的作业传送给空闲网格节点的Serverd,从而在网格节点间实现负载平衡。
如果是某个网格节点内的Serverd接收到来自本地用户的作业请求信息时,则在其判断本地网格204内的所有节点资源都不能满足作业所需的资源后,才将该作业请求信息发送给仲裁器。
Negotiator 203负责大型作业的联合调度。Negotiator从Arbitor获取待作业信息后,向各个网格节点的Schedd发出锁定资源命令,从各个Schedd获取当前资源使用状况的信息,根据预约算法进行调度,即综合分配各个网格节点的空闲资源。调度完成后,释放资源锁,同时通知各个Schedd自身当前更改资源使用状况,并将调度结果返回Arbitor,然后由Arbitor将调度结果传给能够满足作业所需资源节点所在网格内的Serverd,该Serverd更改自身当前资源使用状况信息,并负责通知该能够满足作业所需资源节点启动并运行该作业。由于Execd能够跨越网格节点的物理限制,与作业所涉及到的各个网格节点中执行节点上的Execd共同建立并行作业执行环境,共同加载并行作业,而经过联合调度的作业由于涉及到网格中多个节点的执行节点,因此,网格中的所有执行节点都需要Execd的支持。
当然,上述面向网格的机群作业系统中,也可以包括一个或一个以上的客户端,当客户端有作业请求时,直接将作业请求信息发送给仲裁器。
图3所示为应用本发明的从某个网格节点内提交作业给仲裁器的处理流程图。
步骤301,某个网格节点的Serverd从本地网格内接收到来自用户的作业请求信息;步骤302,该网格节点内的Serverd判断本地资源是否能够满足该作业请求,如果是,则执行步骤303,否则执行步骤304;步骤303,将该作业请求放入本地Serverd维护的作业队列中,并结束本流程;步骤304,将该作业请求信息转发给Arbitor;步骤305,Arbitor根据接收到的作业请求信息,判断系统全局资源是否能够满足该作业所需的资源,如果是,则执行步骤307,否则执行步骤306;步骤306,Arbitor通过Serverd向用户返回系统资源不足的错误信息,并结束本流程;步骤307,Arbitor根据从各个网格节点的Serverd获取的总体资源信息判断全局系统中是否有某个网格节点资源能够满足该作业所需的资源,如果是,则执行步骤309,否则执行步骤308;步骤308,将该作业请求放入Arbitor维护的需要联合调度的作业队列中等待调度,并结束本流程;步骤309,将该作业请求转发给能够满足作业所需资源节点所在网格内的Serverd,并将执行该作业的用户服务器的地址告知发起该作业请求信息的用户服务器,然后结束本流程。
图4所示为应用本发明的非网格节点内的客户端直接提交作业给仲裁器的处理流程图。
步骤401,Arbitor接收到来自非网格节点内客户端的作业请求信息;步骤402,Arbitor根据接收到的作业请求信息,判断系统全局资源是否能够满足该作业所需的资源,如果是,则执行步骤404,否则执行步骤403;步骤403,Arbitor向用户返回系统资源不足的错误信息,并结束本流程;步骤404,Arbitor根据从各个网格节点的Serverd获取的总体资源信息判断全局系统中是否有某个网格节点资源能够满足该作业所需的资源,如果是,则执行步骤406,否则执行步骤405;步骤405,将该作业请求放入Arbitor维护的需要联合调度的作业队列中等待调度,并结束本流程;步骤406,将该作业请求转发给能够满足作业所需资源节点所在网格内的Serverd,然后结束本流程。
上述资源调度的方法是Negotiator从Arbitor获取待作业信息后,向所有网格调度节点内的Schedd发出锁定资源命令,并从各个Schedd获取当前资源的使用状态,根据预先设定的算法进行资源调度;调度完成后,释放资源锁,同时通知各个Schedd根据调度结果更改当前资源的使用状况信息,然后向Arbitor返回调度结果。
当Arbitor接收到来自Negotiator的调度结果信息后,将该调度结果传给能够满足作业所需资源节点所在网格内的用户服务器,该用户服务器接收到来自Arbitor的作业请求信息后,更改本地资源当前的使用状况信息,并通知该能够满足作业所需资源的节点启动并运行。
另外,如果某个网格节点中的作业队列比较长,而某些网格节点处于空闲状态,则Arbitor控制作业队列较长的Serverd通过路由队列将处于排队状态的的作业传送给空闲的网格节点的Serverd,从而在网格节点间实现负载平衡。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种面向网格的机群作业管理系统,至少包括由独立的机群作业管理系统构成的一个以上的网格,该网格内包括用户服务器Serverd和作业执行器,其特征在于,该系统还包括仲裁器Arbitor、调度器Negotiator和存储需要联合调度作业队列的存储器,其中,所述仲裁器,接收来自用户服务器的作业请求信息,查询满足接收到的作业请求所需资源的节点,并将该作业请求信息发送给该网格节点内的用户服务器,或者,将不能由单个网格资源完成的作业请求信息放入需要联合调度作业队列的存储器中;或者,将调度器计算的资源调度结果返回给执行该作业节点所属网格内的用户服务器;或者,控制作业队列较长的用户服务器通过路由队列将处于排队状态的的作业传送给处于空闲状态网格节点的用户服务器;所述调度器,从仲裁器中获取待作业信息,从网格内的作业执行器获取当前资源的使用状况信息,按照预先设定的算法进行全局资源调度,并将调度结果返回给仲裁器。
2.一种应用如权利要求1所述系统的实现方法,其特征在于,该方法包括以下步骤a、仲裁器接收到用户的作业请求信息后,判断全局资源是否能够满足该作业所需的资源,如果是,则执行步骤b,否则向用户返回系统资源不足的错误信息并结束本流程;b、判断当前全局资源中是否有某个网格内的资源能够满足步骤a所述作业所需的资源,如果是,则将步骤a所述作业请求发送给能够满足该作业的节点所在网格内的用户服务器,并结束本流程;否则将步骤a所述作业请求放入需要联合调度作业的队列中等待调度,并结束本流程。
3.根据权利要求2所述的方法,其特征在于,步骤b所述判断是根据仲裁器从各个网格节点的用户服务器获取的总体资源信息来完成的。
4.根据权利要求2所述的方法,其特征在于,该方法进一步包括仲裁器将来自调度器的调度结果,转发给能够满足作业所需资源节点所在网格内的用户服务器,该用户服务器接收到来自Arbitor的作业请求信息后,更改本地资源当前的使用状况信息,并通知该能够满足作业所需资源的节点启动并运行。
5.根据权利要求4所述的方法,其特征在于,所述调度器进行资源调度的方法是调度器从仲裁器获取待作业信息后,向所有网格调度节点内的作业执行器Schedd发出锁定资源命令,并从各个Schedd获取当前资源的使用状态信息,根据预先设定的算法进行资源调度;调度完成后,释放资源锁,同时通知各个Schedd根据调度结果更改当前资源的使用状况信息,然后向仲裁器返回调度结果。
6.根据权利要求2所述的方法,其特征在于,如果仲裁器接收到的用户作业请求信息来自于网格节点内,则该方法进一步包括步骤a执行之前,网格内的用户服务器接收到用户的作业请求信息后,首先判断本地资源是否能够满足该作业所需的资源,如果是,则将该作业请求信息放入本地维护的作业列队中,否则,再执行步骤a;步骤b所述将步骤a所述作业请求发送给能够满足作业所需资源的节点所在网格内的用户服务器后,仲裁器将执行该作业的节点所在网格内的用户服务器的地址告知发起该作业请求信息的用户服务器。
7.根据权利要求2或6所述的方法,其特征在于,该方法进一步包括仲裁器控制作业队列较长的Serverd通过路由队列将处于排队状态的的作业传送给处于空闲状态网格节点的用户服务器。
全文摘要
本发明提供了一种面向网格的机群作业管理系统及其实现方法,由仲裁器(Arbitor)维护需要联合调度的作业信息以及从各个网格节点的Serverd取得的总体资源信息,由调度器(Negotiator)负责大型作业的联合调度的,从而实现了不需要用户参与任何资源调度以及管理工作,只需要在网格上提交作业的目的。应用本发明,对于用户而言,其使用方式与在机群、局域网中使用作业管理系统的方式完全一致。本发明充分利用了网格中的各种资源,大大提高了资源的利用率,而且还能完成单个计算资源无法实现的作业。
文档编号H04L29/02GK1671135SQ200410029478
公开日2005年9月21日 申请日期2004年3月19日 优先权日2004年3月19日
发明者赵玉萍, 柳书广, 肖利民 申请人:联想(北京)有限公司