一种服务器集群上的虚拟机动态放置优化方法及系统与流程

文档序号:12463498阅读:176来源:国知局
一种服务器集群上的虚拟机动态放置优化方法及系统与流程

本发明属于计算机技术领域,尤其涉及一种服务器集群上的虚拟机动态放置优化方法及系统。



背景技术:

目前基于大型服务器集群的云服务中心、数据中心的能耗问题日益突出,虚拟机技术是提高数据中心资源利用率、实现节能减排的有效途径,而通过管理虚拟机技术实现节能最有效的途径就是制定合理的虚拟机放置策略。

由于服务器资源、虚拟机需求、用户请求的动态变化,能够随着相关变化自动调整虚拟机动态放置是合理放置虚拟机的重要手段。虚拟机动态放置是指在系统运行过程中,根据各类变化,选择合适的时刻,不断对虚拟机安置在哪个服务器上的策略进行动态调整,在满足SLA(Service-Level Agreement,服务等级协议)的前提下,达到优化目标。

现有技术可以分为三类:

第一类将虚拟机动态放置的优化划分成两个阶段,第一阶段计算支持当前虚拟机运行所需的最少的服务器数量,第二阶段再将虚拟机逐一分配到服务器上,此类方法通常是逐个放置虚拟机,因此只能实现局部优化而很难到达全局最优;

第二类通过简单启发式优化规则或线性规划等方法实现虚拟机动态放置优化,此类方法从整体上进行虚拟机放置的优化,且一般来说求解速度较快,但由于虚拟机放置问题是一个NP难题,当问题规模较大时,此类方法同样只能到达局部优化,而很难达到或接近最优解;

第三类则引入在求解NP难题方面有着良好求解效果的智能优化算法,对虚拟机动态放置优化问题进行求解,与第二类研究类似,此类研究也试图整体优化虚拟机放置方案,实现虚拟机放置的全局优化,但此类方法或者只能取得局部优化效果,或者无法保证方案的可行性,当方案不可行,需要重启系统,将初始状态清零后,再进行放置,这将影响系统性能并增加额外能耗。



技术实现要素:

本发明的目的在于提供一种服务器集群上的虚拟机动态放置优化方法及系统,旨在解决现有技术中只能实现局部优化而很难到达全局优化的问题。

一方面,本发明提供了一种服务器集群上的虚拟机动态放置优化方法,所述方法包括下述步骤:

分别建立服务器状态能耗模型、虚拟机迁移能耗模型及服务器状态切换能耗模型,并根据所述服务器状态能耗模型、所述虚拟机迁移能耗模型及所述服务器状态切换能耗模型,建立服务器集群能耗模型;

根据服务器处于各状态的概率、当前用户请求服务器数量以及处于各状态服务器的数量,计算用户请求平均等待时间;

在预设条件下,依据服务器集群能耗模型,将服务器集群能耗的最小值作为优化目标,得到虚拟机动态放置优化方案,所述预设条件包括:

运行在当前服务器上的所有虚拟机所需资源总和小于所述当前服务器所拥有的资源数量;

一台虚拟机只运行在一台服务器上;以及

满足所述用户请求平均等待时间。

另一方面,本发明提供了一种服务器集群上的虚拟机动态放置优化系统,所述系统包括:

服务器集群能耗模型建立单元,用于分别建立服务器状态能耗模型、虚拟机迁移能耗模型及服务器状态切换能耗模型,并根据所述服务器状态能耗模型、所述虚拟机迁移能耗模型及所述服务器状态切换能耗模型,建立服务器集群能耗模型;

用户请求平均等待时间计算单元,用于根据服务器处于各状态的概率、当前用户请求服务器数量以及处于各状态服务器的数量,计算用户请求平均等待时间;以及

虚拟机动态放置优化方案获取单元,用于在预设条件下,依据服务器集群能耗模型,将服务器集群能耗的最小值作为优化目标,得到虚拟机动态放置优化方案,所述预设条件包括:

运行在当前服务器上的所有虚拟机所需资源总和小于所述当前服务器所拥有的资源数量;

一台虚拟机只运行在一台服务器上;以及

满足所述用户请求平均等待时间。

在本发明实施例中,对服务器集群的负载和状态的动态变化过程进行建模,并在此基础上建立服务器集群能耗模型和用户请求平均等待时间计算模型,依据服务器集群能耗模型,将服务器集群能耗的最小值作为优化目标,得到虚拟机动态放置优化方案,实现全局优化。

