资源调度方法、装置及设备与流程

文档序号:12596656阅读:202来源:国知局
资源调度方法、装置及设备与流程

本申请涉及网络通信技术领域,尤其涉及资源调度方法、装置及设备。



背景技术:

云计算(Cloud Computing)是一种基于互联网的计算方式,通常云计算服务提供方可以根据不同用户的需求,将主机(也可称为云服务器)上的资源进行划分,从而为每个用户分配大小不同的资源,这些资源可以包括CPU(Central Processing Unit,中央处理器)、内存、存储空间等,分配给每个用户的资源组成该用户的实例,或者也可称为虚拟机。通常一台主机的资源可以划分为多个实例,以供多个用户使用。

现有技术中,云计算服务提供商通常设置包含多台主机的集群,集群中的每台主机上运行至少一个用户的实例,但是由于不同实例的资源利用率不同,使得主机的资源分配不均,从而导致集群整体的资源利用不均衡。



技术实现要素:

本申请提供资源调度方法、装置及设备,以解决现有集群整体的资源利用不均衡的问题。

根据本申请实施例的第一方面,提供一种资源调度方法,所述方法用于对包含多台主机的集群的资源进行调度,其中,每台主机上运行至少一个实例,所述方法包括:

获取所述集群的资源参数;

根据所述资源参数计算所述集群的预测主机数量;

当所述集群的当前主机数量大于所述预测主机数量时,从所述集群的当前主机中确定待迁移主机和目标主机;

将所述待迁移主机上运行的实例迁移至所述目标主机中。

根据本申请实施例的第二方面,提供一种资源调度装置,所述装置用于对包含多台主机的集群的资源进行调度,其中,每台主机上运行至少一个实例,所述装置包括:

获取单元,用于获取所述集群的资源参数;

计算单元,用于根据所述资源参数计算所述集群的预测主机数量;

确定单元,用于当所述集群的当前主机数量大于所述预测主机数量时,从所述集群的当前主机中确定待迁移主机和目标主机;

调度单元,用于将所述待迁移主机上运行的实例迁移至所述目标主机中。

根据本申请实施例的第三方面,提供一种资源调度设备,包括:

处理器;用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取所述集群的资源参数;

根据所述资源参数计算所述集群的预测主机数量;

当所述集群的当前主机数量大于所述预测主机数量时,从所述集群的当前主机中确定待迁移主机和目标主机;

将所述待迁移主机上运行的实例迁移至所述目标主机中。

应用本申请实施例对集群中的资源进行调度时,通过获取到的集群的资源参数计算集群的预测主机数量,并在集群的当前主机数量大于预测主机数量时,从集群的当前主机中确定待迁移主机和目标主机,将待迁移主机上运行的实例迁移至目标主机中,使得每个目标主机的资源使用率的提升率最大,从而在通过最小的迁移成本满足集群的资源需求的同时,使得集群整体的资源利用率更加均衡。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1为应用本申请实施例进行资源调度的云系统架构示意图;

图2为本申请资源调度方法的一个实施例流程图;

图3为本申请资源调度方法的另一个实施例流程图;

图4为本申请资源调度装置所在设备的一种硬件结构图;

图5为本申请资源调度装置的一个实施例框图;

图6为本申请资源调度装置的另一个实施例框图。

具体实施方式

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

参见图1,为应用本申请实施例进行资源调度的云系统架构示意图:

图1示出的云系统架构以一个集群为例进行描述,实际应用中,云计算服务器提供商可以设置多个集群。在图1示出的集群中,包括M台主机,每台主机上的资源以存储空间为例进行描述。其中,每台主机上的资源可以分 配给不同的用户,以主机1为例,将主机1上的存储空间划分为N份,从而提供给N个用户使用,每个用户在该主机1上分配的资源称为该用户的实例,如图1中主机1上可以运行N个实例。

