一种资源的调度方法和服务器与流程

文档序号:14843728发布日期:2018-06-30 14:32阅读:122来源:国知局
一种资源的调度方法和服务器与流程

本发明涉及计算机技术领域,尤其涉及一种资源的调度方法和服务器。



背景技术:

计算机可以提供内存空间、磁盘空间、接口带宽、网络带宽等各种资源,计算机的各种资源可以分别给不同的用户使用。

在现有技术中存在一种资源的调度方法:资源按量分配,即静态资源调度。在调度之前定义好每个用户可使用的资源数量,调度系统按照定义完成资源静态分配。资源分配的变更仅来源于用户的定义更新,包括新增用户,用户注销和用户扩缩容等,使用此类调度方法的方案包括MEMCG(Memory CGroup)内存控制组,网络带宽控制(Traffic Control,TC)流量隔离等。

在现有技术中还存在另一种资源的调度方法:资源按时分配,属于另一种形式的资源静态分配。在调度之前定义好每个用户可使用资源的时间片长度,用户在该时间片内独占资源。调度系统不关心用户时间片内的资源利用率,仅通过对不同的用户限制使用时间来做资源隔离。使用此类调度方法的方案包括完全公平队列(Complete Fair Queue,CFQ)等。

在上述资源按量分配的技术方案中,整个调度过程未考虑用户的实际资源使用情形,做不到实时调整分配比例,以满足用户持续变化的需求,还可能造成部分用户对资源的闲置,降低了资源共享效率。

在上述资源按时分配的技术方案中,虽然解决了资源按量分配方案中面临的资源所需数量定义困难引发的分配边界问题,允许用户在预先定义好的时间片内按需使用资源。但是在某个时间片内用户的资源独占行为同样也带来的资源浪费比资源按量分配方案要更加严重,数量更多的资源会在部分时间片内被闲置。



技术实现要素:

本发明实施例提供了一种资源的调度方法和服务器,用于提高资源的分配效率和使用效率。

为解决上述技术问题,本发明实施例提供以下技术方案:

第一方面,本发明实施例提供一种资源的调度方法,包括:

接收第一终端发送的资源申请请求,所述资源申请请求包括:所述第一终端的资源需求数量和所述第一终端请求的资源等级;

根据所述资源需求数量确定分配给所述第一终端的初始资源配置数量;

根据调度域内的可用资源总数量、所述调度域内所有终端的初始资源配置数量和所述调度域内所有终端的资源等级确定是否对所述第一终端的初始资源配置数量进行调度重分配,得到所述第一终端的资源重配置数量,所述第一终端属于所述调度域内的终端;

根据所述第一终端的资源重配置数量向所述第一终端分配实际可用的资源份额。

第二方面,本发明实施例还提供一种资源的调度服务器,包括:

请求接收模块,用于接收第一终端发送的资源申请请求,所述资源申请请求包括:所述第一终端的资源需求数量和所述第一终端请求的资源等级;

初始分配模块,用于根据所述资源需求数量确定分配给所述第一终端的初始资源配置数量;

调度重分配模块,用于根据调度域内的可用资源总数量、所述调度域内所有终端的初始资源配置数量和所述调度域内所有终端的资源等级确定是否对所述第一终端的初始资源配置数量进行调度重分配,得到所述第一终端的资源重配置数量,所述第一终端属于所述调度域内的终端;

资源分配模块,用于根据所述第一终端的资源重配置数量向所述第一终端分配实际可用的资源份额。

从以上技术方案可以看出,本发明实施例具有以下优点:

在本发明实施例中,首先接收第一终端发送的资源申请请求,资源申请请求包括:第一终端的资源需求数量和第一终端请求的资源等级,然后根据资源需求数量确定分配给第一终端的初始资源配置数量,接下来根据调度域内的可用资源总数量、调度域内所有终端的初始资源配置数量和调度域内所有终端的资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,得到第一终端的资源重配置数量,第一终端属于调度域内的终端,最后根据第一终端的资源重配置数量向第一终端分配实际可用的资源份额。本发明实施例中可以先确定第一终端的初始资源配置数量,然后在调度域内所有终端之间根据可用资源总数量、每个终端的初始资源配置数量以及每个终端的资源等级进行调度重分配,第一终端的初始资源配置数量经过调度重分配之后得到第一终端的资源重配置数量,第一终端最终分配到的资源份额由第一终端的资源重配置数量来决定,因此本发明实施例中并不是静态的分配资源,而是先根据终端的资源需求进行初始分配,然后再根据调度域内的资源分布进行调度重分配,从而经过初始分配和调度重分配后才能够确定向第一终端实际分配的资源份额,因此可以提升资源利用率和保证资源的质量,依据用户对资源的需求和实际使用情形进行动态资源分配,能够在保证用户高质量使用资源的同时最大化资源的整体利用率,降低单位资源的成本。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种资源的调度方法的流程方框示意图;

