一种面向异构算力联邦的多集群作业调度系统和方法与流程

未命名 09-09 阅读:123 评论:0


1.本技术涉及计算机技术领域,尤其涉及在单数据中心异构算力联邦环境下,实现一种面向异构算力联邦的多集群作业调度系统和方法。


背景技术:

2.随着云计算的不断发展,数据中心虚拟化技术已逐渐从虚拟机向容器演进。目前大型的容器集群管理系统,旨在高效地处理大规模并行计算问题,以提升资源利用率和降低运维成本。
3.但在许多科研领域,大规模并行计算任务的资源需求已经远远超过单一容器管理集群所能提供的资源极限,以天气预报模拟为例,这类大规模并行计算任务需在短时间内处理大量数据,单一容器管理集群可能无法满足其计算资源需求。采用跨多个容器集群的解决方案,可以提供更强大的计算能力,实现更快速、更准确的预测。此时问题变成了跨集群资源分配问题。但每个独立的容器集群管理系统都有着自己的独立的调度器,在进行作业调度时,无法完成多个集群的跨集群资源的分配。


技术实现要素:

4.在本技术中提供了一种面向异构算力联邦的多集群作业调度系统和方法,以解决现有技术中在进行作业调度时,无法完成多个集群的跨集群资源的分配的问题。
5.第一个方面,在本技术中提供了一种面向异构算力联邦的多集群作业调度系统,所述系统包括:事件感知模块、作业队列管理模块、资源拓扑生成模块和调度决策生成模块;所述事件感知模块,用于根据资源数据的变更生成对应的目标事件,将所述目标事件对应的目标作业分配给所述作业队列管理模块进行管理,将所述目标事件分配给所述资源拓扑生成模块;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件;所述作业队列管理模块,用于根据目标作业的调度决策对所述目标事件对应的目标作业进行管理;所述资源拓扑生成模块,用于根据所述事件感知模块分配的目标事件生成资源拓扑数据;所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息;所述调度决策生成模块,用于根据从所述作业队列管理模块中获取的待调度的目标作业和从所述资源拓扑生成模块获取的资源拓扑数据,生成调度结果。
6.在其中的一些实施例中,所述系统还包括:集群管理模块;所述集群管理模块,用于获取多个集群的集群资源数据和所述多个集群对应的节点资源数据,并根据所述调度决策生成模块生成的调度结果对所述待调度的目标作业进行调度。
7.第二个方面,在本技术中提供了一种面向异构算力联邦的多集群作业调度方法,所述方法包括:根据资源数据的变更生成对应的目标事件,根据目标作业的调度决策对所述目标事件对应的目标作业进行管理,并根据所述目标事件生成资源拓扑数据;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件,所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息;根据管理后的目标作业和所述资源拓扑数据,生成调度结果。
8.在其中的一些实施例中,所述目标事件包括已调度作业事件,所述根据所述目标事件生成资源拓扑数据,包括:根据已调度作业事件、集群事件和节点事件,获取当前的集群信息、当前的节点信息和已调度作业事件对应的已调度作业的已调度作业信息;根据所述当前的集群信息、所述当前的节点信息和所述已调度作业事件对应的已调度作业的已调度作业信息,生成所述资源拓扑数据。
9.在其中的一些实施例中,所述根据所述当前的集群信息、所述当前的节点信息和所述已调度作业事件对应的已调度作业的已调度作业信息,生成所述资源拓扑数据,包括:根据所述已调度作业信息,获取所述已调度作业的集群信息;根据所述已调度作业的集群信息、所述当前的节点信息和所述当前的集群信息,生成可调度的节点信息和可调度的多个集群的集群信息;根据所述当前的集群信息、所述当前的节点信息、所述已调度作业信息、所述可调度的节点信息和所述可调度的多个集群的集群信息,生成所述资源拓扑数据。
10.在其中的一些实施例中,所述根据所述当前的集群信息、所述当前的节点信息、所述已调度作业信息、所述可调度的节点信息和所述可调度的多个集群的集群信息,生成所述资源拓扑数据,包括:根据所述当前的节点信息获取当前的节点资源,根据所述当前的集群信息获取当前的集群资源;根据所述已调度作业信息,确定所述已调度作业所需的节点资源和所述已调度作业所需的集群资源;根据所述已调度作业所需的节点资源、所述已调度作业所需的集群资源、所述可调度的节点信息和所述可调度的多个集群的集群信息,对所述当前的节点资源和所述当前的集群资源进行扣除;根据扣除后的当前的节点资源、扣除后的当前的集群资源和所述已调度作业信息,生成所述资源拓扑数据。
11.在其中的一些实施例中,所述已调度作业信息包括所述已调度作业事件的运行状态和所述已调度作业事件的集群信息。
12.在其中的一些实施例中,所述管理后的目标作业包括待调度的目标作业,所述根据管理后的目标作业和所述资源拓扑数据,生成调度结果,包括:根据待调度的目标作业的作业资源数据和所述资源拓扑数据,生成所述调度结果。
13.第三个方面,在本技术中提供了一种面向异构算力联邦的多集群作业调度装置,所述装置包括:管理模块,用于根据资源数据的变更生成对应的目标事件,根据目标作业的调度决策对所述目标事件对应的目标作业进行管理,并根据所述目标事件生成资源拓扑数据;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件,所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息;生成模块,用于根据管理后的目标作业和所述资源拓扑数据,生成调度结果。
14.第四个方面,在本技术中提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现第二个方面所述的一种面向异构算力联邦的多集群作业调度方法的步骤。
15.与现有技术相比,在本技术中提供的一种面向异构算力联邦的多集群作业调度系统、方法、装置和计算机可读存储介质,根据作业队列管理模块对目标作业进行管理,资源拓扑生成模块根据事件感知模块分配的目标事件生成资源拓扑数据,该资源拓扑数据包括根据目标事件对应的节点信息拓扑生成的多个集群的集群信息,根据待调度的目标作业和资源拓扑数据,生成调度结果,从而生成多集群的作业调度,通过节点信息到多个集群的集群信息的拓扑,从而实现了多个集群的跨集群资源分配。
16.本技术的一个或多个实施例的细节在以下附图和描述中提出,以使本技术的其他特征、目的和优点更加简明易懂。
附图说明
17.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:图1是本技术实施例的一种面向异构算力联邦的多集群作业调度系统的结构框图;图2是本技术实施例的一种面向异构算力联邦的多集群作业调度方法的流程图;图3是本技术实施例的另一种面向异构算力联邦的多集群作业调度系统的结构框图;图4是本技术实施例中的事件感知模块的执行过程示意图;图5是本技术实施例中的作业队列管理模块执行过程的流程图;图6是本技术实施例中的资源拓扑生成模块的执行逻辑的流程图;图7是本技术实施例中的调度决策生成模块的执行逻辑的流程图;图8是本技术实施例的一种面向异构算力联邦的多集群作业调度方法的流程图;图9是本技术实施例的一种面向异构算力联邦的多集群作业调度装置的结构框图。
具体实施方式
18.为更清楚地理解本技术的目的、技术方案和优点,下面结合附图和实施例,对本技术进行了描述和说明。
19.除另作定义外,本技术所涉及的技术术语或者科学术语应具有本技术所属技术领域具备一般技能的人所理解的一般含义。在本技术中的“一”、“一个”、“一种”、“该”、“这些”等类似的词并不表示数量上的限制,它们可以是单数或者复数。在本技术中所涉及的术语“包括”、“包含”、“具有”及其任何变体,其目的是涵盖不排他的包含;例如,包含一系列步骤或模块(单元)的过程、方法和系统、产品或设备并未限定于列出的步骤或模块(单元),而可包括未列出的步骤或模块(单元),或者可包括这些过程、方法、产品或设备固有的其他步骤或模块(单元)。在本技术中所涉及的“连接”、“相连”、“耦接”等类似的词语并不限定于物理的或机械连接,而可以包括电气连接,无论是直接连接还是间接连接。在本技术中所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。通常情况下,字符“/”表示前后关联的对象是一种“或”的关系。在本技术中所涉及的术语“第一”、“第二”、“第三”等,只是对相似对象进行区分,并不代表针对对象的特定排序。
20.术语解释:kubernetes:简称为k8s,是一种容器集群管理系统,是容器编排领域的事实标准和云原生领域的关键项目,它有一个快速发展的社区和正在大量被开发的平台生态系统。可帮助用户构建跨容器的应用服务,并长期持续管理这些容器的健康状况。
21.slurm:是一种hpc集群管理和作业调度框架,提供了资源管理和工作调度能力,在hpc领域应用广泛,为世界上超过60%的超级计算机和计算机集群使用。
22.异构算力联邦:内部包含了多种由不同集群管理系统所管理的集群,多个集群需要由一个统一的调度器进行作业的派发。
23.list&watch机制:k8s的informer模块封装list-watch api,用户只需要指定资源,编写事件处理函数,通过list api罗列资源,然后调用watchapi监听资源的变更事件。
24.本技术提供了一种面向异构算力联邦的多集群作业调度系统,图1是本技术实施例的一种面向异构算力联邦的多集群作业调度系统的结构框图,如图1所示,该系统包括:事件感知模块210、作业队列管理模块220、资源拓扑生成模块230和调度决策生成模块240。
25.具体地,事件感知模块210,用于根据资源数据的变更生成对应的目标事件,将目标事件对应的目标作业分配给作业队列管理模块220进行管理,将目标事件分配给资源拓扑生成模块230。
26.进一步具体地,资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,目标事件包括作业事件、集群事件和节点事件。这里的作业资源数据包括但不限于计算作业所需的软硬件资源信息、作业所需要的调度策略、作业的优先级、作业类型、作业运行状态等数据信息。这里的多个集群可以为由不同集群管理系统所管理的多个集群,如k8s框架或slurm框架的多个集群。
27.具体地,作业队列管理模块220,用于根据目标作业的调度决策对目标事件对应的目标作业进行管理。
28.进一步具体地,作业队列管理模块220对系统内的具备待调度属性的作业对象进行上层抽象,描述一个作业对象在调度时所要用到的所有调度依据,并对作业对象的调度依据进行作业对象的优先级排列。
29.具体地,资源拓扑生成模块230,用于根据事件感知模块210分配的目标事件生成
资源拓扑数据;资源拓扑数据包括根据目标事件对应的节点信息拓扑生成的多个集群的集群信息。
30.进一步具体地,资源拓扑生成模块230对系统内的集群对象和节点对象增删改事件,进行资源拓扑的动态生成,实时感知集群、节点多维度资源、能耗、费率等多因素信息,实时生成资源拓扑的绿波带,为在调度决策生成模块240做出跨集群作业调度提供算力资源依据。
31.具体地,调度决策生成模块240,用于根据从作业队列管理模块220中获取的待调度的目标作业和从资源拓扑生成模块230获取的资源拓扑数据,生成调度结果。
32.进一步具体地,调度决策生成模块240动态发现系统所存在的作业资源数据,并实时从作业队列管理模块220获取待调度作业,从资源拓扑生成模块230获取异构算力联邦资源拓扑数据,依据待调度作业所携带的调度需求进行调度方案的生成并执行对应的计算得到待调度作业所需下发的集群信息,并更新作业资源数据,这里的待调度作业所携带的调度需求可以从待调度作业的作业资源数据中获取,调度决策生成模块240根据该集群信息进行资源调度,生成调度结果。例如,如果一个作业需要十台服务器的计算资源,但是底层仅有三个计算集群满足该计算资源的种类需求,每个集群却不满足该种类的计算资源的数量需求,但三个计算集群的该种类的计算资源总量能够满足该作业的计算资源需求,在该三个计算集群间的硬件网络建设满足该作业需求的情况下,调度决策生成模块240能够将该作业拆分至这三个集群,使作业能够运行,而不会一直等待一个集群内资源足够后才运行该作业。
33.在本实施例中,根据作业队列管理模块对目标作业进行管理,资源拓扑生成模块根据事件感知模块分配的目标事件生成资源拓扑数据,该资源拓扑数据包括根据目标事件对应的节点信息拓扑生成的多个集群的集群信息,根据待调度的目标作业和资源拓扑数据,生成调度结果,从而生成多集群的作业调度,通过节点信息到多个集群的集群信息的拓扑,从而实现了多个集群的跨集群资源分配。
34.在其中的一些实施例中,该系统还包括:集群管理模块,该集群管理模块,用于获取多个集群的集群资源数据和多个集群对应的节点资源数据,并根据调度决策生成模块生成的调度结果对待调度的目标作业进行调度。
35.本技术提供了一种面向异构算力联邦的多集群作业调度方法,图2是本技术实施例的一种面向异构算力联邦的多集群作业调度方法的流程图,如图2所示,该方法包括如下步骤:步骤s310,根据资源数据的变更生成对应的目标事件,根据目标作业的调度决策对目标事件对应的目标作业进行管理,并根据目标事件生成资源拓扑数据;资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,目标事件包括作业事件、集群事件和节点事件,资源拓扑数据包括根据目标事件对应的节点信息拓扑生成的多个集群的集群信息。
36.步骤s320,根据管理后的目标作业和资源拓扑数据,生成调度结果。
37.在本实施例中,根据作业队列管理模块对目标作业进行管理,资源拓扑生成模块根据事件感知模块分配的目标事件生成资源拓扑数据,该资源拓扑数据包括根据目标事件对应的节点信息拓扑生成的多个集群的集群信息,根据待调度的目标作业和资源拓扑数
据,生成调度结果,从而生成多集群的作业调度,通过节点信息到多个集群的集群信息的拓扑,从而实现了多个集群的跨集群资源分配。
38.在其中的一些实施例中,目标事件包括已调度作业事件,根据目标事件生成资源拓扑数据,包括:根据已调度作业事件、集群事件和节点事件,获取当前的集群信息、当前的节点信息和已调度作业事件对应的已调度作业的已调度作业信息;根据当前的集群信息、当前的节点信息和已调度作业事件对应的已调度作业的已调度作业信息,生成资源拓扑数据。
39.在其中的一些实施例中,根据当前的集群信息、当前的节点信息和已调度作业事件对应的已调度作业的已调度作业信息,生成资源拓扑数据,包括:根据已调度作业信息,获取已调度作业的集群信息;根据已调度作业的集群信息、当前的节点信息和当前的集群信息,生成可调度的节点信息和可调度的多个集群的集群信息;根据当前的集群信息、当前的节点信息、已调度作业信息、可调度的节点信息和可调度的多个集群的集群信息,生成资源拓扑数据。
40.在其中的一些实施例中,根据当前的集群信息、当前的节点信息、已调度作业信息、可调度的节点信息和可调度的多个集群的集群信息,生成资源拓扑数据,包括:根据当前的节点信息获取当前的节点资源,根据当前的集群信息获取当前的集群资源;根据已调度作业信息,确定已调度作业所需的节点资源和已调度作业所需的集群资源;根据已调度作业所需的节点资源、已调度作业所需的集群资源、可调度的节点信息和可调度的多个集群的集群信息,对当前的节点资源和当前的集群资源进行扣除;根据扣除后的当前的节点资源、扣除后的当前的集群资源和已调度作业信息,生成资源拓扑数据。
41.在其中的一些实施例中,已调度作业信息包括已调度作业事件的运行状态和已调度作业事件的集群信息。
42.在其中的一些实施例中,管理后的目标作业包括待调度的目标作业,根据管理后的目标作业和资源拓扑数据,生成调度结果,包括:根据待调度的目标作业的作业资源数据和资源拓扑数据,生成调度结果。
43.本技术还提供了一种面向异构算力联邦的多集群作业调度系统,图3是本技术实施例的另一种面向异构算力联邦的多集群作业调度系统的结构框图,如图3所示,该系统包括:自定义调度策略资源集410、自定义计算作业资源集420、集群资源430、节点资源440、事件感知模块210、作业队列管理模块220、资源拓扑生成模块230、调度决策生成模块240、容器集群管理系统450和高性能计算集群管理系统460。
44.其中,自定义计算作业资源集420是一系列能够完整描述一个作业对象的资源集合,一个自定义计算作业资源集420的字段应包括但不限于计算作业所需的软硬件资源信息、作业所需要的调度策略、作业的优先级、作业类型、作业运行状态。自定义调度策略资源集410是一系列能够完整描述调度策略对象的资源集合,一个自定义调度策略资源集410的字段应包括但不限于策略的类型、执行方案,该自定义调度策略资源集410的信息随自定义作业资源集一并下发,用于所述的调度决策生成模块240进行调度方案的动态渲染。在其中的一些实施例中,自定义调度策略资源集410可以作为自定义计算作业资源集420的一个子集,用来表示作业的调度策略。节点资源是指计算集群中的单个计算机节点,它可以执行并行计算任务。节点资源是系统内的计算资源,通常包括处理器、内存、存储和网络带宽等硬
件资源。在分布式计算中,节点资源可以被组合成一个集群,以提供更高的计算能力和可靠性。集群资源包括系统内的多个集群的集群资源,是指由多个节点资源组成的计算集群,可以并行执行大规模计算任务。集群资源通常由一个或多个控制节点管理,控制节点负责任务调度、数据分发、结果聚合等任务。节点资源和集群资源可以提供高效的计算能力和数据处理能力。
45.进一步具体地,自定义作业资源集可以被理解为,是一系列可扩展的kubernetes自定义资源,每一种自定义作业资源都能够携带相应创建任务的所有需要的配置信息,包括但不应限于计算作业所需的软硬件资源信息、作业所需要的调度策略、作业的优先级、作业类型、作业运行状态。自定义作业资源可被kubernetes原生支持,并执行创建、修改、删除、查询等操作,是与用户交互的入口。进一步的所有支持kubernetes原生资源管理的都可以作为用户,比如常用的kubectl、client-go、kubefed等。
46.其中,事件感知模块210,包括自定义计算作业资源事件感知层和异构算力联邦计算资源变更事件的感知层。自定义计算作业资源事件感知层,持续监听自定义计算作业资源集420的创建、修改、删除事件,并据此生成相应的作业对象于系统内。异构算力联邦计算资源变更事件感知层,持续监听异构算力联邦内集群类资源和节点类资源的创建、修改、删除事件,继而形成所述系统内的集群对象和节点对象。事件感知模块210也可以称为异构算力联邦事件感知模块210。
47.进一步具体地,事件感知模块210使用list&watch机制持续监听自定义计算作业资源集420,节点和集群三类kubernetes自定义资源的创建、修改和删除事件,并对事件类别进行筛选。具体的执行过程如图4所示,图4示出了事件感知模块210内部包含事件监听功能和事件处理功能,包括事件发现阶段和事件处理阶段,事件监听功能负责管理监听各类资源的添加、删除和更新,事件处理功能则是将上述事件进行筛选。在事件发现阶段,通过事件接收来监听集群资源变更、节点资源变更和自定义计算作业资源集420变更。在事件处理阶段,通过事件筛选,筛选出集群事件、节点事件、待调度作业事件和已调度作业事件,其中,集群事件包括集群新增、集群更新和集群删除,节点事件包括节点新增、节点更新和节点删除,待调度作业事件包括待调度作业入队、待调度作业更新和待调度作业删除,已调度作业事件包括已调度作业新增、已调度作业更新和已调度作业删除。根据自定义计算作业资源集420的作业运行状态,将自定义计算作业资源集420对应的事件分为已调度作业事件,待调度作业事件,重调度作业事件和其他事件。已调度作业事件的触发,会将已调度作业发送至资源拓扑生成模块230。待调度作业事件和重调度作业事件的触发,会将待调度作业和重调度作业发送至作业队列管理模块220。其他事件由事件处理功能进行忽略,因为其并不影响资源拓扑生成模块230和作业队列管理模块220里的数据。
48.其中,作业队列管理模块220,对系统内的具备待调度属性的作业对象进行上层抽象,描述一个作业对象在调度时所要用到的所有调度依据,并对作业对象依据调度依据进行作业对象的优先级排列。
49.进一步具体地,在实际应用中,作业队列管理模块220对尚未获得调度结果的用户自定义作业以及待扩容的自定义作业资源集根据调度结果进行分类管理。队列内部包含三个子队列:待调度队列:内部是准备调度的自定义作业资源集,新添加的自定义作业资源集都会被放到该队列,从队列管理模块中弹出需要调度的用户自定义作业也是从该队列获
取。不可调度队列:内部有各种原因造成无法被调度自定义作业资源集。重调度队列:内部是从集群层级调度成功,但是集群内调度出现待调度状态的自定义作业资源集。具体的执行过程如图5所示,包括以下步骤:步骤s601,接收未调度事件。
50.步骤s602,进入待调度队列。
51.步骤s603,判断重调度队列中是否有作业,若是,则执行步骤s604,若否则执行步骤s605。
52.步骤s604,重调度队列弹出作业,执行步骤s606。
53.步骤s605,待调度队列弹出作业。
54.步骤s606,判断集群层级作业调度是否成功,若是,则执行步骤s607,若是,则执行步骤s607。
55.步骤s607,进入不可调度队列。
56.具体地,当集群层级的作业调度不成功时,将作业送回不可调度队列,进行一段时间的等待。
57.步骤s608,判断不可调度时间是否达到。若是,则执行步骤s602,若否,则执行步骤s607。
58.步骤s609,判断集群内作业是否调度成功,若否,则执行步骤s611,若否,则执行步骤s610。
59.步骤s610,进入重调度队列。
60.步骤s611,结束。
61.由待调度队列弹出作业时,先行判断重调度队列中是否有作业。若有作业,则由重调度队列弹出作业,若没有作业,则待调度队列弹出待调度作业。作业弹出队列后,先判断集群层级的作业调度是否成功。若不成功,将作业送回不可调度队列,进行一段时间的等待。若成功,则继续判断集群内作业是否调度成功。若失败,将作业送回至重调度队列。作业在不可调度队列中,会定时判断该作业是否达到不可调度时间。若达到,则将作业送入待调度队列。若未达到,则作业继续待在不可调度队列。
62.其中,资源拓扑生成模块230,对系统内的集群对象和节点对象增删改事件,进行资源拓扑的动态生成,实时感知集群、节点多维度资源、能耗、费率等多因素信息,实施生成资源拓扑的绿波带,为在调度决策生成模块240做出跨集群作业调度提供算力资源依据。资源拓扑生成模块230也可以称为异构算力联邦资源拓扑生成模块。
63.进一步具体地,资源拓扑生成模块230在一次调度中主要经历三个步骤:快照更新,快照获取以及资源预扣。首先由资源拓扑生成模块230,依据资源版本使用缓存快照更新更新调度器本地的集群状态信息。在快照更新后,由调度决策生成模块240按需提取。在待调度作业获取下发集群后,资源拓扑生成模块230启动资源预扣功能,依据集群信息和作业的资源需求,对集群级资源进行一个扣减。此步骤主要是针对作业从获取调度结果到真正运行的时常较久,底层可用资源的统计可能不精准。以此来保证下一轮调度时,可用资源的准确性。资源拓扑生成模块230的信息来源包含了所属的事件感知模块210筛选出来的已调度作业事件,集群事件和节点事件。以上事件所带来的节点信息、集群信息和已调度作业信息将被元调度缓存模块所管理,并进行三类信息的聚合。节点信息:聚合了运行在节点上
所有的可用资源数量,运行的作业信息和节点所属的集群名称。已调度作业信息:包含了作业的运行状态和作业的集群信息。集群信息:包含了集群的标签,亲和性信息。同时根据集群名称,将先前已加入的节点信息和作业信息归纳到集群信息中来。资源拓扑生成模块230具体的执行过程如图6所示,执行过程内包含了三类事件在资源拓扑生成模块230内的执行逻辑。
64.对于节点事件,在资源拓扑生成模块230内的执行逻辑包括如下步骤:步骤s701,接收节点事件。
65.步骤s702,判断是否为删除事件,若是,则执行步骤s703,若否,则执行步骤s704。
66.步骤s703,删除节点实例,执行步骤s710。
67.步骤s704,判断节点所属集群是否存在,若是,则执行步骤s706,若否,则执行步骤s705。
68.步骤s705,创建集群实例,执行步骤s706。
69.步骤s706,判断节点实例是否存在,若是,则执行步骤s708,若否,则执行步骤s707。
70.步骤s707,创建节点实例,执行步骤s709。
71.步骤s708,更新节点实例。
72.步骤s709,计算所属集群当前可用的整体资源。
73.步骤s710,结束。
74.对于集群事件,在资源拓扑生成模块230内的执行逻辑包括如下步骤:步骤s711,接收集群事件。
75.步骤s712,判断是否为删除事件,若是,则执行步骤s713,若否,则执行步骤s714。
76.步骤s713,删除集群实例,执行步骤s717。
77.步骤s714,判断集群实例是否存在,若是,则执行步骤s715,若否,则执行步骤s716。
78.步骤s715,更新集群实例,执行步骤s717。
79.步骤s716,创建集群实例。
80.步骤s717,结束。
81.对于已调度作业事件,在资源拓扑生成模块230内的执行逻辑包括如下步骤:步骤s721,接收已调度作业事件。
82.步骤s722,判断是否为删除事件,若是,则执行步骤s723,若否,则执行步骤s725。
83.步骤s723,解除资源占用。
84.步骤s724,删除作业事件,执行步骤s729。
85.步骤s725,判断作业实例是否存在,若是,则执行步骤s726,若否,则执行步骤s727。
86.步骤s726,更新作业实例,执行步骤s728。
87.步骤s727,创建作业实例。
88.步骤s728,更新作业对应集群的资源占用。
89.步骤s729,结束。
90.其中,调度决策生成模块240,动态发现异构算力联邦中所存在的自定义调度策略
资源集410,并实时从作业队列管理模块220获取待调度作业,从拓扑生成模块获取异构算力联邦资源拓扑,调度决策生成模块240依据待调度作业所携带的调度需求进行调度方案的生成并执行对应的计算得到待调度作业所需下发的集群信息,并更新自定义计算作业资源集420,这里的待调度作业所携带的调度需求可以从待调度作业的自定义计算作业资源集420中获取。例如,如果一个作业需要十台服务器的计算资源,但是底层仅有三个计算集群满足该计算资源的种类需求,每个集群却不满足该种类的计算资源的数量需求,但三个计算集群的该种类的计算资源总量能够满足该作业的计算资源需求,在该三个计算集群间的硬件网络建设满足该作业需求的情况下,调度决策生成模块240能够将该作业拆分至这三个集群,使作业能够运行,而不会一直等待一个集群内资源足够后才运行该作业。
91.进一步具体地,调度决策生成模块240从作业队列管理模块220中获取到待调度的自定义计算作业资源集420后,综合自定义计算作业资源集420的信息和资源拓扑生成模块230的集群资源信息,将这些聚合信息送入调度决策生成模块240的过滤和扩展点。只有同时满足过滤和扩展点过滤条件的集群才是可用的集群,调度算法为待调度的自定义计算作业资源集420对每个可行的集群进行评分,分数最高的集群为最优候选集群。在获得了最优集群后,将该集群信息与待调度作业绑定,将绑定后的结构体更新至数据库,由后续的自定义计算作业资源集420的控制器执行作业下发,具体的执行过程如图7所示,包括如下步骤:步骤s801,接收由作业队列管理模块中弹出的自定义计算作业资源集。
92.步骤s802,获取由异构算力联邦资源拓扑生成模块生成的异构算力联邦资源。
93.步骤s803,根据自定义计算作业资源集所携带的自定义调度策略资源集进行调度方案渲染。
94.步骤s804,预选集群。
95.具体地,根据策略函数预选集群。
96.步骤s805,集群评分。
97.具体地,对预选的集群进行集群评分,调度算法为待调度的自定义计算作业资源集对每个可行的集群进行评分,分数最高的集群为最优候选集群。
98.步骤s806,更新数据库中自定义计算作业资源的集群信息。
99.具体地,在获得了最优集群后,将该集群信息与待调度作业绑定,将绑定后的结构体更新至数据库。
100.具体地,这里的数据库可以为etcd数据库,etcd数据库是一个开源的分布式键值存储数据库。
101.步骤s807,结束。
102.需要说明的是,在本实施例中,容器集群管理系统450使用kubernetes,高性能计算集群管理系统460使用slurm;本实施例中的自定义调度策略资源集410即为前述实施例中所述的作业资源数据,本实施例中的集群资源即为前述实施例中所述的多个集群的集群资源数据,本实施例中的节点资源即为前述实施例中所述的节点资源数据。
103.在由两类或多类的容器集群管理子系统和面向科学计算领域的集群管理子系统组成的异构算力联邦环境下,本实施例提供的面向异构算力联邦的多集群作业调度系统能够以集群级视角观察和统计底层的异构算力集群的计算资源,并通过综合分析作业用户偏好、集群级资源拓扑等多因素动态生成调度结果,实现了集群维度的作业调度。在本实例
中,根据作业队列管理模块对目标作业进行管理,资源拓扑生成模块根据事件感知模块分配的目标事件生成资源拓扑数据,该资源拓扑数据包括根据目标事件对应的节点信息拓扑生成的多个集群的集群信息,根据待调度的目标作业和资源拓扑数据,生成调度结果,从而生成多集群的作业调度,通过节点信息到多个集群的集群信息的拓扑,从而实现了多个集群的跨集群资源分配。
104.本技术提供了一种面向异构算力联邦的多集群作业调度方法,图8是本技术实施例的一种面向异构算力联邦的多集群作业调度方法的流程图,如图8所示,该方法包括如下步骤:步骤s901,自定义计算作业资源集创建并初始化。
105.具体地,自定义计算作业资源集接受用户创建、修改、删除操作,并携带自定义调度策略资源集、操作类型、命令、所需资源等信息。
106.步骤s902,自定义计算作业资源集初始化事件被监听到。
107.步骤s903,自定义计算作业资源集进入作业队列管理模块。
108.具体地,事件感知模块监听自定义计算作业资源集变更,并送入作业队列管理模块中。事件感知模块监听到自定义计算作业资源集的变更和异构算力联邦计算资源变更事件变更,将对应信息下发到作业队列管理模块和资源拓扑生成模块进行管理。事件感知模块监听到自定义计算作业资源集的变更,若自定义计算作业资源集为待调度状态,将自定义计算作业资源集送入作业队列管理模块。若该自定义计算作业资源集为正在执行状态时,将该自定义计算作业资源集信息送入异构算力联邦资源拓扑生成模块。事件感知模块持续监听所述系统内的集群对象和节点对象两类资源的变更。当监听到集群和节点的增删改事件时,将集群和节点的信息送至资源拓扑生成模块中,进行集群层面的资源拓扑渲染。同时依赖正在运行状态下的自定义计算作业资源集的情况,形成集群层面的算力资源扣减。
109.步骤s904,由作业队列管理模块弹出自定义计算作业资源集。
110.步骤s905,调度决策生成模块获取自定义计算作业资源集。
111.步骤s906,调度决策生成模块获取异构算力联邦资源拓扑。
112.具体地,作业队列管理模块,弹出自定义计算作业资源集,其被调度决策生成模块所获取,同时调度决策生成模块从资源拓扑生成模块获取异构算力联邦资源拓扑。调度决策生成模块,根据从作业队列管理模块中获取的待调度作业和从异构算力联邦资源拓扑生成模块中获取的资源拓扑,依据待调度作业所携带的自定义调度策略资源集,渲染调度方案,依据该调度方案获取最终下发的集群信息。
113.步骤s907,依据自定义计算作业资源集所携带的自定义调度策略资源集渲染计算函数。
114.步骤s908,计算是否有合适集群,若是,则执行步骤s909,若否,则执行步骤s903。
115.具体地,当没有合适集群时,进入不可调度队列。根据自定义计算作业资源集所携带的自定义调度策略资源集渲染集群得分计算函数,同时依据作业所需资源,获取所有可用集群,并用集群得分计算函数获取最优集群。
116.步骤s909,更新自定义计算作业资源集。
117.步骤s910,判断集群内调度是否成功,若是,则执行步骤s911,若否,则执行步骤
s903。
118.具体地,集群内调度不成功时,进入重调度队列。获得最优集群后,更新自定义计算作业资源集,随后观测其在下发集群内是否调度成功。若失败,将作业回收放入队列管理模块中的重调度队列。
119.步骤s911,结束。
120.在本实例中,根据作业队列管理模块对目标作业进行管理,资源拓扑生成模块根据事件感知模块分配的目标事件生成资源拓扑数据,该资源拓扑数据包括根据目标事件对应的节点信息拓扑生成的多个集群的集群信息,根据待调度的目标作业和资源拓扑数据,生成调度结果,从而生成多集群的作业调度,通过节点信息到多个集群的集群信息的拓扑,从而实现了多个集群的跨集群资源分配。
121.需要说明的是,在上述流程中或者附图的流程图中示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
122.在本技术中还提供了一种面向异构算力联邦的多集群作业调度装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。以下所使用的术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管在以下实施例中所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
123.图9是本技术实施例的一种面向异构算力联邦的多集群作业调度装置的结构框图,如图9所示,该装置包括:管理模块10,用于根据资源数据的变更生成对应的目标事件,根据目标作业的调度决策对所述目标事件对应的目标作业进行管理,并根据所述目标事件生成资源拓扑数据;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件,所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息。
124.生成模块20,用于根据管理后的目标作业和所述资源拓扑数据,生成调度结果。
125.需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
126.在本技术中还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
127.可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
128.可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:s1,根据资源数据的变更生成对应的目标事件,根据目标作业的调度决策对所述目标事件对应的目标作业进行管理,并根据所述目标事件生成资源拓扑数据;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件,所述资源拓扑数据包括根据所述目标事件对应的节点信息拓
扑生成的多个集群的集群信息;s2,根据管理后的目标作业和所述资源拓扑数据,生成调度结果。
129.需要说明的是,在本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,在本实施例中不再赘述。
130.此外,结合上述实施例中提供的一种面向异构算力联邦的多集群作业调度方法,在本实施例中还可以提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种面向异构算力联邦的多集群作业调度方法的步骤。
131.应该明白的是,这里描述的具体实施例只是用来解释这个应用,而不是用来对它进行限定。根据本技术提供的实施例,本领域普通技术人员在不进行创造性劳动的情况下得到的所有其它实施例,均属本技术保护范围。
132.显然,附图只是本技术的一些例子或实施例,对本领域的普通技术人员来说,也可以根据这些附图将本技术适用于其他类似情况,但无需付出创造性劳动。另外,可以理解的是,尽管在此开发过程中所做的工作可能是复杂和漫长的,但是,对于本领域的普通技术人员来说,根据本技术披露的技术内容进行的某些设计、制造或生产等更改仅是常规的技术手段,不应被视为本技术公开的内容不足。
[0133]“实施例”一词在本技术中指的是结合实施例描述的具体特征、结构或特性可以包括在本技术的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本领域的普通技术人员能够清楚或隐含地理解的是,本技术中描述的实施例在没有冲突的情况下,可以与其它实施例结合。
[0134]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种面向异构算力联邦的多集群作业调度系统,其特征在于,所述系统包括:事件感知模块、作业队列管理模块、资源拓扑生成模块和调度决策生成模块;所述事件感知模块,用于根据资源数据的变更生成对应的目标事件,将所述目标事件对应的目标作业分配给所述作业队列管理模块进行管理,将所述目标事件分配给所述资源拓扑生成模块;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件;所述作业队列管理模块,用于根据目标作业的调度决策对所述目标事件对应的目标作业进行管理;所述资源拓扑生成模块,用于根据所述事件感知模块分配的目标事件生成资源拓扑数据;所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息;所述调度决策生成模块,用于根据从所述作业队列管理模块中获取的待调度的目标作业和从所述资源拓扑生成模块获取的资源拓扑数据,生成调度结果。2.根据权利要求1所述的面向异构算力联邦的多集群作业调度系统,其特征在于,所述系统还包括:集群管理模块;所述集群管理模块,用于获取多个集群的集群资源数据和所述多个集群对应的节点资源数据,并根据所述调度决策生成模块生成的调度结果对所述待调度的目标作业进行调度。3.一种面向异构算力联邦的多集群作业调度方法,其特征在于,所述方法包括:根据资源数据的变更生成对应的目标事件,根据目标作业的调度决策对所述目标事件对应的目标作业进行管理,并根据所述目标事件生成资源拓扑数据;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件,所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息;根据管理后的目标作业和所述资源拓扑数据,生成调度结果。4.根据权利要求3所述的面向异构算力联邦的多集群作业调度方法,其特征在于,所述目标事件包括已调度作业事件,所述根据所述目标事件生成资源拓扑数据,包括:根据已调度作业事件、集群事件和节点事件,获取当前的集群信息、当前的节点信息和已调度作业事件对应的已调度作业的已调度作业信息;根据所述当前的集群信息、所述当前的节点信息和所述已调度作业事件对应的已调度作业的已调度作业信息,生成所述资源拓扑数据。5.根据权利要求4所述的面向异构算力联邦的多集群作业调度方法,其特征在于,所述根据所述当前的集群信息、所述当前的节点信息和所述已调度作业事件对应的已调度作业的已调度作业信息,生成所述资源拓扑数据,包括:根据所述已调度作业信息,获取所述已调度作业的集群信息;根据所述已调度作业的集群信息、所述当前的节点信息和所述当前的集群信息,生成可调度的节点信息和可调度的多个集群的集群信息;根据所述当前的集群信息、所述当前的节点信息、所述已调度作业信息、所述可调度的节点信息和所述可调度的多个集群的集群信息,生成所述资源拓扑数据。
6.根据权利要求5所述的面向异构算力联邦的多集群作业调度方法,其特征在于,所述根据所述当前的集群信息、所述当前的节点信息、所述已调度作业信息、所述可调度的节点信息和所述可调度的多个集群的集群信息,生成所述资源拓扑数据,包括:根据所述当前的节点信息获取当前的节点资源,根据所述当前的集群信息获取当前的集群资源;根据所述已调度作业信息,确定所述已调度作业所需的节点资源和所述已调度作业所需的集群资源;根据所述已调度作业所需的节点资源、所述已调度作业所需的集群资源、所述可调度的节点信息和所述可调度的多个集群的集群信息,对所述当前的节点资源和所述当前的集群资源进行扣除;根据扣除后的当前的节点资源、扣除后的当前的集群资源和所述已调度作业信息,生成所述资源拓扑数据。7.根据权利要求4或权利要求5所述的面向异构算力联邦的多集群作业调度方法,其特征在于,所述已调度作业信息包括所述已调度作业事件的运行状态和所述已调度作业事件的集群信息。8.根据权利要求4所述的面向异构算力联邦的多集群作业调度方法,其特征在于,所述管理后的目标作业包括待调度的目标作业,所述根据管理后的目标作业和所述资源拓扑数据,生成调度结果,包括:根据待调度的目标作业的作业资源数据和所述资源拓扑数据,生成所述调度结果。9.一种面向异构算力联邦的多集群作业调度装置,其特征在于,所述装置包括:管理模块,用于根据资源数据的变更生成对应的目标事件,根据目标作业的调度决策对所述目标事件对应的目标作业进行管理,并根据所述目标事件生成资源拓扑数据;所述资源数据包括作业资源数据、多个集群的集群资源数据和节点资源数据,所述目标事件包括作业事件、集群事件和节点事件,所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息;生成模块,用于根据管理后的目标作业和所述资源拓扑数据,生成调度结果。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求3至权利要求8中任一项所述的一种面向异构算力联邦的多集群作业调度方法的步骤。

技术总结
本申请涉及一种面向异构算力联邦的多集群作业调度系统和方法,所述系统包括:事件感知模块、作业队列管理模块、资源拓扑生成模块和调度决策生成模块;所述资源拓扑生成模块,用于根据所述事件感知模块分配的目标事件生成资源拓扑数据;所述资源拓扑数据包括根据所述目标事件对应的节点信息拓扑生成的多个集群的集群信息;所述调度决策生成模块,用于根据从所述作业队列管理模块中获取的待调度的目标作业和从所述资源拓扑生成模块获取的资源拓扑数据,生成调度结果。本申请通过节点信息到多个集群的集群信息的拓扑,从而实现了多个集群的跨集群资源分配。个集群的跨集群资源分配。个集群的跨集群资源分配。


技术研发人员:董赵宇 高翔 潘爱民
受保护的技术使用者:之江实验室
技术研发日:2023.08.02
技术公布日:2023/9/7
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