分布式云架构下基于业务特性的资源分配***及其方法
技术领域
本发明涉及云计算领域,具体涉及分布式云架构下基于业务特性的资源分配***及其方法。本发明适用于解决在分布式云计算环境下,拥有不同业务特性的云用户业务的资源分配问题。
背景技术
随着云计算的普及,越来越多的用户将业务迁移到云服务提供商的云计算平台,运行在云计算平台的虚拟机上,成为云用户。云服务提供商根据云用户业务的具体需求为其分配计算、存储、带宽等资源,即云资源。这些云资源构成虚拟机,云用户的业务就运行在这些虚拟机上。
云计算平台是由多个数据中心构成,每个数据中心的地理位置、容量以及资源价格各不相同。云服务提供商根据云用户的具体需求为其分配相应的云资源,由这些云资源构成虚拟机来运行相应云用户的业务。
云服务提供商能否赢利取决于其所提供的云平台的稳定性、资源利用率以及云资源的价格模型等因素。当前云资源分配的研究主要集中在从云计算平台的角度出发,寻找提高云计算资源利用率的方法。
总的来说,当前云资源分配的研究主要集中在以下几个方面:
第一,IaaS(Infrastructure as a Service,基础设施即服务)级的虚拟机调度机制的研究,根据用户对云资源需求的动态变化来动态的调整虚拟机的分配,从而提高云资源的利用率;
第二,基于优先级的资源分配,云服务提供商将业务按照优先级进行分类,优先为优先级高的业务分配资源,然后为优先级低的业务分配资源,以此来提高资源的利用率;
第三,基于业务量预测的资源分配方式,在这种方式中,云服务提供商对云用户业务所需的资源量进行预测,然后按云用户业务的需求为其分配资源。
当前的资源分配方法能在一定程度上提高资源的利用率,并增加云服务提供商的收益。然而,从云用户的角度,这些方法并不能带来多少收益。因此,从云用户业务特性的角度研究云计算资源分配,提高云资源利用率,还有待进一步的研究。
由于不同云用户的业务特性不同,如对资源价格、时延以及资源部署方式等方面的要求各不相同,在进行云资源分配过程中,有必要根据云用户业务的特性进行云资源的分配,从而有效的降低云用户的成本,实现云服务提供商长期收益的最大化。
发明内容
鉴于现有技术的不足,本发明根据云用户业务的特性不同,提出一种基于业务特性的云资源分配***及其方法。
进一步地,本发明可以明显降低不同业务特性云用户的成本,并实现不同云计算数据中心间的负载均衡。
本发明的基本技术思路是,利用资源调度器接收云用户的请求,包括云用户所需云资源的总量以及云用户对自身业务特性的描述;再根据云计算数据中心的状态信息得出候选数据中心集合;然后计算该云用户业务在候选数据中心的成本指数;最后根据成本指数以及该云用户的业务特性完成云资源的分配。
为实现上述目的,本发明采用的技术方案如下:
一种分布式云架构下基于业务特性的资源分配***,所述***包括:
资源调度器,根据云用户的要求以及各云计算数据中心的状态计算得出云用户相对各个云计算数据中心的成本指数,并根据云用户的需求为其分配部署虚拟机;所述资源调度模块可运行在云计算平台的某个云计算数据中心上;
云数据中心状态监控进程,向所述资源调度器发送所在云计算数据中心的状态信息,所述云数据中心状态监控进程是运行在云计算数据中心的监控进程;
数据中心状态模块,是所述资源调度器中用于存储各云计算数据中心状态信息的模块,根据云计算数据中心报告的状态信息进行实时更新,包括云计算数据中心的时延估计、剩余资源以及资源价格的信息。
分布式云架构下基于业务特性的资源分配***进行资源分配的方法,所述方法包括以下步骤:
(1)建立基于业务特性的云资源分配体系;根据资源调度器接收来自云用户的请求,根据云数据中心状态监控进程,监控其所在的云计算数据中心的状态,并向所述资源调度器报告,根据所述报告中的信息计算云用户相对各云计算数据中心的成本指数,根据所述成本指数为云用户分配资源或拒绝云用户的请求;
(2)建立云计算数据中心状态模块的更新;所述云数据中心状态监控进程周期性地向资源调度器报告所在云计算数据中心的状态信息,其中,所述状态信息包括剩余资源Lk,t、数据中心资源的价格Pk,t以及数据中心的时延估计Dk,t;
(3)云用户向资源调度器提交云资源请求Ri(li,ni,ci),li=li(f,m,h,b)表示云用户所需虚拟机的配置,其中,f表示主频,m表示内存储器,h表示硬盘,b表示带宽,ni表示云用户i所需虚拟机的数量,ci=(si,αi,βi)表示云用户i的业务特性,其中,si表示云用户i所需虚拟机的部署要求,si=1表示云用户要求虚拟机集中部署在一个云计算数据中心上,si=v,(v>1)表示云用户要求虚拟机分别部署在v个云计算数据中心上,αi,βi∈[0,1]分别表示云用户i的时延因子和价格因子,不同业务的时延因子和价格因子不同,对时延或价格越敏感,αi或βi的值越大;
(4)若云用户si=1,执行步骤(5);若si=v,(v>1),执行步骤(6);
(5)采用集中式的方式为云用户i部署虚拟机,其中
(5a)所述资源调度器查找所述数据中心状态模块,选出满足云用户i资源需求Ri(li,ni)的云计算数据中心k*,须满足Lk,t≥nili,并构成用户i的候选集合Gi;
(5b)若所述候选集合Gi为空集,表示当前并无足够的资源分配给用户i,则所述资源调度器拒绝用户i的请求,执行步骤(7);否则计算所述候选集合Gi中各云计算数据中心相对云用户i的成本指数Ti,k,t,k∈Gi;
(5c)选择所述候选集合Gi中所述成本指数Ti,k,t最低的云计算数据中心k*为云用户i部署虚拟机;
(5d)对选择的云计算数据中心的剩余资源状态Lk,t进行更新,执行步骤(7);
(6)采用分布式的方式为云用户i部署虚拟机,其中
(6a)所述资源调度器查找所述数据中心状态模块,选出满足云用户i资源需求Ri(li,ni)的云计算数据中心k*,须满足Lk,t≥nili/v,其中,Lk,t为剩余资源,ni表示云用户i所需虚拟机的数量,li表示云用户所需虚拟机的配置,v表示云用户i要求将虚拟机分别部署在v个云计算数据中心上,这些云计算数据中心构成用户i的候选集合Gi;
(6b)若候选集合中的云计算数据中心个数|Gi|<v,表示当前并无足够的云计算数据中心满足云用户i的资源需求,则资源调度器拒绝云用户i的请求,执行步骤(7);否则计算所述候选集合Gi中各云计算数据中心相对所述云用户i的成本指数Ti,k,t,k∈Gi;
(6c)在所述候选集合Gi中选取成本指数Ti,k,t最小的v个云计算数据中心构成集合在集合中的这v个云计算数据中心为云用户i部署虚拟机;
(6d)对选择的云计算数据中心的剩余资源状态Lk,t进行更新,执行(7);
(7)虚拟机分配完成,所述资源调度器向所述云用户i反馈分配结果。
需要进一步说明的是,所述步骤(2)中的更新步骤包括:
当云计算数据中心的状态信息发生变化时,所述云数据中心状态监控进程读取当前状态下的剩余资源Lk,t以及资源价格Pk,t,然后发送给所述资源调度器,所述资源调度器根据收到的信息对所述数据中心状态模块中相应云计算数据中心的状态信息进行更新;
所述资源调度器周期性的向云计算数据中心发送时延测试信号,并在所述数据中心状态模块中记录该测试信号的应答时延dk,t,测试信号的发送周期为td,且每当所述资源调度器收到来自一个云计算数据中心的状态信息时也会向该云计算数据中心发送一个时延测试信号。
需要说明的是,所述资源价格Pk,t由所述云数据中心状态监控进程按照下式提供:
Pk,t=γ1Pk+γ2f(Lk,t)+γ3g(Dk,t);
其中,k表示云计算数据中心编号,t表示当前时刻,γi为权重因子,Σγi=1,Pk是云计算数据中心k的基本资源价格,为定值,f(Lk,t)和g(Dk,t)分别是与剩余资源量和时延估计有关的函数。
需要说明的是,对所述云计算数据中心的时延进行估计,如下式:
其中I表示窗口长度,即最近I个测试信号的平均应答时延为该云计算数据中心的估计时延。
需要说明的是,所述成本指数Ti,k,t按照以下公式计算:
Ti,k,t=αiDk,t+βiPk,t;
其中,αi,βi∈[0,1]分别表示云用户i的时延因子和价格因子,不同业务的时延因子和价格因子不同,对时延或价格越敏感,αi或βi的值越大;Dk,t和Pk,t分别表示t时刻云计算数据中心k的时延估计和资源价格。
本发明有益效果在于,解决了在分布式云计算环境下,拥有不同业务特性的云用户业务的资源分配问题,明显降低不同业务特性云用户的成本,并实现不同云计算数据中心间的负载均衡。
附图说明
图1为本发明的***架构图;
图2为本发明方法的流程图。
具体实施方式
下面将结合附图对本发明作进一步的描述。
如图1所示,本发明为一种分布式云架构下基于业务特性的资源分配***,所述***包括:
资源调度器1,根据云用户2的要求以及各云计算数据中心3的状态计算得出云用户2相对各个云计算数据中心3的成本指数,并根据云用户2的需求为其分配部署虚拟机;所述资源调度器1可运行在云计算平台的某个云计算数据中心3上;
云数据中心状态监控进程,向所述资源调度器1发送所在数据中心3的状态信息,所述云数据中心状态监控进程运行在云计算数据中心3的监控进程;
数据中心状态模块,是所述资源调度器1中用于存储各云计算数据中心3状态信息的模块,根据云计算数据中心3报告的状态信息进行实时更新,包括云计算数据中心3的时延估计、剩余资源以及资源价格的信息。
如图2所示,本发明的具体实施步骤如下:
(1)建立基于业务特性的云资源分配体系;根据资源调度器接收来自云用户的请求,根据云数据中心状态监控进程,监控其所在的云计算数据中心的状态,并向所述资源调度器报告,根据所述报告中的信息为云用户分配资源或拒绝云用户的请求;
(2)建立云计算数据中心状态模块的更新;所述云数据中心状态监控进程周期性地向资源调度器报告所在云计算数据中心的状态信息,其中,所述状态信息包括剩余资源Lk,t、数据中心资源的价格Pk,t以及数据中心的时延估计Dk,t;
需要进一步说明的是,所述步骤(2)中的更新步骤包括:
当云计算数据中心的状态信息发生变化时,所述云数据中心状态监控进程读取当前状态下的剩余资源Lk,t以及资源价格Pk,t,然后发送给所述资源调度器,所述资源调度器根据收到的信息对所述数据中心状态模块中相应云计算数据中心的状态信息进行更新;
所述资源调度器周期性的向云计算数据中心发送时延测试信号,并在所述数据中心状态模块中记录该测试信号的应答时延dk,t,测试信号的发送周期为td,且每当所述资源调度器收到来自一个云计算数据中心的状态信息时也会向该云计算数据中心发送一个时延测试信号。
(3)云用户向资源调度器提交云资源请求Ri(li,ni,ci),li=li(f,m,h,b)表示云用户所需虚拟机的配置,其中,f表示主频,m表示内存储器,h表示硬盘,b表示带宽,ni表示云用户i所需虚拟机的数量,ci=(si,αi,βi)表示云用户i的业务特性,其中,si表示云用户i所需虚拟机的部署要求,si=1表示云用户要求虚拟机集中部署在一个云计算数据中心上,si=v,(v>1)表示云用户要求虚拟机部署在v个云计算数据中心上,αi,βi∈[0,1]分别表示云用户i的时延因子和价格因子,不同业务的时延因子和价格因子不同,对时延或价格越敏感,αi或βi的值越大;
(4)若云用户si=1,执行步骤(5);若si=v,(v>1),执行步骤(6);
(5)采用集中式的方式为云用户i部署虚拟机,其中
(5a)所述资源调度器查找所述数据中心状态模块,选出满足云用户i资源需求Ri(li,ni)的云计算数据中心k*,须满足Lk,t≥nili,并构成用户i的候选集合Gi;
(5b)若所述候选集合Gi为空集,表示当前并无足够的资源分配给用户i,则所述资源调度器拒绝用户i的请求,执行步骤(7);否则计算所述候选集合Gi中各云计算数据中心相对云用户i的成本指数Ti,k,t,k∈Gi;
(5c)选择所述候选集合Gi中所述成本指数Ti,k,t最低的云计算数据中心k*为云用户i部署虚拟机;
(5d)对选择的云计算数据中心的剩余资源状态Lk,t进行更新,执行步骤(7);
(6)采用分布式的方式为云用户i部署虚拟机,其中
(6a)所述资源调度器查找所述数据中心状态模块,选出满足云用户i资源需求Ri(li,ni)的云计算数据中心k*,须满足Lk,t≥nili/v,其中,Lk,t为剩余资源,ni表示云用户i所需虚拟机的数量,li表示云用户所需虚拟机的配置,v表示云用户要求将虚拟机分别部署在v个云计算数据中心上,这些云计算数据中心构成用户i的候选集合Gi;
(6b)若候选集合中的云计算数据中心个数|Gi|<v,表示当前并无足够的云计算数据中心满足云用户i的资源需求,则资源调度器拒绝云用户i的请求,执行步骤(7);否则计算所述候选集合Gi中各云计算数据中心相对所述云用户i的成本指数Ti,k,t,k∈Gi;
(6c)在所述候选集合Gi中选取成本指数Ti,k,t最小的v个云计算数据中心构成集合在集合中的这v个云计算数据中心为云用户i部署虚拟机;
(6d)对选择的云计算数据中心的剩余资源状态Lk,t进行更新,执行(7);
(7)虚拟机分配完成,所述资源调度器向所述云用户i反馈分配结果。
需要说明的是,所述资源价格Pk,t由所述云数据中心状态监控进程按照下式提供:
Pk,t=γ1Pk+γ2f(Lk,t)+γ3g(Dk,t);
其中,k表示云计算数据中心编号,t表示当前时刻,γi为权重因子,当Σγi=1,Pk是云计算数据中心k的基本资源价格,为定值,f(Lk,t)和g(Dk,t)分别是与剩余资源量和时延估计有关的函数。
需要说明的是,对所述云计算数据中心的时延进行估计,如下式:
其中I表示窗口长度,即最近I个测试信号的平均应答时延为该云计算数据中心的估计时延。
需要说明的是,所述成本指数Ti,k,t按照以下公式计算:
Ti,k,t=αiDk,t+βiPk,t;
其中,αi,βi∈[0,1]分别表示云用户i时延因子和价格因子,不同业务的时延因子和价格因子不同,对时延或价格越敏感,αi或βi的值越大;Dk,t和Pk,t分别表示t时刻云计算数据中心k的时延估计和资源价格。