图2-a为本发明实施例提供的一种资源的调度服务器的组成结构示意图;

图2-b为本发明实施例提供的一种调度重分配模块的组成结构示意图;

图2-c为本发明实施例提供的一种重分配确定模块的组成结构示意图;

图3为本发明实施例提供的资源的调度方法应用于终端的组成结构示意图。

具体实施方式

本发明实施例提供了一种资源的调度方法和服务器,用于提高资源的分配效率和使用效率。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。

以下分别进行详细说明。

现有技术中无论资源按量分配还是资源按时分配都属于资源静态分配的方式,整个调度过程中对资源的利用都不够充分,降低了资源共享效率。本发明实施例中可以实现基于资源分级的弹性调度,允许定义的资源需求包括资源等级和资源需求数量两方面,满足各种类型调度场景的需求。用户的资源需求数量定义只是调度过程的其中一个输入,本发明实施例在实际调度资源时还会依据整个调度域内的可用资源总数量、即同一时刻其他用户的资源等级定义和资源需求数量等来弹性分配资源,彻底解决资源浪费问题的同时满足用户的资源需求定义。

本发明资源的调度方法的一个实施例,具体可以应用于资源的分配场景中,请参阅图1所示,本发明一个实施例提供的资源的调度方法,可以包括如下步骤:

101、接收第一终端发送的资源申请请求,资源申请请求包括:第一终端的资源需求数量和第一终端请求的资源等级。

在本发明实施例中,在调度域内有多个终端,调度域是针对资源集合在调度范围的划分单位,调度域内的所有终端可以请求分配该调度域内的资源集合中所有资源。本发明实施例中以调度域内的某个终端的资源调度过程为例进行说明,为便于描述,将需要资源分配的该终端定义为“第一终端”,调度域内的其它终端的资源分配方式,都可以参阅本发明实施例中对第一终端的资源调度的说明。本发明实施例中描述的资源具体可以指的是多种类型的资源,举例说明如下:计算机提供的中央处理器(Central Processing Unit,CPU)时间片,内存空间,磁盘空间及带宽,网络带宽等资源,具体的资源实现方式不做限定,取决于用户的需求和调度服务器管理的资源类型。

在本发明实施例中,用户通过第一终端向资源的调度服务器发起资源申请请求时,用户需要选择该用户的资源需求数量,即用户需求的资源数量是多少,另外用户还需要选择所需求的资源等级,其中,资源等级也可以称为资源优先级或者资源质量,其中,资源等级越高则用户分配到的资源数量也越多,资源等级越高则用户使用的资源质量也越高。对于资源等级的划分方式可以有多种实现方式,资源等级可以划分为两种以上的不同等级,用户通过第一终端发送资源申请请求时可以选择自己需要的资源等级,例如资源等级可以分为高等级、低等级,也可以分为三个等级:高等级、中等级、低等级,又如资源等级还可以划分为五个等级分别为等级0、等级1、等级2、等级3、等级4,则每个等级可以配置具体的资源质量和资源数量,详见后续实施例中的举例说明。

举例说明如下,在本发明的一些实施例中,资源等级包括如下等级信息中的至少一种:资源独占、资源共享、资源定额、资源限额、资源借用。则第一终端可以根据用户选择在资源申请请求中携带对应的等级信息。举例说明如下,资源独占是指互斥级别(Exclusive)的资源占用等级,用户获得的资源份额不能少于资源独占等级所要求的最小资源数量,该等级需要排除其他用户的使用。资源共享(Share)是指共享级别的资源占用等级,用户获得的资源份额不能少于资源独占等级所要求的最小资源数量,该等级可以和其他用户共同享用部分资源数量。资源定额(Static)是指定量级别的资源占用等级,用户能获得的资源份额等于资源定额等级所定义的资源份额,用户享用的资源份额保持不变。资源限额(Limited)是指限额级别的资源占用等级,用户能获得的资源份额不超过资源限额等级所要求的资源份额,该等级需要让出部分资源数量给高等级的用户。资源借用(Loan)是指借用级别的资源占用等级,用户能获得的资源份额不超过资源限额等级所要求的资源份额,与限额级别的差异在于,用户所拥有的资源份额会根据其他用户的需求被随时抢走。

