CN111858054B - 一种异构环境下基于边缘计算的资源调度系统及方法 - Google Patents
一种异构环境下基于边缘计算的资源调度系统及方法 Download PDFInfo
- Publication number
- CN111858054B CN111858054B CN202010710157.9A CN202010710157A CN111858054B CN 111858054 B CN111858054 B CN 111858054B CN 202010710157 A CN202010710157 A CN 202010710157A CN 111858054 B CN111858054 B CN 111858054B
- Authority
- CN
- China
- Prior art keywords
- task
- taskworker
- edgecloud
- tasks
- resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5011—Pool
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
Abstract
本发明实施例公开了边缘计算技术领域的一种异构环境下基于边缘计算的资源调度系统及方法。本发明的异构环境下基于边缘计算的资源调度系统,包括用于负责任务分析、调度、资源管理及编排的EdgeCloud、用于根据EdgeCloud的指令进行计算所需要资源的的创建和销毁并监控本机的资源负载的EdgeAgent、用于执行EdgeCloud分配的计算任务的TaskWorker。本发明通过将各区域分散的资源编组,并进一步的加入资源池的方法,并设计出如何进行通过动态计算设备得分的情况,来决定设备的调度的优先级;通过存储的命名空间,可应用于大规模计算时的数据共享问题,进而将其与设备资源组共享。
Description
技术领域
本发明实施例涉及边缘计算技术领域,尤其涉及一种异构环境下基于边缘计算的资源调度系统及方法。
背景技术
在现有的分布式计算时,通常使用中心化的云计算的方案。典型的资源编排有基于openstack(或类似的cloudstack\vmware等)进行虚拟机的编排,或基于kubernetes进行容器的编排。业界通常的解决方案,主要是上述的基于上述的资源编排方案,或变种方案,本质上并无多少不同。
对于最终的使用用户来说,一定是希望使用的算力资源越便宜越好,而现有的各厂商所使用的硬件的架构没有本质的不同,所提供的功能也逐渐趋同。用户使用了某个厂商的计算资源时,在某个时间是便宜的,但随着时间的推移,往往并不是最便宜的资源,但此时切换到其它的提供商的资源时,往往会有迁移的困难,以及议价的困难。
在现阶段,无论是基于kubernetes的容器编排或是基于类openstack的虚拟机编排,均不能跨地域进行编排,当有超大型的任务需要批量使用时,会有资源的受限问题。在实际使用过程中,若遇到光纤挖断、断电或核心交换机故障等因素,往往意味着该云计算的片区资源不可以使用。
另外,在现阶段有些中小型的idc的资源利用率并不高,受限于商业的影响力,并不能很好的对外提供服务。同时有些中小型的idc所处的位置,虽具备成本的优势,但往往设备规模有限,稳定性相对会差些,会限制其大规模应用。
基于此,本发明设计了一种异构环境下基于边缘计算的资源调度系统及方法,以解决上述问题。
发明内容
本发明实施例提供一种异构环境下基于边缘计算的资源调度系统及方法,以解决背景技术中提及的技术问题。
本发明实施例提供一种异构环境下基于边缘计算的资源调度系统。在一种可行的方案中,包括用于负责任务分析、调度、资源管理及编排的EdgeCloud、用于根据EdgeCloud的指令进行计算所需要资源的的创建和销毁并监控本机的资源负载的EdgeAgent、用于执行EdgeCloud分配的计算任务的TaskWorker以及用于客户端的数据上传或下载的传输服务模块。
本发明实施例提供一种异构环境下基于边缘计算的资源调度系统。在一种可行的方案中,所述EdgeCloud包括SchedulerManager、ResourceManger、ServiceManager、ApiServer、StoreManager和ServicePlugin;
所述SchedulerManager,用于根据用户所处的位置,将用户数据上传至离用户最近的计算资源,尽可能快的执行任务,根据资源池的编排及负载情况,以及调度策略,进行任务的调度;
所述ResourceManger,用于负责所有与资源有关的一切操作,且负责资源编排的虚拟机或容器的创建、删除、启动以及停止工作;
所述ServiceManager,用于对各类ServicePlugin的编排,根据用户提交的任务,选择适当的ServicePlugin进行任务的处理;
所述ApiServer,用于将EdgeCloud与边缘侧的EdgeAgent以及TaskWorker进行通信;
所述StoreManager,用于对用户可以使用的存储空间计算、存储空间资源编排以及用户数据目录编排与呈现;
所述ServicePlugin,用于负责对用户提交的任务进行任务的解析、组包。
本发明实施例提供一种异构环境下基于边缘计算的资源调度系统。在一种可行的方案中,所述ResourceManger的管理目标包括设备的管理、TaskWorker的管理、资源的编排。
本发明实施例提供一种异构环境下基于边缘计算的资源调度系统。在一种可行的方案中,所述EdgeAgent的部署情形包括通过接收EdgeCloud指令调用Api接口进行虚拟机或容器的资源指令部署、通过EdgeCloud控制对独立裸金属设备指令部署以及对物理机资源使用情况进行监控。
本发明实施例提供一种异构环境下基于边缘计算的资源调度系统。在一种可行的方案中,所述传输服务模块的使用场景包括:用户提交海量计算数据至本系统、边缘侧下载镜像用于虚拟机或容器的创建、海量计算数据在本系统内部根据协同计算的需要进行跨边缘的传递。
本发明实施例还提供一种异构环境下基于边缘计算的资源调度方法。在一种可行的方案中,包括如下步骤:
S1、用户通过客户端向EdgeCloud提交任务及该任务所需要的数据,EdgeCloud识别用户所在的区域,网络运营商,计算用户所需要的资源的满足区域;分配离用户最近的资源组的存储给用户;用户数据传输完毕后,获得唯一的hash,该hash值可以作为数据的索引,也可以用来检验数据的惟一性;用户在客户端创建任务时,需要指明用到的数据、希望TaskWorker执行的程序、希望用使用的资源类型,在EdgeCloud判断用户提交的任务合法性及依赖的数据的完整性后,生成唯一的任务编号;
S2、ServiceManage识别任务,并交由能处理该任务的ServicePlugin根据提交任务的特性对该任务进行子任务的拆分,且对有顺序要求的任务根据计算要求设置前后顺序,以便依次调度;
S3、SchedulerManager会根据任务数据所在资源组位置检索符合当前要求的TaskWorker,并存在TaskWorker在线则直接发送任务;若无空闲在线TaskWorker,SchedulerManager向EdgeAgent发送设备虚拟机或容器创建指令,EdgeAgent返回唯一的实例id信息;
S4、虚拟机或容器启动后会自动执行TaskWorker登录系统并私钥签名;TaskWroker登录时携带以下信息:(1)携带物理机在EdgeCloud上的唯一编号,(2)TaskWorker编号,(3)实例id,(4)可以执行的任务。EdgeCloud通过TaskWorker登录的信息,识别TaskWorker的身份;
S5、在SchedulerManager检测到有符合要求的TaskWorker处于空闲状态时,会对其进行任务分配,ServiceManager会通过ApiServer将任务相关内容发送给TaskWorker,且将该TaskWorker标记为忙时状态;
S6、TaskWorker接受任务后,根据指定对目标程序所在路径进行查找,并立即执行用户程序及任务,且定时上报状态;
S7、EdgeCloud在记录任务状态时,通过计费策略开启计费;
S8、在任务结束时,EdgeCloud自动计算执行任务所需时长,并检索该任务的兄弟任务,且在存在兄弟任务时将该兄弟任务进行任务下发;且在执行任务时将失败任务节点标记为异常节点;
S9、为避免大批量任务的无效执行,可以首先下发一个或多个探测任务至TaskWorker,当任务执行成功后,再批量发送任务至其它TaskWorker进行调度;
S10、当上传数据所在的第一满足要求资源组没有更多的设备供计算任务使用时,则筛选资源池中离第一满足求最近的资源组B来承担任务;与此同时下发一探测任务至资源组B,资源组B接到任务后,开始下载数据,待数据下载完后,EdgeCloud开始下发创建虚拟机或容器的指令,待资源组B上的满足要求的TaskWorker有空闲的后,开始分配其它的兄弟任务至资源组B上的TaskWorker;当有超大型任务时,以此类推,直到资源池中的设备全部占满。
基于上述方案可知,本发明通过将各区域分散的资源编组,并进一步的加入资源池的方法,并设计出如何进行通过动态计算设备得分的情况,来决定设备的调度的优先级;通过存储的命名空间,可应用于大规模计算时的数据共享问题,进而将其与设备资源组共享,根据用户所处的位置,将用户数据上传至离用户最近的计算资源,尽可能快的执行任务。当拥有数据的资源组的可用资源不足时,再由系统扩散至其它资源组,加快任务执行的速度;当资源池中的数据所在的第一设备组资源不足时,调度至第二设备组,实现了对任务的分组调度;通过任务检测的方法,通过计算EdgeCloud和TaskWorker的时间偏差,检测状态报告的有效性,识别异常节点,即时将任务的切换。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的系统框架图;
图2为本发明的流程构架图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要理解的是,术语“中心”、“纵向”、“横向”、“上”、“下”、“前”、“后”、“左”、“右”、“竖直”、“水平”、“顶”、“底”、“内”、“外”、“轴向”、“径向”、“周向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,也可以是成一体;可以是机械连接,也可以是电连接,也可以是通讯连接;可以是直接连接,也可以通过中间媒介的间接连接,可以是两个元件内部的连通或两个元件的相互作用关系,除非另有明确的限定。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
下面以具体地实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1为本发明实施例一中的一种异构环境下基于边缘计算的资源调度系统,本实施例的异构环境下基于边缘计算的资源调度系统;包括用于负责任务分析、调度、资源管理及编排的EdgeCloud、用于根据EdgeCloud的指令进行计算所需要资源的的创建和销毁并监控本机的资源负载的EdgeAgent、用于执行EdgeCloud分配的计算任务的TaskWorker以及用于客户端的数据上传或下载的传输服务模块。
可选地,在本实施例中,所述EdgeCloud包括SchedulerManager、ResourceManger、ServiceManager、ApiServer、StoreManager和ServicePlugin;
所述SchedulerManager,用于根据用户所处的位置,将用户数据上传至离用户最近的计算资源,尽可能快的执行任务,根据资源池的编排及负载情况,以及调度策略,进行任务的调度;
所述ResourceManger,用于负责所有与资源有关的一切操作,且负责资源编排的虚拟机或容器的创建、删除、启动以及停止工作;
所述ServiceManager,用于对各类ServicePlugin的编排,根据用户提交的任务,选择适当的ServicePlugin进行任务的处理;
所述ApiServer,用于将EdgeCloud与边缘侧的EdgeAgent以及TaskWorker进行通信;
所述StoreManager,用于对用户可以使用的存储空间计算、存储空间资源编排以及用户数据目录编排与呈现;
所述ServicePlugin,用于负责对用户提交的任务进行任务的解析、组包。值得说明的是,在本实施例中,SchedulerManager决定调配何种资源给任务使用,配置多种调度策略;ResourceManger负责计算设备的管理,具体表现为根据EdgeAgent上报的物理资源进行设备的资源的管理,命令EdgeAgent进行虚拟机或容器的控制,负责对TaskWorker管理;ServiceManager负责向用户提供业务调用,各类业务由ServicePlugin负责,ServiceManager负责ServicePlugin的加载及卸载工作。
此外,所述ResourceManger的管理目标包括设备的管理、TaskWorker的管理、资源的编排,根据EdgeAgent上报的物理资源进行设备的资源的管理,命令EdgeAgent进行虚拟机或容器的控制,负责对TaskWorker管理。
再具体地说,所述EdgeAgent的部署情形包括通过接收EdgeCloud指令调用Api接口进行虚拟机或容器的资源指令部署、通过EdgeCloud控制对独立裸设设备指令部署以及对物理机资源使用情况进行监控;1、若部署传统云计算提供商,此时EdgeAgent接受EdgeCloud的指令,调用传统云计算提供商的Api接口,进行虚拟机或容器的创建、销毁、启动、停止等资源指令,或镜像的打包;2、独立部署于裸金属设备上,根据EdgeCloud的指令创建、销毁、启动或停止指令;3、EdgeAgent监控物理机的资源使用情况。
进一步的,所述传输服务模块的使用场景包括:用户提交海量计算数据至本系统、边缘侧下载镜像用于虚拟机或容器的创建、海量计算数据在本系统内部根据协同计算的需要进行跨边缘的传递;由于各边缘节点所处网络的复杂性,以及TCP协议本身的局限性,当网络质量不佳时,会导致大量的重传包,导致网络进一步恶化。本专利使用的传输采用的方式为无阻塞的高性能传输方式,具体使用场景为:用户在客户端侧提交任务的数据的时候,通过本发明的传输服务传输海量数据;当EdgeAgent在创建虚拟机或容器时,若所需要的镜像不在物理机上,需要使用传输服务从镜像仓库获取镜像;当单个资源组无法满足计算任务时,而且不同存储空间之间使用传输服务实现同步数据,以便大规模调度任务。
需要补充的是,本发明中的EdgeCloud为边缘云;EdgeAgent为边缘代理;TaskWorker为任务执行引擎;TransServer为传输服务器;SchedulerManage为调度管理器;ResourceManger为资源管理器;ServiceManager为应用服务器;ApiServer为Api服务器;StoreManager为存储管理器;ServicePlugin为服务插件;传输服务模块由TransClient及TransServer提供,其中TransClient为传输客户端,TranServer为传输服务端。
本发明所涉及的将容器、裸机、虚拟机进行混合编排,并且不局限于某一特定的idc,进而协同执行任务。
本发明所涉及的存储空间是指由存储空间的名称、ip地址、端口来定义。每个计算资源根据此地址获取存储空间,并决定挂载的目录。通常每个存储空间会有若干个TransServer同时进行数据上的上传下载。一个设备资源组共享一个存储空间。同时可以有多个设备资源组共享存储空间,此种情况发生时,意味着该idc内有多种规格的设备,分成了不同的设备资源组。
本发明所涉及的设备资源组:设备向最终端用户提供服务时,需要对设备进行编组。一个组中的设备,具备同样的计算性能,且在一个地域,以便EdgeCloud进行资源编排及任务调度。一个组中的设备共享存储空间。设备分组由如下信息描述:描述了设备分组的位置,设备的硬件配置、操作系统、ip等信息。
本发明所涉及的资源池是指资源池针对某类型的任务提供设备,资源池中包含有设备的分组,资源池中的设备的主要部件的规格需基本接近,资源池中的设备也可以来源自第三方的云计算中心,资源池中的设备来源越丰富,意味着可调度的设备也就越多样,从而达到依靠设备的多样性,获得运行的稳定性。资源池描述了不同的设备分组执行任务时,该调用什么样的镜像去创建虚拟机或容器或裸机执行;
在资源池中,对每个设备资源组根据设备资源组的得分分配优先级,该优先级可动态调整,优先级确定的算法如下:
设备的评分:
结合设备在运行过程中的资源负载、上报任务的状态报告的周期是否急时、任务执行的时效性等多维度进行评测。任务在分配时,优先向设备评分较高的节点分配任务。
资源组的评分=w1*sum(设备的评分)/n+w2*资源组的单机成本+w3*网络成本+w4*电费成本,这里的n为设备的数量,w1、w2、w3、w4为加权因子。
从成本考虑,云计算中心的资源的调度优先级在资源池中的顺序通常在最后一位。
任务拆分及组装:
用户向EdgeCloud插件提交任务,指明需要的资源。ServiceManager根据任务调用ServicePlugin进行任务的拆分,生成子任务。ServicePlugin根据任务的特点决定各子任务之间是否有先后顺序,依赖任务先后的顺序或无序的任务,向SchedulerManager请求调度设备。
任务的调度:
在任务组装好后,交由调度模块进行任务的调度。调度策略如下:
检测任务所需要的数据所在的位置的存储空间。
检测共享存储空间的设备资源组,然后进一步筛选满足任务要求的资源池,看这些资源组在哪些落在这个资源池里。
检测是否有相应的TaskWorker在线。若没有TaskWorker在线,则下发创建虚拟机或容器的命令。
若第一满足要求资源组没有设备了,则筛选资源池中离第一满足求最近的资源组B来承担任务。这时下发一探测任务至资源组B,资源组B接到任务后,开始下载数据,待数据下载完后,EdgeCloud开始下发创建虚拟机或容器的指令,待资源组B上的满足要求的TaskWorker有空闲的后,开始分配其它的兄弟任务至资源组B上的TaskWorker。当有超大型任务时,以此类推,直到资源池中的设备全部占满。
任务状态检测及任务切换方法:
因为边缘设备的不可靠性,不排除用户提交的批量任务在执行时,在某台边缘设备出现了问题,此时需要EdgeCloud将任务重新分配至其它的边缘节点。
边缘节点的TaskWorker接收任务后,先给TaskWorker回复任务已接收。任务接收后,任务执行的状态切换时,须向EdgeCloud上报当前的最新状态。
在状态未切换情况下,TaskWorker定时向EdgeCloud上报任务当前状态。EdgeCloud收任务状态报告后,需要检测该状态报告是否与已经收到的状态报告完全一致,以及状态报告的时效性。状态报告本身具备一定的时效性,为防止无效的状态报告,EdgeCloud需要对每台设备的时间进行偏差计算,计算边缘设备与节点的偏差。
时间检验方法:
边缘设备TaskWorker登录时,携带时间戳。记录为上报时间T1,EdgeCloud收到的时间为T2;
EdgeCloud下发VersionReq消息至边缘设备,告知本系统的接口协议的版本号\本系统的一些其它信息(例如加密方式、心跳的频率等),携带下发的时间戳T3。EdgeCloud记录T3;
边缘侧节点回复versionRsp告知EdgeCloud本机的一些信息。带上时间戳T4,EdgeCloud记录T5;
时间偏差计算为:
网络传输的耗时C=(T5-T3)/2;
边缘侧与EdgeCloud时间差Interver=[(T2-T1-C)+(T5-T3-C)]/2;
由于网络的动态的复杂性,网络通信的时延可能会存在变化,边缘侧节点需要周期性的与EdgeCloud断连重连,以便动态调整时间差。
EdgeCloud在收到状态报告之后,需要对状态进行验证:
如果状态报告的内容与之前的内容完全一致,则认为新收到状态报告无效;
若状态报告上报的时间RptTime+时间偏差Interver+网络传输时延C+允许的偏差Bias<系统当前的时间,则认为该状态报告无效。
由于网络异构的复杂性,存在状态报告丢失的可能。EdgeCloud在一定周期内没有接收到状态报告的时候,需要向TaskWorker查询任务的执行状态。若任务一直没有回复超过约定的时长,则EdgeCloud认为该节点执行任务异常,标识节点异常。不再向该异常节点分配任务,将任务切换到其它节点运行。
但实际存在任务切换后,之前执行任务的节点又恢复正常,继续上报状态。此时EdgeCloud收到状态报告后,若任务已切换到其它节点,则标识任务已迁移,发送立即停止的命令给该节点。并向该节点分配其它的任务。
在实际运行过程中,也存在TaskWorker本身正常,也正常上报状态报告,但TaskWorker本身执行的用户的任务本身因为某种原因吊死。此时TaskWorker判断该任务的兄弟任务是否正常,如果兄弟任务正常,且已结束,则EdgeCloud取出已经结束的兄弟的耗时的时长,乘以一定的系数,判断该任务执行的时长是否已经超过了计算的值,若超过,则将该任务切换到其它设备。释放该TaskWorker。
此种情形的判断方式如下:
遍历任务的列表,筛选已结束出任务的最大值或已结束任务的平均值,设此值为OverTime;
计算异常假性吊死的任务阀值:MaxOverTime=OverTime*K;
遍历当前正在执行的任务:如果(currentTime-startTime)>MaxOverTime。立即切换任务至其它节点;
为防止时间特别小的任务,对任务执行异常检测的干扰。任务开始Span时长之后,才开始检测。Span为可配置的时长。
任务的执行:
TaskWorker为一个通用的任务执行引擎。用户提交任务的时候,需要指明数据资源的存储的位置,依赖哪些软件,TaskWorker该执行什么样的程序,需要按照本专利的模板上传。可以是脚本,也可以是一个可执行的二进制的程序。用户任务的执行逻辑由用户自己控制。
设备的注册及性能验证:
新的裸金属设备上需要安装EdgeAgent当有新的边缘物理设备注册加入时,EdgeCloud标识该设备源为待验证设备。
EdgeCloud向该待验证设备下发设备配置检验及BenchMark程序的地址。该设备上的EdgeAgent下载该程序,并自动运行该程,上报设备配置信息及设备的跑分结果。
EdgeCloud根据该设备的位置、配置及BenchMark的跑分结果,结合设备的编组的规则,将该批设备自动编组,并加入资源池。若设备的配置以及BenchMark的跑分不满足设备编组的要求时,拒绝该边缘裸金属设备加入边缘计算网络。
待设备验证通过之后,EdgeCloud给边缘设备分配相应的登录验证的私钥,EdgeCloud保留该私钥对应的公钥。EdgeCloud用私钥签名登录EdgeCloud,EdgeCloud对登录的设备的消息进行签名认证。
与云计算中心的资源调用:
云计算中心的资源,相对于分散在全球各地的中小idc裸金属设备资源来说,可靠性相对较高,但也意味着价格昂贵。在本发明中,第三方提供的云计算的计算资源,也视为一个边缘资源组,该资源组标识了可以使用的资源类型,可以提供的资源的数量。使用云计算中心的资源对于本系统的意义,在于云计算的中心资源对于本系统的一个补充,本系统根据用户的业务诉求,在第三方云计算系统中提前预置好镜像,并在发明的系统EdgeCloud中预置好镜像的编号、调用接口的地址、定义符合第三方要求的资源编排模板。
图2为本发明实施例二中的一种异构环境下基于边缘计算的资源调度方法,实施例二是基于实施例一的改进方案,包括如下步骤:
S1、用户通过客户端(该客户端可以为浏览器,也可以为一个App程序)向EdgeCloud提交任务及该任务所需要的数据,EdgeCloud识别用户所在的区域,网络运营商,计算用户所需要的资源的满足区域;分配离用户最近的资源组的存储给用户;用户数据传输完毕后,获得唯一的hash,该hash值可以作为数据的索引,也可以用来检验数据的惟一性;用户在客户端创建任务时,需要指明用到的数据、希望TaskWorker执行的程序、希望用使用的资源类型,在EdgeCloud判断用户提交的任务合法性及依赖的数据的完整性后,生成唯一的任务编号;
S2、ServiceManage识别任务,并交由能处理该任务的ServicePlugin根据提交任务的特性对该任务进行子任务的拆分((比如影视广告等特效制作的渲染,可以按帧拆分进行大规模的渲染;或深度学习里,有些数据可以分批小规模的计算,然后合并等)),且对有顺序要求的任务根据计算要求设置前后顺序,以便依次调度;
S3、SchedulerManager会根据任务数据所在资源组位置检索符合当前要求的TaskWorker,若有TaskWorker在线则直接发送任务;若无空闲在线TaskWorker,SchedulerManager向EdgeAgent发送设备虚拟机或容器创建指令,EdgeAgent返回唯一的实例id信息;
S4、虚拟机或容器启动后会自动执行TaskWorker登录系统并私钥签名;TaskWroker登录时携带以下信息:(1)携带物理机在EdgeCloud上的唯一编号,(2)TaskWorker编号,(3)实例id,(4)可以执行的任务。EdgeCloud通过TaskWorker登录的信息,识别TaskWorker的身份;
S5、在SchedulerManager检测到有符合要求的TaskWorker处于空闲状态时,会对其进行任务分配,ServiceManager会通过ApiServer将任务相关内容发送给TaskWorker,且将该TaskWorker标记为忙时状态;
S6、TaskWorker接受任务后,根据指定对目标程序所在路径进行查找,并立即执行用户程序及任务,且定时上报状态;
S7、EdgeCloud在记录任务状态时,通过计费策略开启计费;
S8、在任务结束时,EdgeCloud自动计算执行任务所需时长,并检索该任务的兄弟任务,且在存在兄弟任务时将该兄弟任务进行任务下发;且在执行任务时将失败任务节点标记为异常节点;
S9、为避免大批量任务的无效执行,可以首先下发一个或多个探测任务至TaskWorker,当任务执行成功后,再批量发送任务至其它TaskWorker进行调度;
S10、当上传数据所在的第一满足要求资源组没有更多的设备供计算任务使用时,则筛选资源池中离第一满足求最近的资源组B来承担任务;与此同时下发一探测任务至资源组B,资源组B接到任务后,开始下载数据,待数据下载完后,EdgeCloud开始下发创建虚拟机或容器的指令,待资源组B上的满足要求的TaskWorker有空闲的后,开始分配其它的兄弟任务至资源组B上的TaskWorker;当有超大型任务时,以此类推,直到资源池中的设备全部占满。
在利用本发明的资源调度方法进行数据任务处理过程中,还需要补充的是,在实际实施过程中,存储的读写性能会受限于存储的读写速度和带宽的性能,因此一个存储系统对应的计算节点有一定规模上限,但当遇到超大规模任务时,需要多个资源组协同工作。此时调度过程如下:
SchedulerManager识别没有单个资源组能够满足任务,从资源池中,寻找离该资源组最近的资源组B。并寻找资源组B中是否有满足要求的TaskWorker,若没有满足的TaskWorker,则向该资源组下发创建虚拟机或容器的指令。待TaskWorker运行后,向该TaskWorker下发任务。TaskWorker识别本资源组是否有资源,若无所需要的资源,则根据命令中的资源的位置,去下载资源,并执行下载指令,同时报告EdgeCloud正在下载数据,EdgeCloud根据报告,不再向该资源组发送任务。
当数据下载完毕后,更新任务状态为执行,并上报。此时EdgeAgent可以向该资源组发送任务执行指令。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征“上”或“下”可以是第一特征和第二特征直接接触,或第一特征和第二特征通过中间媒介间接接触。
而且,第一特征在第二特征“之上”、“上方”和“上面”可以是第一特征在第二特征正上方或斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征“之下”、“下方”和“下面”可以是第一特征在第二特征正下方或斜下方,或仅仅表示第一特征水平高度低于第二特征。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”或“一些示例”等的描述,意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任意一个或者多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (4)
1.一种异构环境下基于边缘计算的资源调度系统,其特征在于,包括用于负责任务分析、调度、资源管理及编排的边缘云EdgeCloud、用于根据EdgeCloud的指令进行计算所需要资源的的创建和销毁并监控本机的资源负载的边缘代理EdgeAgent、用于执行EdgeCloud分配的计算任务的任务执行引擎TaskWorker以及用于客户端的数据上传或下载的传输服务模块TransServer;
所述EdgeCloud包括调度管理器SchedulerManager、资源管理器ResourceManger、应用服务器ServiceManager、Api服务器ApiServer、存储管理器StoreManager和服务插件ServicePlugin;
所述SchedulerManager,用于根据用户所处的位置,将用户数据上传至离用户最近的计算资源,尽可能快的执行任务,根据资源池的编排及负载情况,以及调度策略,进行任务的调度;
所述ResourceManger,用于负责所有与资源有关的一切操作,且负责资源编排的虚拟机或容器的创建、删除、启动以及停止工作;
所述ServiceManager,用于对各类ServicePlugin的编排,根据用户提交的任务,选择适当的ServicePlugin进行任务的处理;
所述ApiServer,用于将EdgeCloud与边缘侧的EdgeAgent以及TaskWorker进行通信;
所述StoreManager,用于对用户可以使用的存储空间计算、存储空间资源编排以及用户数据目录编排与呈现;
所述ServicePlugin,用于负责对用户提交的任务进行任务的解析、组包;
所述EdgeAgent的部署情形包括通过接收EdgeCloud指令调用Api接口进行虚拟机或容器的资源指令部署、通过EdgeCloud控制对独立祼金属设备指令部署以及对物理机资源使用情况进行监控;
用户通过客户端向EdgeCloud提交任务及该任务所需要的数据,EdgeCloud识别用户所在的区域,网络运营商,计算用户所需要的资源的满足区域;分配离用户最近的资源组的存储给用户;用户数据传输完毕后, 获得唯一的hash,该hash值作为数据的索引,以及用来检验数据的唯一性;用户在客户端创建任务时,需要指明用到的数据、希望TaskWorker执行的程序、希望用使用的资源类型,在EdgeCloud判断用户提交的任务合法性及依赖的数据的完整性后,生成唯一的任务编号;
ServiceManager识别任务,并交由能处理该任务的ServicePlugin根据提交任务的特性对该任务进行子任务的拆分,且对有顺序要求的任务根据计算要求设置前后顺序,以便依次调度;
SchedulerManager会根据任务数据所在资源组位置检索符合当前要求的TaskWorker,若在TaskWorker在线则直接发送任务;若无空闲在线TaskWorker,SchedulerManager向EdgeAgent发送设备虚拟机或容器创建指令,EdgeAgent返回唯一的实例id信息;
虚拟机或容器启动后会自动执行TaskWorker登录系统并私钥签名;TaskWroker登录时携带以下信息:(1)携带物理机在EdgeCloud上的唯一编号,(2)TaskWorker编号,(3)实例id,(4)可以执行的任务;EdgeCloud通过TaskWorker登录的信息,识别TaskWorker的身份;
在SchedulerManager检测到有符合要求的TaskWorker处于空闲状态时,会对其进行任务分配,ServiceManager会通过ApiServer将任务相关内容发送给TaskWorker,且将该TaskWorker标记为忙时状态;
TaskWorker接受任务后,根据指定对目标程序所在路径进行查找,并立即执行用户程序及任务,且定时上报状态;
EdgeCloud在记录任务状态时,通过计费策略开启计费;
在任务结束时,EdgeCloud自动计算执行任务所需时长,并检索该任务的兄弟任务,且在存在兄弟任务时将该兄弟任务进行任务下发;且在执行任务时将失败任务节点标记为异常节点;
为避免大批量任务的无效执行,可以首先下发一个或多个探测任务至TaskWorker,当任务执行成功后,再批量发送任务至其它TaskWorker进行调度;
当上传数据所在的第一满足要求资源组没有更多的设备供计算任务使用时,则筛选资源池中离第一满足求最近的资源组B来承担任务;与此同时下发一探测任务至资源组B,资源组B接到任务后,开始下载数据,待数据下载完后,EdgeCloud开始下发创建虚拟机或容器的指令,待资源组B上的满足要求的TaskWorker有空闲的后,开始分配其它的兄弟任务至资源组B上的TaskWorker;当有超大型任务时,以此类推,直到资源池中的设备全部占满。
2.根据权利要求1所述的一种异构环境下基于边缘计算的资源调度系统,其特征在于,所述ResourceManger的管理目标包括设备的管理、TaskWorker的管理、资源的编排。
3.根据权利要求1所述的一种异构环境下基于边缘计算的资源调度系统,其特征在于,所述传输服务模块的使用场景包括用于用户提交海量计算数据至本系统、边缘侧下载镜像用于虚拟机或容器的创建、海量计算数据在本系统内部根据协同计算的需要进行跨边缘的传递。
4.一种异构环境下基于边缘计算的资源调度方法,其特征在于,包括如下步骤:
S1、用户通过客户端向EdgeCloud提交任务及该任务所需要的数据,EdgeCloud识别用户所在的区域,网络运营商,计算用户所需要的资源的满足区域;分配离用户最近的资源组的存储给用户;用户数据传输完毕后, 获得唯一的hash,该hash值作为数据的索引,以及用来检验数据的唯一性;用户在客户端创建任务时,需要指明用到的数据、希望TaskWorker执行的程序、希望用使用的资源类型,在EdgeCloud判断用户提交的任务合法性及依赖的数据的完整性后,生成唯一的任务编号;
S2、ServiceManager识别任务,并交由能处理该任务的ServicePlugin根据提交任务的特性对该任务进行子任务的拆分,且对有顺序要求的任务根据计算要求设置前后顺序,以便依次调度;
S3、SchedulerManager会根据任务数据所在资源组位置检索符合当前要求的TaskWorker,若在TaskWorker在线则直接发送任务;若无空闲在线TaskWorker,SchedulerManager向EdgeAgent发送设备虚拟机或容器创建指令,EdgeAgent返回唯一的实例id信息;
S4、虚拟机或容器启动后会自动执行TaskWorker登录系统并私钥签名;TaskWroker登录时携带以下信息:(1)携带物理机在EdgeCloud上的唯一编号,(2)TaskWorker编号,(3)实例id,(4)可以执行的任务;EdgeCloud通过TaskWorker登录的信息,识别TaskWorker的身份;
S5、在SchedulerManager检测到有符合要求的TaskWorker处于空闲状态时,会对其进行任务分配,ServiceManager会通过ApiServer将任务相关内容发送给TaskWorker,且将该TaskWorker标记为忙时状态;
S6、TaskWorker接受任务后,根据指定对目标程序所在路径进行查找,并立即执行用户程序及任务,且定时上报状态;
S7、EdgeCloud在记录任务状态时,通过计费策略开启计费;
S8、在任务结束时,EdgeCloud自动计算执行任务所需时长,并检索该任务的兄弟任务,且在存在兄弟任务时将该兄弟任务进行任务下发;且在执行任务时将失败任务节点标记为异常节点;
S9、为避免大批量任务的无效执行,可以首先下发一个或多个探测任务至TaskWorker,当任务执行成功后,再批量发送任务至其它TaskWorker进行调度;
S10、当上传数据所在的第一满足要求资源组没有更多的设备供计算任务使用时,则筛选资源池中离第一满足求最近的资源组B来承担任务;与此同时下发一探测任务至资源组B,资源组B接到任务后,开始下载数据,待数据下载完后,EdgeCloud开始下发创建虚拟机或容器的指令,待资源组B上的满足要求的TaskWorker有空闲的后,开始分配其它的兄弟任务至资源组B上的TaskWorker;当有超大型任务时,以此类推,直到资源池中的设备全部占满。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010710157.9A CN111858054B (zh) | 2020-07-22 | 2020-07-22 | 一种异构环境下基于边缘计算的资源调度系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010710157.9A CN111858054B (zh) | 2020-07-22 | 2020-07-22 | 一种异构环境下基于边缘计算的资源调度系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111858054A CN111858054A (zh) | 2020-10-30 |
CN111858054B true CN111858054B (zh) | 2023-03-10 |
Family
ID=73001495
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010710157.9A Active CN111858054B (zh) | 2020-07-22 | 2020-07-22 | 一种异构环境下基于边缘计算的资源调度系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111858054B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114513506A (zh) * | 2020-11-17 | 2022-05-17 | 中国联合网络通信集团有限公司 | 业务处理方法、接入边缘云服务器及业务处理系统 |
CN112511652B (zh) * | 2021-02-03 | 2021-04-30 | 电子科技大学 | 一种边缘计算下的合作计算任务分配方法 |
CN113032141B (zh) * | 2021-02-10 | 2022-09-20 | 山东英信计算机技术有限公司 | 一种ai平台资源切换方法、系统及介质 |
US11954524B2 (en) | 2021-05-26 | 2024-04-09 | International Business Machines Corporation | Compliance aware application scheduling |
CN113760541B (zh) * | 2021-07-29 | 2023-06-30 | 国网河南省电力公司信息通信公司 | 边缘资源分配的方法及装置 |
CN114500530B (zh) * | 2021-12-31 | 2023-12-08 | 北方信息控制研究院集团有限公司 | 一种民用边缘信息系统自动调整方法 |
CN114389955B (zh) * | 2022-03-02 | 2023-08-15 | 中国电子科技集团公司第十四研究所 | 嵌入式平台异构资源池化管理方法 |
CN115080201B (zh) * | 2022-05-07 | 2024-05-14 | 北京控制工程研究所 | 一种面向应急任务的高可靠卫星自主任务规划方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461740A (zh) * | 2014-12-12 | 2015-03-25 | 国家电网公司 | 一种跨域集群计算资源聚合和分配的方法 |
CN109491790A (zh) * | 2018-11-02 | 2019-03-19 | 中山大学 | 基于容器的工业物联网边缘计算资源分配方法及系统 |
CN110532078A (zh) * | 2019-08-29 | 2019-12-03 | 中国科学院软件研究所 | 一种边缘计算调度优化方法及系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10652313B2 (en) * | 2015-11-08 | 2020-05-12 | Vmware, Inc. | Deploying an application in a hybrid cloud computing environment |
US10938736B2 (en) * | 2017-10-18 | 2021-03-02 | Futurewei Technologies, Inc. | Dynamic allocation of edge computing resources in edge computing centers |
-
2020
- 2020-07-22 CN CN202010710157.9A patent/CN111858054B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461740A (zh) * | 2014-12-12 | 2015-03-25 | 国家电网公司 | 一种跨域集群计算资源聚合和分配的方法 |
CN109491790A (zh) * | 2018-11-02 | 2019-03-19 | 中山大学 | 基于容器的工业物联网边缘计算资源分配方法及系统 |
CN110532078A (zh) * | 2019-08-29 | 2019-12-03 | 中国科学院软件研究所 | 一种边缘计算调度优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111858054A (zh) | 2020-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111858054B (zh) | 一种异构环境下基于边缘计算的资源调度系统及方法 | |
US11169839B2 (en) | Management of IoT devices in a virtualized network | |
US11588675B2 (en) | Systems and methods for selectively implementing services on virtual machines and containers | |
CN108737270B (zh) | 一种服务器集群的资源管理方法和装置 | |
CN109729143B (zh) | 在终端设备上部署基于网络的云平台 | |
EP3800926B1 (en) | Alarm method and device | |
US20200162345A1 (en) | Method, system and options for multi-operator service life cycle management | |
US6993763B2 (en) | Technique for scheduling execution of jobs for or by network-connected devices | |
US10698741B2 (en) | Resource allocation method for VNF and apparatus | |
US20220086044A1 (en) | Analyzing and configuring workload distribution in slice-based networks to optimize network performance | |
CN109358967B (zh) | 一种me平台app实例化迁移方法及服务器 | |
US20140237373A1 (en) | Method of provisioning a cloud-based render farm | |
CN110333939B (zh) | 任务混合调度方法、装置、调度服务器及资源服务器 | |
EP3402123B1 (en) | Method and apparatus for transmitting request message | |
CN112187864A (zh) | 负载均衡方法、装置、存储介质及电子设备 | |
CN106911741B (zh) | 一种虚拟化网管文件下载负载均衡的方法及网管服务器 | |
CN112231223A (zh) | 基于mqtt的分布式自动化软件测试方法及系统 | |
CN111245634B (zh) | 一种虚拟化管理方法及装置 | |
CN112087311B (zh) | 一种虚拟网络功能vnf部署方法及装置 | |
CN111522664A (zh) | 基于分布式服务的服务资源管控方法及装置 | |
CN113535402A (zh) | 基于5g mec的负载均衡处理方法、装置及电子设备 | |
CN114721827A (zh) | 一种数据处理方法及装置 | |
US20230246911A1 (en) | Control device, control method, control program and control system | |
CN114745377A (zh) | 边缘云集群服务系统及实现方法 | |
CN115883283A (zh) | 一种容器化vnf的部署方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |