异构作业调度系统及方法与流程

未命名 09-02 阅读:137 评论:0


1.本技术涉及计算机技术领域,特别是涉及一种异构作业调度系统及方法。


背景技术:

2.随着信息技术的发展,人工智能和云计算取得了蓬勃发展,计算中心的建设方向从满足容量需求慢慢转变为满足多样的计算需求。然而,多样的计算需求也就意味着对计算集群有着多样的硬件和软件需求。
3.传统技术中,若要将计算集群部署至管理平台,则需要操作人员对每个节点分别进行部署操作,在运行过程中,还需要操作人员对每个计算集群的底层资源可用性进行识别,并基于作业的计算需求将作业分配给相应的计算集群。计算集群接入管理平台的操作复杂,还涉及重复性较高的操作,因此集群接入和作业调度的效率仍然较低。
4.由此可见,传统技术中仍然存在计算集群接入管理平台和作业调度操作复杂、效率低的问题。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够简化计算集群接入管理平台和作业调度操作流程、提高处理效率的异构作业调度系统及方法。
6.第一个方面,本实施例提供了一种异构作业调度系统,所述系统包括:插件总线、插件驱动和多个计算集群;每个所述计算集群通过所述插件驱动接入所述插件总线;所述插件总线包括:驱动控制器、虚拟节点控制器、调度器以及计算作业控制器;所述驱动控制器与所述插件驱动连接,用于获取所述插件驱动的注册信息,并根据所述注册信息对所有所述插件驱动进行注册认证;所述虚拟节点控制器与所述插件驱动连接,用于获取所述插件驱动对应计算集群的软硬件信息以及计算集群的分区列表,根据所述分区列表以及软硬件信息,为每个分区分配虚拟节点并确定每个虚拟节点对应的软硬件信息;所述计算作业控制器与所述调度器连接,用于获取用户上传的作业以及作业所需资源;所述调度器还与所述虚拟节点控制器连接;用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的调度结果。
7.在其中一个实施例中,所述驱动控制器,还用于对注册认证完成的所述插件驱动进行健康检测;当所述插件驱动基于所述健康检测的反馈信息为健康信息时,为所述插件驱动下发安全证书,并将所述插件驱动的驱动状态设置为运行中;当所述插件驱动基于所述健康检测的反馈信息为超时信息或非健康信息时,将所述插件驱动的驱动状态设置为失败,并对所述插件驱动进行队列隔离。
8.在其中一个实施例中,所述驱动控制器,还用于以预设时间为间隔,对所有所述插件驱动进行健康检测,当所述插件驱动基于健康检测的反馈信息为超时信息或非健康信
息,且超过预设次数时,删除所述插件驱动。
9.在其中一个实施例中,所述调度器包括一级调度器,所述计算集群包括二级调度器;所述一级调度器,用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第一调度结果;所述二级调度器,用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第二调度结果;所述一级调度器,还用于根据所述第一调度结果以及第二调度结果,生成最终调度结果。
10.在其中一个实施例中,所述虚拟节点控制器与所述调度器连接,用于获取虚拟节点与作业的调度结果,并根据所述调度结果向所述虚拟节点对应的插件驱动下发作业,以使插件驱动对应的计算集群运行所述作业。
11.在其中一个实施例中,所述虚拟节点控制器,还用于通过所述插件驱动获取对应计算集群的作业运行信息,所述作业运行信息包括:作业日志、作业告警记录以及作业完成进度。
12.在其中一个实施例中,所述计算作业控制器与所述虚拟节点控制器连接,所述计算作业控制器,还用于获取用户的作业查询指令,根据所述作业查询指令,从所述虚拟节点控制器获取对应作业的所述作业运行信息。
13.在其中一个实施例中,所述插件总线通过kubernetes容器集群部署。
14.第二个方面,本实施例提供了一种异构作业调度方法,所述方法应用于如上述异构作业调度系统,所述方法包括:驱动控制器获取插件驱动的注册信息,并根据所述注册信息对所有所述插件驱动进行注册认证;虚拟节点控制器获取所述插件驱动对应计算集群的软硬件信息以及计算集群的分区列表,根据所述分区列表以及软硬件信息,为每个分区分配虚拟节点并确定每个虚拟节点对应的软硬件信息;计算作业控制器获取用户上传的作业以及作业所需资源;调度器获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的调度结果。
15.在其中一个实施例中,所述驱动控制器对注册认证完成的所述插件驱动进行健康检测;当所述插件驱动基于所述健康检测的反馈信息为健康信息时,为所述插件驱动下发安全证书,并将所述插件驱动的驱动状态设置为运行中;当所述插件驱动基于所述健康检测的反馈信息为超时信息或非健康信息时,将所述插件驱动的驱动状态设置为失败,并对所述插件驱动进行队列隔离。
16.上述异构作业调度系统及方法,通过在系统中设置插件总线、插件驱动和多个计算集群,其中,插件总线包括驱动控制器、虚拟节点控制器、调度器以及计算作业控制器,通过驱动控制器获取插件驱动的注册信息,并基于注册信息对插件驱动进行注册认证,可以实现计算集群部署的自动化;通过虚拟节点控制器获取计算集群的软硬件信息以及分区列表进行虚拟节点匹配和软硬件信息的确定,调度器根据每个虚拟节点的软硬件信息与作业
所需资源确定虚拟节点与作业的调度结果,可以实现异构计算集群插件化,使计算集群的接入更为简单,且可以实现计算集群的热插拔,简化计算集群接入的操作和提高接入效率;通过作业调度的自动化,还可以减少作业调度的人力成本,提高作业调度效率,进一步的提高计算集群整体计算效率。
附图说明
17.图1为一个实施例中异构作业调度系统的结构框图;图2为一个实施例中异构作业调度系统的时序图;图3为一个实施例中异构作业调度系统的时序图;图4为一个实施例中异构作业调度系统的时序图;图5为一个实施例中异构作业调度方法的流程示意图。
具体实施方式
18.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
19.如图1所示,本实施例提供了一种异构作业调度系统,所述系统包括:插件总线100、插件驱动200和多个计算集群300;每个所述计算集群300通过所述插件驱动200接入所述插件总线100;所述插件总线包括:驱动控制器110、虚拟节点控制器120、调度器130以及计算作业控制器140;所述驱动控制器110与所述插件驱动200连接,用于获取所述插件驱动200的注册信息,并根据所述注册信息对所有所述插件驱动200进行注册认证;所述虚拟节点控制器120与所述插件驱动200连接,用于获取所述插件驱动200对应计算集群300的软硬件信息以及计算集群300的分区列表,根据所述分区列表以及软硬件信息,为每个分区分配虚拟节点并确定每个虚拟节点对应的软硬件信息;所述计算作业控制器140与所述调度器130连接,用于获取用户上传的作业以及作业所需资源;所述调度器130分别与虚拟节点控制器120连接;用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的调度结果。
20.其中,插件总线100可以是异构作业调度系统中与各功能模块之间传送信息的公共通信干线,功能模块可以包括上述驱动控制器110、虚拟节点控制器120、调度器130和计算作业控制器140。插件总线100可以是由导线组成,用于传输数据和相关控制信号。
21.插件驱动200可以是计算集群300对应集群设备的插件驱动,插件驱动200可以是由供应商编写,并使用任意编程语言实现,计算集群300通过插件驱动200接入插件总线100,从而使插件总线100中的控制器或调度器得以对插件驱动200所对应的计算集群300进行控制或作业调度。
22.计算集群300可以是计算机系统,可以是一台计算机或由多台计算机组成。本实施例的计算集群可以应用于高性能计算、大数据处理、云计算等领域,包括但不限于科学计算、数据分析、图像处理、视频处理等应用场景。
23.驱动控制器110可以是对插件驱动200进行控制的控制器,包括获取插件驱动200的注册信息,并根据注册信息,将插件驱动200注册于驱动控制器中。示例性的,可以是将该插件驱动200对应的计算集群列入可用集群设备列表中。
24.虚拟节点控制器120可以是对虚拟节点进行同步和作业分配处理的控制器。虚拟节点可以是插件驱动定义的资源最小分割单元。在本实施例中,虚拟节点的数量与计算集群的分区数量相对应,即,每个虚拟节点与每个分区一一对应。可以理解的是,每一个插件驱动所对应的计算集群可以包含多个分区,以及相应的软硬件信息,通过虚拟节点与分区的一一对应,虚拟节点控制器120还可以存储有每个虚拟节点所对应分区的软硬件信息。
25.计算作业控制器140与调度器130连接,在接收到用户上传的作业以及作业所需资源后,还可以将该作业和所需资源发送给调度器130进行调度。
26.调度器130用于对用户上传的作业进行调度,具体的,调度器130分别与计算作业控制器140和虚拟节点控制器120连接,调度器130接收来自计算作业控制器140的作业和作业所需资源,以及来自虚拟节点控制器120的虚拟节点以及虚拟节点对应的软硬件信息,将作业与虚拟节点进行匹配,得到虚拟节点与作业的调度结果之后,将调度结果发送至虚拟节点控制器120,由虚拟节点控制器120根据调度结果,将作业分发至虚拟节点对应的计算集群分区进行作业处理。
27.驱动控制器110、虚拟节点控制器120、调度器130和计算作业控制器140所执行的步骤可以是执行于一个总的控制器中,也可以是分别执行于多个子控制器中。
28.本实施例提供的一种异构作业调度系统,通过在系统中设置插件总线、插件驱动和多个计算集群,其中,插件总线包括驱动控制器、虚拟节点控制器、调度器以及计算作业控制器,通过驱动控制器获取插件驱动的注册信息,并基于注册信息对插件驱动进行注册认证,可以实现计算集群部署的自动化;通过虚拟节点控制器获取计算集群的软硬件信息以及分区列表进行虚拟节点匹配和软硬件信息的确定,调度器根据每个虚拟节点的软硬件信息与作业所需资源确定虚拟节点与作业的调度结果,可以实现异构计算集群插件化,使计算集群的接入更为简单,且可以实现计算集群的热插拔,简化系统部署操作和提高部署效率;通过作业调度的自动化,还可以减少作业调度的人力成本,达到提高计算集群整体计算效率的效果。
29.在其中一个实施例中,所述驱动控制器,还用于对注册认证完成的所述插件驱动进行健康检测;当所述插件驱动基于所述健康检测的反馈信息为健康信息时,为所述插件驱动下发安全证书,并将所述插件驱动的驱动状态设置为运行中;当所述插件驱动基于所述健康检测的反馈信息为超时信息或非健康信息时,将所述插件驱动的驱动状态设置为失败,并对所述插件驱动进行队列隔离。
30.其中,健康状态可以是计算集群的运行状态,包括连接状态、数据处理状态等,若运行状态正常,则被视为健康。如果健康检测调用返回健康的信息,则驱动管理器会生成安全证书并下发给集群设备的插件驱动,并把集群设备的插件驱动的状态设置为运行中。当反馈信息为超时的信息或非健康的信息时,对插件驱动进行队列隔离,可以是将该插件驱动隔离至失败集群设备插件队列,并将状态设置为失败。
31.可以理解的是,插件驱动在运行时向驱动控制器请求注册,驱动控制器会将该插件驱动对应的计算集群的状态设置为准备中,同时,驱动控制器可以通知集群管理员进行
插件认证,即对该计算集群进行认证,若认证成功,则进行健康检测,并基于健康检测结果生成安全证书下发给插件驱动。此后,驱动控制器会把该计算集群的状态设置为运行中,该计算集群即可开始接收相应的作业分配。
32.进一步的,还可以在同一计算集群的多个登录节点安装多个同类插件驱动,以实现高可用性和平衡负载。其中,多个同类插件驱动可以共享同一份安全证书,在作业分配时,可以将作业负载均衡至其他任意一个插件驱动。
33.本实施例提供的一种异构作业调度系统,通过对注册认证完成的插件驱动进行健康检测,并基于检测结果下发安全证书或进行队列隔离,可以实现计算集群运行状态的实时更新,防止计算作业分配至错误的计算集群中,可以达到提高作业的计算效率和异构作业调度系统稳定性的效果。
34.在其中一个实施例中,所述驱动控制器,还用于以预设时间为间隔,对所有所述插件驱动进行健康检测,当所述插件驱动基于健康检测的反馈信息为超时信息或非健康信息,且超过预设次数时,删除所述插件驱动。
35.其中,预设时间可以是基于实际需求进行设置,此外,还可以是基于预设次数的检测时长确定预设时间。当插件驱动基于健康检测的反馈信息为超时信息或非健康信息,且超过预设次数时,删除所述插件驱动,可以是将该插件驱动所对应的计算集群从可用集群设备列表中删除。
36.本实施例提供的一种异构作业调度系统,通过当反馈信息为超时信息或非健康信息且超过预设次数时,删除插件驱动,可以确定当前的插件驱动处于长期非健康或长期超时状态,删除插件驱动可以减少在作业调度匹配过程的反复调度,可以达到提高作业调度的效率的效果。
37.在其中一个实施例中,所述调度器包括一级调度器,所述计算集群包括二级调度器;所述一级调度器,用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第一调度结果;所述二级调度器,用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第二调度结果;所述一级调度器,还用于根据所述第一调度结果以及第二调度结果,生成最终调度结果。
38.其中,一级调度器可以是基于作业所需资源和虚拟节点的软硬件信息进行作业调度,将作业分配到更为空闲或计算资源匹配度更高的虚拟节点中。
39.二级调度器可以是不受一级调度器感知的虚拟节点调度器,并用于基于每个虚拟节点的运行情况反馈调度结果,可以是对当前虚拟节点内资源占用、优先级等信息进行判断,确定所分配到的虚拟节点是否合适进行计算。
40.根据所述第一调度结果以及第二调度结果,生成最终调度结果,可以是对第一调度结果和第二调度结果分别设置一定的权重值,计算相应的综合评分,以确定最终调度结果;也可以是当第二调度结果为不合适时,取消对该虚拟节点的调度,并重新确定第一调度结果以生成最终调度结果。可以理解的是,调度器从虚拟节点收集作业调度所需的软硬件信息、限制条件,并根据作业请求的资源、限制条件筛选合适的虚拟节点并将其与作业绑
定。如果没有合适的虚拟节点则将作业状态设置为排队中并移动到等待队列等待重试。当计算集群还包括二级调度器时,一级调度器执行弱调度,不感知且不影响二级调度器,但会通过预分配、驱动建议、超时重调度、动态优先级等方式保障作业的最终调度结果。
41.进一步的,软硬件信息可以包括计算集群支持的存储、计算软件、加速卡信号等,还可以包括网络拓扑信息、计算资源使用情况、算力信息等。其中,计算资源使用情况可以包括cpu、内存、网卡、加速卡等的使用情况。插件驱动还可以提供额外的限制条件,例如要求仅限单机作业等。虚拟节点控制器可以把这些信息更新到虚拟节点的标签,以供其他控制组件读取使用。
42.在一个具体实施例中,一级调度器是插件总线的调度器,二级调度器是slurm集群的作业调度器,一级调度器根据硬性条件筛选虚拟节点,即slurm分区,例如作业要求使用gpu,则不会调度到无gpu的分区。一级调度器还会根据分区状态打分,例如a分区空闲,b分区和c分区都有作业在排队,但b分区排队作业较小且排队数量少,则a分区分数最高,c分区分数最低。作业则最有可能被调度到a分区。调度器在调度前与a分区对应虚拟节点的插件驱动进行交互,得到slurm集群作业调度器的第二调度结果,判断是否适合将作业分配给该a分区。此外,当对作业进行调度分配后,在预设时间内该作业仍未得到处理,调度器还可以将该作业取消并重新调度。
43.本实施例提供的一种异构作业调度系统,通过一级调度器和二级调度器的第一调度结果和第二调度结果,可以根据虚拟节点的软硬件信息进行作业的合理分配,以及在调度作业排队超时的情况下及时进行重新调度,可以达到提高作业调度效率的效果。
44.在其中一个实施例中,所述虚拟节点控制器与所述调度器连接,用于获取虚拟节点与作业的调度结果,并根据所述调度结果向所述虚拟节点对应的插件驱动下发作业,以使插件驱动对应的计算集群运行所述作业。
45.其中,当调度器确定向某一虚拟节点下发作业时,虚拟节点控制器基于调度结果,向该虚拟节点对应的插件驱动通信,下发作业信息,由该计算集群渲染并执行作业。
46.在一个具体实施例中,如图3所示,计算集群的分区列表可以是slurm分区列表。虚拟节点控制器还用于:获取健康的集群设备插件:虚拟节点控制器从驱动管理器提供的可用设备插件缓存获取端口、资源、特性信息和限制条件等信息,并获取驱动操作符,以调用节点管理接口获取节点信息。
47.同步虚拟节点:虚拟节点控制器通过驱动操作符与插件驱动交互,获取slurm分区列表,并将分区列表与集群中存在的虚拟节点信息进行对比,然后创建、删除相应数量和类型的虚拟节点,保证集群中的虚拟节点和slurm分区数量的最终一致性。
48.同步虚拟节点资源、特征信息:与插件驱动交互,获取slurm分区信息,即slurm分区的资源信息,并同步到虚拟节点的资源管理器,将特性信息和限制条件同步到虚拟节点的标签,将资源信息同步到虚拟节点的资源字段,作为调度器调度的依据。
49.资源分配:当有作业被调度到某个虚拟节点时,该虚拟节点的资源管理器根据作业需求对该虚拟节点的资源进行逻辑上的预扣除,此时其他作业已经不能使用这些预扣除的资源,但资源还没有真正地分配。然后虚拟节点控制器会调用插件驱动的作业管理接口进行slurm资源分配。
50.本实施例提供的一种异构作业调度系统,通过由虚拟节点控制器获取调度结果,并基于调度结果驱动下发作业,可以实现基于调度结果的作业分发,实现作业的合理分配。
51.在其中一个实施例中,所述虚拟节点控制器,还用于通过所述插件驱动获取对应计算集群的作业运行信息,所述作业运行信息包括:作业日志、作业告警记录以及作业完成进度。
52.在一个具体实施例中,在执行作业时,计算集群生成作业id返回至虚拟节点控制器。虚拟节点控制器可以通过作业id与计算集群进行持续交互以追踪作业的信息,并得到计算集群返回的作业状态和告警信息,并基于作业状态和告警信息同步修改作业的状态,将告警信息记录到作业信息中。当作业失败或完成后,虚拟节点控制器还可以把作业日志和作业结果收集至插件总线的管理平台,以便后续的检索和查看。
53.本实施例提供的一种异构作业调度系统,通过插件驱动获取计算集群的作业运行信息,可以实现作业执行完成度的实时追踪,当出现异常情况是可以及时作出相应调整,达到提高作业调度效率的效果。
54.在其中一个实施例中,所述计算作业控制器与所述虚拟节点控制器连接,所述计算作业控制器,还用于获取用户的作业查询指令,根据所述作业查询指令,从所述虚拟节点控制器获取对应作业的所述作业运行信息。
55.本实施例提供的一种异构作业调度系统,通过由计算作业控制器获取作业查询指令,并从虚拟节点控制器中获取对应作业的作业运行信息,可以实现作业运行状态的用户端反馈,使用户还可以基于作业运行状态进行相应的调度调整,提高作业调度的灵活性。
56.在一个具体实施例中,如图4所示,本实施例的计算作业下发过程如下:计算作业控制器从用户处接收统一的作业定义,校验作业定义是否合法;若合法,则设置待调度标签。
57.调度器根据作业要求的资源、特征信息和限制条件,获取虚拟节点的软硬件信息和状态,筛选合适的虚拟节点,将所述的作业负载和所选的虚拟节点绑定,并将该作业调度至对应的虚拟节点;计算作业控制器会将作业的状态设置为已调度。
58.所选的虚拟节点调用插件驱动的工作负载管理服务的作业管理接口下发作业信息,并由插件驱动渲染slurm下的可执行的作业脚本并运行。计算作业控制器会将作业的状态设置为已下发。
59.所选的虚拟节点通过调用插件驱动的工作负载管理服务的作业管理接口,持续监控所执行作业负载的状态,如调用插件驱动查询slurm作业以监控作业状态,使计算作业控制器同步。在完成或报错时,将作业日志和作业结果同步到容器集群。计算作业控制器会查询虚拟节点的作业状态,并设置作业状态。
60.当接收到用户的日志查询请求,计算作业控制器确定日志查询请求路由,并调用虚拟节点进行日志查询,虚拟节点调用插件驱动查询slurm日志,并由计算作业控制器最终返回日志查询结果。
61.在其中一个实施例中,所述插件总线通过kubernetes容器集群部署。
62.其中,kubernetes简称为k8s,是一种容器集群管理系统,是容器编排领域的事实标准和云原生领域的关键项目,可帮助用户构建跨容器的应用服务,并长期持续管理这些容器的健康状况。其在通用领域是应用最为广泛的容器集群管理系统。但在专用计算领域
并没有成熟的解决方案。
63.相应的,本实施例的计算作业可以是一种kubernetes的crd(custom resource definitions,自定义资源定义),其中包含一个计算作业所需的信息,如作业所需的资源信息,作业脚本目录,工作目录,运行参数等。计算作业在kubernetes集群被创建时,计算作业控制器将检查其参数是否合法,为其设置待调度标签,并将计算作业的状态设置为排队中。然后该计算作业将会被调度器和虚拟节点接管,但计算作业控制器负责与调度器和虚拟节点交互来同步作业状态。当用户查询作业日志时,计算作业控制器还负责将日志查询请求路由到对应的虚拟节点上。
64.相应的,本实施例还包括在kubernetes创建可进行管理和调度的crd,作为直接调度的作业对象。
65.相应的,本实施例的虚拟节点可以是kubernetes node,用于将相关进程放入在其上运行的kubernetes pod中来执行工作负载。每个kubernetes node可以是由控制面负责管理。
66.相应的,本实施例中,驱动管理器生成的安全证书可与kubernetes的证书兼容,提供给kubernetes集群管理员,管理员对相应的计算集群进行操作,可以避免暴露所有计算集群的信息。
67.进一步的,本实施例的计算集群可以包括slurm作业调度框架。相应的,计算集群的分区可以是slurm partition,即slurm分区,其可以是slurm计算集群在资源分配时的最小单元。
68.在本实施例中,驱动控制器、虚拟节点控制器和计算作业控制器可以是位于同一个控制器管理器程序中,并通过kubernetes pod部署。调度器可以是一个单独的程序并通过kubernetes pod部署。
69.本实施例提供的一种异构作业调度系统,通过采用kubernetes以及相应的设置进行插件总线的部署,可以实现本技术异构作业调度系统的一种方案。
70.在其中一个实施例中,如图2所示,本实施例中,集群设备插件状态包括准备中、运行中、失败和已删除。在集群设备插件状态自准备中至已删除的状态中,插件驱动可以是持续提供工作负载管理服务。
71.获取所述插件驱动的注册信息,并根据所述注册信息对所有所述插件驱动进行注册认证可以包括如下步骤:插件驱动调用所述驱动管理器注册服务的注册接口,向驱动管理器上报自身运行的端口、支持的计算资源、特性信息和限制条件。驱动管理器会把该集群设备插件的状态设置为准备中。示例性的,计算资源可以是slurm中具有独占属性的硬件资源,例如cpu及线程的个数,内存大小,gpu个数等,特性信息可以是用户希望的slurm分区中不会变动的属性,如slurm版本、cpu信号、gpu信号等。限制条件可以是用户希望的slurm集群具有的会变动的属性,例如可用节点数量、资源池信息等。资源、特性信息和限制条件都会被调度器采集,并作为调度的依据。
72.驱动管理器向集群管理员发送确认信息,集群管理员手动对待注册的集群设备插件进行认证,而后,由驱动管理器对插件驱动进行健康检查,即健康检测,当健康检查结果为健康信息时,生成安全证书,并向插件驱动下发证书。
73.认证成功后,即可将插件状态变更为运行中,并将该插件驱动列入可用集群设备插件队列。
74.在运行过程中,驱动管理器持续地对插件驱动进行健康检查,当插件驱动反馈的健康信息为非健康时,则可以按照预设规则将其列入失败集群插件队列,并将插件状态变更为失败。
75.当健康检查结果为非健康状态的次数超过预设次数,则判定为重试超时,并将该插件驱动从列表中删除,并将插件状态变更为已删除。
76.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
77.上述异构作业调度系统中的各个控制器和调度器可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
78.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的异构作业调度系统的异构作业调度方法。该方法所提供的解决问题的实现方案与上述系统中所记载的实现方案相似,故下面所提供的一个或多个异构作业调度方法实施例中的具体限定可以参见上文中对于异构作业调度系统的限定,在此不再赘述。
79.在一个实施例中,如图5所示,提供了一种异构作业调度方法,所述方法包括:步骤s100,驱动控制器获取插件驱动的注册信息,并根据所述注册信息对所有所述插件驱动进行注册认证;步骤s200,虚拟节点控制器获取所述插件驱动对应计算集群的软硬件信息以及计算集群的分区列表,根据所述分区列表以及软硬件信息,为每个分区分配虚拟节点并确定每个虚拟节点对应的软硬件信息;步骤s300,计算作业控制器获取用户上传的作业以及作业所需资源;步骤s400,调度器获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的调度结果。
80.在其中一个实施例中,所述驱动控制器对注册认证完成的所述插件驱动进行健康检测;当所述插件驱动基于所述健康检测的反馈信息为健康信息时,为所述插件驱动下发安全证书,并将所述插件驱动的驱动状态设置为运行中;当所述插件驱动基于所述健康检测的反馈信息为超时信息或非健康信息时,将所述插件驱动的驱动状态设置为失败,并对所述插件驱动进行队列隔离。
81.在其中一个实施例中,所述驱动控制器以预设时间为间隔,对所有所述插件驱动进行健康检测,当所述插件驱动基于健康检测的反馈信息为超时信息或非健康信息,且超过预设次数时,删除所述插件驱动。
82.在其中一个实施例中,所述调度器包括一级调度器,所述计算集群包括二级调度器;所述一级调度器获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第一调度结果;所述二级调度器获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第二调度结果;所述一级调度器根据所述第一调度结果以及第二调度结果,生成最终调度结果。
83.在其中一个实施例中,所述虚拟节点控制器与所述调度器连接,所述虚拟节点控制器获取虚拟节点与作业的调度结果,并根据所述调度结果向所述虚拟节点对应的插件驱动下发作业,以使插件驱动对应的计算集群运行所述作业。
84.在其中一个实施例中,所述虚拟节点控制器通过所述插件驱动获取对应计算集群的作业运行信息,所述作业运行信息包括:作业日志、作业告警记录以及作业完成进度。
85.在其中一个实施例中,所述计算作业控制器与所述虚拟节点控制器连接,所述计算作业控制器获取用户的作业查询指令,根据所述作业查询指令,从所述虚拟节点控制器获取对应作业的所述作业运行信息。
86.在其中一个实施例中,所述插件总线通过kubernetes容器集群部署。
87.需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
88.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric randomaccess memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random accessmemory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
89.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
90.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员
来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:
1.一种异构作业调度系统,其特征在于,所述系统包括:插件总线、插件驱动和多个计算集群;每个所述计算集群通过所述插件驱动接入所述插件总线;所述插件总线包括:驱动控制器、虚拟节点控制器、调度器以及计算作业控制器;所述驱动控制器与所述插件驱动连接,用于获取所述插件驱动的注册信息,并根据所述注册信息对所有所述插件驱动进行注册认证;所述虚拟节点控制器与所述插件驱动连接,用于获取所述插件驱动对应计算集群的软硬件信息以及计算集群的分区列表,根据所述分区列表以及软硬件信息,为每个分区分配虚拟节点并确定每个虚拟节点对应的软硬件信息;所述计算作业控制器与所述调度器连接,用于获取用户上传的作业以及作业所需资源;所述调度器还与所述虚拟节点控制器连接;用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的调度结果。2.根据权利要求1所述的异构作业调度系统,其特征在于,所述驱动控制器,还用于对注册认证完成的所述插件驱动进行健康检测;当所述插件驱动基于所述健康检测的反馈信息为健康信息时,为所述插件驱动下发安全证书,并将所述插件驱动的驱动状态设置为运行中;当所述插件驱动基于所述健康检测的反馈信息为超时信息或非健康信息时,将所述插件驱动的驱动状态设置为失败,并对所述插件驱动进行队列隔离。3.根据权利要求2所述的异构作业调度系统,其特征在于,所述驱动控制器,还用于以预设时间为间隔,对所有所述插件驱动进行健康检测,当所述插件驱动基于健康检测的反馈信息为超时信息或非健康信息,且超过预设次数时,删除所述插件驱动。4.根据权利要求1所述的异构作业调度系统,其特征在于,所述调度器包括一级调度器,所述计算集群包括二级调度器;所述一级调度器,用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第一调度结果;所述二级调度器,用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的第二调度结果;所述一级调度器,还用于根据所述第一调度结果以及第二调度结果,生成最终调度结果。5.根据权利要求1所述的异构作业调度系统,其特征在于,所述虚拟节点控制器与所述调度器连接,用于获取虚拟节点与作业的调度结果,并根据所述调度结果向所述虚拟节点对应的插件驱动下发作业,以使插件驱动对应的计算集群运行所述作业。6.根据权利要求1所述的异构作业调度系统,其特征在于,所述虚拟节点控制器,还用于通过所述插件驱动获取对应计算集群的作业运行信息,所述作业运行信息包括:作业日志、作业告警记录以及作业完成进度。7.根据权利要求6所述的异构作业调度系统,其特征在于,所述计算作业控制器与所述虚拟节点控制器连接,所述计算作业控制器,还用于获取
用户的作业查询指令,根据所述作业查询指令,从所述虚拟节点控制器获取对应作业的所述作业运行信息。8.根据权利要求1所述的异构作业调度系统,其特征在于,所述插件总线通过kubernetes容器集群部署。9.一种异构作业调度方法,其特征在于,所述方法应用于权利要求1至权利要求8中任一所述的异构作业调度系统,所述方法包括:驱动控制器获取插件驱动的注册信息,并根据所述注册信息对所有所述插件驱动进行注册认证;虚拟节点控制器获取所述插件驱动对应计算集群的软硬件信息以及计算集群的分区列表,根据所述分区列表以及软硬件信息,为每个分区分配虚拟节点并确定每个虚拟节点对应的软硬件信息;计算作业控制器获取用户上传的作业以及作业所需资源;调度器获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的调度结果。10.根据权利要求9所述的异构作业调度方法,其特征在于,所述驱动控制器对注册认证完成的所述插件驱动进行健康检测;当所述插件驱动基于所述健康检测的反馈信息为健康信息时,为所述插件驱动下发安全证书,并将所述插件驱动的驱动状态设置为运行中;当所述插件驱动基于所述健康检测的反馈信息为超时信息或非健康信息时,将所述插件驱动的驱动状态设置为失败,并对所述插件驱动进行队列隔离。

技术总结
本申请涉及一种异构作业调度系统及方法。所述系统包括:插件总线、插件驱动和多个计算集群;每个计算集群通过插件驱动接入插件总线;驱动控制器用于获取插件驱动的注册信息,并根据注册信息对所有插件驱动进行注册认证;虚拟节点控制器用于获取插件驱动对应计算集群的软硬件信息以及计算集群的分区列表,根据分区列表以及软硬件信息,为每个分区分配虚拟节点并确定每个虚拟节点对应的软硬件信息;计算作业控制器用于获取用户上传的作业以及作业所需资源;调度器用于获取每个虚拟节点对应的软硬件信息以及每个作业对应的作业所需资源,确定虚拟节点与作业的调度结果。采用本系统能够实现集群部署操作简化和作业调度自动化,提高作业调度效率。提高作业调度效率。提高作业调度效率。


技术研发人员:王易围 高翔 潘爱民
受保护的技术使用者:之江实验室
技术研发日:2023.08.02
技术公布日:2023/8/31
版权声明

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

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

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

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

分享:

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

相关推荐