在本发明实施例中,资源的调度服务器在管理资源时需要考虑资源的共享效率,这是服务器的核心性能指标。资源共享的效率主要体现在对单个用户需求的满足程度和对整体资源的利用率两个方面。其中,对单个用户需求的满足程度强调的是调度系统的资源隔离能力,即保证资源对个体用户的可用性遵守预先的定义,符合用户的预期;整体资源的利用率强调的是调度系统的资源共享能力,即保证资源被所有用户充分共享使用,最小化资源的浪费。在本发明实施例中,资源的调度服务器可以实现弹性的资源分配,即非静态的资源分配,可以依据资源需求数量定义及资源等级动态的调整资源分配。本发明实施例中用户在申请资源时要输入所需要的资源需求数量及资源等级。

102、根据资源需求数量确定分配给第一终端的初始资源配置数量。

在本发明实施例中,资源的调度服务器在接收到用户通过第一终端发送的资源申请请求之后,该资源的调度服务器会先根据资源需求数量进行资源的初始分配,即先确定分配给第一终端的初始资源配置数量,该初始资源配置数量是由用户请求的资源需求数量来确定,资源的调度服务器确定的初始资源配置数量是初始分配,初始资源配置数量并不是最终分配给第一终端的资源份额,需要执行步骤103的调度重分配过程。

需要说明的是,本发明实施例中步骤102中对第一终端进行了资源的初始分配,在调度域内的其它终端也可以按照步骤102中的方式对其它终端分别进行资源的初始分配,例如在调度域内除了第一终端,还可以存在第二终端和第三终端等,则资源的调度服务器都可以按照对第一终端的资源初始分配方式对第二终端和第三终端进行资源初始分配,则第二终端和第三终端都可以确定出对应的初始资源配置数量。

103、根据调度域内的可用资源总数量、调度域内所有终端的初始资源配置数量和调度域内所有终端的资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,得到第一终端的资源重配置数量,第一终端属于调度域内的终端。

在本发明实施例中,调度域内的所有终端都完成初始分配之后可以得到调度域内所有终端的初始资源配置数量,则对于调度域内的每一个终端都初始资源配置数量以及对应的资源等级,资源的调度服务器可以根据调度域内的可用资源总数量、调度域内所有终端的初始资源配置数量和调度域内所有终端的资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,得到第一终端的资源重配置数量。在调度域内所有终端的资源等级可能不完全相同,必然存在有的等级高,有的等级低,例如,不同资源等级对应不同的价格,用户选择自己需要的资源等级定义即意味着已明确其对资源质量的预期。本发明实施例中可按照定义提供高级别用户对低级别用户的非公平有限抢占能力,高级别用户在单个调度周期内占用的资源份额可以取最大可用资源数量和资源需求数量两者的较小值,即用户可能在该调度周期内完全占用可用资源,此时低级别用户需要等待后续调度周期中的分配。若调度域内所有用户的资源等级定义相同时,所有用户实现资源的公平调度。

需要说明的是,在本发明实施例中,根据调度域内的可用资源总数量、调度域内所有终端的初始资源配置数量和调度域内所有终端的资源等级确定是否对第一终端的初始资源配置数量进行调度重分配可以有多种实现方式,资源的弹性调度可以计算出不同资源等级下的初始资源配置数量,最小资源数量,资源数量波动范围等因素都可以影响到最终的调度结果,只要在该调度域内进行资源数量的弹性调整,使得不同资源等级的用户能够享用到对应等级的资源数量。在实际应用中,针对资源等级的具体要求都可以使用具体等级下的资源调度重分配。

在本发明的一些实施例中,资源的调度服务器还可以根据第一终端的已分配资源份额与该第一终端实际资源需求之间的关系确定第一终端的资源使用状态,具体的,该资源使用状态包括:对应于已分配资源份额小于终端实际资源需求的忙状态和对应于已分配资源份额小于终端实际资源需求的闲状态。步骤103根据调度域内的可用资源总数量、调度域内所有终端的初始资源配置数量和调度域内所有终端的资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,包括:

A1、获取调度域内所有终端的资源使用状态,资源使用状态包括:对应于已分配资源份额小于终端实际资源需求的忙状态和对应于已分配资源份额小于终端实际资源需求的闲状态;

A2、根据调度域内所有终端的资源使用状态和资源等级、调度域内所有终端的初始资源配置数量确定调度域内所有终端处于忙状态时所需求的忙状态最小资源总数量,其中,具有不同资源使用状态和/或不同资源等级的终端被分配到的资源份额不相同;

