1.本发明涉及信息技术领域,特别是涉及一种分布式云资源调度方法及装置。本发明还涉及一种分布式云。
背景技术:2.随着云计算业务的发展,云的形态支持了私有云、公有云、边缘云等。公有云是由各个云厂商运维管理,由云厂商为用户提供云服务并收取服务费用的一种云计算业务;私有云是云厂商将云产品出售给用户,用户使用云运维服务自行运维的一种云计算业务;边缘云是云厂商将云产品运行在工厂等远离云数据中心的网络不稳定场所,支持高网络延时的一种云计算业务。
3.分布式云操作系统需要对已有的公有云、私有云、边缘云进行统一的管理,这些云中心可能分布在不同的区域,也可能分布在不同的数据中心,每个云中心支持的资源也不尽相同,有的云中心支持容器资源,有的云中心支持虚机资源。因此,如何实现分布式云中对资源进行调度,实现资源的跨云管理和全域管理,就成为需要解决的技术问题。
技术实现要素:4.本发明的目的是提供一种分布式云资源调度方法及装置,能够实现对分布式云全域资源的跨云调度。本发明还提供一种分布式云。
5.为实现上述目的,本发明提供如下技术方案:
6.一种分布式云资源调度方法,包括:
7.当指定资源需要跨云运行时,获取各个云中心集群的状态;
8.根据所述指定资源、各个所述云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源。
9.优选的,获取各个云中心集群的状态包括:获取各个所述云中心集群的cpu情况和/或内存情况;
10.所述预设调度策略包括:根据所述指定资源需要的cpu数量和/或内存数量、各个所述云中心集群的cpu情况和/或内存情况,确定出所述指定云中心集群。
11.优选的,所述指定资源包括应用单元,所述应用单元包括多个资源;
12.将所述指定资源调度至所述指定云中心集群包括:将所述应用单元包括的多个资源调度至同一所述指定云中心集群。
13.优选的,获取各个云中心集群的状态包括:获取各个所述云中心集群的cpu情况和/或内存情况;
14.所述预设调度策略包括:根据所述应用单元包括的多个资源需要的cpu数量和/或内存数量、各个所述云中心集群的cpu情况和/或内存情况,确定出所述指定云中心集群。
15.优选的,将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的
节点运行所述指定资源包括:
16.从所述指定云中心集群选出任一分组,从选出的所述分组的各个节点中确定出指定节点,以由所述指定节点运行所述指定资源,其中所述指定云中心集群的节点被分成多个所述分组。
17.优选的,将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源包括:
18.根据所述指定云中心集群的各个节点的标签,从所述指定云中心集群的各个节点中筛选出符合要求的多个节点;
19.根据节点的cpu情况和/或内存情况和/或外存情况,从筛选出的符合要求的多个节点中确定出所述指定节点。
20.优选的,根据所述指定云中心集群的各个节点的标签,从所述指定云中心集群的各个节点中筛选出符合要求的多个节点包括:根据所述指定云中心集群的各个节点的标签,保留亲和节点,和/或,根据所述指定资源是否容忍污点节点决定是否保留污点节点。
21.优选的,还包括:获取各个所述云中心集群的状态,若第一云中心集群的状态异常,则将所述第一云中心集群上运行的资源调度至其它的所述云中心集群。
22.一种分布式云资源调度装置,包括:
23.获取模块,用于当指定资源需要跨云运行时,获取各个云中心集群的状态;
24.调度模块,用于根据所述指定资源、各个所述云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源。
25.一种分布式云,应用以上所述的分布式云资源调度方法,或者包括以上所述的分布式云资源调度装置。
26.由上述技术方案可知,本发明所提供的一种分布式云资源调度方法及装置,当指定资源需要跨云运行时,获取各个云中心集群的状态,进而根据指定资源、各个云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将指定资源调度至指定云中心集群,由指定云中心集群的节点运行指定资源。本发明的分布式云资源调度方法及装置,对于需要跨云运行的资源,根据各个云中心集群的状态确定出指定云中心集群,从而将该资源调度至指定云中心集群,实现了对全域资源的跨云调度。
27.本发明还提供一种分布式云,能够达到上述有益效果。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明实施例提供的一种分布式云资源调度方法的流程图;
30.图2为本发明实施例中将指定资源调度至指定云中心集群以由指定云中心集群的节点运行指定资源的方法流程图;
31.图3为本发明实施例提供的一种分布式云资源调度装置的示意图;
32.图4为本发明实施例提供的一种分布式云资源调度装置进行资源调度的示意图;
33.图5为本发明一实施例提供的一种分布式云的示意图。
具体实施方式
34.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
35.请参考图1,图1为本实施例提供的一种分布式云资源调度方法的流程图,如图所示,所述分布式云资源调度方法包括以下步骤:
36.s11:当指定资源需要跨云运行时,获取各个云中心集群的状态。
37.指定资源属于分布式云的资源。指定资源需要跨云运行是指指定资源需要在其它的云中心集群上运行。分布式云包括多个云中心集群,云中心集群的状态是指云中心集群的运行情况。
38.s12:根据所述指定资源、各个云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源。
39.预设调度策略描述了根据指定资源以及各个云中心集群的状态,确定出指定云中心集群的方法。
40.本实施例的分布式云资源调度方法,对于需要跨云运行的资源,获取各个云中心集群的状态以根据各个云中心集群的状态确定出指定云中心集群,从而将该资源调度至指定云中心集群,实现了对分布式云全域资源的跨云调度。
41.本实施例中,对获取云中心集群的状态的方式不做限定,能够实现获取到云中心集群的状态即可,比如可以是向云中心集群发出指令,云中心集群根据指令返回反映自身状态的数据。
42.本实施例中,对云中心集群的状态的具体内容不做限定,可以根据对指定资源进行调度的方法进行设定。可选的,云中心集群的状态可包括云中心集群的cpu情况和/或内存情况,相应的,获取各个云中心集群的状态可包括:获取各个云中心集群的cpu情况和/或内存情况。相应预设调度策略可包括:根据所述指定资源需要的cpu数量和/或内存数量、各个所述云中心集群的cpu情况和/或内存情况,确定出所述指定云中心集群。
43.可选的在实际应用中,可以获取各个云中心集群的cpu总量、已分配cpu数量或者内存总量、已分配内存数量,根据此可以计算出各个云中心集群的剩余cpu数量或者剩余内存数量,进而,可以根据指定资源需要的cpu数量和/或内存数量以及各个云中心集群的剩余cpu数量或者剩余内存数量,确定出指定云中心集群。
44.可选的,预设调度策略可具体包括:根据各个云中心集群的cpu情况和/或内存情况,分别计算各个云中心集群的得分,根据各个云中心集群的得分将各个云中心集群排序,从中确定出指定云中心集群。比如,可以将得分最高的云中心集群作为指定云中心集群,或者也可以根据各个云中心集群的得分的排序结果,根据其它方法确定出指定云中心集群,
能够使确定出的指定云中心集群能够满足指定资源的应用需求即可。在根据云中心集群的cpu情况和/或内存情况计算云中心集群的得分时,可以根据指定资源的需求对cpu情况、内存情况分别配置权重来进行计算,使得确定出的指定云中心集群能够满足指定资源的应用需求。另外,云中心集群的cpu情况和/或内存情况是指云中心集群包括的节点的cpu总和情况和/或内存总和情况。
45.本实施例中,对指定资源的形式不做限定,可选的指定资源可以是容器资源,或者指定资源可以是虚机资源。
46.在一种优选实施方式中,指定资源可包括应用单元,所述应用单元包括多个资源。相应的,在确定出指定云中心集群后,将指定资源调度至指定云中心集群可包括:将所述应用单元包括的多个资源调度至同一所述指定云中心集群。本实施方式中,将多个资源作为一个单元进行整体调度,与将多个资源分别调度相比,减少了调度次数,可以提高调度效率。
47.相应可选的,预设调度策略可包括:根据所述应用单元包括的多个资源需要的cpu数量和/或内存数量、各个所述云中心集群的cpu情况和/或内存情况,确定出所述指定云中心集群。将多个资源作为一个单元进行调度的情况下,根据应用单元包括的多个资源需要的cpu数量和/或内存数量来确定出指定云中心集群,保证应用单元的各个资源都能够在指定云中心集群上运行。
48.应用单元需要的cpu数量是应用单元包括的多个资源需要的cpu数量总和,可根据以下公式计算:
49.app
cpu
=∑ci;
50.其中,app
cpu
表示应用单元需要的cpu数量,ci表示应用单元包括的第i个资源需要的cpu数量,应用单元包括size个资源。
51.应用单元需要的内存数量是应用单元包括的多个资源需要的内存数量总和,可根据以下公式计算:
52.app
内存
=∑mi;
53.其中,app
内存
表示应用单元需要的内存数量,mi表示应用单元包括的第i个资源需要的内存数量,应用单元包括size个资源。
54.那么本实施方式中,应用单元进行一次调度的时间复杂度可表示为o(1/应用单元包括的资源数量),即应用单元包括的资源越多,进行一次调度所需要时间相对越少,调度延时越小,调度性能越高。
55.在实际应用中,应用单元可包括资源列表、资源请求、资源请求上限等。资源请求是指资源需要的cpu数量和/或内存数量的下限,资源请求上限是指资源需要的cpu数量和/或内存数量的上限。本实施例中,对应用单元包括的资源数量不做限定,在实际应用中可以根据应用业务进行设置。示例性的,应用单元可包括多个容器资源,或者应用单元可包括多个虚机资源。
56.现有技术中,分布式云调度资源是一一指派的,即一个资源调度完成后才能进行下一个资源的调度,调度次数与资源数量相等,调度时间复杂度为o(m),m表示待调度资源数量,即待调度资源越多,资源调度耗时越长。针对分布式云上万节点规模,待调度资源有百万级别,完成百万资源的调度,耗时在30分钟左右,调度性能满足不了全域资源调度的要
求。而本实施例方法将多个资源作为一个单元进行调度,减少了调度次数,可以提升调度效率,可以支持大规模集群资源的全域极致弹性调度能力,并且可以防止云中心集群资源被无效占用,造成云中心集群资源浪费的问题。
57.优选的,在确定出指定云中心集群时,将指定资源调度至指定云中心集群,由指定云中心集群的节点运行指定资源可包括:从所述指定云中心集群选出任一分组,从选出的分组的各个节点中确定出指定节点,以由所述指定节点运行所述指定资源,其中所述指定云中心集群的节点被分成多个分组。本实施例中,对将指定云中心集群的节点分成多个分组的方式不做限定,对将指定云中心集群的节点分成的分组数量以及每一分组包括的节点数量不做限定,在实际应用中,可以根据云中心集群包括的节点数量、指定资源的需求或者调度效率要求来确定。
58.可选的,可以将云中心集群的各个节点依次地分成多个分组,在进行一次调度时从中选出一个分组,在进行下一次调度时从中选出另一分组。示例性的,进行一次调度选出的节点分组可表示为:[(indexi+1),(nodesize/shard+indexi)],其中,nodesize表示指定云中心集群包括的节点数量,shard表示指定云中心集群的节点分成分组的数量。i初始值为0,indexi初始值为0。第一次调度选出的节点分组可表示为[1,(nodesize/shard)],每次调度时节点最大下标加1作为下一次调度的起始节点下标。
[0059]
本实施例方法通过将云中心集群的节点分组,从节点分组内确定出运行资源的节点,那么,进行一次资源调度的时间复杂度表示为o(n/s),n表示云中心集群的节点数量,s表示云中心集群的节点分成分组的数量,s越大,时间复杂度越小,一次资源调度延时越小,一次资源调度性能越高。现有技术中,进行资源调度时每一个资源的调度都需要遍历所有节点,根据所有节点的情况从中选出指定节点,而云中心集群的节点数量可能成千上万,这个过程由于节点过多,导致耗时过长,时间复杂度为o(n),n表示云中心集群的节点数量,也就是节点数越多,调度耗时越长,比如在10000节点规模的集群中,完成一次调度大约需要10分钟左右,不能满足应用需求。而本实施例方法相比可以降低调度耗时,提升调度效率。
[0060]
进一步优选的,将指定资源调度至指定云中心集群,由指定云中心集群的节点运行指定资源可包括以下过程,请参考图2,图2为本实施例中将指定资源调度至指定云中心集群以由指定云中心集群的节点运行指定资源的方法流程图,包括以下步骤:
[0061]
s121:根据所述指定云中心集群的各个节点的标签,从所述指定云中心集群的各个节点中筛选出符合要求的多个节点。
[0062]
节点的标签反映了节点的性能或者属性,本实施例中对节点的标签的具体内容不做限定,比如可以是节点为计算节点,节点为存储节点,或者是节点存在特定问题。根据指定资源的需求以及指定云中心集群的各个节点的标签,从中筛选出符合要求的多个节点。本步骤进行了对节点的过滤过程,有助于提高从云中心集群中确定出指定节点的效率。
[0063]
可选的,可以根据指定云中心集群的各个节点的标签,保留亲和节点,和/或,根据指定资源是否容忍污点节点决定是否保留污点节点。亲和节点可以理解为根据节点的标签,认为该节点为符合要求的节点。比如指定资源对应存储业务,某一节点为存储节点,那么该节点对于指定资源为亲和节点,要保留。污点节点可以理解为根据节点的标签,认为该节点的一种或者多种性能或者属性与指定资源的需求不相符。如果指定资源不容忍污点节点,则直接将污点节点排除;如果指定资源允许容忍污点节点,则可以保留污点节点以进行
后续的筛选过程,这样可以使后续的筛选过程中可选择的节点较多。
[0064]
s122:根据节点的cpu情况和/或内存情况和/或外存情况,从筛选出的符合要求的多个节点中确定出所述指定节点。
[0065]
本实施例中,对根据节点的cpu情况和/或内存情况和/或外存情况确定出指定节点的具体方法不做限定。可选的,可以根据筛选出的符合要求的各个节点的cpu情况和/或内存情况和/或外存情况,分别计算各个节点的得分,根据各个节点的得分将各个节点排序,从中确定出指定节点。比如可以将得分最高的节点作为指定节点。在根据节点的cpu情况和/或内存情况和/或外存情况计算节点的得分时,可以根据指定资源的需求对cpu情况、内存情况、外存情况分别配置权重来进行计算,使得确定出的指定节点能够满足指定资源的需求。
[0066]
进一步优选的,本实施例的分布式云资源调度方法还可包括:获取各个所述云中心集群的状态,若第一云中心集群的状态异常,则将所述第一云中心集群上运行的资源调度至其它的所述云中心集群。云中心集群的状态可包括云中心集群的运行状态和云中心集群上负载的运行状态,通过监控各个云中心集群的运行状态以及云中心集群上负载的运行状态,当一个云中心集群异常时,可以将该云中心集群的资源调度至其它正常的云中心集群上,这样可以保证应用业务的正常运行。
[0067]
相应的,请参考图3,图3为本实施例提供的一种分布式云资源调度装置的示意图,如图所示,所述分布式云资源调度装置包括:
[0068]
获取模块21,用于当指定资源需要跨云运行时,获取各个云中心集群的状态;
[0069]
调度模块22,用于根据所述指定资源、各个所述云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源。
[0070]
本实施例的分布式云资源调度装置,对于需要跨云运行的资源,获取各个云中心集群的状态以根据各个云中心集群的状态确定出指定云中心集群,从而将该资源调度至指定云中心集群,能够实现对分布式云全域资源的跨云调度。
[0071]
本实施例中,获取模块21获取各个云中心集群的状态以及调度模块22根据指定资源、各个云中心集群的状态以及预设调度策略确定出指定云中心集群以将指定资源调度至指定云中心集群的实施方式,均可参考上面关于分布式云资源调度方法的实施例中描述的实施方式,在此不再赘述。
[0072]
示例性的可参考图4,图4为一实施例提供的一种分布式云资源调度装置进行资源调度的示意图。如图所示,需要跨云调度的可以是容器资源、虚机资源或者应用单元,应用单元可以是多个容器资源形成的单元。对于容器资源或者虚机资源将其调度至相应的云中心集群;对于应用单元将其包括的各个容器资源调度至同一云中心集群。
[0073]
其中,调度装置20根据要调度资源的情况,可以指定当前资源以容器负载的形式运行在指定云中心集群,支持以容器形式运行;也可以指定当前资源以虚机负载的形式运行在指定云中心集群,支持以虚机形式运行。
[0074]
本实施例还提供一种分布式云,应用以上所述的分布式云资源调度方法,或者包括以上所述的分布式云资源调度装置。
[0075]
本实施例的分布式云中,当指定资源需要跨云运行时,获取各个云中心集群的状
态,进而根据指定资源、各个云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将指定资源调度至指定云中心集群,由指定云中心集群的节点运行指定资源。本分布式云对于需要跨云运行的资源,根据各个云中心集群的状态确定出指定云中心集群,从而将该资源调度至指定云中心集群,实现了对全域资源的跨云调度。
[0076]
示例性的可参考图5,图5为一实施例提供的一种分布式云的示意图,分布式云可包括公有云、私有云、边缘云、中心云或者本地云。调度装置20可实现分布式云全域资源的跨云调度。
[0077]
以上对本发明所提供的一种分布式云资源调度方法及装置、分布式云进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
技术特征:1.一种分布式云资源调度方法,其特征在于,包括:当指定资源需要跨云运行时,获取各个云中心集群的状态;根据所述指定资源、各个所述云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源。2.根据权利要求1所述的分布式云资源调度方法,其特征在于,获取各个云中心集群的状态包括:获取各个所述云中心集群的cpu情况和/或内存情况;所述预设调度策略包括:根据所述指定资源需要的cpu数量和/或内存数量、各个所述云中心集群的cpu情况和/或内存情况,确定出所述指定云中心集群。3.根据权利要求1所述的分布式云资源调度方法,其特征在于,所述指定资源包括应用单元,所述应用单元包括多个资源;将所述指定资源调度至所述指定云中心集群包括:将所述应用单元包括的多个资源调度至同一所述指定云中心集群。4.根据权利要求3所述的分布式云资源调度方法,其特征在于,获取各个云中心集群的状态包括:获取各个所述云中心集群的cpu情况和/或内存情况;所述预设调度策略包括:根据所述应用单元包括的多个资源需要的cpu数量和/或内存数量、各个所述云中心集群的cpu情况和/或内存情况,确定出所述指定云中心集群。5.根据权利要求1所述的分布式云资源调度方法,其特征在于,将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源包括:从所述指定云中心集群选出任一分组,从选出的所述分组的各个节点中确定出指定节点,以由所述指定节点运行所述指定资源,其中所述指定云中心集群的节点被分成多个所述分组。6.根据权利要求1所述的分布式云资源调度方法,其特征在于,将所述指定资源调度至所述指定云中心集群,由所述指定云中心集群的节点运行所述指定资源包括:根据所述指定云中心集群的各个节点的标签,从所述指定云中心集群的各个节点中筛选出符合要求的多个节点;根据节点的cpu情况和/或内存情况和/或外存情况,从筛选出的符合要求的多个节点中确定出所述指定节点。7.根据权利要求6所述的分布式云资源调度方法,其特征在于,根据所述指定云中心集群的各个节点的标签,从所述指定云中心集群的各个节点中筛选出符合要求的多个节点包括:根据所述指定云中心集群的各个节点的标签,保留亲和节点,和/或,根据所述指定资源是否容忍污点节点决定是否保留污点节点。8.根据权利要求1-7任一项所述的分布式云资源调度方法,其特征在于,还包括:获取各个所述云中心集群的状态,若第一云中心集群的状态异常,则将所述第一云中心集群上运行的资源调度至其它的所述云中心集群。9.一种分布式云资源调度装置,其特征在于,包括:获取模块,用于当指定资源需要跨云运行时,获取各个云中心集群的状态;调度模块,用于根据所述指定资源、各个所述云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将所述指定资源调度至所述指定云中心集群,由所述指定云中心
集群的节点运行所述指定资源。10.一种分布式云,其特征在于,应用权利要求1-8任一项所述的分布式云资源调度方法,或者包括权利要求9所述的分布式云资源调度装置。
技术总结本发明公开了一种分布式云资源调度方法及装置,分布式云,当指定资源需要跨云运行时,获取各个云中心集群的状态,进而根据指定资源、各个云中心集群的状态以及预设调度策略,确定出指定云中心集群,以将指定资源调度至指定云中心集群,由指定云中心集群的节点运行指定资源。本发明对于需要跨云运行的资源,根据各个云中心集群的状态确定出指定云中心集群,从而将该资源调度至指定云中心集群,实现了对分布式云全域资源的跨云调度。分布式云全域资源的跨云调度。分布式云全域资源的跨云调度。
技术研发人员:石光银 蔡卫卫 高传集 孙思清 肖雪
受保护的技术使用者:浪潮云信息技术股份公司
技术研发日:2022.03.31
技术公布日:2022/7/5