一种跨集群资源调度方法和装置与流程

文档序号:28318059发布日期:2022-01-04 20:07阅读:155来源:国知局
一种跨集群资源调度方法和装置与流程

1.本技术涉及通信领域,尤其涉及一种跨集群资源调度方法和装置。


背景技术:

2.为了提高数据处理能力和数据的可靠性,越来越多的应用(如机器学习模型)部署在单一数据中心(data center,dc)的集群中。随着运行时间的增长,集群中的应用所需要的资源越来越多,有可能会出现单一数据中心内的资源(即一个dc中的集群所提供的资源)无法满足该应用需求,进而导致应用运行失败的问题。
3.现有技术中,采用在不同dc的集群之间以镜像文件(如docker格式的镜像文件)为单位进行调度的方式解决上述问题。例如:当集群1中的设备确定无法满足应用1的需求时,该设备向调度服务器请求资源;调度服务器在确定集群2中的一个或者多个设备满足条件(即能够为该应用提供资源)时,向该设备发送满足条件的设备的地址;该设备向满足条件的设备发送应用1的镜像文件,这样,满足条件的设备即可根据镜像文件运行应用1。
4.若上述集群1和集群2不属于同一局域网,则集群1和集群2之间数据传输的速率会比较低。镜像文件占用的存储空间通常都比较大,这样的话,上述方法会出现镜像文件占用网络带宽过大,传输速度慢,调度效率低的问题。


技术实现要素:

5.本技术提供了一种跨集群资源调度方法和装置,用于解决现有跨集群资源调度时,集群之间传输镜像文件占用网络带宽过大,传输速度慢,调度效率低问题。
6.为达到上述目的,本技术采用如下技术方案:
7.第一方面,本技术提供了一种跨集群资源调度方法,应用于第一集群中的管理节点,该方法包括:
8.第一集群中的管理节点获取待运行应用的文件之后,该管理节点确定第一集群中的剩余资源能否支持待运行应用的运行,当确定第一集群中的剩余资源无法支持待运行应用的运行时,该管理节点向调度服务器发送用于请求确定剩余资源支持待运行应用的运行的集群的资源调度请求,调度服务器向该管理节点发送满足资源调度请求的第二集群中管理节点的标识,该管理节点根据第一标识,向第二集群中的管理节点发送待运行应用的文件,第二集群中的管理节点根据待运行应用的文件运行待运行应用。
9.可以看出,本技术提供的跨集群资源调度方法中,在集群之间传输的是待运行应用的文件。相比于现有技术中传输的待运行应用的镜像文件,待运行应用的文件占用的存储空间比较小,有效地降低了跨集群资源调度时占用的网络带宽,提升传输速度,提高调度效率。
10.第二方面,本技术提供了一种跨集群资源调度装置,该装置应用于第一集群中的管理节点,该装置包括:获取模块、确定模块、请求模块、接收模块、发送模块。
11.上述获取模块用于获取待运行应用的文件。上述确定模块用于确定第一集群中的
剩余资源能否支持获取模块获取的待运行应用的运行。上述请求模块用于当确定模块确定第一集群中的剩余资源无法支持待运行应用的运行时,向调度服务器发送资源调度请求,资源调度请求用于请求确定剩余资源支持待运行应用的运行的集群。上述接收模块用于接收调度服务器发送的第一标识,第一标识为满足资源调度请求的第二集群中的管理节点的标识。上述发送模块用于根据接收模块接收到的第一标识,向第二集群中的管理节点发送待运行应用的文件,以便于第二集群中的管理节点根据待运行应用的文件运行待运行应用。
12.第三方面,本技术提供一种跨集群资源调度设备,该跨集群资源调度设备包括存储器和处理器。存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,跨集群资源调度设备执行如第一方面及其任一种可能的设计方式所述的跨集群资源调度方法。
13.第四方面,本技术提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当所述计算机可读存储介质在跨集群资源调度装置上运行时,使得该装置执行如第一方面及其任一种可能的设计方式所述的跨集群资源调度方法。
14.第五方面,本技术提供一种计算机程序产品,该计算机程序产品包括计算机指令,当所述计算机指令在跨集群资源调度装置上运行时,使得所述跨集群资源调度装置执行如第一方面及其任一种可能的设计方式所述的跨集群资源调度方法。
15.本技术中第二方面到第五方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面到第五方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
16.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
17.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
18.图1为现有技术中跨集群资源调度系统示意图;
19.图2为本技术实施例中跨集群资源调度系统示意图;
20.图3为本技术实施例提供的跨集群资源调度装置的硬件结构示意图;
21.图4为本技术实施例提供的跨集群资源调度方法的流程示意图;
22.图5为本技术实施例提供的跨集群资源调度装置的结构示意图一;
23.图6为本技术实施例提供的跨集群资源调度装置的结构示意图二。
具体实施方式
24.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
25.术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本技术的描述中,除非另有说明,“多个”的含义是两个或两个以上。
26.随着运行时间的增长,单一数据中心内的资源会无法满足应用需求,需要在不同dc的集群之间进行调度,从而提高数据处理能力和数据的可靠性。
27.现有技术中,在进行跨集群资源调度时,采用在不同dc的集群之间以镜像文件为单位进行调度的方式进行。示例性的,如图1所示,跨集群资源调度系统包括:集群1(包括设备a和设备b)、集群2(包括设备c和设备d)和调度服务器。集群1、集群2与调度服务器连接,集群1和集群2之间通过网络传输。集群1与集群2之间的资源调度流程可以为:1、当集群1中的设备(如设备a)确定集群1无法满足应用1运行的资源需求时,该设备a向调度服务器发送资源请求。2、调度服务器向集群2发送查询请求,以查询资源是否满足应用1的需求。3、在确定集群2中的一个或者多个设备(如设备d)满足条件时,设备d向调度服务器返回确认。4、调度服务器获取设备d的地址,并向设备a发送设备d的地址。5、设备a根据设备d的地址向设备d发送应用1的docker格式的镜像文件。这样,设备d即可根据镜像文件运行应用1。
28.由于docker格式的镜像文件包括运行应用1的操作系统和应用1的依赖库等文件,因此镜像文件占用的存储空间通常都比较大。若上述集群1和集群2属于不属于同一局域网,则会出现镜像文件占用网络带宽过大,传输速度慢,调度效率低的问题。
29.针对上述问题,本技术实施例提供了一种跨集群资源调度方法。当确定第一集群中的剩余资源无法支持待运行应用的运行时,第一集群中的管理节点向满足资源调度请求的第二集群中的管理节点发送待运行应用的文件。相比于现有技术在跨集群资源调度时集群之间传输的是待运行应用的镜像文件,本技术集群之间传输的是待运行应用的文件,由于待运行应用的文件占用的存储空间比较小,从而能够降低跨集群资源调度时占用的网络带宽,提升传输速度,提高调度效率。
30.本技术实施例提供的跨集群资源调度方法应用于跨集群资源调度统。图2示出了该跨集群资源调度系统的架构。如图2所示,跨集群资源调度系统包括:集群101、集群102、调度服务器103。集群101、集群102与调度服务器103连接,集群101和集群102之间通过网络传输信息。当然,在实际应用中,该跨集群资源调度系统不仅限于包括上述设备,还可以包括其他设备,如第三集群。
31.集群是一种计算机系统,通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作。在某种意义上,他们可以被看作是一台计算机。集群中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式。集群计算机通常用来改进单个计算机的计算速度和/或可靠性。一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多。
32.上述任一集群均包括管理节点和多个计算节点。管理节点(也可以称为处理进程/处理线程),管理节点用于管理本集群中各个计算节点的资源分配,还用于与调度服务器103通信,如:请求调度服务器103为其调度其他集群中的资源。
33.管理节点可以由集群中的某一设备实现,也可以为集群中的某一设备中的一个功能模块,还可以由集群中的至少两个设备实现(这种情况下,管理节点可包括多个子模块,
不同的子模块位于不同的设备上),本技术实施例对此不作具体限定。
34.上述管理节点、计算节点和调度服务器103的基本硬件结构类似,都包括图3所示通信装置所包括的元件。下面以图3所示的通信装置为例,介绍管理节点、计算节点和调度服务器103的硬件结构。
35.如图3所示,通信装置可以包括至少一个处理器301,通信线路302,存储器303,通信接口304。
36.具体的,处理器301,用于执行存储器303中存储的计算机执行指令,从而实现终端的步骤或动作。
37.处理器301可以是一个芯片。例如,可以是现场可编程门阵列(field programmable gate array,fpga),可以是专用集成芯片(application specific integrated circuit,asic),还可以是系统芯片(system on chip,soc),还可以是中央处理器(central processor unit,cpu),还可以是网络处理器(network processor,np),还可以是数字信号处理电路(digital signal processor,dsp),还可以是微控制器(micro cont roller unit,mcu),还可以是可编程控制器(programmable logic device,pld)或其他集成芯片。
38.通信线路302,用于在上述处理器301与存储器303之间传输信息。
39.存储器303,用于存储执行计算机执行指令,并由处理器301来控制执行。
40.存储器303可以是独立存在,通过通信线路302与处理器相连接。存储器303可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)。应注意,本文描述的系统和设备的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
41.通信接口304,用于与其他设备或通信网络通信。其中,通信网络可以是以太网,无线接入网(radio access network,ran),或无线局域网(wireless local area networks,wlan)等。
42.需要指出的是,图3中示出的结构并不构成对该通信装置的限定,除图3所示部件之外,该通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
43.下面结合图2示出的跨集群资源调度系统和图3示出的通信装置,对本技术实施例提供的跨集群资源调度方法进行描述。
44.如图4所示,本技术实施例提供的跨集群资源调度方法包括:
45.s401、第一集群中的管理节点获取待运行应用的文件。
46.具体的,待运行应用为需要在第一集群中运行的应用。本技术实施例对待运行应
用的格式、体现方式均不限定。示例性的,待运行应用为机器学习模型,待运行应用的文件为机器学习模型的模型本身。
47.这里的第一集群可以是上面所述的集群101,也可以是集群102。
48.可选的,第一集群中的管理节点获取待运行应用的文件的方法可以为:接收终端发送的待运行应用的文件。
49.示例性的,待运行应用为机器学习模型时,机器学习模型的开发者通过终端将机器学习模型上传到第一集群。
50.可选的,第一集群中的管理节点获取待运行应用的文件的方法还可以为:接收除第一集群以外的其他任一集群中的管理节点发送的待运行应用的文件。
51.示例性的,当第一集群为上述集群101时,集群101中的管理节点可以接收集群102中的管理节点发送的待运行应用的文件。同理,当第一集群为上述集群102时,集群102中的管理节点可以接收集群101中的管理节点发送的待运行应用的文件。
52.可选的,第一集群中的管理节点获取待运行应用的文件之后,可以保存待运行应用的文件。
53.s402、第一集群中的管理节点确定第一集群中的剩余资源能否支持待运行应用的运行。
54.从上述描述可知,管理节点用于管理本集群中各个计算节点的资源分配。也就是说,管理节点能够确定本集群中各个计算节点的剩余资源,并确定本集群的剩余资源。
55.第一集群中的管理节点在获取到待运行应用的文件后,能够确定出运行该待运行应用的文件所需资源的大小。为了保证待运行应用的正常运行,第一集群中的管理节点需要先判断本集群(即第一集群)中的剩余资源能否支持待运行应用的运行。
56.具体的,第一集群中的管理节点根据运行待运行应用所需要资源的大小以及第一集群中剩余资源的大小,确定第一集群中的剩余资源能否支持待运行应用的运行。
57.若第一集群中剩余资源的大小大于或等于运行待运行应用所需要资源的大小,则说明第一集群中的剩余资源能够支持待运行应用的运行。这种情况下,在s402之后继续执行s403-s404。若第一集群中剩余资源的小于运行待运行应用所需要资源的大小,则说明第一集群中的剩余资源无法支持待运行应用的运行。这种情况下,在s402之后继续执行s405-s409。
58.s403、第一集群中的管理节点根据待运行应用的文件生成待运行应用的镜像文件。
59.示例性的,待运行应用为机器学习模型时,第一集群中的管理节点分析机器学习模型所需要的依赖库,为机器学习模型生成docker格式的镜像文件,并在该镜像文件中安装机器学习模型所需要的依赖库。
60.可选的,第一集群中的管理节点生成待运行应用的镜像文件之后,可以保存所生成待运行应用的镜像文件。
61.s404、第一集群中的管理节点根据镜像文件,在第一集群中运行待运行应用。
62.s405、第一集群中的管理节点向调度服务器103发送资源调度请求,资源调度请求用于请求确定剩余资源支持待运行应用的运行的集群。
63.具体的,资源调度请求包括运行待运行应用所需要的资源的大小,调度服务器103
根据运行待运行应用所需要的资源的大小确定剩余资源支持待运行应用的运行的集群。
64.可选的,当某一集群的剩余资源的大小大于等于待运行应用所需要的资源的大小时,该集群为剩余资源支持待运行应用的运行的集群。
65.s406、第一集群中的管理节点接收调度服务器103发送的第一标识,第一标识为满足资源调度请求的第二集群中的管理节点的标识。
66.第二集群为跨集群资源调度系统中不同于第一集群的任一集群。
67.示例性的,第一标识可以为第二集群中的管理节点的应用程序接口(application programming interface,api)地址,也可以为第二集群中管理节点的编号等。
68.s407、第一集群中的管理节点根据第一标识,向第二集群中的管理节点发送待运行应用的文件,以便于第二集群中的管理节点根据待运行应用的文件运行待运行应用。
69.s408、在接收到待运行应用的文件后,第二集群中的管理节点根据待运行应用的文件生成待运行应用的镜像文件。
70.s409、第二集群中的管理节点根据镜像文件,在第二集群中运行待运行应用。
71.本技术提供的跨集群资源调度方法,相比于现有技术在跨集群资源调度时集群之间传输的是待运行应用的镜像文件,本技术集群之间传输的是待运行应用的文件,由于待运行应用的文件占用的存储空间比较小,从而能够降低跨集群资源调度时占用的网络带宽,提升传输速度,提高调度效率。
72.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
73.本技术实施例还提供一种跨集群资源调度装置。该跨集群资源调度装置可以应用于第一集群中的管理节点,也可以应用于上述第二集群中的管理节点。
74.如图5所示,为本技术实施例提供的一种跨集群资源调度装置500的结构示意图。跨集群资源调度装置500用于执行图4所示的跨集群资源调度方法。跨集群资源调度装置500可以包括获取模块501、确定模块502、请求模块503、接收模块504、发送模块505。
75.获取模块501,用于获取待运行应用的文件。例如,结合图4,获取模块501可以用于步骤执行s401。
76.确定模块502、用于确定第一集群中的剩余资源能否支持待运行应用的运行。例如,结合图4,确定模块502可以用于执行步骤s402。
77.请求模块503,用于当确定模块确定第一集群中的剩余资源无法支持待运行应用的运行时,向调度服务器103发送资源调度请求,资源调度请求用于请求确定剩余资源支持待运行应用的运行的集群。例如,结合图4,请求模块503可以用于执行步骤s405。
78.接收模块504,用于接收调度服务器103发送的第一标识,第一标识为满足资源调度请求的第二集群中管理节点的标识。例如,结合图4,接收模块504可以用于执行步骤s406。
79.发送模块505,用于根据第一标识,向第二集群中的管理节点发送待运行应用的文
件,以便于第二集群中的管理节点根据待运行应用的文件运行待运行应用。例如,结合图4,发送模块505可以用于执行步骤s407。
80.如图6所示,本技术实施例提供的一种跨集群资源调度装置500,该装置还可以包括:生成模块506、运行模块507。
81.生成模块506,用于当确定模块502确定第一集群中的剩余资源支持待运行应用的运行时,根据待运行应用的文件生成待运行应用的镜像文件。例如,结合图4,生成模块506可以用于执行步骤s403。
82.运行模块507,用于根据生成模块生成的镜像文件,运行待运行应用。例如,结合图4,生成模块507可以用于执行步骤s404。
83.应理解,在本技术的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
84.在实际实现时,获取模块501、确定模块502、请求模块503、接收模块504、发送模块505、生成模块506以及运行模块507可以由图3所示的处理器301调用存储器303中的程序代码来实现。其具体的执行过程可参考图4所示的跨集群资源调度方法部分的描述,这里不再赘述。
85.本技术另一实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有计算机指令,当计算机指令在跨集群资源调度装置上运行时,使得跨集群资源调度装置执行上述方法实施例所示的方法流程中跨集群资源调度装置执行的各个步骤。
86.在本技术另一实施例中,还提供一种计算机程序产品,该计算机程序产品包括指令,当指令在跨集群资源调度装置上运行时,使得跨集群资源调度装置执行上述方法实施例所示的方法流程中跨集群资源调度装置执行的各个步骤。
87.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
88.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
89.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
90.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
91.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以
是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
92.以上,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1