A3、根据忙状态最小资源总数量和调度域内的可用资源总数量确定调度域内所有终端的可重分配的资源数量;

A4、根据调度域内所有终端的可重分配的资源数量确定是否对第一终端的初始资源配置数量进行调度重分配。

其中,资源的调度服务器确定调度域内所有终端的资源使用状态,资源使用状态包括:对应于已分配资源份额小于终端实际资源需求的忙状态(Busy)和对应于已分配资源份额小于终端实际资源需求的闲状态(Idle)。例如,忙状态是指终端当前的资源数量分配不能满足用户的需求,需要更多分配。闲状态是指终端当前的资源分配超过用户实际使用的数量。接下里根据调度域内所有终端的资源使用状态和资源等级、调度域内所有终端的初始资源配置数量确定调度域内所有终端处于忙状态时所需求的忙状态最小资源总数量,具有不同资源使用状态和/或不同资源等级的终端被分配到的资源份额不相同,对于调度域内每一个终端都需要统计该终端在忙状态下的最小资源数量进行累计,得到调度域内所有终端处于忙状态时所需求的忙状态最小资源总数量。接下来根据忙状态最小资源总数量和调度域内的可用资源总数量确定调度域内所有终端的可重分配的资源数量,调度域内所有终端的可重分配的资源数量指在满足调度域内所有终端的基本需求下还能够进行动态调整的资源数量。最后再根据调度域内所有终端的可重分配的资源数量确定是否对第一终端的初始资源配置数量进行调度重分配,对于调度域内所有终端的可重分配的资源数量的具体取值和该第一终端的资源等级可以对第一终端的初始资源配置数量进行调度重分配,例如调度域内所有终端的可重分配的资源数量越大,能够向第一终端调度的资源数量就越大,若调度域内所有终端的可重分配的资源数量很少,则向第一终端调度的资源数量就越少。

在本发明的一些实施例中,步骤A3根据忙状态最小资源总数量和调度域内的可用资源总数量确定调度域内所有终端的可重分配的资源数量,具体包括:

A31、计算调度域内的可用资源总数量与忙状态最小资源总数量之差,得到调度域内所有终端的可重分配的资源数量。

其中,通过调度域内的可用资源总数量与忙状态最小资源总数量进行差值计算,得到调度域内所有终端的可重分配的资源数量。调度域内所有终端的可重分配的资源数量的计算过程还可以将调度域内的可用资源总数量与忙状态最小资源总数量进行差值计算后再进行修正的方式得到,例如根据调度域内所有终端的资源等级之和确定一个调整比例,将调整比例与差值计算结果进行相乘得到调度域内所有终端的可重分配的资源数量。

在本发明的一些实施例中,步骤A4根据调度域内所有终端的可重分配的资源数量确定是否对第一终端的初始资源配置数量进行调度重分配,包括:

A41、判断调度域内所有终端的可重分配的资源数量是否大于0;

A42、若调度域内所有终端的可重分配的资源数量大于或小于0,根据第一终端的资源使用状态和资源等级、调度域内除第一终端以外的其它终端的资源使用状态和资源等级确定是否对第一终端的初始资源配置数量进行调度重分配;

A43、若调度域内所有终端的可重分配的资源数量等于0,确定不需要对第一终端的初始资源配置数量进行调度重分配。

其中,若调度域内所有终端的可重分配的资源数量大于或小于0,则说明需要对调度域内所有终端的初始资源配置数量进行调度重分配,以改变调度域内不同资源等级下的终端对应的资源数量,例如,根据第一终端的资源使用状态和资源等级、调度域内除第一终端以外的其它终端的资源使用状态和资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,则调度域内的每个终端的资源等级、资源使用状态都会影响到调度重分配的具体方式。若调度域内所有终端的可重分配的资源数量等于0,则说明当前对调度域内所有终端的资源分配方式刚好满足对应资源等级的资源数量需求,此时就可以不需要对第一终端的初始资源配置数量进行调度重分配。

进一步的,在本发明的一些实施例中,步骤A42根据第一终端的资源使用状态和资源等级、调度域内除第一终端以外的其它终端的资源使用状态和资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,包括:

A421、若调度域内所有终端的可重分配的资源数量大于0,则按照调度域内所有终端的资源使用状态和资源等级将调度域内所有终端的可重分配的资源数量进行重新分配,若第一终端按照资源使用状态和资源等级被分配了可重分配的资源数量,使用第一终端的可重分配的资源数量对第一终端的初始资源配置数量进行叠加;