结合图1,本申请实施例对集群中的资源进行调度时,通过获取到的集群的资源参数计算集群的预测主机数量,并在集群的当前主机数量大于预测主机数量时,从集群的当前主机中确定待迁移主机和目标主机,将待迁移主机上运行的实例迁移至目标主机中,使得每个目标主机的资源使用率的提升率最大,从而在通过最小的迁移成本满足集群的资源需求的同时,使得集群整体的资源利用率更加均衡。下面将结合具体的实施例对申请进行详细描述。

参见图2,为本申请资源调度方法的一个实施例流程图:

步骤201:获取集群的资源参数。

本步骤中集群的资源参数可以包括:主机的配置资源量和主机上运行的实例的实际资源使用量。

为了保证集群中主机的运行一致性,通常集群中的主机具有相同的配置资源量,该配置资源量为主机固有的配置参数,根据资源类型的不同,配置资源量可以包括CPU参数、内存容量、存储空间容量等,当要对集群进行资源调度时,可以直接采集该集群中主机的配置参数作为配置资源量。

对应于主机上不同类型的资源,可以采集每台主机上所运行的每个实例的实际资源使用量,例如,采集每个实例的实际存储空间使用量、实际内存使用量等。

步骤202:根据集群的资源参数计算集群的预测主机数量。

针对步骤201中获取到的主机的配置资源量和主机上运行的实例的实际资源使用量,本步骤中可以通过对每个实例的实际资源使用量进行线性回归分析,获得每个实例的预测资源使用量。线性回归分析是一种数理统计方式,用于确定两种或两种以上变量间相互依赖的定量关系的一种分析方法,本实施例中采用线性回归分析可以根据过去一个月内每一天实例的资源使用量,预测出未来一月资源使用量的最大值,作为实例的预测资源使用量。

在获得每个实例的预测资源使用量后,可以将每台主机上所有实例的预测资源使用量之和,作为每台主机的预测资源使用量,进一步计算集群中所有主机的预测资源使用量之和,作为集群的预测资源使用量。然后根据主机的配置资源量和集群的预测资源使用量,计算集群的预测主机数量,仍然以存储空间为例,假设主机的存储空间容量为128G,集群的预测存储空间使用量为300G,则可知要满足300G的存储空间使用量,至少需要3台主机,则集群的预测主机数量即为3。

步骤203:当集群的当前主机数量大于预测主机数量时,从集群的当前主机中确定待迁移主机和目标主机。

集群的当前主机数量为集群中所有已上线主机的数量,当该当前主机数量大于步骤202中计算的预测主机数量时,说明集群中的主机有冗余,可以对主机资源进行调度。此时,可以计算集群的当前主机数量与预测主机数量的差值,将该差值作为集群的待迁移主机数量;然后可以确定集群中每台主机的迁移成本值,例如,可以获得每台主机上运行实例的实例数量,和每个实例的存储空间总量,根据实例数量计算每台主机的通知迁移成本值,以及根据存储空间总量计算每台主机上所有实例的数据迁移成本值,将通知迁移成本值和数据迁移成本值的和作为所述每台主机的迁移成本值;最后可以按照迁移成本值从大到小的顺序,获得与待迁移主机数量一致的待迁移主机,并将与预测主机数量一致的剩余主机作为目标主机。

步骤204:将待迁移主机上运行的实例迁移至目标主机中。

在确定完待迁移主机和目标主机后,可以将待迁移主机上运行的所有待迁移实例,按照实例的预测资源使用量从大到小排序,然后按照该排序,顺序将一个待迁移实例迁移至目标主机中的一个目标迁移主机上,该一个目标迁移主机为待迁移实例迁入后,预测资源使用率的提升率最大的目标主机。其中,目标主机的预测资源使用率为该目标主机的预测资源使用量与资源配置量的比值;预测资源使用率的提升率为一个待迁移实例迁移至目标主机前后,该主机的预测资源使用率的提升比例。

由上述实施例可知,该实施例通过获取到的集群的资源参数计算集群的预测主机数量,并在集群的当前主机数量大于预测主机数量时,从集群的当前主机中确定待迁移主机和目标主机,将待迁移主机上运行的实例迁移至目标主机中,使得每个目标主机的资源使用率的提升率最大,从而在通过最小的迁移成本满足集群的资源需求的同时,使得集群整体的资源利用率更加均衡。