附图说明

图1是本发明实施例一提供的服务器集群上的虚拟机动态放置优化方法的实现流程图;

图2是本发明实施例一提供的基于Petri网建立用户请求响应模型的示意图;

图3是本发明实施例一提供的用户请求响应模型的状态分析图;

图4是本发明实施例一提供的求解虚拟机动态放置优化方案的实现流程图;以及

图5是本发明实施例二提供的服务器集群上的虚拟机动态放置优化系统的结构图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

以下结合具体实施例对本发明的具体实现进行详细描述:

实施例一:

图1示出了本发明实施例一提供的服务器集群上的虚拟机动态放置优化方法的实现流程图,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:

在步骤S101中,分别建立服务器状态能耗模型、虚拟机迁移能耗模型及服务器状态切换能耗模型,并根据服务器状态能耗模型、虚拟机迁移能耗模型及服务器状态切换能耗模型,建立服务器集群能耗模型。

在本发明实施例中,建立由服务器状态能耗模型、虚拟机迁移能耗模型及服务器状态切换能耗模型三个部分组成的服务器集群能耗模型,对服务器集群的负载和状态的动态变化过程进行建模。

服务器状态能耗模型是将资源使用率转换成能耗,建立与服务器负载相关联的状态能耗模型,利用轻量级监测工具测量每个虚拟机运行时的不同资源的利用率,并对服务器能耗进行监测,利用收集到的数据,采用模型学习和修正技术,建立状态能耗模型。

虚拟机迁移能耗模型是综合考虑迁移虚拟机的大小和资源种类,迁入迁出服务器的负载和资源配备,及起始服务器间的网络状态等情况,建立对迁出服务器能耗的影响、对迁入服务器能耗的影响、迁移过程中对中间网络能耗的影响三个部分能耗的计算模型,再进行综合建立完整的虚拟机迁移能耗模型。

服务器状态切换能耗模型是通过定期对服务器的能耗监测,获得各服务器在不同状态下进行状态切换的能耗值。

具体地,建立服务器状态能耗模型的步骤,包括:

根据第i台服务器的固定能耗以及负载能耗,得到第i台服务器的状态能耗Erui(t);

将所有的服务器的状态能耗进行求和,得到所述服务器状态能耗ERU(s)。

该建立服务器状态能耗模型的计算公式如下:

其中,Erui(t)是第i台服务器在时间段t内的状态能耗,i=1,2…,M,所述第i台服务器的状态能耗Erui(t)由固定能耗和负载能耗两部分组成,计算公式如下:

其中,Fi(PSi)是第i台服务器在状态为PSi时的单位固定能耗,PSi=1,2,3,具体地,1代表运行、2代表休眠、3代表关闭;

是第i台服务器在时间段t内的负载能耗,Ri(t)是第i台服务器在时间段t内的负载,ai和bi为能耗系数。

具体地,建立虚拟机迁移能耗模型的步骤,包括:

分别建立对迁出服务器能耗的影响、对迁入服务器能耗的影响以及迁移过程中对中间网络能耗的影响的计算模型;

将对迁出服务器能耗的影响、对迁入服务器能耗的影响以及迁移过程中对中间网络能耗的影响进行求和,得到虚拟机迁移能耗EVI(s)。

该建立虚拟机迁移能耗模型的计算公式如下:

其中,Evuij是将第j个虚拟机从第i台服务器迁出时,j=1,2…,N,对第i台服务器能耗的影响,VS是虚拟机迁出矩阵,当VSij为1时,代表第j个虚拟机从第i台服务器迁出,否则为0;Evuij的计算公式如下:

Evuij=αi*Sji

其中,Sj是第j个虚拟机的大小,αi和βi为调整系数;

Evdkj是将第j个虚拟机迁入到第k台服务器时,j=1,2…,N,对第k台服务器能耗的影响,VE是虚拟机迁入矩阵,当VEkj为1时,代表第j个虚拟机迁移到第k台服务器上,否则为0;Evdkj的计算公式如下:

Evdkj=αk*Sjk

其中,Sj是第j个虚拟机的大小,αk和βk为调整系数;