A422、若调度域内所有终端的可重分配的资源数量小于0,则按照调度域内所有终端的资源使用状态和资源等级从第一部分终端集合中划分出特定数量的资源,将特定数量的资源重新分配给第二部分终端集合,调度域内所有终端按照资源使用状态和资源等级分为第一部分终端集合和第二部分终端集合,第一终端属于第一部分终端集合,或者第一终端属于第二部分终端集合。

具体的,若调度域内所有终端的可重分配的资源数量大于0,说明该调度域内可用资源总数量仍有剩余,则按照调度域内所有终端的资源使用状态和资源等级将调度域内所有终端的可重分配的资源数量进行重新分配,若第一终端按照资源使用状态和资源等级被分配了可重分配的资源数量,使用第一终端的可重分配的资源数量对第一终端的初始资源配置数量进行叠加,实现了第一终端的资源额外增加,为该第一终端可以配置除用户需求的资源需求数量之外更多的资源,提高用户享用资源的质量。

若调度域内所有终端的可重分配的资源数量小于0,说明该调度域内可用资源总数量仍不能满足该调度域内所有终端的需求,为了满足高资源等级的终端的资源需求,调度域内所有终端按照资源使用状态和资源等级分为第一部分终端集合和第二部分终端集合,第一部分终端集合为需要拿出资源的终端集合,第二部分终端集合为可以再增加资源分配的终端集合,可以理解的是,第一部分终端集合相比于第二部分终端集合,具有资源等级低的终端。就需要在初始分配过的资源数量中再次进行调度域内的资源分配,按照调度域内所有终端的资源使用状态和资源等级从第一部分终端集合中划分出特定数量的资源,将特定数量的资源重新分配给第二部分终端集合。其中,该第一终端可以属于第一部分终端集合,或者第一终端也可以属于第二部分终端集合。

进一步的,在前述执行步骤A421的实现场景下,本发明实施例提供的资源的调度方法还可以包括如下步骤:

B1、若调度域内所有终端的可重分配的资源数量大于0,且按照调度域内所有终端的资源使用状态和资源等级将调度域内所有终端的可重分配的资源数量进行重新分配之后还剩余有部分可重分配的资源数量,在调度域内增加新的终端;

B2、将部分可重分配的资源数量分配给新的终端。

其中,资源的调度服务器按照调度域内所有终端的资源使用状态和资源等级将调度域内所有终端的可重分配的资源数量进行重新分配之后,若还剩余有部分可重分配的资源数量,此时就可以实现资源的超卖,资源的调度服务器可以在调度域内增加新的终端,然后将部分可重分配的资源数量分配给新的终端,从而可以提高资源的利用率。

104、根据第一终端的资源重配置数量向第一终端分配实际可用的资源份额。

在本发明实施例中,经过步骤103对第一终端的调度重分配过程可以确定出第一终端的资源重配置数量,资源的调度服务器可以根据第一终端的资源重配置数量向第一终端分配实际可用的资源份额,经过调度重分配之后得到的资源重配置数量是最终向第一终端分配资源份额的依据,通过调度重分配,第一终端能够享用到符合用户选择的资源等级的资源份额,从而第一终端可以使用资源的调度服务器分配给的实际可用的资源份额为用户提供资源服务,例如用户通过第一终端从资源的调度服务器获取存储空间资源,则资源的调度服务器经过初始分配和调度重分配可以向第一终端分配存储空间资源份额,用户可以按照该存储空间资源份额使用存储空间资源。用户在申请资源时选择了资源等级,则资源的调度服务器可以向用户分配与其资源等级相适用的资源份额,依据用户对资源的需求和实际使用情形进行动态资源分配,能够在保证用户高质量使用资源的同时最大化资源的整体利用率,降低单位资源的成本。

通过以上实施例对本发明实施例的描述可知,在本发明实施例中,首先接收第一终端发送的资源申请请求,资源申请请求包括:第一终端的资源需求数量和第一终端请求的资源等级,然后根据资源需求数量确定分配给第一终端的初始资源配置数量,接下来根据调度域内的可用资源总数量、调度域内所有终端的初始资源配置数量和调度域内所有终端的资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,得到第一终端的资源重配置数量,第一终端属于调度域内的终端,最后根据第一终端的资源重配置数量向第一终端分配实际可用的资源份额。本发明实施例中可以先确定第一终端的初始资源配置数量,然后在调度域内所有终端之间根据可用资源总数量、每个终端的初始资源配置数量以及每个终端的资源等级进行调度重分配,第一终端的初始资源配置数量经过调度重分配之后得到第一终端的资源重配置数量,第一终端最终分配到的资源份额由第一终端的资源重配置数量来决定,因此本发明实施例中并不是静态的分配资源,而是先根据终端的资源需求进行初始分配,然后再根据调度域内的资源分布进行调度重分配,从而经过初始分配和调度重分配后才能够确定向第一终端实际分配的资源份额,因此可以提升资源利用率和保证资源的质量,依据用户对资源的需求和实际使用情形进行动态资源分配,能够在保证用户高质量使用资源的同时最大化资源的整体利用率,降低单位资源的成本。

