用于复杂生产管理系统中的群集资源控制方法与流程

文档序号:13215974阅读:216来源:国知局
技术领域本发明涉及计算机分布式软件系统领域,特别涉及制造业领域生产过程管理系统中的用于复杂生产管理系统中的群集资源控制方法。

背景技术:
在计算机分布式软件系统中,服务器的负载平衡是后台架构普遍关注的问题,如何对企业级软件进行负载平衡、对故障服务进行有效处理具有十分重要的意义。目前常用的硬件负载平衡器有F5BIG-IP、CitrixNetScaler、Radware、CiscoCSS、Foundry等产品,但这些产品价格昂贵,高达几十万甚至上百万人民币,对中小企业信息化改造的成本要求过高。当一些负载比较重的任务(如:需要进行计算密集的查询、数据库访问、长响应数据流、业务处理、数据采集、事件侦测与处理、报表处理、客户端事件订阅与消息发布等任务)和负载比较轻的任务同时存在的情况,应避免出现有的节点已经超负荷运行有很长的请求队列还不断收到新请求,而有的节点基本是闲置这种现象的发生。有必要采用某种机制,使得群集资源协调器能够实时了解各个服务节点的负载状态以及任务处理情况,并根据负载状况迅速做出调整。

技术实现要素:
针对计算机分布式软件系统中处理节点负载不平衡及故障节点恢复问题,本发明提出了用于复杂生产管理系统中的群集资源控制方法。本发明为实现上述目的所采用的技术方案是:一种用于复杂生产管理系统中的群集资源控制方法,包括以下步骤:针对复杂生产过程管理系统构建由若干服务节点和一个群集资源协调器构成的群集系统;将各服务节点承担的任务按照任务复杂程度、处理时间长短因素分别进行分类、分级处理;采用基于面向请求联合任务处理的自适应负载平衡算法RUTP-n,实现客户端与群集系统之间、群集系统中各服务节点之间的负载平衡系统交互。所述群集系统可动态扩展,当有新的服务节点向群集系统注册时,群集资源协调器添加该服务节点的信息到注册信息表中;当群集资源协调器监测到有服务节点关闭时,表示有服务节点向群集系统注销,群集资源协调器在注册信息表中删除该服务节点的信息。所述每个服务节点只承担一种任务。所述群集资源协调器用于同时部署多个服务节点的任务。所述群集资源协调器出现故障时,其他服务节点选举新的群集资源协调器组建新的群集系统,包括以下步骤:当某个服务节点与群集资源协调器出现通信故障时,根据已经从群集资源协调器获取的节点注册信息热拷贝,该服务节点与其他服务节点之间进行心跳通信,以确定群集资源协调器是否出现故障;如果该服务节点不能与其他服务节点进行心跳通信,则判断该服务节点出现故障,该服务节点退出,等待群集资源协调器对其进行重启处理;如果该服务节点能够与其他服务节点进行心跳通信,则判定群集资源协调器出现故障,服务节点之间再次通信选举出负载最低的服务节点作为新的群集资源协调器,新的群集资源协调器启动服务状态监控进程组建新的群集系统。所述服务状态监控进程是按照设定的周期定时向各个服务节点发送与接收信息,实时监控各个服务节点状态的进程。所述群集资源协调器对故障的服务节点进行重启处理,具体为:群集资源协通过WMI进行远程进程重启实现对故障的服务节点的恢复,对于重启失败的服务节点,群集资源协调器将该服务节点承担的任务分配给其他服务节点,并通知其他服务节点更新任务。所述采用基于面向请求联合任务处理的自适应负载平衡算法RUTP-n,实现客户端与群集系统之间、群集系统中各服务节点之间的负载平衡系统交互,具体为:计算每个服务节点的分类负载信息;判断服务节点是否全部超过阈值;如果是,则将客户端发送的任务请求加入等待队列,在排队到达时,判断是否排队超时,如果排队超时则拒绝客户端发送的该任务请求;如果排队未超时则将该任务请求分配给分类负载信息最低的服务节点并进行任务处理;如果不是,则将客户端发送的任务请求分配给分类负载信息最低的服务节点并进行任务处理。所述分类负载信息通过以下公式计算:Lk=Σi=T0T0+n*T(lki+lk(i+1))*(t(i+1)-ti)/2]]>其中,T0是当前时刻,T表示计算机CPU时间片,n为设定的负载粒度,lki表示ti时刻服务节点的k类任务负载值,并通过以下公式计算n个时间片的负载离散值对(ti,lki):lk=φ*(α*C+β*M+χ*N+δ*J+ε*P)其中,为轮询因子,φ∈[0,1],C表示服务器CPU利用率,M表示服务器内存利用率,N表示服务器网络带宽占用率,J表示客户端任务请求率以及服务器任务处理率,P表示根据历史数据、当前处理任务以及生产工艺路线决定的预判负载值,α、β、χ、δ、ε为各负载因素的权重系数,α+β+χ+δ+ε=1。本发明具有以下优点:1.根据企业的规模以及业务量的大小可动态增加群集资源协调器或者服务节点的数量,降低了制造企业信息化成本。2.对任务按照类别信息进行分类能够提高系统处理信息的速度。3.采用基于面向请求联合任务处理的自适应负载平衡算法RUTP-n(RequestUniteTaskProcessing,n为负载粒度,简称RUTP-n)为分类负载信息的计算方法,能够使群集资源协调器发挥作用发现合适的服务节点。4.能够依据群集节点的资源情况进行动态分配和调整、及时处理故障节点,有效提高了服务的整体吞吐率、效率与健壮性;5.可根据需求动态调整群集服务器的节点数,提高服务器的利用率;6.降低企业在信息化改造过程中的成本;7.考虑每一个结点的实时负载和响应能力,根据任务请求的服务类型、活跃用户数、当前网络带宽的情况、以及当前服务器资源(CPU利用率、剩余物理内存大小、数据库连接池可用连接数)利用的情况、历史数据信息、当前处理任务情况等不断调整任务分布的比例,来避免有些结点超载时依然收到大量请求,从而提高群集的整体吞吐率与效率。附图说明图1为群集资源协调控制系统框架图;图2为客户端与群集系统交互流程图;图3为节点注册、注销流程图;图4为故障节点重启、转移流程图;图5为新群集系统组建流程图。具体实施方式下面结合附图及实施例对本发明做进一步的详细说明。本发明一种用于复杂生产管理系统中的群集资源控制方法,包括以下步骤:针对制造行业复杂生产过程管理系统构建可动态扩展的群集结构,可动态扩展的群集结构包括若干服务节点和一个群集资源协调器。服务节点或者群集资源协调器为普通计算机。每个服务节点只承担一种任务,群集资源协调器可以同时部署多个服务节点的任务。根据制造行业生产过程的特殊性将各服务节点承担的任务按照业务处理、数据采集、事件侦测与处理、报表处理、客户端事件订阅与消息发布的任务类别信息进行分类;再按照任务类别信息以及任务复杂程度、处理时间长短分级处理实现客户端与群集系统之间、群集系统各服务节点之间的负载平衡系统交互。分级处理为客户端在发送任务请求给群集资源协调器时,明确包含任务类别信息,并结合考虑各服务节点的分类负载信息与承担的任务复杂程度、处理时间长短对各影响因素加权、轮询计算出最合适的服务节点。分类负载信息的计算为基于面向请求联合任务处理的自适应负载平衡算法RUTP-n(RequestUniteTaskProcessing,n为负载粒度,简称RUTP-n),包括以下步骤:计算每个服务节点的分类负载信息,具体计算方法是在现有技术考虑计算机CPU利用率、内存利用率、网络带宽等影响因素的基础上,增加服务节点所承担的任务类别信息,根据任务类别、任务复杂程度、并发处理能力加权计算,计算出服务节点的分类负载信息后,对客户端的请求、服务节点间的任务转移采用低于负载阈值加轮询算法保证整个系统的平衡。分类负载信息L的计算公式为:Lk=Σi=T0T0+n*T(lki+lk(i+1))*(t(i+1)-ti)/2]]>其中,T0是当前时刻,T表示计算机CPU时间片,n为设定的负载粒度,lki表示ti时刻服务节点的k类任务负载值,并通过以下公式计算n个时间片的负载离散值对(ti,lki):lk=φ*(α*C+β*M+χ*N+δ*J+ε*P)其中,为轮询因子,φ∈[0,1],C表示服务器CPU利用率,M表示服务器内存利用率,N表示服务器网络带宽占用率,J表示客户端任务请求率以及服务器任务处理率,P表示根据历史数据、当前处理任务以及生产工艺路线决定的预判负载值,,α、β、χ、δ、ε为各负载因素的权重系数,α+β+χ+δ+ε=1。图1示出了群集资源协调控制系统框架图,软件由服务器群集系统和客户端组成,客户端通过网络和群集系统通信。群集系统对客户端是透明的,客户端将标识有任务类别信息的任务请求发送到群集资源协调器,群集资源协调器通过动态负载平衡算法RUTP-n将任务分配给最适合的节点处理,任务被处理完之后将应答信息返回给客户端。系统采用面向服务的架构(SOA—serviceorientedarchitecture),服务端为多节点构成的服务器群集系统,在群集内,群集资源协调器上运行服务状态监控进程,其他节点上运行心跳进程;群集资源协调器负责监视和收集群集内各个节点的负载信息及状态信息,每个节点负责定时向群集资源协调器报告自身负载及状态信息,同时通过心跳协议从群集资源协调器获取整个群集信息的热拷贝;当群集资源协调器检测到某个节点出现故障时,首先对故障节点进行重启动,对于不能重启的故障节点,群集资源协调器将故障节点所承担的任务转移到其他节点;当群集资源协调器出现故障时,各个节点将通过心跳进程通信选举出负载最低的节点作为新的群集资源协调器,被选举出的群集资源协调器将启动服务状态监控进程,组建成新的群集系统;客户端将任务请求发送到群集资源协调器,群集资源协调器为其分配负载最低的节点处理任务请求,任务请求的处理对客户端是透明的。本发明能有效运用于多服务器节点的SOA架构软件系统中。如图2所示为客户端与群集系统交互流程图。客户端与群集系统的交互过程如下:客户端将标识有任务类别信息的任务请求发送到群集系统群集资源协调器,群集资源协调器接收到任务请求后根据节点注册信息判断是否具有处理任务请求能力的节点,对于不能处理的任务,群集资源协调器将返回拒绝信息;否则判断节点负载是否超过阈值,如果节点负载全部超过阈值,则将任务请求加入等待队列,否则根据制造业生产工艺路线预判未来系统的负载并且轮询分配负载最低的节点对任务请求进行处理,对于队列中超时的任务,将向客户端返回拒绝信息。群集资源协调器是群集系统的中心处理节点,运行群集资源协调控制方法的主程序,包括服务状态监控进程和与节点通讯的心跳进程。心跳进程也叫心跳协议,是群集资源协调器与各节点间按照定义好的协议进行通讯的进程。服务状态监控进程是按照设定的周期定时向各个节点服务发送与接收信息,实时监控各个节点服务状态的进程。如图3所示为节点注册、注销流程图。节点向群集资源协调器注册、注销以及群集资源协调器实时获取节点负载与状态信息的过程如下:群集资源协调器启动后开始循环侦测是否有节点向其注册或注销,如果有节点注册则将节点信息加入节点注册信息表中,如果有节点注销则将此节点信息从节点注册信息表中删除,群集资源协调器通过心跳协议实时获取所有在线节点的负载及状态信息,并更新节点注册信息表。节点注册信息表是存储节点负载、状态信息和节点所承担的任务信息的列表。节点注册信息表在内存缓存中以及数据库等持久性存储介质中保存的节点负载、状态信息,节点所承担的任务信息;在内存中缓存是为了提高处理速度,在持久性存储介质中保存是为了保证对故障节点的恢复----因为当节点出现故障时,内存中的数据可能已经丢失。如图4所示为故障节点重启、转移流程图。群集资源协调器对故障节点重启与转移故障的过程如下:群集资源协调器启动后开始根据节点注册信息表向所有在线节点发送心跳信息,侦测节点的状态,当节点出现故障时,即群集资源协调器向节点发送心跳信息失败,则通过WMI(WindowsManagementInstrumentation,Windows管理规范)进行远程进程重启实现对故障节点的恢复,对于重启失败的节点,群集资源协调器将故障节点承担的任务分配到其他节点,并通知其他节点更新任务。如图5所示为新群集系统组建流程图。群集资源协调器出现故障,其他节点选举新的群集资源协调器组建新的群集系统的过程如下:当群集资源协调器出现故障时,所有在线节点将不能与其通信,节点之间将进行心跳通信(根据之前从群集资源协调器获取的节点注册信息热拷贝),以确定是否群集资源协调器出现故障,如果某节点不能同其他节点进行心跳通信,则可能是当前节点出现故障,当前节点应退出,等待群集资源协调器对其进行重启处理;如果节点之间心跳通信正常,则可以确定群集资源协调器出现故障,节点之间将再次通信选举出新的群集资源协调器,被选中的节点将启动服务状态监控进程组建成了新的群集系统。心跳进程是群集资源协调器与各个节点按照设定的协议进行通讯的进程。服务状态监控进程是按照设定的周期定时向各个节点服务发送与接收信息,实时监控各个节点服务状态的进程。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1