CN115811549B - 支持混合异构运行时的云边资源管理调度方法及系统 - Google Patents
支持混合异构运行时的云边资源管理调度方法及系统 Download PDFInfo
- Publication number
- CN115811549B CN115811549B CN202310080136.7A CN202310080136A CN115811549B CN 115811549 B CN115811549 B CN 115811549B CN 202310080136 A CN202310080136 A CN 202310080136A CN 115811549 B CN115811549 B CN 115811549B
- Authority
- CN
- China
- Prior art keywords
- computing
- nodes
- node
- runtime
- working
- 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
-
- 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
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种支持混合异构运行时的云边资源管理调度方法及系统,通过将计算节点划分为若干个计算区域,每个计算区域中使用多个管理节点管理计算节点资源池以增强各个计算区域的资源管理和调度的容错能力,在管理节点中选出领导者节点以统一管理计算区域所有工作节点的状态、管理计算任务以及分配计算任务,在工作节点上根据计算任务按需安装和运行用于完成计算任务的运行时和运行时驱动,并与管理节点交互。与现有技术相比,通过运行时驱动提供与运行时交互的标准接口,能够支持多种异构运行时,支持不同运行时运行的计算任务的混合部署,可扩展性强,实现了稳定、高效的异构运行时云边资源管理和调度。
Description
技术领域
本发明涉及云计算和边缘计算技术领域,尤其涉及的是一种支持混合异构运行时的云边资源管理调度方法及系统。
背景技术
云计算和边缘计算资源一体化供给是数字化发展的主要趋势之一。运行时指计算机程序运行的时候所需要的一切代码库、框架、平台等。运行时实现了单节点计算资源的运行抽象,它是云边资源一体化管理的基础。运行时种类繁多,包括物理进程、轻量虚拟机、容器、编程语言虚拟机和WASM运行时等,它们的安全性、效率和一致性各不相同。
由于在各个行业推进数字化转型的过程中,不同的应用场景对运行时的要求存在较大的差异,应用的开发技术栈也各不相同。因此,要求云边资源管理系统能够同时在云侧和边缘运行多个异构运行时。
而现有的云边资源管理系统,往往是以单一类型运行时为出发点设计和实现整个系统。如果想添加新运行时支持,需要改动大量的代码,耗时费力,可扩展性不好;并且实现的多类型运行时支持经常存在较大差异,系统不稳定、容易出故障。
因此,现有技术有待改进和提高。
发明内容
本发明的主要目的在于提供一种支持混合异构运行时的云边资源管理调度方法及系统,旨在解决现有的云边资源管理系统可扩展性不好、系统不稳定、容易出故障的问题。
为了实现上述目的,本发明第一方面提供一种支持混合异构运行时的云边资源管理调度系统,包括:
若干个计算区域,每个计算区域中设有若干管理节点和若干工作节点;
所述管理节点上设有管理组件和调度器,所述管理组件用于接收用户提交的计算任务和获取工作节点的状态,所述调度器用于根据调度策略生成计算任务对应的分配规划;
所有的所述管理节点被配置为一个领导者节点和若干跟随者节点,所述领导者节点用于管理计算区域内所有工作节点的状态、管理计算任务以及分配计算任务;所述领导者节点与所述跟随者节点之间还设有用于同步计算区域内所有工作节点的状态的同步机制;
所述工作节点上设有工作代理,所述工作节点用于运行用于完成所述计算任务的运行时和运行时驱动,并监控运行时的运行状态、向所述管理节点发送执行进度和执行结果,所述运行时驱动用于提供标准化接口以实现所述工作代理与所述运行时之间的交互。
可选的,所述计算区域的所有工作节点被配置为若干个群组,每个群组包含若干个所述工作节点。
可选的,所述领导者节点上还设有任务队列和规划队列,所述任务队列用于管理用户提交的计算任务,所述规划队列用于管理计算任务对应的分配规划。
可选的,所述运行时驱动与所述工作代理之间设有双向通道以支持请求响应式通信和数据流式通信。
可选的,所述运行时驱动是基于本地网络远程过程调用机制实现的,所述运行时驱动为所述工作节点上的独立进程。
可选的,所述调度器包括:用于指定所有工作节点运行系统服务的调度器、用于指定所有工作节点运行系统批处理任务的调度器、按照条件选择最佳工作节点运行指定服务的调度器和按照条件选择合适工作节点运行指定批处理任务的调度器。
本发明第二方面提供一种支持混合异构运行时的云边资源管理调度方法,其中,上述方法包括:
将云边一体计算资源池划分为若干个计算区域以使得同一个计算区域的计算节点之间为低延迟高速网络;
在每个计算区域的计算节点中选出若干个管理节点并将其余计算节点设为工作节点;
根据共识协议将所有的所述管理节点划分为一个领导者节点和若干跟随者节点,所述领导者节点用于管理计算区域所有工作节点的状态并同步至所述跟随者节点;
获取用户提交的计算任务并将所述计算任务发送至所述领导者节点的任务队列;
在所述领导者节点和所述跟随者节点上运行调度器;
从所述领导者节点的任务队列中依次取出计算任务并发送至任一所述调度器以根据调度策略生成分配规划,并将所述分配规划发送至所述领导者节点的规划队列;
将所述任务队列中的计算任务发送至根据该计算任务对应的分配规划确定的工作节点;
根据所述计算任务在所述工作节点上安装并运行用于完成所述计算任务的运行时和运行时驱动,并监控运行状态、向所述管理节点发送执行进度和执行结果;所述运行时驱动用于提供标准化接口以与所述运行时交互,所述运行时驱动运行在完全独立的进程。
可选的,在所述工作节点上发送心跳信号至所述管理节点以获取工作节点的状态;
将所有工作节点的状态改变消息发送至所述领导者节点以获得所述计算区域内所有工作节点的状态;
在所述领导者节点与所述跟随者节点之间同步所述计算区域内所有工作节点的状态。
可选的,所述在所述工作节点上发送心跳信号至所述管理节点以获取工作节点的状态,包括:
将所述工作节点划分为若干个群组,所述群组内所有工作节点同时向所述管理节点发送心跳信号。
可选的,所述工作节点上设有工作代理,还包括:
在所述运行时驱动与所述工作代理之间建立双向通道;
所述工作代理调用所述运行时驱动提供的标准化接口函数与所述运行时交互。
由上可见,本发明通过将计算节点划分为若干个计算区域,每个计算区域中使用多个管理节点管理计算节点资源池以增强各个计算区域的资源管理和调度的容错能力,在管理节点中选出领导者节点以统一管理计算区域所有工作节点的状态、管理计算任务以及分配计算任务,在工作节点上根据计算任务按需安装和运行用于完成计算任务的运行时和运行时驱动,并与管理节点交互。与现有技术相比,通过运行时驱动提供与运行时交互的标准接口,能够支持多种异构运行时,支持不同运行时运行的计算任务的混合部署,可扩展性强,实现了稳定、高效的异构运行时云边资源管理和调度。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的云边一体资源池示意图;
图2为本发明实施例提供的支持混合异构运行时的云边资源管理调度系统架构示意图;
图3为图2实施例的任务管理流程示意图;
图4为图2实施例的工作节点启动运行时驱动示意图;
图5是图2实施例的工作节点的工作代理与运行时驱动的RPC交互示意图;
图6是图2实施例中对计算任务的管理操作示意图;
图7是本发明实施例提供的支持混合异构运行时的云边资源管理调度方法的流程示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本发明实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况下,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当…时”或“一旦”或“响应于确定”或“响应于检测到”。类似的,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述的条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是本发明还可以采用其它不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似推广,因此本发明不受下面公开的具体实施例的限制。
云计算和边缘计算资源一体化供给是数字化发展的主要趋势之一。目前主流运行时包括下列类型:(1)单节点操作系统实现的物理进程;(2)基于硬件虚拟化技术实现的轻量虚拟机,如AWS Firecracker、Google Visor和OpenStack Kata容器等;(3)基于操作系统虚拟化技术实现的容器;(4)编程语言虚拟机,包括Java语言虚拟机(JVM)、Microsoft .net框架的通用语言运行时(CLR)和支持多种编程语言的GraalVM虚拟机等;(5)与编程语言无关的WebAssembly(WASM) 运行时。
由于各种运行时的安全性、效率和一致性各不相同,现有的云边资源管理系统往往以单一类型运行时为出发点设计和实现整个系统。如果想添加新运行时支持,需要改动大量的代码,耗时费力,可扩展性差,并且实现的多类型运行时支持经常存在较大差异,资源管理系统的稳定性和一致性较差。而随着各个行业的数字化转型,又要求云边资源管理系统能够同时在云侧和边缘运行多个异构运行时。
针对上述技术问题,本发明提出了一种支持混合异构运行时的云边资源管理调度方法及系统,采用标准化的运行时驱动,开发者使用任何常见的编程语言,实现规定的标准接口函数,就可以为云边资源管理系统添加新运行时的支持,一致性好,扩展性强。运行时驱动和云边资源管理系统自带组件运行在不同进程。运行时驱动进程崩溃并不会影响云边资源管理系统的正常运行,系统稳定性好。
实施例
本发明实施例提供一种支持混合异构运行时的云边资源管理调度系统,应用于包含各种类型计算节点的云边一体计算资源池,如自建数据中心、私有云、公有云或者边缘侧的计算节点,该计算节点可以为物理机,也可以为虚拟机。图1示例性地展示了本实施例的云边一体计算资源池。本调度系统中包括一个或多个计算区域,每个计算区域包括若干个计算节点。将计算节点划分至计算区域的规则可以根据各个计算节点之间的网络通信连接而定,如果是数据中心的节点,各计算节点之间的网络延迟不应该超过10毫秒;如果是边缘节点,网络通信连接的延迟可适当放宽。每个计算区域也可以包含来自多个数据中心的计算节点,只要上述数据中心的地理位置较近,彼此之间通过低延迟的高速网络通信连接。各个计算区域之间为松散耦合关系,即各个计算区域的资源管理和计算任务管理是完全独立的。
根据计算节点的性能,将每个计算区域内的计算节点进一步分类为管理节点和工作节点。如选定3个或者5个计算节点作为管理节点,其余的计算节点为工作节点。管理节点需选择高性能节点,每个管理节点的 CPU 最少有2核或4核,最好有8核或16核;内存至少有8GB或16GB,最好有32GB或64GB;磁盘容量超过100GB,保证读写性能,推荐使用固态硬盘。并且由于管理节点之间以及管理节点与工作节点之间的通信较为频繁且要求低延迟,因此优选管理节点之间通过高速网络连接,管理节点之间的网络延迟不超过10毫秒。工作节点的配置不做限制,具体配置可以参考运行时本身以及运行计算负载的资源需求确定。
每个管理节点上均安装并运行有管理组件和调度器,管理组件可以接收用户提交的计算任务和获取与管理节点相连接的工作节点的状态(包括工作节点是否有效、工作节点上的资源状态等);调度器可以根据调度策略生成计算任务对应的分配规划。
为了提高系统的容错性,如图2所示,本实施例将属于同一个计算区域的所有管理节点共同组成一个共识群组,负责管理本区域所有的工作节点形成的计算资源,为用户提交的计算任务调度和分配合适的工作节点资源。共识群组内采用Raft共识协议实现在共识群体内选出领导者节点和进行状态复制,即在共识群组内选出一个领导者节点和若干跟随者节点。
其中,领导者节点用于集中管理计算区域内所有工作节点的状态、管理计算任务以及分配计算任务,即所有的工作节点的状态改变消息和计算任务请求,由领导者节点统一处理。跟随者节点获得的工作节点的状态改变消息需发送至领导者节点进行统一处理从而获得整个计算区域内所有工作节点的状态。领导者节点与跟随者节点之间设有同步机制,能够将领导者节点上保存的计算区域所有工作节点的状态同步至跟随者节点。需要说明的是,领导者节点和跟随者节点都可以读取与各自相连接的工作节点的状态。
领导者节点上设有用于管理计算任务的任务队列和用于管理分配规划的规划队列。对计算任务进行管理时,所有计算任务请求进入到领导者节点的任务队列。然后领导者节点从任务队列中依次取出一个个计算任务,分配给运行在领导者节点或者跟随者节点上的调度器,所有管理节点的调度器并发执行,按照调度策略生成计算任务的分配规划,送入领导者节点的规划队列。领导者节点按照“先进先出”原则从规划队列取出一个计算任务的分配规划,检查该分配规划是否仍然可执行。如果可执行,则通知相应工作节点的工作代理执行计算任务;如果已经不可行,则将该分配规划退回给原先的调度器,由它修改甚至重新规划。
优选地,调度器生成的分配规划送入领导者节点的规划队列中时,将优先级高的计算任务对应的分配规划排在队列前面;相同优先级的任务,先入规划队列的任务排在前面。
通过在每个计算区域选择多个管理节点组成共识群组,本实施例的管理调度系统能够容忍1个或者2个管理节点意外失效,从而提高了系统的容错性,实现高可用性。例如:当一个计算区域包含5个物理管理节点时,整个系统能够容忍2个管理节点的意外失效。优选在同一个计算区域中设置3个或5个管理节点,因为根据Raft共识协议的特点,同一个共识群体的节点总数必须是奇数。如果节点总数过多,系统达成共识的通信成本高,影响系统性能表现。
产生计算任务需求通常包括两种情况:一、用户通过图形化门户、命令行工具或者调用API,提交了新建、修改或者删除计算任务的请求;二、某一个工作节点完全失效,云边资源管理系统必须将运行在该节点的计算任务迁移到其他合适的工作节点上执行。
本实施例中设有交互组件,该交互组件为用户访问云边资源管理系统的图形化门户,用于完成资源池管理、提交和执行计算任务等工作。可选的,用户也可以使用命令行工具批处理完成任务,还可以调用管理组件的应用编程接口(Application ProgrammingInterface,API)编写适合个性化需求的任务提交程序。
在每一个计算任务中均包括调度配置和运行配置,其中,调度配置用于指定调度器类型和调度约束条件等,运行配置用于指定运行任务的运行时及其配置。
根据调度器的功能不同,领导者节点、跟随者节点中运行的调度器主要包括四类:用于指定所有工作节点运行系统服务的调度器、用于指定所有工作节点运行系统批处理任务的调度器、按照条件选择最佳工作节点运行指定服务的调度器和按照条件选择合适工作节点运行指定批处理任务的调度器。前两类调度器执行时直接通知所有工作节点执行任务;后两类调度器执行时分为筛选和排序两步:先运行指定服务的调度器从所有正常工作节点中筛选出满足约束条件的候选工作节点集合或者运行指定批处理任务的调度器从部分正常工作节点中尽快筛选出满足约束条件的候选工作节点集合;然后,依次计算每一个候选工作节点的适合度,选择适合度高的工作节点执行任务。任务调度时采用装箱(binpacking)策略,即用最佳匹配(best fit)V3算法计算任务 j与节点i的适合度:score(I,j) = 10^(1 - 任务j所需的内存/节点i的总内存) + 10^(1 – 任务j所需的CPU/节点i的总CPU)。通过采用最佳匹配(best fit)V3算法可以将任务分配到可用资源最少的工作节点上,显著地提高计算资源池的吞吐量。
如图3所示,调度分配的具体过程为:领导者节点从任务队列中依次取出一个计算任务,分配给符合类型要求的调度器,根据调度器生成任务分配规划将计算任务分配至对应的工作节点上。工作节点接受本计算区域管理节点分配的计算任务,按需安装和运行计算任务的运行时及其驱动,执行任务并监控运行状态,向管理节点汇报发送执行进度和执行结果。
每一个工作节点上安装并运行有工作代理和用于完成计算任务的运行时和运行时驱动,其中,工作代理用于向管理节点的管理组件汇报可用的资源及属性;接受并执行管理节点的管理组件下达的计算任务;运行时驱动是工作代理与运行时之间的标准化互操作接口,通过该标准化接口实现工作代理与运行时之间的交互,运行时是实际执行计算任务的组件,一般是常用的开源或者商业化软件,如Docker容器引擎或者OpenJDK虚拟机等。
如图4所示,工作节点接收到管理节点分配的计算任务后,在执行被分配的任务之前,首先检查是否已经启动指定的运行时驱动。如果没有启动,检查该工作节点上是否安装了该运行时驱动。检查运行时驱动的位置包括当前用户的主目录、当前工作目录以及指定的系统目录。如果安装了运行时驱动,则启动该运行时驱动进程,否则工作代理向领导者节点汇报执行任务出错。运行时驱动运行时,工作代理将计算任务定义中包含的运行时配置交给运行时驱动,运行时驱动再提交给运行时执行。运行时监控任务的运行状态,并反馈给工作代理,再由工作代理定期提交给领导者管点。
如图5所示,运行时驱动是基于本地网络远程过程调用机制(Remote ProcedureCall, RPC)实现的,运行时驱动和工作代理是完全独立的两个进程。运行时驱动进程的意外崩溃并不会影响工作代理的正常工作。具体地,工作代理启动运行时驱动的过程为:运行时驱动在安装时会告知工作代理该运行时驱动使用 JSON Schema 定义的配置大纲;工作代理验证运行时驱动的配置合法后启动运行时驱动;运行时驱动实现了一个监听本地网址的服务,并在标准化输出 stdout 中打印出来。该服务首选是监听 Unix Domain Socket,也可以选择监听 TCP 协议的本地网址 localhost,重要的是不开放远程网络接口,以保证网络安全;工作代理与运行时驱动建立双向的 RPC 连接,工作代理能够调用运行时驱动提供的标准化接口函数,接收返回的函数调用结果。
进一步地,为了支持数据流式接口函数,工作代理和运行时驱动建立辅助的 TCP连接或者创建并行的多个 RPC 连接实现数据流传输。能够避免连接过多引起的操作系统资源不足的问题,实现了所有连接的多路复用。
当工作代理和运行时驱动建立双向 RPC 连接后,意味着工作代理可以直接调用与运行时交互相关的标准接口函数。首先工作代理查询该运行时的能力以及它支持的计算任务配置大纲。运行时的能力主要包括:信号处理支持、执行命令支持、文件系统隔离、网络隔离、网络初始化、存储卷加载等。工作代理根据收到的计算任务配置大纲,校验用户提交的计算任务请求中的运行配置是否合法。验证配置无误后,计算任务才会提交给运行时实际执行。如图6所示,运行时驱动实现了管理计算任务实例的标准操作,包括计算任务实例的启动、暂停、恢复和销毁。其他常见的操作还有主动查看运行实例的详细状态、运行实例定期返回的状态、向运行时实例发送操作系统信号(如SIGHUP和SIGKILL等)、处理运行时实例触发的事件等。
运行时驱动与工作代理建立双向通道后,工作代理就可以调用标准化接口函数,实现与运行时的交互,能够支持请求响应式通信和数据流式通信。标准接口具体包括查询运行时的能力及其支持的计算任务配置大纲,管理计算任务实例,如计算任务实例的启动、暂停、恢复和销毁等操作。
本实施例中,管理节点、工作节点上的各类组件(如管理组件、工作代理)主要使用Go编程语言开发,每个组件对应一个无其他依赖的二进制文件,占用内存资源也较低。
通常管理节点每秒钟能接受50个心跳信号,每个工作代理的心跳周期等于工作节点总个数除以50个/秒。例如,1000个工作节点的计算区域,每个节点发送心跳信号的周期是20秒。
为了避免大量工作节点同时向管理节点发送心跳信号,形成事实上的洪水攻击。在一个实施例中,按照一组50个工作节点的标准,将每个计算区域的所有工作节点分为多个群组。每个群组内的工作节点具有相同的心跳起始时间。即每个群组同时向管理节点发送心跳信号,表明自己工作正常。相邻群组之间的心跳时间间隔为1秒。可选的,当工作节点规模较小时,可以规定心跳周期至少为10秒。如果管理节点没有在心跳周内收到某个工作节点的心跳信号,则将该节点判定为疑似失效节点;如果在规定的时间间隔内,如24小时内,一直都没收到该节点的心跳信号,则将该节点列为失效状态,从资源池中移除,并且将在该节点上运行的计算任务迁移到其他工作节点上执行。心跳周期的默认取值等于本计算区域所有节点个数除以50,如果这个值低于10秒,则取值为10秒。
由上所述,本实施例通过使用多个管理节点管理云边一体的计算资源池,增强云边资源管理的容错能力,在管理节点中选出领导者节点以统一管理计算区域所有工作节点的状态、管理计算任务以及分配计算任务,在工作节点上根据计算任务按需安装和运行用于完成计算任务的运行时和运行时驱动,并与管理节点交互。通过运行时驱动提供与运行时交互的标准接口,从而能够支持多种异构运行时,支持不同运行时运行的计算任务的混合部署。实现了安全、高效和一致的异构运行时云边资源管理。
本实施例的云边资源管理系统的实施过程为:
首先选取三个计算节点作为管理节点,在每个管理节点上安装管理组件。任意选取一个管理节点,假设为节点1,运行其管理组件;接下来,在节点2和3上运行管理组件之前,首先要设置已有伙伴的网址,即管理节点1的 IP 地址。启动节点2和3的管理组件后,3个管理节点共同组成一个共识群体。
然后采用 Raft 共识协议实现共识群体的领导者选举和状态复制。假设管理节点2被选为领导者节点,管理节点1和3则属于跟随者节点。发往跟随者节点的API请求或者来自工作代理的消息,都会被转发给领导者节点,由领导者节点统一处理,并将计算区域整体的最新状态同步至跟随者节点。
然后在每个工作节点上安装工作代理。在启动工作代理之前,需要先指定所在计算区域的任意管理节点的网址。工作代理首次启动后,向指定的管理节点的管理组件报告当前工作节点的资源情况,包括硬件、操作系统和用户自定义三类资源。如果指定的管理节点不是领导者节点,则将上述信息转发给领导者管理节点。工作代理组件运行后将定期向管理组件发送心跳信号,接受领导者节点分配的计算任务,根据计算任务的需求安装并运行运行时驱动和运行时。工作代理将计算任务定义中包含的运行时配置交给运行时驱动,运行时驱动再提交给运行时执行,监控任务的运行状态,并反馈给工作代理,再由工作代理定期提交给领导者节点。
实施例
本发明实施例二提供一种支持混合异构运行时的云边资源管理调度方法。具体的,如图7所示,上述方法包括如下步骤:
步骤S100:将云边一体计算资源池划分为若干个计算区域以使得同一个计算区域的计算节点之间为低延迟高速网络;
具体地,将相互之间为低延迟高速网络的计算节点聚类,划分为同一个计算区域,从而将云边一体计算资源池划分为若干个计算区域。
步骤S200:在每个计算区域的计算节点中选出若干个管理节点并将其余计算节点设为工作节点;
具体地,管理节点的个数优选为3至5个。由于管理节点的通信量大且需要进行调度匹配,因此选择计算节点中硬件性能较好的计算节点作为管理节点。其余计算节点作为工作节点。
步骤S300:根据共识协议将所有的管理节点划分为一个领导者节点和若干跟随者节点,领导者节点用于管理计算区域所有工作节点的状态并同步至跟随者节点;
具体地,所有的管理节点形成共识群组,采用Raft共识协议实现在所有的共识群组中选出领导者节点和在共识群组内进行状态复制,即管理节点被划分为:一个领导者节点和若干跟随者节点。
其中,领导者节点用于管理计算区域内所有工作节点的状态、管理计算任务以及分配计算任务,即所有的工作节点的状态改变消息和计算任务请求,由领导者节点统一处理。跟随者节点获得的工作节点的状态改变消息需发送至领导者节点进行统一处理从而获得整个计算区域内所有工作节点的状态。领导者节点与跟随者节点之间设有同步机制,能够将领导者节点上保存的计算区域所有工作节点的状态同步至跟随者节点。
步骤S400:获取用户提交的计算任务并将计算任务发送至领导者节点的任务队列;
具体地,领导者节点的内存中设有任务队列,用来处理用户提交的计算任务。虽然用户也可以提交计算任务至跟随者节点,但是跟随者节点收到计算任务请求后随后转发至领导者节点以统一处理。
步骤S500:在领导者节点和跟随者节点上运行调度器;
步骤S600:从领导者节点的任务队列中依次取出计算任务并发送至任一调度器以根据调度策略生成分配规划,并将分配规划发送至领导者节点的规划队列;
具体地,在领导者节点和跟随者节点上都运行调度器,通过该调度器实现计算任务需求与工作节点的资源的匹配。虽然领导者节点和跟随者节点都可以对计算任务进行分配规划,但是跟随者节点生成对计算任务的分配规划后,需要将结果传送至领导者节点,在领导者节点上运行有规划队列,由该规划队列集中管理各个计算任务对应的分配规划,然后由领导者节点统一完成计算任务的调度分配。
步骤S700:将任务队列中的计算任务发送至根据该计算任务对应的分配规划确定的工作节点;
具体地,计算任务的调度分配时,从任务队列中取出计算任务,并在规划队列中查找到该计算任务对应的分配规划,然后根据分配规划确定具体的工作节点,将计算任务发送至这些工作节点。
步骤S800:根据计算任务在工作节点上安装并运行用于完成计算任务的运行时和运行时驱动,并监控运行状态、向管理节点发送执行进度和执行结果;所述运行时驱动用于提供标准化接口以与所述运行时交互,所述运行时驱动运行在完全独立的进程;
具体地,工作节点在接受到计算任务后,根据计算任务按需安装并运行用于完成计算任务的运行时和运行时驱动,其中,运行时驱动是工作代理与运行时之间的标准化互操作接口,通过该标准化接口实现工作代理与运行时之间的交互,运行时是实际执行计算任务的组件,一般是常用的开源或者商业化软件,如Docker容器引擎或者OpenJDK虚拟机等。
运行时驱动将计算任务提交给运行时执行后,监控任务的运行状态,并反馈给管理节点。
由上所述,本实施例通过在工作节点上根据计算任务按需安装和运行用于完成计算任务的运行时和运行时驱动,并与管理节点交互。通过运行时驱动提供与运行时交互的标准接口,从而能够支持多种异构运行时,支持不同运行时运行的计算任务的混合部署。实现了安全、高效和一致的异构运行时云边资源管理。
可选的,在工作节点上发送心跳信号至管理节点以获取工作节点的状态;
将所有工作节点的状态改变消息发送至领导者节点以获得计算区域所有工作节点的状态;
在领导者节点与跟随者节点之间同步系统状态。
可选的,将工作节点划分为若干个群组,群组内所有工作节点同时向管理节点发送心跳信号;
可选的,工作节点上设有工作代理,还包括:在运行时驱动与工作代理之间建立双向通道;工作代理调用运行时驱动提供的标准化接口函数与运行时交互。
具体的,本实施例中,上述支持混合异构运行时的云边资源管理调度方法的各步骤的具体功能可以参照上述支持混合异构运行时的云边资源管理调度系统中的对应描述,在此不再赘述。
应理解,上述实施例中各步骤的序号大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各实例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以由另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不是相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.支持混合异构运行时的云边资源管理调度系统,其特征在于,所述系统包括:
若干个计算区域,每个计算区域中设有若干管理节点和若干工作节点;
所述管理节点上设有管理组件和调度器,所述管理组件用于接收用户提交的计算任务和获取工作节点的状态,所述调度器用于根据调度策略生成计算任务对应的分配规划;
所有的所述管理节点被配置为一个领导者节点和若干跟随者节点,所述领导者节点用于管理计算区域内所有工作节点的状态、管理计算任务以及分配计算任务;所述领导者节点与所述跟随者节点之间还设有用于同步计算区域内所有工作节点的状态的同步机制;
所述工作节点上设有工作代理,所述工作节点用于运行用于完成所述计算任务的运行时和运行时驱动,并监控运行时的运行状态、向所述管理节点发送执行进度和执行结果,所述运行时驱动用于提供标准化接口以实现所述工作代理与所述运行时之间的交互。
2.如权利要求1所述的支持混合异构运行时的云边资源管理调度系统,其特征在于,所述计算区域的所有工作节点被配置为若干个群组,每个群组包含若干个所述工作节点。
3.如权利要求1所述的支持混合异构运行时的云边资源管理调度系统,其特征在于,所述领导者节点上还设有任务队列和规划队列,所述任务队列用于管理用户提交的计算任务,所述规划队列用于管理计算任务对应的分配规划。
4.如权利要求1所述的支持混合异构运行时的云边资源管理调度系统,其特征在于,所述运行时驱动与所述工作代理之间设有双向通道以支持请求响应式通信和数据流式通信。
5.如权利要求4所述的支持混合异构运行时的云边资源管理调度系统,其特征在于,所述运行时驱动是基于本地网络远程过程调用机制实现的,所述运行时驱动为所述工作节点上的独立进程。
6.如权利要求1所述的支持混合异构运行时的云边资源管理调度系统,其特征在于,所述调度器包括:用于指定所有工作节点运行系统服务的调度器、用于指定所有工作节点运行系统批处理任务的调度器、按照条件选择最佳工作节点运行指定服务的调度器和按照条件选择合适工作节点运行指定批处理任务的调度器。
7.支持混合异构运行时的云边资源管理调度方法,其特征在于,所述方法包括:
将云边一体计算资源池划分为若干个计算区域以使得同一个计算区域的计算节点之间为低延迟高速网络;
在每个计算区域的计算节点中选出若干个管理节点并将其余计算节点设为工作节点;
根据共识协议将所有的所述管理节点划分为一个领导者节点和若干跟随者节点,所述领导者节点用于管理计算区域所有工作节点的状态并同步至所述跟随者节点;
获取用户提交的计算任务并将所述计算任务发送至所述领导者节点的任务队列;
在所述领导者节点和所述跟随者节点上运行调度器;
从所述领导者节点的任务队列中依次取出计算任务并发送至任一所述调度器以根据调度策略生成分配规划,并将所述分配规划发送至所述领导者节点的规划队列;
将所述任务队列中的计算任务发送至根据该计算任务对应的分配规划确定的工作节点;
根据所述计算任务在所述工作节点上安装并运行用于完成所述计算任务的运行时和运行时驱动,并监控运行状态、向所述管理节点发送执行进度和执行结果;所述运行时驱动用于提供标准化接口以与所述运行时交互,所述运行时驱动运行在完全独立的进程。
8.如权利要求7所述的支持混合异构运行时的云边资源管理调度方法,其特征在于,还包括:
在所述工作节点上发送心跳信号至所述管理节点以获取工作节点的状态;
将所有工作节点的状态改变消息发送至所述领导者节点以获得所述计算区域内所有工作节点的状态;
在所述领导者节点与所述跟随者节点之间同步所述计算区域内所有工作节点的状态。
9.如权利要求8所述的支持混合异构运行时的云边资源管理调度方法,其特征在于,所述在所述工作节点上发送心跳信号至所述管理节点以获取工作节点的状态,包括:
将所述工作节点划分为若干个群组,所述群组内所有工作节点同时向所述管理节点发送心跳信号。
10.如权利要求7所述的支持混合异构运行时的云边资源管理调度方法,其特征在于,所述工作节点上设有工作代理,还包括:
在所述运行时驱动与所述工作代理之间建立双向通道;
所述工作代理调用所述运行时驱动提供的标准化接口函数与所述运行时交互。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080136.7A CN115811549B (zh) | 2023-02-08 | 2023-02-08 | 支持混合异构运行时的云边资源管理调度方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310080136.7A CN115811549B (zh) | 2023-02-08 | 2023-02-08 | 支持混合异构运行时的云边资源管理调度方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115811549A CN115811549A (zh) | 2023-03-17 |
CN115811549B true CN115811549B (zh) | 2023-04-14 |
Family
ID=85487703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310080136.7A Active CN115811549B (zh) | 2023-02-08 | 2023-02-08 | 支持混合异构运行时的云边资源管理调度方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115811549B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051710A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院深圳先进技术研究院 | 一种虚拟云平台管理系统及方法 |
CN111258744A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架系统 |
WO2022087415A1 (en) * | 2020-10-22 | 2022-04-28 | Arizona Board Of Regents On Behalf Of Arizona State University | Runtime task scheduling using imitation learning for heterogeneous many-core systems |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200249998A1 (en) * | 2019-02-01 | 2020-08-06 | Alibaba Group Holding Limited | Scheduling computation graph heterogeneous computer system |
-
2023
- 2023-02-08 CN CN202310080136.7A patent/CN115811549B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103051710A (zh) * | 2012-12-20 | 2013-04-17 | 中国科学院深圳先进技术研究院 | 一种虚拟云平台管理系统及方法 |
CN111258744A (zh) * | 2018-11-30 | 2020-06-09 | 中兴通讯股份有限公司 | 一种基于异构计算的任务处理方法及软硬件框架系统 |
WO2022087415A1 (en) * | 2020-10-22 | 2022-04-28 | Arizona Board Of Regents On Behalf Of Arizona State University | Runtime task scheduling using imitation learning for heterogeneous many-core systems |
Non-Patent Citations (1)
Title |
---|
施巍松 ; 孙辉 ; 曹杰 ; 张权 ; 刘伟 ; .边缘计算:万物互联时代新型计算模型.计算机研究与发展.2017,(05),第 4-21页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115811549A (zh) | 2023-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3910539B2 (ja) | 準備処理を取り入れたクラスタード・コンピュータ・システムにおけるリソース・アクション | |
US7793298B2 (en) | Facilitating access to input/output resources via an I/O partition shared by multiple consumer partitions | |
CN107209710B (zh) | 节点系统、服务器设备、缩放控制方法和程序 | |
JP5039947B2 (ja) | 多数の論理パーティションにわたって仮想入力/出力操作を分散させるためのシステム及び方法 | |
US8112526B2 (en) | Process migration based on service availability in a multi-node environment | |
CN1881944B (zh) | 改进型分布式核心操作系统 | |
CN111338774A (zh) | 分布式定时任务调度系统及计算装置 | |
CN103677752B (zh) | 基于分布式数据的并发处理方法和系统 | |
US20100138540A1 (en) | Method of managing organization of a computer system, computer system, and program for managing organization | |
WO2012063296A1 (ja) | サーバ装置、リソース管理方法およびプログラム | |
JP2015537307A (ja) | コンポーネント指向ハイブリッドクラウドオペレーティングシステムのアーキテクチャ及びその通信方法 | |
US9100443B2 (en) | Communication protocol for virtual input/output server (VIOS) cluster communication | |
US8516487B2 (en) | Dynamic job relocation in a high performance computing system | |
JP2002505471A (ja) | 遠隔処理の中断および継続の方法と装置 | |
WO2020147573A1 (zh) | 实例化虚拟网络功能的方法及设备 | |
US8458702B1 (en) | Method for implementing user space up-calls on java virtual machine before/after garbage collection | |
CN114721824A (zh) | 一种资源分配方法、介质以及电子设备 | |
US20140067771A2 (en) | Management of a Scalable Computer System | |
US20090319662A1 (en) | Process Migration Based on Exception Handling in a Multi-Node Environment | |
JP5945543B2 (ja) | ミドルウェアマシン環境を含むシステム | |
KR100584193B1 (ko) | 그리드 컴퓨팅 시스템에서 파일기반의 mpi초기화방법을 이용한 그리드 mpi 작업 할당 시스템 및그리드 mpi 작업 할당방법 | |
CN115811549B (zh) | 支持混合异构运行时的云边资源管理调度方法及系统 | |
CN116467053A (zh) | 资源调度方法及装置、设备、存储介质 | |
CN111158872B (zh) | 一种提交并守护spark任务的方法及装置 | |
WO2023185300A1 (zh) | 容器存储管理方法及装置 |
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 |