为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。

本发明实施例提供基于资源分级的弹性调度方案,允许定义的资源需求包括资源需求数量和资源等级两方面,满足各种类型调度场景的需求。用户的资源份额定义只是调度过程的其中一个输入,调度系统还会依据资源的忙闲程度,即同一时刻其他用户的资源等级定义和对资源的数量需求等来弹性分配资源,彻底解决资源浪费问题的同时满足用户的资源需求定义。本发明实施例可按照定义提供高级别用户对低级别用户的非公平有限抢占能力。高级别用户在单个调度周期内占用的份额取最大可用资源数量和资源需求数量两者的较小值,即用户可能在该周期内完全占用可用资源,此时低级别用户需要等待后续周期中的分配。

本发明实施例中的调度域是资源的集合,调度范围的划分单位。本发明实施例中的弹性调度分配是指非静态资源分配,依据定义及使用情况等动态调整资源分配的调度方式。资源等级(Resource Priority Level,RPL)是指对用户使用资源的质量/等级保证。最高等级为资源独占,被独占的资源不再分配给其他用户,即便资源处于空闲状态;最低等级为资源借用,被借用的资源要随时归还,即便用户正在使用该资源。资源份额(Quota)是指当前分配给用户的资源数量。

接下来以资源弹性调度方案适合于云计算为例,例如应用于云存储和云网络等资源共享/售卖的平台,资源的调度效率直接决定平台所售卖资源的成本,属于平台保持竞争优势,建立门槛的核心技术。云平台用户最关注的是资源的价格和质量。要降低资源价格,核心的就是通过提升资源利用率,增加资源共享/售卖率甚至超卖率来降低资源成本;要保证资源质量,就是要兑现对用户使用资源的可用性的承诺,按照用户的定义提供足够的资源。

本发明实施例提供的弹性调度能保证资源利用率的最大化,同时,按照资源等级的定义完成资源分配可以最大程度上保证用户所得资源的质量。使用本发明实施例可以满足用户对资源不同等级的需求,可以实现包括资源独占,资源共享,资源定额,资源限额,资源借用等资源使用方式。用户在申请资源时要输入所需要资源的数量及等级,弹性调度系统会计算出用户的初始资源数量,最小资源数量,资源数量波动范围等,并根据当前的资源总量和其他用户使用情形完成资源的匹配和分配。不同资源等级对应不同的价格,用户完成自己需要的资源等级定义即意味着已明确其对资源质量的预期。使用本发明实施例还可以有效提升资源的售卖率/超卖率,利用资源的弹性调度可以在不违背资源等级定义的基础上将已分配未使用的资源进行二次分配,将这些资源售卖至新用户即形成资源的超卖。

首先,对本发明实施例涉及的资源等级进行举例说明,Busy(忙碌):当前的资源数量分配不能满足用户的需求,需要更多分配。Idle(闲置):当前的资源分配超过用户实际使用的数量。如下表1所示:

其中,X是不同资源等级下分配给终端的初始资源配置数据,MIN是指最小资源分配单位,MAX是指最大可用资源数量,Quota是指分配给用户的资源份额。Exclusive是互斥级别:无论忙闲,用户获得的资源份额不能少于定义的资源份额。Share是共享级别:用户闲时可以让出资源,而忙时则可以获得多于定义的资源份额。Static是定量级别:用户能获得的资源等于定义的份额,无论忙闲均不变。Limited是限额级别:用户忙时能获得的资源不超过定义的份额,用户闲时可以让出资源。Loan是借用级别:与限额级别的差异在于,即使用户当前处于忙的状态,所拥有的资源也可以被其他用户抢走。

对资源质量的保证就是满足用户在忙/闲的状态下的最小资源数量需求。本发明实施例中的资源分配过程包含是否能进行分配的判断,其判断的依据就是所有用户的忙状态最小资源数量需求之和小于等于可用资源总量。

接下来对资源的弹性调度过程进行示例说明:

首先,在每个调度周期开始时刻进行资源重分配的计算,各等级可重分配的资源数量为:

其中,计算所有用户可重分配的资源数量之和用RT表示。有的情形中用户可以释放资源,如互斥级别的用户由忙状态转闲状态的时候,有的情形中用户需要更多资源,如共享级别的用户由闲状态转忙状态的时候。因此,计算出来的RT可能为正值,也可能为负值,还可能为0。

若RT>0,意味着满足最小资源需求后仍有可用资源剩余,此时可将剩余的资源分配给高优先级用户,进行资源膨胀。剩余资源的分配中,优先选择处于忙状态的用户,优先级从高到低;分配完毕仍然有资源剩余,则选择闲状态的用户,同样优先级从高到低。例如总的分配顺序为:互斥(忙)>共享(忙)>借出(忙)>共享(闲)>受限(闲)>借出(闲)。

若RT<0,意味着用户对资源的需求超过了可用资源数量,此时需要进行第二轮的资源重分配,挤压部分用户的资源分配数量。允许进行第二轮重分配的只有互斥级别和共享级别。与前一种资源膨胀情况相反,资源挤压的顺序为优先级从低到高,即先挤压共享级别的用户,再挤压互斥级别用户,挤压至最小资源数量需求,即用户的资源份额Quota。如果挤压后重新计算的RT仍然小于0,那么就要进行用户迁移。

若RT=0,不需要进行资源膨胀和挤压。

若RT>0时进行重分配之后还有剩余的资源,则可以进行资源的超卖,依据调度域中所有用户实际使用的资源总数量来决定是否进行资源的超卖。如果实际总数量总是小于可用资源总量,那么就可以进行资源的超卖,分配新的用户至该调度域。

本发明实施例提供一种基于资源等级和资源数量定义,依据用户对资源的需求和实际使用情形进行动态资源分配的资源调度系统,能够在保证用户高质量使用资源的同时最大化资源的整体利用率,降低单位资源的成本。使用本发明实施例提供的调度方法,可以提升云平台等资源共享/售卖系统的整体售卖率,增加系统的售卖收益,提升系统的技术/商业竞争力。本发明提供的弹性资源调度方法,将资源弹性分配至所有用户,在保证每个用户能按照定义且安全地使用资源的同时,最大化资源的利用率,从而达到较高的资源共享效率。

需要说明的是,本发明实施例描述的是一种弹性资源调度方案,对资源的类型没有做出约束,所提到的云计算等平台仅是应用该资源调度方案的业务场景举例。本发明实施例描述的互斥,共享等五种资源级别的定义只是界定资源等级,或者资源质量定义的一种实现方式,其他资源分级方式,或者不同资源质量定义亦在本发明实施例描述的基于资源等级和资源数量定义进行弹性调度的范围之内。本发明实施例描述的资源重分配,资源膨胀和挤压等调度步骤仅是实现资源弹性调度的一种方式,其他依据用户需求和使用情形定义来形成资源份额动态调整的方法,或者不同的调度/重分配的策略均在本发明实施例的范围内。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。

请参阅图2-a所示,本发明实施例提供的一种资源的调度服务器200,可以包括:请求接收模块201、初始分配模块202、调度重分配模块203、资源分配模块204,其中,

请求接收模块201,用于接收第一终端发送的资源申请请求,所述资源申请请求包括:所述第一终端的资源需求数量和所述第一终端请求的资源等级;

初始分配模块202,用于根据所述资源需求数量确定分配给所述第一终端的初始资源配置数量;

调度重分配模块203,用于根据调度域内的可用资源总数量、所述调度域内所有终端的初始资源配置数量和所述调度域内所有终端的资源等级确定是否对所述第一终端的初始资源配置数量进行调度重分配,得到所述第一终端的资源重配置数量,所述第一终端属于所述调度域内的终端;

资源分配模块204,用于根据所述第一终端的资源重配置数量向所述第一终端分配实际可用的资源份额。

在本发明的一些实施例中,请参阅图2-b所示,所述调度重分配模块203,包括:

状态获取模块2031,用于获取所述调度域内所有终端的资源使用状态,所述资源使用状态包括:对应于已分配资源份额小于终端实际资源需求的忙状态和对应于已分配资源份额小于终端实际资源需求的闲状态;

忙状态资源需求确定模块2032,用于根据所述调度域内所有终端的资源使用状态和资源等级、所述调度域内所有终端的初始资源配置数量确定所述调度域内所有终端处于忙状态时所需求的忙状态最小资源总数量,其中,具有不同资源使用状态和/或不同资源等级的终端被分配到的资源份额不相同;