参见图3,为本申请资源调度方法的另一个实施例流程图,该实施例对资源调度进行详细描述:

步骤301:采集集群中主机的配置资源量。

为了保证集群中主机的运行一致性,通常集群中的主机具有相同的配置资源量,该配置资源量为主机固有的配置参数,通常指硬件配置参数,根据资源类型的不同,配置资源量可以包括CPU参数、内存容量、存储空间容量等,当要对集群进行资源调度时,可以直接采集该集群中主机的配置参数作为配置资源量。

步骤302:采集集群中每台主机上运行的实例的实际资源使用量。

对应于主机上不同类型的资源,可以采集每台主机上所运行的每个实例的实际资源使用量,例如,采集每个实例的实际存储空间使用量、实际内存使用量等。

步骤303:根据主机的配置资源量和实例的实际资源使用量计算集群的预测主机数量。

针对步骤301中获取到的主机的配置资源量和步骤302获取到的主机上运行的实例的实际资源使用量,本步骤中可以通过对每个实例的实际资源使用量进行线性回归分析,获得每个实例的预测资源使用量。以存储空间使用量为例,可以获取过去一个月内每一天的存储空间使用量,对获取的存储空间使用量进行线性回归分析,计算出未来一个月内存储空间使用量的最大值,将该最大值作为实例的预测存储空间使用量;以内存使用量为例,可以获取过去一个月内每一天的内存使用量,对获取的内存使用量进行线性回归分析, 计算出未来一个月内内存使用量的最大值,将该最大值作为实例的预测内存使用量。

在获得每个实例的预测资源使用量后,可以将每台主机上所有实例的预测资源使用量之和,作为每台主机的预测资源使用量,进一步计算集群中所有主机的预测资源使用量之和,作为集群的预测资源使用量。然后根据主机的配置资源量和集群的预测资源使用量,计算集群的预测主机数量,仍然以存储空间为例,假设主机的存储空间容量为128G,集群的预测存储空间使用量为300G,则可知要满足300G的存储空间使用量,至少需要3台主机,则集群的预测主机数量即为3;需要说明的是,当有多种资源类型时,可以分别计算针对每种资源类型的预测主机数量,并从多个预测主机数量中选择最大数量作为集群的预测主机数量,例如根据存储空间获得的预测主机数量为3,根据CPU获得的预测主机数量为2,根据内存获得的预测主机数量为4,则确定集群的预测主机数量为4。

步骤304:判断集群的当前主机数量是否大于预测主机数量,若是,则执行步骤305;否则,执行步骤308。

本实施例中,集群的当前主机数量为集群中所有已上线主机的数量,当该当前主机数量大于步骤303中计算的预测主机数量时,说明集群中的主机有冗余,可以对主机资源进行调度;当该当前主机数量小于预测主机数量时,说明集群中当前主机不够用,需要加入新主机。

步骤305:从集群的当前主机中确定待迁移主机和目标主机。

在判断结果为当前主机数量大于预测主机数量时,可以计算集群的当前主机数量与预测主机数量的差值,将该差值作为集群的待迁移主机数量;然后可以确定集群中每台主机的迁移成本值,例如,可以获得每台主机上运行实例的实例数量,和每个实例的存储空间总量,根据实例数量计算每台主机的通知迁移成本值,以及根据存储空间总量计算每台主机上所有实例的数据迁移成本值,将通知迁移成本值和数据迁移成本值的和作为所述每台主机的迁移成本值。

在一个主机迁移成本值的计算示例中,可以预先确定通知成本和数据转移成本,其中通知成本是指在通知每个待迁移实例对应的用户所发生的迁移事件时,需要耗费的人力成本;数据转移成本是指待迁移主机上的数据向目标主机迁移的过程中,每迁移1GB大小的数据,需要耗费的网络流量传输成本和读写数据时对硬盘执行I/O(Input/Output,输入输出)操作产生的损耗成本之和。假设通知成本为a元/个,实例数量为b个,数据转移成本为c元/GB,存储空间总量为dGB,则该主机的迁移成本值=a*b+c*d。

