一种虚拟机调度方法、装置、系统及服务器与流程
未命名
08-14
阅读:68
评论:0
1.本发明涉及虚拟机调度领域,特别是涉及一种虚拟机调度方法、装置、系统及服务器。
背景技术:
2.为了让云平台实现各种功能,需要在构成云平台的计算节点中部署虚拟机,利用计算节点的计算资源实现云平台的功能。在部署虚拟机的过程中,根据云平台的功能创建虚拟机后,需要将虚拟机调度到合适的计算节点中以便部署,目前,调度策略通常分为亲和性策略和反亲和性策略:亲和性策略是将同一批创建出来的虚拟机都调度到同一个计算节点里进行部署,这是考虑到同一批创建出来的虚拟机通常都是实现同一个功能的虚拟机,将这些虚拟机都部署到同一个计算节点利于提高计算效率;反亲和性策略是将同一批创建出来的虚拟机调度到不同的计算节点里进行部署,这是考虑到虚拟机会占用计算节点的计算资源,若计算节点部署了太多的虚拟机则会导致计算节点的性能下降。
3.在实际应用场景中,由于计算节点通常需要实现较多的功能,难以应用亲和性策略,因此,如何合理地将同一批创建出来的虚拟机调度到不同的计算节点中是目前解决的技术问题。
技术实现要素:
4.本发明的目的是提供一种虚拟机调度方法、装置、系统及服务器,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而导致的性能下降。
5.为解决上述技术问题,本发明提供了一种虚拟机调度方法,包括:
6.分别确定各个计算节点当前可用的计算资源量;
7.将所述计算资源量大于所述计算节点对应的预设资源量的计算节点均作为调度节点;
8.分别确定各个所述调度节点的第一历史调度次数;
9.将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中,以便所述第一历史调度次数最少的所述调度节点部署所述虚拟机;
10.将被调度的所述调度节点的第一历史调度次数加1;
11.判断是否有剩余的待调度的虚拟机;
12.若是,则返回分别确定各个计算节点当前可用的计算资源量的步骤;
13.若否,则判定虚拟机调度结束。
14.一方面,分别确定各个所述调度节点的第一历史调度次数,包括:
15.分别确定各个所述调度节点本身的第二历史调度次数,所述调度节点对应的交换机的第三历史调度次数,所述调度节点所在的机柜的第四历史调度次数,所述调度节点所在的机柜所在的机柜列的第五历史调度次数;
16.对于任一个所述调度节点,将所述第二历史调度次数加上所述第三历史调度次数
加上所述第四历史调度次数加上所述第五历史调度次数中的一种或多种的数量和作为所述调度节点的第一历史调度次数。
17.一方面,将被调度的所述调度节点的第一历史调度次数加1,包括:
18.将被调度的所述调度节点对应的所述第二历史调度次数、所述第三历史调度次数、所述第四历史调度次数和所述第五历史调度次数均加1;
19.将被调度的所述调度节点对应的交换机对应的所有其他的所述调度节点的所述第二历史调度次数均加1。
20.一方面,分别确定各个计算节点当前可用的计算资源量,包括:
21.分别确定各个所述计算节点当前可用的处理器资源、内存资源和硬盘存储资源中的一种或多种。
22.一方面,在将所述计算资源量大于所述计算节点对应的预设资源量的计算节点作为调度节点之前,还包括:
23.判断所述计算资源量大于所述计算节点对应的预设资源量的计算节点的数量是否小于预设数量;
24.若否,则进入将所述计算资源量大于所述计算节点对应的预设资源量的计算节点作为调度节点的步骤;
25.若是,则判定所述计算节点所在的云平台的计算资源不足。
26.一方面,在将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中之前,还包括:
27.确定各个所述调度节点当前可用的计算资源量对应的第一权重;
28.确定各个所述调度节点的第一历史调度次数对应的第二权重;
29.将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中,包括:
30.将随机一个待调度的所述虚拟机调度到所述第一权重和所述第二权重之和最大的所述调度节点中。
31.一方面,确定各个所述调度节点当前可用的计算资源量对应的第一权重,包括:
32.以所述第一历史调度次数为参考,对所述计算资源量作归一化处理;
33.确定各个所述调度节点的归一化后的所述计算资源量对应的第一权重。
34.本技术还提供一种虚拟机调度装置,包括:
35.存储器,用于存储计算机程序;
36.处理器,用于执行所述计算机程序时实现如上述的虚拟机调度方法的步骤。
37.本技术还提供一种虚拟机调度系统,包括:
38.计算资源确定单元,用于分别确定各个计算节点当前可用的计算资源量;
39.调度节点确定单元,用于将所述计算资源量大于所述计算节点对应的预设资源量的计算节点均作为调度节点;
40.第一历史调度次数确定单元,用于分别确定各个所述调度节点的第一历史调度次数;
41.调度单元,用于将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中,以便所述第一历史调度次数最少的所述调度节点部署所述虚拟机;
42.计数单元,用于将被调度的所述调度节点的第一历史调度次数加1;
43.判断单元,用于判断是否有剩余的待调度的虚拟机;若是,则触发计算资源确定单元;若否,则触发结算单元;
44.所述结算单元,用于判定虚拟机调度结束。
45.本技术还提供一种服务器,包括服务器本体,还包括如上述的虚拟机调度装置;
46.所述虚拟机调度装置与所述服务器本体连接。
47.综上本技术提供了一种虚拟机调度方法、装置、系统及服务器,通过分别确定各个计算节点当前可用的计算资源量,将计算资源量大于计算节点对应的预设资源量的计算节点均作为调度节点,分别确定各个调度节点的第一历史调度次数,将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机,将被调度的调度节点的第一历史调度次数加1,最后判断是否还存在待调度的虚拟机,有则重新开始流程,无则判定虚拟机调度结束。通过先根据资源量筛选出一批调度节点,再根据历史调度次数选中其中一个调度节点,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而导致的性能下降。
附图说明
48.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
49.图1为本技术提供的一种虚拟机调度方法的流程图;
50.图2为本技术提供的一种计算节点的筛选方法的流程图;
51.图3为本技术提供的一种虚拟机调度装置的结构示意图;
52.图4为本技术提供的一种虚拟机调度系统的结构示意图。
具体实施方式
53.本发明的核心是提供一种虚拟机调度方法、装置、系统及服务器,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而导致的性能下降。
54.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
55.云平台的功能实现主要依靠于部署在构成云平台的计算节点(也就是服务器)上的虚拟机实现,若云平台本身的功能简单,如单纯用于存储功能的云平台,则不需要创建过多的虚拟机,通常在一个计算节点上部署所有的虚拟机也可以满足,这种将所有虚拟机都部署到一个计算节点上的虚拟机调度策略通常被称为亲和性策略。但是,当云平台的功能复杂,而且偶尔需要往云平台中新增功能(也就是偶尔会新创建一批虚拟机)时,仅靠单个或者少数几个计算节点的计算资源无法支持大量的虚拟机部署,因此,需要将每次创建的一批虚拟机调度到合理的计算节点中,避免某个计算节点的负荷过大。
56.为了解决上述的技术问题,请参照图1,图1为本技术提供的一种虚拟机调度方法的流程图,包括:
57.s1:分别确定各个计算节点当前的计算资源量;
58.s2将计算资源量大于计算节点对应的预设资源量的计算节点作为调度节点;
59.为了避免某个计算节点的负荷过大,可以根据实际需求对各个计算节点设置一个预设资源量,如果用户对于某个计算节点没什么需求,或者该计算节点的性能强大,该计算节点的预设资源量可以设置得较少;如果用户对于某个计算节点有较高的需求,例如用来当做主机或者用来处理大量数据,或者该计算节点的性能较弱,则该计算节点的预设资源量就需要设置得较高。基于此,请参照图2,图2为本技术提供的一种计算节点的筛选方法的流程图,在调度虚拟机之前,需要先对云平台中的计算节点进行一遍筛选,确定每个计算节点目前剩余可用的计算资源量,并将计算节点当前剩余可用的计算资源量与该计算节点本身的预设资源量进行对比,如果计算节点的剩余可用的计算资源量少于本身的预设资源量,则将其滤除,如果多于预设资源量,则作为调度节点进行后续的步骤,虚拟机只会被调度到某个调度节点中。如图2所示,一开始有主机1~6这6个计算节点,首先经过筛选,根据cpu(central processing units,中央处理器)资源、ram(random access memory,随机存取存储器)资源、disk(磁盘)资源对这6个计算节点进行筛选,发现其中的主机2和主机4不满足要求,因此将这两个计算节点排除掉,剩下的主机1、主机3、主机5和主机6作为调度节点,通过权重计算这4个调度节点的第一历史调度次数,得知主机5的第一历史调度次数最少,权重最大。
60.s3:分别确定各个调度节点的第一历史调度次数;
61.s4:将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机;
62.为了将虚拟机调度到合适的计算节点中,在进行调度时,虽然每个调度节点都能够满足虚拟机调度的需求,但因为每个调度节点的实际的资源量、性能、部署的虚拟机的数量都不同,因此,需要在调度节点中确定出性能最佳的调度节点来部署虚拟机。包括,因为调度节点的性能与剩余的计算资源量有关,剩余的计算资源量越多则调度节点的性能越强,剩余的计算资源量与部署的虚拟机数量有关,部署的虚拟机数量越少则剩余的计算资源量越多。基于此,每次讲虚拟机调度到某个调度节点中进行部署时,都会记录下该调度节点的第一历史调度次数,每有一个虚拟机被调度到该调度节点中,该调度节点的第一历史调度次数就会加1。当然,在虚拟机从该调度节点中卸载或移除之后,该调度节点的第一历史调度次数就会减1。在实际应用时,确定出每个调度节点在当前的第一历史调度次数,将需要调度的虚拟机调度到第一历史调度次数最少的调度节点中。可以理解的是,第一历史调度次数最少的调度节点中部署的虚拟机的数量最少,因此该调度节点通常是剩余可用的计算资源量最多的节点,也就是性能最佳的节点。
63.s5:将被调度的调度节点的第一历史调度次数加1;
64.s6:判断是否有剩余的待调度的虚拟机;若是,则返回s3;若否,则进入s7;
65.s7:判定虚拟机调度结束。
66.若同时创建了一批虚拟机,则每次只调度一个虚拟机,在调度完其中的一个虚拟机之后,将这个调度完的虚拟机所在的调度节点的第一历史调度次数加1,来说明这个调度
节点上新增了一个虚拟机,然后再重新开始流程,重新在所有的调度节点中找出第一历史调度次数最少的调度节点,以调度下一个虚拟机。当所有的虚拟机都被调度到调度节点中,没有剩余的未被调度的虚拟机时,说明本次调度结束。
67.综上,通过分别确定各个计算节点当前可用的计算资源量,将计算资源量大于计算节点对应的预设资源量的计算节点均作为调度节点,分别确定各个调度节点的第一历史调度次数,将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机,将被调度的调度节点的第一历史调度次数加1,最后判断是否还存在待调度的虚拟机,有则重新开始流程,无则判定虚拟机调度结束。通过先根据资源量筛选出一批调度节点,再根据历史调度次数选中其中一个调度节点,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而导致的性能下降。
68.在上述实施例的基础上:
69.作为一种在一些实施例中实施例,分别确定各个调度节点的第一历史调度次数,包括:
70.分别确定各个调度节点本身的第二历史调度次数,调度节点对应的交换机的第三历史调度次数,调度节点所在的机柜的第四历史调度次数,调度节点所在的机柜所在的机柜列的第五历史调度次数;
71.对于任一个调度节点,将第二历史调度次数加上第三历史调度次数加上第四历史调度次数加上第五历史调度次数中的一种或多种的数量和作为调度节点的第一历史调度次数。
72.为了进一步合理地调度虚拟机,本技术中,在确定第一历史调度次数时,计算节点的第一历史调度次数实际上不仅由计算节点本身的调度次数构成,还跟与该计算节点连接的交换机、该计算节点所在的机柜、该机柜所在的机柜列有关,如果某个计算节点被调度来了一个虚拟机,那么不仅是计算节点本身的第二历史调度次数会增加,跟这个计算节点对应的交换机、机柜、机柜列的历史调度次数也都会增加,相当于在本实施例中,当计算节点被调度来了一个虚拟机后,第一历史调度次数并非加1,而是加4。通过这种方式,可以将虚拟机尽可能地调度到完全不同的计算节点中,来提高每个交换机、机柜、机柜列的资源利用率,合理地调度虚拟机。
73.此外,是否需要将交换机、机柜、机柜列的历史调度次数都纳入考虑,需要根据用户的具体需求来确定,例如,如果用户不喜欢将虚拟机分散到各处部署,则可以不将机柜和机柜列的历史调度次数纳入考虑。包括,如果只考虑交换机的历史调度次数,则可以将以下代码写入云平台来作为调度规则:openstack server group create switch-soft-anti-affinity
‑‑
rule resources=switch,最后的switch则表示只考虑交换机的历史调度次数;如果否需要将交换机、机柜、机柜列的历史调度次数都纳入考虑,则可以将以下代码写入云平台来作为调度规则:openstack server group create srr-soft-anti-affinity
‑‑
rule resources=switch,rack,rack_col,最后的switch、rack、rack_col分别表示交换机、机柜、机柜列的历史调度次数。
74.作为一种在一些实施例中实施例,将被调度的调度节点的第一历史调度次数加1,包括:
75.将被调度的调度节点对应的第二历史调度次数、第三历史调度次数、第四历史调度次数和第五历史调度次数均加1;
76.将被调度的调度节点对应的交换机对应的所有其他的调度节点的第二历史调度次数均加1。
77.为了进一步合理地调度虚拟机,本技术中,因为每个计算节点都需要和交换机连接,一台交换机通常会连接多个计算节点,交换机不仅需要负责控制各个计算节点,而且当计算节点需要传输数据时还需要经过交换机来传输。由于交换机的处理能力有限,在调度虚拟机时,如果将虚拟机都调度到与这个交换机连接的这些调度节点中,则会加大交换机的负荷。因此,当虚拟机调度到某个调度节点中之后,不仅这个调度节点本身的第二历史调度次数、与这个调度节点连接的交换机、机柜、机柜列的历史调度次数会增加,而且其他所有的与该交换机连接的调度节点的第二历史调度次数都会增加。
78.例如,有下表:
79.表1:计算节点的分布表
[0080][0081][0082]
其中,host表示计算节点,switch表示交换机,rack表示机柜,rack_col表示机柜列。表1中总共有host1~4这4个计算节点,以host1为例,host连接了switch1交换机,host1在rack1机柜上,rack1机柜在rack_col1机柜列中,由此可见,如果虚拟机调度到了host1上,那么host1的第二历史调度次数、switch1的第三历史调度次数、rack1的第四历史调度次数、rack_col1的第五历史调度次数都会增加,而且,因为host2计算节点连接的也是switch1交换机,所以host2的第二历史调度次数也会加1。
[0083]
综上,当虚拟机调度到一个计算节点后,不仅该计算节点本身以及其对应的交换机、机柜、机柜列的历史调度次数都会增加,与这个交换机连接的所有其他的计算节点本身的历史调度次数也都会增加,通过这种方式,可以避免虚拟机都调度到同一个交换机连接的这些计算节点中,可以进一步合理地调度虚拟机。
[0084]
作为一种在一些实施例中实施例,分别确定各个计算节点当前可用的计算资源量,包括:
[0085]
分别确定各个计算节点当前可用的处理器资源、内存资源和硬盘存储资源中的一种或多种。
[0086]
为了准确地确定计算节点的当前可用计算资源量,本技术中,需要从计算机节点的多方面考虑,也就是需要获取处理器、内存、硬盘存储资源这三种资源。包括,计算节点中的处理器的当前可用资源指的是处理器的利用率,处理器的利用率越低,说明处理器的剩
余可用资源越多,处理器的性能也就越高;内存的当前可用资源指的是内存的空闲存储空间,或者说内存的占用率,空闲存储空间越多/占用率越低,说明内存的剩余可用资源越多,该计算节点的数据遍历效率越快,性能也就越高;硬盘存储资源和内存资源同理。在实际应用中,分别对这三种资源都设定对应的预设资源量,实际判断过程可以根据实际需求和用户需要,可以在这三种资源中只有一种资源大于其对应的预设资源量的计算节点当做调度节点,也可以三种资源都要大于对应的预设资源量的计算节点才能当做调度节点,本技术对此不做限定。基于此,可以准确地确定计算节点的当前可用计算资源量。
[0087]
作为一种在一些实施例中实施例,在将计算资源量大于计算节点对应的预设资源量的计算节点作为调度节点之前,还包括:
[0088]
判断计算资源量大于计算节点对应的预设资源量的计算节点的数量是否小于预设数量;
[0089]
若否,则进入将计算资源量大于计算节点对应的预设资源量的计算节点作为调度节点的步骤;
[0090]
若是,则判定计算节点所在的云平台的计算资源不足。
[0091]
考虑到云平台的计算节点的资源有限,当云平台中设置了过多的功能或者存储了大量的数据时,可能会导致云平台中的大部分计算节点或者所有的计算节点的资源量都过少,如果这时候仍继续新增虚拟机,则会导致云平台的性能受到严重影响。在这种情况下,为了保证云平台的正常运行以及客户的使用体验,在确定各个计算节点的当前可用的计算资源量,从中确定出所有的调度节点之后,还需要确定可以使用的调度节点的数量,如果调度节点的数量过少,或者完全没有调度节点时,说明此时的整个云平台的剩余资源都不多,此时则不会直接调度待调度的虚拟机,而是判定云平台的计算资源不足,提示工作人员来等待工作人员的指示,根据工作人员的后续指示,可以直接调度该虚拟机,也可以放弃调度,或者等新的计算节点加入后再调度,或者等计算节点的资源释放之后再调度,本技术对此不做限定。
[0092]
作为一种在一些实施例中实施例,在将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中之前,还包括:
[0093]
确定各个调度节点当前可用的计算资源量对应的第一权重;
[0094]
确定各个调度节点的第一历史调度次数对应的第二权重;
[0095]
将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,包括:
[0096]
将随机一个待调度的虚拟机调度到第一权重和第二权重之和最大的调度节点中。
[0097]
为了进一步准确地调度虚拟机,本技术中,不仅考虑到了第一历史调度次数,还将各个调度节点的计算资源量也纳入考虑范围。包括,由于先前在计算节点的计算资源量时就已经确定了各个调度节点的当前可用计算资源量,因此可以直接将调度节点的当前可用计算资源量与调度节点的最大计算资源量作计算,当前可用计算资源量越多,第一权重就越大;对于第二权重,可以将第一历史调度次数的负值直接作为第二权重。最后将第一权重以及第二权重相加,得到调度节点的整体权重,在调度虚拟机时,将虚拟机调度到权重最大的调度节点中。基于此,结合历史调度次数和计算资源量,并计算各自的权重,可以进一步准确地调度虚拟机。
[0098]
作为一种在一些实施例中实施例,确定各个调度节点当前可用的计算资源量对应
的第一权重,包括:
[0099]
以第一历史调度次数为参考,对计算资源量作归一化处理;
[0100]
确定各个调度节点的归一化后的计算资源量对应的第一权重。
[0101]
为了计算出准确的权重,本技术中,考虑到计算资源量的具体形式通常为包含小数在内的一串数位较长的数字,而第一历史调度次数的具体形式通常是数位较短的整数,两者并不属于同一数量级,若直接根据这些参数的原始形式来计算出权重,则会导致第一权重过大而第二权重过小,导致历史调度次数的作用无法体现出来。基于此,考虑到历史调度次数的原始形式比较简单,易于计算,因此对计算资源量进行归一化处理,使计算资源量的形式与历史调度次数的形式等同。包括,因为一个虚拟机部署需要计算资源,而一个调度节点的计算资源是固定的,不可能在一个调度节点上部署无限个虚拟机,所以调度节点的最大历史调度次数也是固定的,确定出1次调度次数占最大历史调度次数的比值,然后计算出调度节点的最大计算资源量乘以该比值后的计算资源量,该计算资源量即为单位计算资源量,其相当于1次调度次数;在实际应用时,将调度节点当前可用的计算资源量除以单位计算资源量即可得到调度节点的第一权重。
[0102]
作为一种简单的例子,假设某个调度节点的最大历史调度次数是10,最大计算资源量为100m,假设调度节点此时的第一历史调度次数为4,当前可用的计算资源量为80m,可见,1次调度次数占最大历史调度次数的比值是10%,强10%反映到最大计算资源量100m中,可以得出单位计算资源量为10m,当前可用的计算资源量80m除以单位计算资源量10m得到第二权重8,另外,第一权重直接等于第一历史调度次数4的负值,也就是-4,那么该调度节点的总权重就是4。
[0103]
请参照图3,图3为本技术提供的一种虚拟机调度装置的结构示意图,包括:
[0104]
存储器21,用于存储计算机程序;
[0105]
处理器22,用于执行计算机程序时实现如上述的虚拟机调度方法的步骤。
[0106]
该处理器22可因配置或性能不同而产生比较大的差异,处理器22可以是cpu或者cpld(complex programmable logic device,复杂可编程逻辑器件),也可以是由多个处理元件共同组成的处理器22,例如双路cpu共同组成处理器22。另外,存储器21可以是短暂存储单元或持久存储单元,例如可以是闪存或者内存等。存储在存储器21的程序可以实现上述的虚拟机调度方法的步骤,每个步骤都对应于对处理器中的一系列指令操作。更进一步地,处理器21可以设置和存储器22通信,在需要执行操作时,处理器21从存储器22中获取数据来执行上述虚拟机调度方法中的一系列指令操作。
[0107]
对于本技术提供的一种虚拟机调度装置的详细介绍,请参照上述的虚拟机调度方法的实施例,本技术在此不再赘述。
[0108]
虚拟机调度装置通过分别确定各个计算节点当前可用的计算资源量,将计算资源量大于计算节点对应的预设资源量的计算节点均作为调度节点,分别确定各个调度节点的第一历史调度次数,将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机,将被调度的调度节点的第一历史调度次数加1,最后判断是否还存在待调度的虚拟机,有则重新开始流程,无则判定虚拟机调度结束。通过先根据资源量筛选出一批调度节点,再根据历史调度次数选中其中一个调度节点,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而
导致的性能下降。
[0109]
请参照图4,图4为本技术提供的一种虚拟机调度系统的结构示意图,包括:
[0110]
计算资源确定单元31,用于分别确定各个计算节点当前可用的计算资源量;
[0111]
调度节点确定单元32,用于将计算资源量大于计算节点对应的预设资源量的计算节点均作为调度节点;
[0112]
第一历史调度次数确定单元33,用于分别确定各个调度节点的第一历史调度次数;
[0113]
调度单元34,用于将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机;
[0114]
计数单元35,用于将被调度的调度节点的第一历史调度次数加1;
[0115]
判断单元36,用于判断是否有剩余的待调度的虚拟机;若是,则触发计算资源确定单元31;若否,则触发结算单元37;
[0116]
结算单元37,用于判定虚拟机调度结束。
[0117]
对于本技术提供的一种虚拟机调度系统的详细介绍,请参照上述的虚拟机调度方法的实施例,本技术在此不再赘述。
[0118]
在一些实施例中,第一历史调度次数确定单元33包括:
[0119]
整体历史调度次数确定单元,用于分别确定各个调度节点本身的第二历史调度次数,调度节点对应的交换机的第三历史调度次数,调度节点所在的机柜的第四历史调度次数,调度节点所在的机柜所在的机柜列的第五历史调度次数;
[0120]
第一历史调度次数计算单元,用于对于任一个调度节点,将第二历史调度次数加上第三历史调度次数加上第四历史调度次数加上第五历史调度次数中的一种或多种的数量和作为调度节点的第一历史调度次数。
[0121]
在一些实施例中,计数单元35包括:
[0122]
整体计数单元,用于将被调度的调度节点对应的第二历史调度次数、第三历史调度次数、第四历史调度次数和第五历史调度次数均加1;
[0123]
关联计数单元,用于将被调度的调度节点对应的交换机对应的所有其他的调度节点的第二历史调度次数均加1。
[0124]
在一些实施例中,计算资源确定单元31具体用于:
[0125]
分别确定各个计算节点当前可用的处理器资源、内存资源和硬盘存储资源中的一种或多种。
[0126]
在一些实施例中,还包括节点数量判断单元,用于在将计算资源量大于计算节点对应的预设资源量的计算节点作为调度节点之前,判断计算资源量大于计算节点对应的预设资源量的计算节点的数量是否小于预设数量;若否,则触发调度节点确定单元32;若是,则触发资源不足判定单元;
[0127]
资源不足判定单元,用于判定计算节点所在的云平台的计算资源不足。
[0128]
在一些实施例中,还包括:
[0129]
第一权重确定单元,用于在将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中之前,确定各个调度节点当前可用的计算资源量对应的第一权重;
[0130]
第二权重确定单元,用于确定各个调度节点的第一历史调度次数对应的第二权
重;
[0131]
调度单元34具体用于将随机一个待调度的虚拟机调度到第一权重和第二权重之和最大的调度节点中。
[0132]
在一些实施例中,第一权重确定单元包括:
[0133]
归一化单元,用于以第一历史调度次数为参考,对计算资源量作归一化处理;
[0134]
第三权重确定单元,用于确定各个调度节点的归一化后的计算资源量对应的第一权重。
[0135]
通过分别确定各个计算节点当前可用的计算资源量,将计算资源量大于计算节点对应的预设资源量的计算节点均作为调度节点,分别确定各个调度节点的第一历史调度次数,将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机,将被调度的调度节点的第一历史调度次数加1,最后判断是否还存在待调度的虚拟机,有则重新开始流程,无则判定虚拟机调度结束。通过先根据资源量筛选出一批调度节点,再根据历史调度次数选中其中一个调度节点,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而导致的性能下降。
[0136]
本技术还提供一种服务器,包括服务器本体,还包括如上述的虚拟机调度装置;
[0137]
虚拟机调度装置与服务器本体连接。
[0138]
服务器本体中除了各种处理器、各种存储器、风扇模块、传感器、指示灯外,还可以包括一个或一个以上电源;一个或一个以上有线或无线网络接口,一个或一个以上输入输出接口,一个或一个以上操作系统,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0139]
因为计算节点实际上也是服务器,所以与虚拟机调度装置连接的服务器也需要和云平台中的各个计算节点连接,当然,也可以将这些计算节点中的某个计算节点作为服务器本体使用,实际的选择方式需要根据用户需求决定。
[0140]
对于本技术提供的一种服务器的详细介绍,请参照上述的虚拟机调度方法的实施例,本技术在此不再赘述。
[0141]
通过分别确定各个计算节点当前可用的计算资源量,将计算资源量大于计算节点对应的预设资源量的计算节点均作为调度节点,分别确定各个调度节点的第一历史调度次数,将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机,将被调度的调度节点的第一历史调度次数加1,最后判断是否还存在待调度的虚拟机,有则重新开始流程,无则判定虚拟机调度结束。通过先根据资源量筛选出一批调度节点,再根据历史调度次数选中其中一个调度节点,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而导致的性能下降。
[0142]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0143]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意
在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0144]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
技术特征:
1.一种虚拟机调度方法,其特征在于,包括:分别确定各个计算节点当前可用的计算资源量;将所述计算资源量大于所述计算节点对应的预设资源量的计算节点均作为调度节点;分别确定各个所述调度节点的第一历史调度次数;将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中,以便所述第一历史调度次数最少的所述调度节点部署所述虚拟机;将被调度的所述调度节点的第一历史调度次数加1;判断是否有剩余的待调度的虚拟机;若是,则返回分别确定各个计算节点当前可用的计算资源量的步骤;若否,则判定虚拟机调度结束。2.如权利要求1所述的虚拟机调度方法,其特征在于,分别确定各个所述调度节点的第一历史调度次数,包括:分别确定各个所述调度节点本身的第二历史调度次数,所述调度节点对应的交换机的第三历史调度次数,所述调度节点所在的机柜的第四历史调度次数,所述调度节点所在的机柜所在的机柜列的第五历史调度次数;对于任一个所述调度节点,将所述第二历史调度次数加上所述第三历史调度次数加上所述第四历史调度次数加上所述第五历史调度次数中的一种或多种的数量和作为所述调度节点的第一历史调度次数。3.如权利要求2所述的虚拟机调度方法,其特征在于,将被调度的所述调度节点的第一历史调度次数加1,包括:将被调度的所述调度节点对应的所述第二历史调度次数、所述第三历史调度次数、所述第四历史调度次数和所述第五历史调度次数均加1;将被调度的所述调度节点对应的交换机对应的所有其他的所述调度节点的所述第二历史调度次数均加1。4.如权利要求1所述的虚拟机调度方法,其特征在于,分别确定各个计算节点当前可用的计算资源量,包括:分别确定各个所述计算节点当前可用的处理器资源、内存资源和硬盘存储资源中的一种或多种。5.如权利要求1所述的虚拟机调度方法,其特征在于,在将所述计算资源量大于所述计算节点对应的预设资源量的计算节点作为调度节点之前,还包括:判断所述计算资源量大于所述计算节点对应的预设资源量的计算节点的数量是否小于预设数量;若否,则进入将所述计算资源量大于所述计算节点对应的预设资源量的计算节点作为调度节点的步骤;若是,则判定所述计算节点所在的云平台的计算资源不足。6.如权利要求1至5任一项所述的虚拟机调度方法,其特征在于,在将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中之前,还包括:确定各个所述调度节点当前可用的计算资源量对应的第一权重;确定各个所述调度节点的第一历史调度次数对应的第二权重;
将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中,包括:将随机一个待调度的所述虚拟机调度到所述第一权重和所述第二权重之和最大的所述调度节点中。7.如权利要求6所述的虚拟机调度方法,其特征在于,确定各个所述调度节点当前可用的计算资源量对应的第一权重,包括:以所述第一历史调度次数为参考,对所述计算资源量作归一化处理;确定各个所述调度节点的归一化后的所述计算资源量对应的第一权重。8.一种虚拟机调度装置,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的虚拟机调度方法的步骤。9.一种虚拟机调度系统,其特征在于,包括:计算资源确定单元,用于分别确定各个计算节点当前可用的计算资源量;调度节点确定单元,用于将所述计算资源量大于所述计算节点对应的预设资源量的计算节点均作为调度节点;第一历史调度次数确定单元,用于分别确定各个所述调度节点的第一历史调度次数;调度单元,用于将随机一个待调度的虚拟机调度到所述第一历史调度次数最少的所述调度节点中,以便所述第一历史调度次数最少的所述调度节点部署所述虚拟机;计数单元,用于将被调度的所述调度节点的第一历史调度次数加1;判断单元,用于判断是否有剩余的待调度的虚拟机;若是,则触发计算资源确定单元;若否,则触发结算单元;所述结算单元,用于判定虚拟机调度结束。10.一种服务器,其特征在于,包括服务器本体,还包括如权利要求8所述的虚拟机调度装置;所述虚拟机调度装置与所述服务器本体连接。
技术总结
本发明公开了一种虚拟机调度方法、装置、系统及服务器,涉及虚拟机调度领域,通过确定各个计算节点当前可用的计算资源量,将计算资源量大于计算节点对应的预设资源量的计算节点均作为调度节点,分别确定各个调度节点的第一历史调度次数,将随机一个待调度的虚拟机调度到第一历史调度次数最少的调度节点中,以便第一历史调度次数最少的调度节点部署虚拟机,最后判断是否还存在待调度的虚拟机,有则重新开始流程,无则判定虚拟机调度结束。通过先根据资源量筛选出一批调度节点,再根据历史调度次数选中其中一个调度节点,可以将虚拟机调度到合适的调度节点中,避免某个计算节点部署太多的虚拟机而导致的性能下降。多的虚拟机而导致的性能下降。多的虚拟机而导致的性能下降。
技术研发人员:宋文平 徐源浩
受保护的技术使用者:济南浪潮数据技术有限公司
技术研发日:2023.05.19
技术公布日:2023/8/13
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