可重分配资源确定模块2033,用于根据所述忙状态最小资源总数量和所述调度域内的可用资源总数量确定所述调度域内所有终端的可重分配的资源数量;

重分配确定模块2034,用于根据所述调度域内所有终端的可重分配的资源数量确定是否对所述第一终端的初始资源配置数量进行调度重分配。

进一步的,在本发明的一些实施例中,所述可重分配资源确定模块2033,具体用于计算所述调度域内的可用资源总数量与所述忙状态最小资源总数量之差,得到所述调度域内所有终端的可重分配的资源数量。

在本发明的一些实施例中,请参阅图2-c所示,所述重分配确定模块2034,包括:

可重分配资源数量判断模块20341,用于判断所述调度域内所有终端的可重分配的资源数量是否大于0;

第一重分配模块20342,用于若所述调度域内所有终端的可重分配的资源数量大于或小于0,根据所述第一终端的资源使用状态和资源等级、所述调度域内除所述第一终端以外的其它终端的资源使用状态和资源等级确定是否对所述第一终端的初始资源配置数量进行调度重分配;

第二重分配模块20343,用于若所述调度域内所有终端的可重分配的资源数量等于0,确定不需要对所述第一终端的初始资源配置数量进行调度重分配。

进一步的,在本发明的一些实施例中,所述第一重分配模块20342,具体用于若所述调度域内所有终端的可重分配的资源数量大于0,则按照所述调度域内所有终端的资源使用状态和资源等级将所述调度域内所有终端的可重分配的资源数量进行重新分配,若所述第一终端按照资源使用状态和资源等级被分配了可重分配的资源数量,使用所述第一终端的可重分配的资源数量对所述第一终端的初始资源配置数量进行叠加;若所述调度域内所有终端的可重分配的资源数量小于0,则按照所述调度域内所有终端的资源使用状态和资源等级从第一部分终端集合中划分出特定数量的资源,将特定数量的资源重新分配给第二部分终端集合,所述调度域内所有终端按照资源使用状态和资源等级分为第一部分终端集合和第二部分终端集合,所述第一终端属于所述第一部分终端集合,或者所述第一终端属于所述第二部分终端集合。

进一步的,在本发明的一些实施例中,所述资源分配模块204,还用于所述第一重分配模块在所述调度域内所有终端的可重分配的资源数量大于0,且按照所述调度域内所有终端的资源使用状态和资源等级将所述调度域内所有终端的可重分配的资源数量进行重新分配之后还剩余有部分可重分配的资源数量,在所述调度域内增加新的终端;将所述部分可重分配的资源数量分配给所述新的终端。

在本发明的一些实施例中,所述资源等级包括如下等级信息中的至少一种:资源独占、资源共享、资源定额、资源限额、资源借用。

通过以上实施例对本发明实施例的描述可知,在本发明实施例中,首先接收第一终端发送的资源申请请求,资源申请请求包括:第一终端的资源需求数量和第一终端请求的资源等级,然后根据资源需求数量确定分配给第一终端的初始资源配置数量,接下来根据调度域内的可用资源总数量、调度域内所有终端的初始资源配置数量和调度域内所有终端的资源等级确定是否对第一终端的初始资源配置数量进行调度重分配,得到第一终端的资源重配置数量,第一终端属于调度域内的终端,最后根据第一终端的资源重配置数量向第一终端分配实际可用的资源份额。本发明实施例中可以先确定第一终端的初始资源配置数量,然后在调度域内所有终端之间根据可用资源总数量、每个终端的初始资源配置数量以及每个终端的资源等级进行调度重分配,第一终端的初始资源配置数量经过调度重分配之后得到第一终端的资源重配置数量,第一终端最终分配到的资源份额由第一终端的资源重配置数量来决定,因此本发明实施例中并不是静态的分配资源,而是先根据终端的资源需求进行初始分配,然后再根据调度域内的资源分布进行调度重分配,从而经过初始分配和调度重分配后才能够确定向第一终端实际分配的资源份额,因此可以提升资源利用率和保证资源的质量,依据用户对资源的需求和实际使用情形进行动态资源分配,能够在保证用户高质量使用资源的同时最大化资源的整体利用率,降低单位资源的成本。

图3是本发明实施例提供的一种服务器结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。

服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。

上述实施例中由服务器所执行的资源的调度方法步骤可以基于该图3所示的服务器结构。

另外需说明的是,以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

综上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照上述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对上述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

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