在确定了每台主机的迁移成本值之后,可以按照迁移成本值从大到小的顺序获得待迁移主机,所获得的待迁移主机的数量与前述计算得到的待迁移主机数量一致,并将除待迁移主机外的剩余主机作为目标主机,该目标主机的数量与预测主机数量一致。

步骤306:将待迁移主机上运行的实例迁移至目标主机中,以使每个目标主机的资源使用率的提升率最大。

在确定完待迁移主机和目标主机后,可以将待迁移主机上运行的所有待迁移实例,按照实例的预测资源使用量从大到小排序,然后按照该排序,顺序将一个待迁移实例迁移至目标主机中的一个目标迁移主机上,该一个目标迁移主机为待迁移实例迁入后,预测资源使用率的提升率最大的目标主机。其中,目标主机的预测资源使用率为该目标主机的预测资源使用量与资源配置量的比值;预测资源使用率的提升率为一个待迁移实例迁移至目标主机前后,该主机的预测资源使用率的提升比例。

在一个可选的实现方式中,为了保证每台主机的正常运行,可以预先为主机设置资源的预设使用率上限,以保持主机的实际资源使用率小于该预设使用率上限。因此在本实施例中,对于目标主机,可以先计算每个目标主机的实际资源使用率,确定实际资源使用率超过预设使用率上限的目标主机为第一目标主机,将剩余目标主机作为第二目标主机;从第一目标主机上获取第一待迁移实例,以使第一目标主机在第一待迁移实例迁出后的实际资源使用率小于该预设使用率上限;并且将第一待迁移实例迁移至第二目标主机中, 以使第二目标主机的资源使用率的提升率最大。

步骤307:当待迁移主机上运行的实例迁移至目标主机后,控制待迁移主机从集群中下线,结束当前流程。

步骤308:向集群中加入新主机,其中新主机数量为预测主机数量与当前主机数量的差值。

在判断结果为当前主机数量小于预测主机数量时,可以计算集群的预测主机数量与当前主机数量的差值,作为待加入集群中的新主机的数量。

步骤309:从集群的当前主机中获得实际资源使用率超过预设使用率上限的待迁移主机,将待迁移主机上运行的至少一个实例迁移至新主机,以使待迁移主机和新主机的实际资源使用率均不超过预设使用率上限,结束当前流程。

由上述实施例可知,该实施例通过获取到的集群的资源参数计算集群的预测主机数量,并在集群的当前主机数量大于预测主机数量时,从集群的当前主机中确定待迁移主机和目标主机,将待迁移主机上运行的实例迁移至目标主机中,使得每个目标主机的资源使用率的提升率最大,从而在通过最小的迁移成本满足集群的资源需求的同时,使得集群整体的资源利用率更加均衡。

与本申请资源调度方法的实施例相对应,本申请还提供了资源调度装置及设备的实施例。

本申请资源调度装置的实施例用于对包含多台主机的集群的资源进行调度,其中,每台主机上运行至少一个实例,该装置实施例可以应用在资源调度设备上。该装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图4所示,为本申请资源调度装置所在设备的一种硬件结构图,除了图4所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可 以包括其他硬件,图4中不再一一示出。

参见图5,为本申请资源调度装置的一个实施例框图,该装置包括:获取单元510、计算单元520、确定单元530和调度单元540。

其中,获取单元510,用于获取所述集群的资源参数;

计算单元520,用于根据所述资源参数计算所述集群的预测主机数量;

确定单元530,用于当所述集群的当前主机数量大于所述预测主机数量时,从所述集群的当前主机中确定待迁移主机和目标主机;

调度单元540,用于将所述待迁移主机上运行的实例迁移至所述目标主机中。

参见图6,为本申请资源调度装置的另一个实施例框图,该装置包括:获取单元610、计算单元620、确定单元630、调度单元640、控制单元650和加入单元660。

其中,获取单元610,用于获取所述集群的资源参数;

计算单元620,用于根据所述资源参数计算所述集群的预测主机数量;