Evnikj是将第j个虚拟机从第i台服务器迁到第k台服务器时,对中间网络能耗的影响,VC是虚拟机迁移矩阵,当VCikj为1时,代表第j个虚拟机从第i台服务器迁移到第k个服务器上,否则为0;Evnikj的计算公式如下:

Evnikj=γik*Sj

其中,Sj是第j个虚拟机的大小,γik为调整系数。

具体地,建立服务器状态切换能耗模型的步骤,包括:

通过获取各服务器在不同状态下进行状态切换的能耗值,得到服务器状态切换能耗ECH(s);

该服务器状态切换能耗模型的计算公式如下:

其中,Epq是服务器状态改变能耗矩阵,Epqi1代表开启处于关闭状态第i台服务器的能耗,Epqi2代表唤醒处于休眠状态第i台服务器的能耗,Epqi3代表休眠处于运行状态第i台服务器的能耗,Epqi4代表关闭处于运行状态第i台服务器的能耗;PC是服务器状态改变矩阵,PC1i代表第i台服务器将从关闭状态调整为运行状态,PC2i代表第i台服务器将从休眠状态调整为运行状态,PC3i代表第i台服务器将从运行状态调整为休眠状态,PC4i代表第i台服务器将从运行状态调整为关闭状态。

具体地,建立服务器集群能耗模型的计算公式为:

EC(s)=[ERU(s)-ERU(s0)]+EVI(s)+ECH(s)

其中,EC(s)是将放置方案调整为s时服务器集群能耗,ERU(s)是在放置方案s下的服务器状态能耗,ERU(s0)是在初始放置方案s0下的服务器状态能耗,EVI(s)是将放置方案调整为s时虚拟机迁移能耗,ECH(s)是将放置方案调整为s时服务器状态切换能耗。

在步骤S102中,根据服务器处于各状态的概率、当前用户请求服务器数量以及处于各状态服务器的数量,计算用户请求平均等待时间。

在本发明实施例中,根据服务器处于各状态的概率、当前用户请求服务器数量以及处于各状态服务器的数量,以用户请求平均等待时间作为评价指标建立性能模型。

进一步地,基于Petri网建立用户请求响应模型;

对用户请求响应模型进行状态分析,以计算出所述服务器处于各状态的概率。

具体地,图2为本发明实施例一提供的基于Petri网建立用户请求响应模型的示意图,详述如下,基于Petri网建立用户请求响应模型,p0为模拟用户请求的到达而引入的辅助库所;p1和p2为选择库所,根据条件选择将服务器置于何种状态;t0模拟用户请求的到达满足参数为λ的泊松分布;t2模拟处理用户请求的时间服从参数为μ的负指数分布;t1、t3、t4、t5、t6和t7为瞬时变迁,辅助进行状态切换;f为将服务器从运行状态切换到休眠状态的阈值。

虚线框模拟用户请求的到达,用户请求到达时向req(请求)库所添加一个代表该用户请求的token(令牌),当run(运行)库有代表可用服务器的token时,该服务器将从req库所选取一个token进行处理;处理完后,若req库所仍有未处理token,则该服务器回到run库所;否则,根据阈值判断是否将该服务器的状态切换为空闲或休眠,从而进入idle(空闲)或sleep(休眠)库所;若req库所的用户请求数量较多,则根据阈值唤醒处于sleep状态的服务器。

进一步地,图3为本发明实施例一提供的用户请求响应模型的状态分析图,详述如下,对所述用户请求响应模型进行状态分析,图3中每个虚线框为服务器集群的一个状态,处于M1状态时,无等待的用户请求;当用户请求数量大于当前可用服务器个数r时,进入状态M2,部分用户请求需排队等待;当排队的请求数量超出阈值a1,进入状态M3时,唤醒1个处于休眠状态的服务器,为用户提供服务;当排队的请求数量下降,跌至阈值a1以下时,并不是立即让额外唤醒的服务器进入休眠状态,而是继续为排队等待的用户请求提供服务,系统进入状态M4,直到没有等待的请求,额外唤醒的服务器才再次进入休眠状态。系统设置多个增加服务器的阈值,从而根据用户请求情况,逐一唤醒服务器。

进一步地,根据服务器处于各状态的概率、当前用户请求服务器数量以及处于各状态服务器的数量,计算用户请求平均等待时间的计算公式为:

其中,Wq为用户请求平均等待时间,pj为服务器处于各状态的概率,j为当前用户请求服务器的数量,c为服务器总数量,r为处于运行状态服务器的数量,s为处于休眠状态服务器的数量,k为欲增加服务器的数量,ak为增加服务器的阈值,μ为负指数分布的参数。

在步骤S103中,在预设条件下,依据服务器集群能耗模型,将服务器集群能耗的最小值作为优化目标,得到虚拟机动态放置优化方案,所述预设条件包括:

运行在当前服务器上的所有虚拟机所需资源总和小于所述当前服务器所拥有的资源数量;

一台虚拟机只运行在一台服务器上;以及

满足所述用户请求平均等待时间。

在本发明实施例中,将服务器集群能耗作为优化目标,使其满足于运行在当前服务器上的所有虚拟机所需资源总和小于所述当前服务器所拥有的资源数量;一台虚拟机只运行在一台服务器上;以及满足所述用户请求平均等待时间。

具体地,给定系统中有M台服务器,矩阵PS表示服务器所处的状态,PSi是第i台服务器的状态,PSi的取值为1、2和3,1代表运行、2代表休眠、3代表关闭,矩阵PR表示服务器的资源数量,L是资源种类数,PRli表示第i台机器的所拥有的第l(l=1,2,…,L)类资源的数量,系统中运行着N种虚拟机,矩阵VR表示对各虚拟机未来一段时间的资源需求预测结果,VRlj表示第j个虚拟机对第l(l=1,2,…,L)类资源的需求数量,矩阵sij表示当前虚拟机与设备的对应情况,即当前虚拟机的放置方案,一个虚拟机只能运行在一个机器上,需对虚拟机的放置情况进行调整,得到一个新的虚拟机放置方案s,使得目标得以实现,该问题的优化目标主要在于两个方面:从收益的角度说,应当尽量满足用户的需求,达到用户要求的SLA水平;从成本的角度说,则主要是能耗。

其用公式表达为:

minEC(s)

s.t.RWki≤PRki

(RW=VR*PS;k=1,2,…,K;i=1,2,…,M)

Wq(s)≤Wq

其中,minEC(s)将服务器集群能耗作为优化目标,即最小化能耗;预设条件,包括:RWki≤PRki是代表运行在一台服务器上的所有虚拟机所需资源总和应小于该服务器所拥有的资源数量;表示一台虚拟机只能运行在一台服务器上;式(13)是指用户的性能要求得到满足,Wq(s)是放置方案s下系统的性能,即放置方案s下用户请求平均等待时间,Wq是用户的性能要求,即用户请求平均等待时间。

进一步地,图4是本发明实施例一提供的求解虚拟机动态放置优化方案的实现流程图,在求解虚拟机动态放置优化方案时,将虚拟机映射为博弈理论中的决策者参与博弈,每个虚拟机可放置的所有服务器则形成决策者的决策空间,在每一轮的博弈过程中,每个决策者都将选择其最好的且可行的策略,经过多轮博弈后,将到达一个纳什均衡点,这将是一个可行的改进解,为避免博弈过程陷入局部优化,在每一轮博弈过程中,以一定的概率让部分决策者使用随机选择策略。将多人随机演化博弈理论应用于虚拟机放置方案优化全局优化问题的求解,提出的多人随机演化博弈算法能在考虑虚拟机初始放置方案的前提下,求得最优的虚拟机放置调整方案,同时给出从初始方案到目标方案的可行的虚拟机迁移序列。

在本发明实施例中,对服务器集群的负载和状态的动态变化过程进行建模,并在此基础上建立服务器集群能耗模型和用户请求平均等待时间计算模型,依据服务器集群能耗模型,将服务器集群能耗的最小值作为优化目标,得到虚拟机动态放置优化方案,实现全局优化。

实施例二:

图5是本发明实施例二提供的服务器集群上的虚拟机动态放置优化系统的结构图,为了便于说明,仅示出了与本发明实施例相关的部分。该服务器集群上的虚拟机动态放置优化系统包括:服务器集群能耗模型建立单元51、用户请求平均等待时间计算单元52以及虚拟机动态放置优化方案获取单元53,其中:

服务器集群能耗模型建立单元51,用于分别建立服务器状态能耗模型、虚拟机迁移能耗模型及服务器状态切换能耗模型,并根据所述服务器状态能耗模型、所述虚拟机迁移能耗模型及所述服务器状态切换能耗模型,建立服务器集群能耗模型。

