本发明属于云计算技术领域,特别涉及一种IaaS服务中的双时间尺度用户动态竞价和资源管理算法。
背景技术:
亚马逊提供三种租赁服务实例:预留型实例、按需型实例和现货型实例。预留型实例的单价较低,但是云用户必须与云提供商签订较长时间的租赁协议(通常在1-3年)。按需型实例以较小的时间粒度(以小时为单位)被动态分配给用户,可用来应对工作负载的激增。现货型实例的价格是随着资源的供需关系不断变化的,只要云用户给出的价格高于亚马逊给出的价格,则用户可一直租赁该服务器。一般情况下,云用户选择预留型实例处理基本的资源需求,当工作负载出现大幅波动时,用户可选用按需型实例和现货型实例。如何为云用户设计一个动态竞价与资源分配算法,以降低其资源租用成本,是一个亟待解决的问题。
技术实现要素:
为了克服上述现有技术的缺点,本发明的目的在于提供一种IaaS服务中的双时间尺度用户动态竞价和资源管理算法,旨在为云用户提供一种动态资源竞价与管理机制,降低云用户使用亚马逊IaaS服务的资源租赁成本,该机制在两个时间尺度上进行操作:在粗时间尺度下,动态决定竞价与租赁服务器的数量,同时进行任务调度;在细时间尺度下,对服务器进行分配。
为了实现上述目的,本发明采用的技术方案是:
一种IaaS服务中的双时间尺度用户动态竞价和资源管理算法,包括:
构建服务器端模型:假设云提供商运营了n个位于不同地理位置的数据中心,每个数据中心包含若干虚拟机服务器资源,云用户对这些数据中心发起服务器租赁请求,假设虚拟机的配置全都是相同的,即相同的操作系统和硬件配置;数据中心中具有检查点机制和数据迁移技术,保证中断的任务可以在用户使用权被终止后在其他服务器继续处理;
构建数据中心模型:假设任务共有k种类型,云用户通过代理与数据中心j建立联系,代理负责缓存到达的任务,并辅助云用户进行资源管理决策,令代理j与数据中心j的队列分别为Qij与qij,下标i代表第i类任务,在t时刻,各种类型的任务到达代理j对应的Qij队列,代理j决定这些任务到数据中心队列qij的分配方式;
控制决策与系统动态演变:以降低服务器的租赁成本为目标,在双时间尺度进行云用户控制决策:在细粒度上的时间尺度为时间槽,在粗粒度上的时间尺度为帧,一个帧包含数个时间槽,帧的长度由用户指定;
动态资源竞价与分配:以最小化用户租赁按需型和现货型实例的平均费用为目标,进行动态资源分配。
所述服务器端模型中,令为t时刻数据中心j中现货型实例的价格,假设有界,其中最大值为所述数据中心模型中,t时刻,有aij(t)个i类任务到达代理j,aij(t)服从任意有界随机分布,其有界性假设为0≤aij(t)≤amax,amax为任务到达的上界。
所述控制决策与系统动态演变过程中:假设现货型实例的价格每个时间槽更新一次,则云用户控制决策的架构表示为:
代理j在每一帧决定数据中心j的以下参数:
1)租用按需型服务器的数量;
2)bj(t),现货型实例的竞价;
3)若出价成功,应该租赁的现货型服务器的数量;
每一帧下,到达的任务进入代理j的队列后,代理j为任务决定任务的路由策略rijj’,即任务由Qij到qij’的路由方式,Qij队列动态更新模型为
每一时间槽下,云用户决定虚拟服务器分配策略yij(t),即分配给数据中心j的第i类任务的服务器数量,队列qij动态更新模型为
其中si是i类任务的服务速率。
所述控制决策的约束定义如下:
首先定义任务路由策略的可行域,即
rijj'(t)∈R
R包含实际问题中的约束条件,其次,虚拟服务器分配策略必须满足
上式意味着被分配的服务器数量与租用的服务器总数相同;
最后,对于上述约束条件,有如下有界性约束
0≤bj(t)≤bmax,
0≤yij(t)si≤ymax。
所述动态资源竞价与分配中,将动态资源竞价与分配问题定义为约束条件为:
rijj'(t)∈R,
0≤bj(t)≤bmax,
0≤yij(t)si≤ymax,
其中,目标函数的前半部分是按需型实例的租赁费用,后半部分是现货型实例的租赁费用,是一个示性函数,标志是否出现了现货型实例价格高于用户竞价的事件,该函数定义为
本发明可采用基于李雅普诺夫优化理论的方法,求解动态资源竞价与分配问题,李雅普诺夫函数的定义为
令Q(t)={Qij(t)},q(t)={qij(t)},i=1,...,k,j=1,...,n,且θ(t)={Q(t),q(t)};
定义T个时间槽的李雅普诺夫偏移ΔT(t)=E{L(t+T)-L(t)|θ(t)};
李雅普诺夫优化技术并不直接求解动态资源竞价与分配问题,而是试图最小化偏移惩罚目标函数的上界。
所述偏移惩罚目标函数的上界通过如下方式求解:
命题1:当t=mT,m∈Z+时,确定一个非负值V和可行的控制决策bj(t),和rijj'(t),有
其中
或者:
命题2:当t=mT,m∈Z+时,确定一个非负值V和可行的控制决策bj(t),和rijj'(t),有
其中
本发明可通过如下算法实现动态资源竞价与分配:
1)竞价与服务器分配
在时刻t=mT,每一个代理j需求解
约束条件为:
0≤bj(t)≤bmax,
0≤yij(t)si≤ymax,
在[t,t+T-1]期间,如果代理j出价bj(t)成功,那么它将获取台按需型服务器和台现货型服务器;如果出价失败,代理j不会得到现货型服务器。
2)任务路由
在时刻t=mT,代理j需求解
约束条件为:
rijj'(t)∈R,
从队列Qij调度rijj'(t)个任务到队列qij;
3)服务器分配
每一时间槽τ∈[t,t+T-1],代理j通过下式决定分配给队列qij的虚拟服务器数量yij(τ)
约束条件为:
0≤yij(t)si≤ymax,
4)队列更新
每个时间槽队列按照式和更新。
与现有技术相比,本发明为云用户提供了一种动态资源竞价与管理机制,可降低云用户使用亚马逊IaaS服务的资源租赁成本。
附图说明
图1是本发明数据中心系统框架示意图。
图2是本发明双时间尺度决策框架示意图。
具体实施方式
下面结合附图和实施例详细说明本发明的实施方式。
1.符号说明:本发明模型中所用到的符号如表1所示。
表1本发明所用到的符号及其描述
2.构建服务器端模型,包括以下几个部分:
A.假设云提供商运营了n个位于不同地理位置的数据中心,每个数据中心包含若干虚拟机服务器资源。云用户对这些数据中心发起服务器租赁请求。假设虚拟机的配置全都是相同的,即相同的操作系统和硬件配置。亚马逊对于现货型实例的收费方式如下:
2.1用户向云提供商发出服务器租赁请求,包括竞价价格和租赁的服务器数量。
2.2若提供商的现货型实例的当前价格低于用户的竞价,则用户获得这些服务器的使用权。
2.3若当前现货型实例价格高于用户的竞价,提供商在不通知用户的情况下终止其使用权。
2.4若现货型实例价格低于用户的竞价,那么云提供商将按照当前现货型实例的价格作为收取用户的实际价格。
2.5若用户的使用权被云提供商终止,且不满一小时,则云提供商不收取用户最后一小时的费用。反之,用户需向提供商缴纳所有费用。
2.6若用户主动终止现货型实例的使用,则不足一小时按一小时收费。
B.数据中心中具有检查点机制和数据迁移技术,保证中断的任务可以在用户使用权被终止后在其他服务器继续处理。令为t时刻数据中心j中现货型实例的价格,假设有界,其中最大值为
3.构建数据中心模型,包括以下几个部分:
A.数据中心模型如附图1所示,系统可以处理例如大数据分析和MapReduce等容时(Delay-tolerant)任务。假设任务共有k种类型。云用户通过代理(Broker)与数据中心j建立联系。代理负责缓存到达的任务,并辅助云用户进行资源管理决策。令代理j与数据中心j的队列分别为Qij与qij。下标i代表第i类任务。在t时刻,各种类型的任务到达代理j对应的Qij队列。代理j决定这些任务到数据中心队列qij的分配方式。
B.t时刻,有aij(t)个i类任务到达代理j,aij(t)可服从任意有界随机分布,其有界性假设为0≤aij(t)≤amax。
4.控制决策与系统动态演变
A.云用户控制决策的目标在于降低服务器的租赁成本。由于预留型实例的服务器数在合同期限内无法动态变化(合同期限比决策时间间隔大几个数量级),因此假设已被预先决定。如附图2所示,用户在双时间尺度进行控制决策:在细粒度上的时间尺度为时间槽(slot),在粗粒度上的时间尺度为帧(frame)。一个帧包含数个时间槽,帧的长度由用户指定,一般可设置为一小时。假设现货型实例的价格每个时间槽更新一次,则云用户控制决策的架构可以表示为:
代理j在每一帧决定数据中心j的以下参数:1)租用按需型服务器的数量。2)bj(t),现货型实例的竞价。3)若出价成功,应该租赁的现货型服务器的数量。
每一帧下,到达的任务进入代理j的队列后,代理j为任务决定任务的路由策略rijj’,即任务由Qij到qij’的路由方式。因此,Qij队列动态更新模型为
每一时间槽下,云用户决定虚拟服务器分配策略yij(t),即分配给数据中心j的第i类任务的服务器数量。因此,队列qij动态更新模型为
其中si是i类任务的服务速率。
B.控制决策的约束定义如下:
首先定义任务路由策略的可行域,即
rijj'(t)∈R (3)
R包含实际问题中的约束条件。其次,虚拟服务器分配策略必须满足
上式意味着被分配的服务器数量与租用的服务器总数相同。最后,对于上述约束条件,有如下有界性约束
0≤bj(t)≤bmax, (7)
0≤yij(t)si≤ymax。 (9)
5.动态资源竞价与分配问题
A.动态资源分配问题的目标是最小化用户租赁按需型和现货型实例的平均费用,定义为
约束条件:(3),(4),(5),(6),(7),(8),(9)。
目标函数的前半部分是按需型实例的租赁费用,后半部分是现货型实例的租赁费用。是一个示性函数,标志是否出现了现货型实例价格高于用户竞价的事件,该函数定义为
式(11)为队列稳定性约束,保证了有限的平均排队等待时间。
本发明采用基于李雅普诺夫优化理论的方法,求解动态资源竞价与分配问题。
1.李雅普诺夫优化技术
A.李雅普诺夫函数的定义为
令Q(t)={Qij(t)},q(t)={qij(t)},i=1,...,k,j=1,...,n,且θ(t)={Q(t),q(t)}。
B.定义T个时间槽的李雅普诺夫偏移
ΔT(t)=E{L(t+T)-L(t)|θ(t)}。
C.李雅普诺夫优化技术并不直接求解动态资源竞价与分配问题,而是试图最小化如下偏移惩罚目标函数的上界
2.偏移惩罚目标函数的上界
A.命题1:当t=mT,m∈Z+时,确定一个非负值V和可行的控制决策bj(t),和rijj'(t),有
其中
命题1给出了偏移惩罚目标函数的上界。然而,对式(14)的右半部分进行优化较为困难,原因在于队列Qij(τ)与qij(τ)的状态是未知的。同时,在τ∈[t+1,...t+T-1]时,任务请求到达也是未知的。
B.为了解决以上问题,本发明将式(14)中的上界进行松弛处理,得到放大的上界,如命题2所示。
命题2:当t=mT,m∈Z+时,确定一个非负值V和可行的控制决策bj(t),和rijj'(t),有
其中
3.动态资源竞价与分配算法
动态资源竞价与分配算法如下所示:
3.1竞价与服务器分配。在时刻t=mT,每一个代理j需求解
约束条件为(4),(5),(6),(7),(9)。在[t,t+T-1]期间,如果代理j出价bj(t)成功,那么它将获取台按需型服务器和台现货型服务器。如果出价失败,代理j不会得到现货型服务器。
3.2任务路由。在时刻t=mT,代理j需求解
约束条件为(3)和(8),从队列Qij调度rijj'(t)个任务到队列qij。
3.3服务器分配。每一时间槽τ∈[t,t+T-1],代理j通过下式决定分配给队列qij的虚拟服务器数量yij(τ)
约束条件为(4)和(9)。
3.4队列更新。每个时间槽队列按照式(17)和(18)更新。
动态资源竞价与分配算法是一种结构简单的分布式算法,包含任务调度问题(17)和服务器分配问题(18)。每个代理单独决定本地的控制决策,代理之间需要共享的唯一信息是队列长度。