确定单元630,用于当所述集群的当前主机数量大于所述预测主机数量时,从所述集群的当前主机中确定待迁移主机和目标主机;

调度单元640,用于将所述待迁移主机上运行的实例迁移至所述目标主机中;

控制单元650,用于当所述待迁移主机上运行的实例迁移至所述目标主机后,控制所述待迁移主机从所述集群中下线;

加入单元660,用于当所述集群的当前主机数量小于所述预测主机数量时,向所述集群中加入新主机,其中,新主机数量为所述预测主机数量与所述当前主机数量的差值;

调度单元640,还用于从所述集群的当前主机中获得实际资源使用率超过预设使用率上限的第三主机,将所述第三主机上运行的至少一个实例迁移至所述新主机,以使所述第三主机和所述新主机的实际资源使用率均不超过所述预设使用率上限。

在一个可选的实现方式中,所述获取单元610可以包括(图6中未示出):

第一采集单元,用于采集所述集群中主机的配置资源量;

第二采集单元,用于采集所述集群中每台主机上运行的实例的实际资源使用量。

在另一个可选的实现方式中,所述计算单元620可以包括(图6中未示出):

预测分析子单元,用于通过对运行的每个实例的实际资源使用量进行线性回归分析,获得每个实例的预测资源使用量;

使用量计算子单元,用于计算每台主机上所有实例的预测资源使用量之和,作为每台主机的预测资源使用量,计算所述集群中所有主机的预测资源使用量之和,作为所述集群的预测资源使用量;

预测主机数计算子单元,用于根据所述主机的配置资源量和所述集群的预测资源使用量,计算所述集群的预测主机数量。

在另一个可选的实现方式中,所述确定单元630可以包括(图6中未示出):

迁移主机数计算子单元,用于计算所述集群的当前主机数量与所述预测主机数量的差值,将所述差值作为所述集群的待迁移主机数量;

迁移成本确定子单元,用于确定所述集群中每台主机的迁移成本值;

主机确定子单元,用于按照所述迁移成本值从大到小的顺序,获得与所述待迁移主机数量一致的待迁移主机,将与所述预测主机数量一致的剩余主机作为目标主机。

其中,所述迁移成本确定子单元,可以具体用于获得每台主机上运行实例的实例数量,和每个实例的存储空间总量,根据所述实例数量计算每台主机的通知迁移成本值,以及根据所述存储空间总量计算每台主机上所有实例的数据迁移成本值,计算所述通知迁移成本值和所述数据迁移成本值的和,作为所述每台主机的迁移成本值。

在另一个可选的实现方式中,所述调度单元640可以包括(图6中未示 出):

实例排序子单元,用于将所述待迁移主机上运行的所有待迁移实例,按照实例的预测资源使用量从大到小排序;

顺序迁移子单元,用于按照所述排序,顺序将一个待迁移实例迁移至所述目标主机中的一个目标迁移主机上,所述一个目标迁移主机为所述待迁移实例迁入后,预测资源使用率的提升率最大的目标主机。

在另一个可选的实现方式中,所述调度单元640还可以包括(图6中未示出):

使用率计算子单元,用于计算每个目标主机的实际资源使用率;

目标主机确定子单元,用于确定实际资源使用率超过预设使用率上限的目标主机为第一目标主机,将剩余目标主机作为第二目标主机;

待迁移实例获取子单元,用于从所述第一目标主机上获取第一待迁移实例,以使所述第一目标主机在所述第一待迁移实例迁出后的实际资源使用率小于所述预设使用率上限;

实例迁移子单元,用于将所述第一待迁移实例迁移至所述第二目标主机中,以使所述第二目标主机的资源使用率的提升率最大。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

由上述实施例可见,上述实施例在对集群中的资源进行调度时,通过获取到的集群的资源参数计算集群的预测主机数量,并在集群的当前主机数量 大于预测主机数量时,从集群的当前主机中确定待迁移主机和目标主机,将待迁移主机上运行的实例迁移至目标主机中,使得每个目标主机的资源使用率的提升率最大,从而在通过最小的迁移成本满足集群的资源需求的同时,使得集群整体的资源利用率更加均衡。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1