一种工业自动化多点集群***及其任务管理方法
技术领域
本发明涉及一种工业自动化多点集群***中任务管理技术
背景技术
在工业自动化领域,为了改进***的可靠性,一般会对***的连续运作起关键作用的功能部件进行冗余配置,主从模式是最标准、最简单的双机热备冗余方式,即是目前通常所说的active/standby方式。它使用两台服务器,一台作为主服务器(Active),运行应用***来提供服务。另一台作为备机,与主运作服务器采用相同的配置,安装完全一样的应用***,但处于待机状态(Standby)。当主运作服务器出现故障或需要更换主运作服务器或需要对主运作服务器的内部运作***做更新升级之前,通过软件将standby服务器激活,采用备用服务器接管内部信息,并且将备用***作为新的运作***运作,使得该***无中断地继续运行。
采用主从模式的冗余配置方式可以降低风险,增加***的可靠性。但是,由于需要特地准备一台相同配置的服务器作为备用,而该备用服务器的利用率极低,在增加***可靠性的同时形成了资源浪费。
为了避免资源空置,在主从备份(又称双机热备)的基础上,出现了一种改进模式——双机互备。即两个相对独立的应用在两台服务器上同时运行,但彼此均设为对方的备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性。这种方式实际上是双机热备的一种特殊应用,它避免了两个应用使用四台服务器分别实现双机热备的情况。
但双机互备存在着性能瓶颈,即如果一台服务器故障,在另一台服务器上就需要同时运行两个应用,有可能负载过大。并且,有些情况下会有不止两台服务器对外提供服务。为了解决上述问题,多点集群应运而生。
多点集群可以理解为双机热备在技术上的提升。由多机服务器组成一个集群。根据应用的实际情况,可以灵活地在这些服务器上进行部署,同时可以灵活地设置备份接管策略。比如,可以由一台服务器作为其他所有服务器的备机,也可以设置多重的接管关系,等等。这样,就可以充分地利用服务器的资源,同时保证***的高可用性。在多点集群***中,如何进行任务分配可以影响整个***的运行效率、设备安全、和资源利用率。对于工业自动化领域,合理的任务分配和接管策略尤为重要。
发明内容
本发明主要解决的技术问题是提供一种工业自动化多点集群***及其任务管理方法,使得多点集群***中任务的分配能够与服务器本身负载的变化趋势相结合,最大程度上确保各应用服务器的负载能够均衡分布,提高***的整体资源利用率和***稳定性。
为了解决上述技术问题,本发明提供了一种工业自动化多点集群***任务管理方法,该多点集群***包含一个集群控制器及其控制下的至少三个应用服务器,每个应用服务器负责一部分工作区域,为所负责区域提供一般应用服务,该方法包含以下步骤:
集群控制器定期对其控制下的各应用服务器的健康状况和任务量进行评估,分析得到各应用服务器的任务量变化规律,以及不同任务量与健康状况的对应关系;
在需要执行其他应用服务时,根据所述各应用服务器当前的任务量、和各应用服务器的任务量变化规律,推测下一阶段所述各应用服务器的任务量,及对应的健康状况;
根据所推测的各应用服务器下一阶段的任务量和健康状况,选择满足分配要求的应用服务器,将所述需要执行的其他应用服务分配给所选择的应用服务器。
作为上述技术方案的改进,所述满足分配要求的应用服务器数量大于一个时,还包含以下步骤:将需要执行的应用服务分解为至少两个独立的任务集,分配给所选择的各应用服务器。
作为上述技术方案的改进,所述将需要执行的应用服务分解为至少两个独立的任务集的步骤中,将所述需要执行的应用服务平均分配到所述各任务集;或者,根据各应用服务器下一阶段的任务量和健康状况,将所述需要执行的应用服务不等量分配到所述各任务集。
作为上述技术方案的改进,所述将需要执行的应用服务分解为至少两个独立的任务集的步骤中,根据所述需要执行的应用服务之间的相关性和依赖性,将其分解为至少两个独立的任务集。
作为上述技术方案的改进,所述各应用服务器的健康状况至少包括以下之一:服务器内存占用率、中央处理器占用率、或网络带宽占用率。
作为上述技术方案的改进,所述集群控制器根据以下之一或其任意组合评估所述应用服务器的任务量:所述应用服务器的进程数、连接的工业管道数量、或信息点数量。
本发明还提供了一种工业自动化多点集群***,包含一个集群控制器及其控制下的至少三个应用服务器,每个应用服务器负责一部分工作区域,为所负责区域提供一般应用服务,该集群控制器还包含:
评估模块,用于定期对所述集群控制器控制下的各应用服务器的健康状况和任务量进行评估;
分析模块,用于根据所述评估模块定期评估的结果,分析得到各应用服务器的任务量变化规律,以及不同任务量与健康状况的对应关系;
推测模块,用于在需要执行其他应用服务时,根据所述各应用服务器当前的任务量、和各应用服务器的任务量变化规律,推测下一阶段所述各应用服务器的任务量,及对应的健康状况;
分配模块,用于根据所推测的各应用服务器下一阶段的任务量和健康状况,选择满足分配要求的应用服务器,将所述需要执行的其他应用服务分配给所选择的应用服务器。
作为上述技术方案的改进,所述分配模块还用于在所述满足分配要求的应用服务器数量大于一个时,将需要执行的应用服务分解为至少两个独立的任务集,分配给所选择的各应用服务器。
作为上述技术方案的改进,所述分配模块将所述需要执行的应用服务平均分配到所述各任务集;或者,所述分配模块根据各应用服务器下一阶段的任务量和健康状况,将所述需要执行的应用服务不等量分配到所述各任务集。
作为上述技术方案的改进,所述各应用服务器的健康状况至少包括以下之一:服务器内存占用率、中央处理器占用率、网络带宽占用率;
所述评估模块根据以下之一或其任意组合评估所述应用服务器的任务量:所述应用服务器的进程数、连接的工业管道数量、信息点数量。
本发明实施方式与现有技术相比,主要区别及其效果在于:由于工业自动化***中,应用服务器所需要提供的基本服务是基本固定的,所以可以通过前N次的任务量和健康状况的评估情况,推测出一个应用服务器的任务量变化规律及对应的健康状况,根据该任务量变化规律,可以知道该应用服务器在下一阶段大概的任务量及对应的健康状况,从而给予合理的任务分配,避免集群控制器分配的任务与该应用服务器下一阶段自身增加的任务叠加,导致负载过大,或者应用服务器下一阶段任务减少,形成资源空置,最大程度上确保各应用服务器的负载能够均衡分布,提高***的整体资源利用率和***稳定性。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是本发明第一实施方式工业自动化多点集群***连接示意图;
图2是本发明第一实施方式工业自动化多点集群***任务管理方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种工业自动化多点集群***任务管理方法。在本实施方式中,该多点集群***包含一个集群控制器及其控制下的三个应用服务器,每个应用服务器负责一个或两个场站,与所负责场站的管线相连,如图1所示,为所负责的场站提供一般应用服务,如对场站内的工业智能设备进行数据采集等。
具体任务管理流程如图2所示,在步骤201中,集群控制器定期对其控制下的各应用服务器的健康状况和任务量进行评估,分析得到各应用服务器的任务量变化规律,以及不同任务量与健康状况的对应关系。本步骤中,可以根据应用服务器的进程数、连接的工业管道数量、信息点数量等信息评估其任务量。本步骤中评估的健康状况可以包括服务器内存占用率、中央处理器占用率、网络带宽占用率等。
在步骤202中,在集群控制器收到需要提供其他应用服务的命令时,根据各应用服务器当前的任务量、和各应用服务器的任务量变化规律,推测下一阶段各应用服务器的任务量,及对应的健康状况。
在步骤203中,根据所推测的各应用服务器下一阶段的任务量和健康状况,选择满足分配要求的应用服务器。如果满足分配要求的应用服务器数量大于一个,则进入步骤204;否则直接进入步骤205,将需要执行的其他应用服务分配给所选择的应用服务器。
在步骤204中,集群控制器根据需要执行的应用服务之间的相关性和依赖性,将需要执行的应用服务分解为至少两个独立的任务集。具体分解的数量由选择的应用服务器数量确定。可以将需要执行的应用服务平均分配到各任务集;或者,根据各应用服务器下一阶段的任务量和健康状况,将需要执行的应用服务不等量分配到各任务集,以达到更好的负载均衡效果。
在步骤205中,将分解后的任务集分配给所选择的各应用服务器。
由于工业自动化***中,应用服务器所需要提供的基本服务是基本固定的,所以可以通过前N次的任务量和健康状况的评估情况,推测出一个应用服务器的任务量变化规律及对应的健康状况,根据该任务量变化规律,可以知道该应用服务器在下一阶段大概的任务量及对应的健康状况,从而给予合理的任务分配,避免集群控制器分配的任务与该应用服务器下一阶段自身增加的任务叠加,导致负载过大,或者应用服务器下一阶段任务减少,形成资源空置,最大程度上确保各应用服务器的负载能够均衡分布,提高***的整体资源利用率和***稳定性。
本实施方式中,当其中某台应用服务器出现问题,如应用程序故障,掉电等情况发生时,集群控制器自动将该应用服务器承担的任务视为需要执行的其他应用服务,按照步骤202和203所述的方式,将任务重新分解并分配到其它满足分配条件的应用服务器中。如图1所示,集群控制器定期对应用服务器1、2、3的任务量及健康状况进行评估,确定三个服务器的任务量变化规律,当图1中负责管线B的应用服务器3故障时,集群控制器可以根据该变化规律和当前的任务量推测下一阶段服务器1和2的任务量及健康状况,从中选择符合分配条件的服务器,假设服务器1满足分配条件,则将应用服务器3负责的管线B的数据集中、实时计算和控制功能分配到应用服务器1完成,从而实现自恢复。当应用服务器3故障修复后,集群控制器采用同样的原则,恢复其负责的管线B的数据集中、实时计算和控制功能。
可见,采用上述方式,即使***中某个应用服务器出现故障,也不会导致其负责的区域工作瘫痪,集群服务器只需将故障服务器的任务分配给其他应用服务器即可,在进行任务量和健康状况的评估及预测时,将故障服务器排除在外,仅对正常工作的服务器进行任务量和健康状况的评估及预测,在其中选择任务量相对较少、健康状况相对较好的服务器进行任务分配,使得整个多点集群***有更好的容错能力和自恢复能力。
同样,如果需要对该集群***进行升级,在集群***中新增服务器,集群控制器只需将该新增的服务器列入评估和选择的范围即可,对***的运行几乎没有影响,从而可以实现平滑扩容。
本发明第二实施方式涉及一种工业自动化多点集群***,包含一个集群控制器及其控制下的至少三个应用服务器,每个应用服务器负责一部分工作区域,为所负责区域提供一般应用服务,该集群控制器还包含:评估模块,用于定期对该集群控制器控制下的各应用服务器的健康状况和任务量进行评估;分析模块,用于根据该评估模块定期评估的结果,分析得到各应用服务器的任务量变化规律,以及不同任务量与健康状况的对应关系;推测模块,用于在需要执行其他应用服务时,根据各应用服务器当前的任务量、和各应用服务器的任务量变化规律,推测下一阶段各应用服务器的任务量,及对应的健康状况;分配模块,用于根据所推测的各应用服务器下一阶段的任务量和健康状况,选择满足分配要求的应用服务器,将需要执行的其他应用服务分配给所选择的应用服务器。
进一步,该分配模块还用于在满足分配要求的应用服务器数量大于一个时,将需要执行的应用服务分解为至少两个独立的任务集,分配给所选择的各应用服务器。该分配模块可以将需要执行的应用服务平均分配到各任务集;或者,该分配模块也可以根据各应用服务器下一阶段的任务量和健康状况,将需要执行的应用服务不等量分配到各任务集。
其中,各应用服务器的健康状况至少包括以下之一:服务器内存占用率、中央处理器占用率、网络带宽占用率;该评估模块根据以下之一或其任意组合评估应用服务器的任务量:应用服务器的进程数、连接的工业管道数量、信息点数量。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。