一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种基于控制区域网的工业软件虚拟化资源动态调度方法与流程

2022-10-13 01:19:58 来源:中国专利 TAG:


1.本发明涉及工业软件虚拟化资源调度领域,更为具体的,涉及一种基于控制区域网的工业软件虚拟化资源动态调度方法。


背景技术:

2.随着工业现场软件的发展,基于容器化的工业软件迅猛发展,工业软件不再是传统的单一模式,而演变为基于容器化的多容器化模块协作计算模式。容器化的工业软件配合工业现场网络,实现了工业计算从传统的单一模式升级到虚拟化网络计算模式。
3.工业软件的虚拟化网络计算模式下,工业软件的计算能力将不再取决于单一计算机的计算能力,而是取决于由虚拟化资源 工业现场网络组成的工业控制区域网。
4.在一个工业控制区域网中,通常具有许多的虚拟化资源,这些虚拟化资源的利用率随着业务模式的变化,通常其利用率是不一样的。业务独占物理资源成为了一种浪费。如何利用过剩的计算资源,同时提供安全、稳定、快速部署、按需分配的计算资源服务,是当前工业控制区域网领域研究的重要问题。


技术实现要素:

5.本发明的目的在于克服现有技术的不足,提供一种基于控制区域网的工业软件虚拟化资源动态调度方法,提高了业务可用性和服务资源利用率。
6.本发明的目的是通过以下方案实现的:
7.一种基于控制区域网的工业软件虚拟化资源动态调度方法,包括以下步骤:根据控制计算任务的分类,将控制计算任务优先地迁移到合适的控制区域网中;在控制区域网中配置的计算机,侧重于处理相应控制计算任务。
8.进一步地,所述控制计算任务的分类,包括计算密集型tc、输入/输出密集型tio或者混合型tm控制计算任务;将所述计算密集型tc、输入/输出密集型tio或者混合型tm控制计算任务分配到不同的控制区域网中;控制区域网中配置的计算机侧重于处理所述计算密集型tc任务,或者侧重于处理所述输入/输出密集型tio任务,或者是侧重于处理所述混合型tm任务。
9.进一步地,包括现场控制器容器类型的动态反馈式设置步骤:现场控制器类型在现场控制器启动的时候,并不设定,而是根据自动适配的运行容器反馈信息进行设定;如果现场控制器在不同的运行容器中执行,其类型也会动态变化。
10.进一步地,所述控制计算任务优先地迁移到合适的控制区域网中,包括本机迁移、本域迁移、外域迁移三种类型;所述本机迁移为一台物理机上的计算区域,拥有同样的物理cpu、由本机总线高速连接的内存与外存;所述本域迁移在高速局域网连接的控制区域网;所述外域迁移为跨高速局域网的控制区域网;且包括如下子步骤:
11.s1,检查本机是否满足计算要求,如果满足要求,分配本机虚拟计算资源;
12.s2,如果本机虚拟资源不能满足要求,检查本域的其它物理计算机上的虚拟资源
是否满足要求,如果能满足要求,则迁移到本域的其它物理计算机上;
13.s3,如果本域虚拟资源不能满足要求,检查外域中的物理计算机上的虚拟资源是否满足要求,如果能满足要求,则迁移到外域的物理计算机上。
14.进一步地,包括现场控制器适配运行容器程序的步骤:
15.s101,现场控制器中设置时延t,t=|t1-t2|,其中t1是传感器数据发送时间,t2是控制命令接收时间;
16.s102,如果t≤设定的阈值t0,那么该业务的时延满足标记t
flag
=1,否则t
flag
=0;
17.s103,现场控制器依据时延t来寻找适合运行控制程序p的运行容器:运行容器迁移到下一台计算设备d上,运行控制程序p,等待现场控制器返回时延t是否满足的信息;如果满足,则该运行容器能够运行在该计算设备上,否则该运行容器不能运行在该计算设备d上。
18.进一步地,包括步骤:在控制区域网中设置可变时延的全局广播帧,用于实现任意多个现场控制器时延t、计算设备占用率l的全局报告。
19.进一步地,包括步骤:计算设备刚启动的时候,其上容器的类型都是空闲型mi;随着其上运行的控制容器的类型变化,而逐渐地修改其类型变化为:mio、mc、m三种类型。
20.进一步地,所述可变时延是指任何一个现场控制器,根据自己的时延t的1/2来设置广播的时延。
21.进一步地,包括子步骤:
22.s201,计算设备上的类型计数器timer_mio与timer_mc初始值都为0,每隔固定时间t,计算设备上的类型计数器timer_mio与timer_mc都减1,而如果计算设备上任一个运行容器类型为mio,则每隔t,将timer_mio加一,如果运行容器类型为mc,则每隔t,将timer_mc加一;
23.s202,设置t*n的时间为类型判断周期,当t*n到达的时候,根据timer_mio与timer_mc的值来判断该计算设备的类型:timer_mio》0且timer_mc≤0,则运行设备为mio类型;如果timer_mc》0且timer_mio≤0,则运行设备为mc类型;如果timer_mio≥0且timer_mc≥0,这设备为m类型;如果timer_mio《0且timer_mc《0,这设备为mi类型。
24.进一步地,在步骤s202中,包括子步骤:在容器任务迁移的时候,优先在mi类型计算设备上迁移,其次在同类型计算设备上迁移。
25.本发明的有益效果包括:
26.(1)本发明提高了业务可用性。本发明提出的虚拟化资源动态调度算法,实现了本机、本域、外域地三级虚拟资源动态调度,因此可以确保小负荷控制计算任务得到快速调度,大负荷控制计算任务得到有效调度,避免了轮转调度、最佳匹配、最坏匹配等调度算法的缺点,可以有效地提高不同控制计算任务的调度性能。
27.(2)本发明提高了服务器资源利用率。物理服务器运行时,cpu、内存、外存与网络具有一定的基本功耗,因此对物理服务器而言,尽可能让更多的服务器达到较高负荷可以提高物理服务器的资源利用效率。使用本发明提出的调度算法,可以有效地将控制计算任务分配到不同的服务器上,从而提高服务器的资源利用率。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明实施例中不同的控制区域网之间的控制计算任务迁移示意图;
30.图2为本发明实施例中现场控制器适配运行容器程序的示意图;
31.图3为本发明实施例中计算机任务迁移流程图。
具体实施方式
32.本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
33.术语解释
34.mio类型:计算设备上运行容器侧重于i/o类型任务。
35.mc类型:计算设备上运行容器侧重于cpu计算类型任务。
36.mi类型:计算设备空闲。
37.计算密集型tc:容器任务为cpu计算类型任务。
38.输入/输出密集型tio:容器任务为i/o类型任务。
39.混合型tm:容器任务为cpu计算类型任务与i/o类型任务混合。
40.本发明的发明人在寻求解决背景中问题的过程中,发现如下新的技术问题:对虚拟资源进行调度与分配是工业控制区域网管理的核心问题。针对该问题,现有解决方案中存在一种基于静态调度算法的技术方案。静态调度算法是指虚拟资源在创建、迁移的调度过程中,按照虚拟资源类型来筛选目标计算机,但是未根据虚拟资源和计算机的实际冷热负载进行过滤。随着工业控制区域网的长期运营和虚拟资源的不断分配,静态调度算法无法根据计算机当前的负载情况而调度,逐渐暴露出cpu、内存、块存储等基础资源分配不均衡等问题,从而导致工业控制区域网的负载不均衡。
41.针对此技术问题,本发明实施例提出一种基于控制区域网的工业软件虚拟化资源动态调度方法,主要技术思路为将计算机与虚拟资源分成不同的工业控制区域,同时周期性获取计算机和虚拟资源的相关监控指标,根据计算机和虚拟资源的实际负载状态进行动态调整,尽量使计算机资源使用率处于平均负载值附近,使各个计算机的资源使用相对均衡。从而避免某些计算机过载或过低载使用,实现工业控制区域网的负载均衡。
42.在具体实施中,本发明的发明人实际还解决了如下技术问题:在确保控制计算任务的所需要的虚拟化资源得到满足的基础上,让控制计算任务在虚拟机之间迁移。控制计算任务迁移设计的虚拟资源包括虚拟cpu、虚拟内存、虚拟存储。实现控制计算任务迁移的前提是对整个控制区域网中的虚拟资源进行有效的监控。资源监控是监控所有虚拟机和计算机的运行状态及负载情况,实现对虚拟资源状态的全局把握,虚拟资源的监控包括cpu使用率p,内存使用量m,外部存储使用量s等。由于控制计算任务的迁移还需要有网络支持,因此还需要监控虚拟计算机之间的网络传输带宽w。
43.通过监控系统监控并采集所有计算机和虚拟机的cpu、内存、块存储等负载指标,
设置平均负载的浮动值。
44.当前,比较常用的cpu负载均衡公式,采用cpu频率与cpu使用率之间的乘积来衡量cpu完成任务时的负载情况,如下所示:cpu负载=cpu频率
×
cpu使用率。
45.任务执行过程中涉及资源占用,包括网络通信带宽、服务节点资源、存储资源以及其他部件资源等。综合考虑以上成本损耗,占主要成本的损耗,为底层链路开销、服务节点负载开销以及内/外存使用开销。
46.虚拟资源的动态调度也即是将适合的虚拟资源r分配给控制控制计算任务t。在一个控制区域网n中,虚拟资源r总是依附在物理计算机s上的。在一个控制区域网中的物理计算机上,根据其上的虚拟资源的使用率,可以分为控制计算任务迁出型(源计算机)与控制计算任务迁入型(目的计算机)。源计算机是指负载过高、导致无法保证其上运行的虚拟机的服务质量、进而影响用户对虚拟计算平台应用体验的计算机;目标计算机用于将源计算机上的虚拟机迁移到该主机上,在保证其上运行的虚拟机服务质量的同时,提高了计算机的资源使用率。
47.(1)周期性地从监控系统里获取数据中心中计算机和其上运行的虚拟机最近n个周期内的监控数据,计算出计算机n个周期内平均负载值,将其作为该计算机的负载值。
48.(2)对所有计算机的负载值进行平均计算,得到平均负载值,将平均负载值乘以作为数据中心的某一个负载阈值。数据中心的负载阈值通常是某个具体项的资源平均值的使用百分比最高限制,例如在这个区域网中所有计算机的cpu利用率最高为70%。将负载值高于负载阈值上限的计算机作为需要调整的源计算机,负载值低于负载阈值下限的计算机作为虚拟机迁移的目标计算机。
49.(3)根据源计算机上运行的虚拟机已分配资源和实际负载值,计算每个虚拟机的得分,并结合源计算机的负载值综合筛选出适合迁移的虚拟机。
50.(4)在目标计算机中,根据可分配资源和实际负载情况综合计算,为需要迁移的虚拟机筛选合适的目标计算机。如果有满足虚拟机迁移条件的目标计算机,则生成虚拟机指定目标计算机的热迁移任务;如果不满足,则放弃对该虚拟机的迁移,为下一个虚拟机寻找合适的目标计算机。
51.(5)对生成虚拟机指定目标计算机热迁移的任务进行模拟迁移操作,迁移后检查源计算机的负载值是否在负载阈值内。如果高于负载阈值上限,判断源计算机上是否为最后一台虚拟机,如果不是,对下一个虚拟机进行寻找合适目标计算机操作,返回步骤(4);如果是,则放弃对该源计算机的操作,对下一个需要调整的源计算机进行操作,返回步骤(3)。如果不高于负载阈值上限,判断是否为最后一台源计算机,如果不是,则对下一个需要调整的源计算机进行操作,返回步骤(3);如果是,则执行步骤(6)。
52.(6)为了防止虚拟机二次或链式迁移操作,虚拟机热迁移之前,在迁移任务列表中执行消重或链式迁移任务消除操作,例如:虚拟机a从源计算机a迁移到目标计算机b,再从目标计算机b迁移到目标计算机c,进行消重操作,将虚拟机a直接从源计算机a迁移到目标计算机c并建立迁移任务依赖。
53.(7)模拟迁移结束后,执行虚拟机指定目标计算机的热迁移任务,实现数据中心的负载均衡。
54.资源虚拟化后,可以在一台物理机器上实现多个虚拟机的并发运行。根据虚拟机
中软件运行规律,对软件异常事件进行统计,将每个资源虚拟化的切换信息记录下来,并传递给用户空间的监控程序,由程序或平台管理员分析切换数据,判断资源虚拟化属于计算密集型tc、输入/输出密集型tio或者混合型tm,再根据具体资源虚拟化实施相应的性能优化。
55.在具体实施方式中,现场控制器fcontroller类型的动态反馈式设置方法包括:现场控制器fcontroller类型type的判断方法(type属于计算密集型tc、输入/输出密集型tio或者混合型tm中的一种),该类型type在现场控制器fcontroller启动的时候,并不设定。而是根据自动适配的运行容器反馈信息进行设定。如果现场控制器fcontroller在不同的运行容器中执行,其类型type会动态变化。
56.可以在vmp启动的时候,获取资源虚拟化进程的作业信息,根据作业信息,获取对应的cpu调度策略,通过调度策略的优化,使得vmp的资源虚拟化程序在竞争cpu资源时,比一般的进程具有更高的优先级,从而提高资源虚拟化的性能。
57.根据控制计算任务的分类,可以将计算密集型tc、输入/输出密集型tio或者混合型tm控制计算任务分配到不同的控制区域网上。在控制区域网中配置的计算机,可以侧重于处理计算密集型tc任务,或者侧重于处理输入/输出密集型tio任务,或者是侧重于处理混合型tm任务。根据控制计算任务的分类,可以将控制计算任务优先地迁移到合适的控制区域网中。
58.控制计算任务在多个计算域之间迁移,可以划分为本机、本域、外域迁移三种类型。本机迁移:在一台物理机上的计算区域,拥有同样的物理cpu、由本机总线高速连接的内存与外存,因此具有最低的迁移代价。本域迁移:由高速局域网连接的控制区域网。由于由高速局域网连接,因此具有极高的网络带宽,具有较低的迁移代价。外域迁移:跨高速局域网的控制区域网。由于网络连接跨了多个局域网,因此在计算迁移的时候,具有较高的代价。因此,在虚拟资源动态调度的时候,基于计算区域的调度方法按照如图3所示的流程进行:
59.(1)检查本机是否满足计算要求,如果满足要求,分配本机虚拟计算资源。
60.(2)如果本机虚拟资源不能满足要求,检查本域的其它物理计算机上的虚拟资源是否满足要求,如果能满足要求,则迁移到本域的物理计算机上。
61.(3)如果本域虚拟资源不能满足要求,检查外域中的物理计算机上的虚拟资源是否满足要求,如果能满足要求,则迁移到外域的物理计算机上。
62.上述过程在实现中,关键的具体实现方式如下:
63.1)现场控制器中设置时延t,t=t1-t2,其中t1是传感器数据sensor发送时间,t2是控制命令cmd接收时间。如果t≤设定的阈值t0,那么该业务的时延满足标记t
flag
=1,否则t
flag
=0。时延t是现场控制器适配运行容器的必要条件。现场控制器会依据时延t来寻找第一个适合的运行容器。其算法是:运行容器迁移到下一台计算设备d上,运行控制程序,等待现场控制器返回时延t是否满足的信息。如果满足,则该运行容器可以运行在该计算设备上。
64.2)工业控制区域网中设置可变时延的全局广播帧,来实现任意多个前端控制器时延、计算设备占用率的全局报告。可变时延是指,任何一个前端控制器,根据自己的时延t的1/2来设置广播的时延。这样整个系统中广播时延,一定小于最低前端控制器时延t的1/2,
这样保证了整个系统的时延可用性。
65.3)计算设备刚启动的时候,其上容器的类型都是空闲型mi。随着其上运行的控制容器的类型变化,而逐渐地修改其类型变化为:mio、mc、m三种类型。每个固定时间t,运行设备上的类型计数器timer_mio与timer_mc都减1,而如果运行容器类型为mio,则每隔t,将timer_mio加一,如果运行容器类型为mc,则每隔t,将timer_mc加一。设置t*n的时间为类型判断周期,当t*n到达的时候,根据timer_mio与timer_mc的值来判断运行设备的类型。timer_mio》0且timer_mc≤0,则运行设备为mio类型;如果timer_mc》0且timer_mio≤0,则运行设备为mc类型;如果timer_mio≥0且timer_mc≥0,这设备为m类型;如果timer_mio《0且timer_mc《0,这设备为mi类型。在容器任务迁移的时候,优先在mi类型计算设备迁移,其次在同类型计算设备上迁移。
66.在企业中应用本发明实施例提供的服务器虚拟资源动态调度技术方案,不仅有助于提高资源利用率,节约运维成本,而且可以提高业务的可用性。
67.(1)提高了业务可用性。本发明提出的虚拟化资源动态调度方法,实现了本机、本域、外域地三级虚拟资源动态调度,因此可以确保小负荷控制计算任务得到快速调度,大负荷控制计算任务得到有效调度,避免了轮转调度、最佳匹配、最坏匹配等调度算法的缺点,可以有效地提高不同控制计算任务的调度性能。
68.(2)提高了服务器资源利用率。物理服务器运行时,cpu、内存、外存与网络具有一定的基本功耗,因此对物理服务器而言,尽可能让更多的服务器达到较高负荷可以提高物理服务器的资源利用效率。使用本发明提出的调度方法,可以有效地将控制计算任务分配到不同的服务器上,从而提高服务器的资源利用率。
69.实施例1
70.一种基于控制区域网的工业软件虚拟化资源动态调度方法,包括以下步骤:根据控制计算任务的分类,将控制计算任务优先地迁移到合适的控制区域网中;在控制区域网中配置的计算机,侧重于处理相应控制计算任务。
71.实施例2
72.在实施例1的基础上,所述控制计算任务的分类,包括计算密集型tc、输入/输出密集型tio或者混合型tm控制计算任务;将所述计算密集型tc、输入/输出密集型tio或者混合型tm控制计算任务分配到不同的控制区域网中;控制区域网中配置的计算机侧重于处理所述计算密集型tc任务,或者侧重于处理所述输入/输出密集型tio任务,或者是侧重于处理所述混合型tm任务。
73.实施例3
74.在实施例1的基础上,包括现场控制器容器类型的动态反馈式设置步骤:现场控制器类型在现场控制器启动的时候,并不设定,而是根据自动适配的运行容器反馈信息进行设定;如果现场控制器在不同的运行容器中执行,其类型也会动态变化。
75.实施例4
76.在实施例1的基础上,所述控制计算任务优先地迁移到合适的控制区域网中,包括本机迁移、本域迁移、外域迁移三种类型;所述本机迁移为一台物理机上的计算区域,拥有同样的物理cpu、由本机总线高速连接的内存与外存;所述本域迁移在高速局域网连接的控制区域网;所述外域迁移为跨高速局域网的控制区域网;且包括如下子步骤:
77.s1,检查本机是否满足计算要求,如果满足要求,分配本机虚拟计算资源;
78.s2,如果本机虚拟资源不能满足要求,检查本域的其它物理计算机上的虚拟资源是否满足要求,如果能满足要求,则迁移到本域的其它物理计算机上;
79.s3,如果本域虚拟资源不能满足要求,检查外域中的物理计算机上的虚拟资源是否满足要求,如果能满足要求,则迁移到外域的物理计算机上。
80.实施例5
81.在实施例3的基础上,如图3所示,包括现场控制器适配运行容器程序的步骤:
82.s101,现场控制器中设置时延t,t=|t1-t2|,其中t1是传感器数据发送时间,t2是控制命令接收时间;
83.s102,如果t≤设定的阈值t0,那么该业务的时延满足标记t
flag
=1,否则t
flag
=0;
84.s103,现场控制器依据时延t来寻找适合运行控制程序p的运行容器:运行容器迁移到下一台计算设备d上,运行控制程序p,等待现场控制器返回时延t是否满足的信息;如果满足,则该运行容器能够运行在该计算设备上,否则该运行容器不能运行在该计算设备d上。
85.实施例6
86.在实施例1的基础上,包括步骤:在控制区域网中设置可变时延的全局广播帧,用于实现任意多个现场控制器时延t、计算设备占用率l的全局报告。
87.实施例7
88.在实施例1的基础上,包括步骤:计算设备刚启动的时候,其上容器的类型都是空闲型mi;随着其上运行的控制容器的类型变化,而逐渐地修改其类型变化为:mio、mc、m三种类型。
89.实施例8
90.在实施例6的基础上,所述可变时延是指任何一个现场控制器,根据自己的时延t的1/2来设置广播的时延。
91.实施例9
92.在实施例7的基础上,包括子步骤:
93.s201,计算设备上的类型计数器timer_mio与timer_mc初始值都为0,每隔固定时间t,计算设备上的类型计数器timer_mio与timer_mc都减1,而如果计算设备上任一个运行容器类型为mio,则每隔t,将timer_mio加一,如果运行容器类型为mc,则每隔t,将timer_mc加一;
94.s202,设置t*n的时间为类型判断周期,当t*n到达的时候,根据timer_mio与timer_mc的值来判断该计算设备的类型:timer_mio》0且timer_mc≤0,则运行设备为mio类型;如果timer_mc》0且timer_mio≤0,则运行设备为mc类型;如果timer_mio≥0且timer_mc≥0,这设备为m类型;如果timer_mio《0且timer_mc《0,这设备为mi类型。
95.实施例10
96.在实施例9的基础上,在步骤s202中,包括子步骤:在容器任务迁移的时候,优先在mi类型计算设备上迁移,其次在同类型计算设备上迁移。
97.描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况
下并不构成对该单元本身的限定。
98.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
99.作为另一方面,本技术还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
100.本发明未涉及部分均与现有技术相同或可采用现有技术加以实现。
101.上述技术方案只是本发明的一种实施方式,对于本领域内的技术人员而言,在本发明公开了应用方法和原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施方式所描述的方法,因此前面描述的方式只是优选的,而并不具有限制性的意义。
102.除以上实例以外,本领域技术人员根据上述公开内容获得启示或利用相关领域的知识或技术进行改动获得其他实施例,各个实施例的特征可以互换或替换,本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献