在本发明实施例中,建立由服务器状态能耗模型、虚拟机迁移能耗模型及服务器状态切换能耗模型三个部分组成的服务器集群能耗模型,对服务器集群的负载和状态的动态变化过程进行建模。

进一步地,服务器集群能耗模型建立单元51包括:

服务器状态能耗模型建立单元511,用于根据第i台服务器的固定能耗以及负载能耗,得到第i台服务器的状态能耗Erui(t);将所有的服务器的状态能耗进行求和,得到所述服务器状态能耗ERU(s)。

虚拟机迁移能耗模型建立单元512,用于分别建立对迁出服务器能耗的影响、对迁入服务器能耗的影响以及迁移过程中对中间网络能耗的影响的计算模型;将所述对迁出服务器能耗的影响、所述对迁入服务器能耗的影响以及所述迁移过程中对中间网络能耗的影响进行求和,得到所述虚拟机迁移能耗EVI(s)。

服务器状态切换能耗模型建立单元513,用于通过获取各服务器在不同状态下进行状态切换的能耗值,得到服务器状态切换能耗ECH(s)。

其中,服务器状态能耗模型是将资源使用率转换成能耗,建立与服务器负载相关联的状态能耗模型,利用轻量级监测工具测量每个虚拟机运行时的不同资源的利用率,并对服务器能耗进行监测,利用收集到的数据,采用模型学习和修正技术,建立状态能耗模型。

虚拟机迁移能耗模型是综合考虑迁移虚拟机的大小和资源种类,迁入迁出服务器的负载和资源配备,及起始服务器间的网络状态等情况,建立对迁出服务器能耗的影响、对迁入服务器能耗的影响、迁移过程中对中间网络能耗的影响三个部分能耗的计算模型,再进行综合建立完整的虚拟机迁移能耗模型。

服务器状态切换能耗模型是通过定期对服务器的能耗监测,获得各服务器在不同状态下进行状态切换的能耗值。

用户请求平均等待时间计算单元52,用于根据服务器处于各状态的概率、当前用户请求服务器数量以及处于各状态服务器的数量,计算用户请求平均等待时间。

在本发明实施例中,根据服务器处于各状态的概率、当前用户请求服务器数量以及处于各状态服务器的数量,以用户请求平均等待时间作为评价指标建立性能模型。

该用户请求平均等待时间计算单元52包括:

用户请求响应模型建立单元521,用于基于Petri网建立用户请求响应模型。

概率计算单元522,用于对用户请求响应模型进行状态分析,以计算出服务器处于各状态的概率。

虚拟机动态放置优化方案获取单元53,用于在预设条件下,依据服务器集群能耗模型,将服务器集群能耗的最小值作为优化目标,得到虚拟机动态放置优化方案,所述预设条件包括:

运行在当前服务器上的所有虚拟机所需资源总和小于所述当前服务器所拥有的资源数量;

一台虚拟机只运行在一台服务器上;以及

满足所述用户请求平均等待时间。

在本发明实施例中,将服务器集群能耗作为优化目标,使其满足于运行在当前服务器上的所有虚拟机所需资源总和小于所述当前服务器所拥有的资源数量;一台虚拟机只运行在一台服务器上;以及满足所述用户请求平均等待时间。

进一步地,在求解虚拟机动态放置优化方案时,将虚拟机映射为博弈理论中的决策者参与博弈,每个虚拟机可放置的所有服务器则形成决策者的决策空间,在每一轮的博弈过程中,每个决策者都将选择其最好的且可行的策略,经过多轮博弈后,将到达一个纳什均衡点,这将是一个可行的改进解,为避免博弈过程陷入局部优化,在每一轮博弈过程中,以一定的概率让部分决策者使用随机选择策略。将多人随机演化博弈理论应用于虚拟机放置方案优化全局优化问题的求解,提出的多人随机演化博弈算法能在考虑虚拟机初始放置方案的前提下,求得最优的虚拟机放置调整方案,同时给出从初始方案到目标方案的可行的虚拟机迁移序列。

在本发明实施例中,对服务器集群的负载和状态的动态变化过程进行建模,并在此基础上建立服务器集群能耗模型和用户请求平均等待时间计算模型,依据服务器集群能耗模型,将服务器集群能耗的最小值作为优化目标,得到虚拟机动态放置优化方案,实现全局优化。

在本发明实施例中,各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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