APP下载

基于节点负载评估和动态阈值的虚拟机迁移触发策略研究

2021-10-15何利力浙江理工大学信息学院浙江杭州310018

计算机应用与软件 2021年10期
关键词:全局时机阈值

王 晶 何利力(浙江理工大学信息学院 浙江 杭州 310018)

0 引 言

云数据中心利用虚拟化技术将软硬件资源池化,动态调整资源,按用户需求提供资源服务,但随着互联网技术的快速发展,用户需求日益增长,这要求数据中心运营应低成本、高效率,而数据中心核心问题是资源利用率问题[1]。虚拟机动态迁移技术是解决数据中心资源利用率问题的有效解决方法,其在提供有效服务的情况下通过对节点负载进行调整,以达到平台资源的高利用率、负载均衡、节能优化和低SLA违约率等目的[2]。虚拟机动态迁移可以分为三个部分:迁移触发时机、待迁移虚拟机选择和目的节点的选择。迁移触发时机作为虚拟机动态迁移策略必须要考虑的三个问题之首,显得尤为重要[3]。

1 相关研究

迁移触发时机策略,即通过节点负载情况判断是否需要对其上运行的虚拟机进行迁移操作,共包括两个部分:监控节点负载信息与迁移时机判断,其中核心部分是对触发时机的判断方法[4]。

节点负载信息的收集方式及内容是进行负载状态评估的基础。文献[5-6]通过实时采集服务器资源使用情况,并使用阈值法对服务器状态进行判断,由于获取实时数据需频繁采集服务器负载信息,这会占用大量资源;文献[7]减少采集信息的频率,并使用指数平滑预测未来几期的CPU使用率,有效减少了由采集信息带来的资源消耗,但是单一负载指标并不能有效地代表异构节点的负载情况。文献[8-9]对阿里集群2018年最新集群公开数据进行研究,结果表明,在阿里异构集群中,服务器的CPU、内存、磁盘等资源都影响着服务器的负载状态。文献[10]将服务器过载类型依据过载资源类型分为高CPU型过载、高内存型过载与高带宽型过载,在判断过载时使用负载预测对未来几期内的负载进行预测,从而增加了负载状态判断的合理性。

虚拟机触发时机的判断方法的有效性决定了虚拟机迁移触发时机的合理性,通常使用阈值法对负载状态进行判断,但是由于虚拟机迁移任务到达会导致节点负载出现瞬时的抖动,即负载瞬时值,此值影响触发时机的合理性,进而影响虚拟机迁移的效果。

文献[11]设定观察周期,当负载值连续多次超过阈值时,触发虚拟机迁移,此方法虽可以减少由负载瞬时值引起的不必要的迁移,但是具有严重的滞后性,并影响数据中心的服务质量。文献[12]使用CPU、内存和带宽三维度负载指标,考虑各指标可用范围设置双阈值实现迁移时机的判断,通过预测阈值动态可调范围减少负载瞬时值的影响,但此方法并未考虑到全局负载量的变化,且未提供服务器轻度负载的判断方法。文献[13]使用混合负载预测法对未来负载进行预测,进而减缓瞬时负载值的影响,增加触发时机的合理性,但是混合预测法算法复杂,且计算过程是在全局检测模块中进行的,当进行大批量的服务器负载的分析时,全局检测模块需消耗大量计算资源,可能会影响其他进程的执行效率。文献[14]针对异构节点的配置差异,在节点内监测负载信息并使用IFTS预测节点负载,以每个节点的负载均衡得到整个系统的负载均衡,但是文献中的IFTS节点预测模型具有一定复杂度,占用了一定的节点计算资源,从节点效率考虑,在虚拟机迁移触发时机的合理性前提下,节点用于监测与预测的计算资源应越少越好。

针对以上问题,本文设计一种基于节点负载状态评估和动态阈值的虚拟机迁移触发策略(NLADT-MMT)。选取三维度的负载指标并将负载状态评估置于节点管理中,由节点监测模块负责收集该节点负载信息结合负载预测实现对该节点的负载状态评估;全局监测模块负责收集所有节点的负载状态信息,通过监测全局负载度和高低负载节点比率动态调整阈值。

2 虚拟机迁移触发策略

2.1 迁移触发策略模型

针对异构节点资源配置差异和现有的迁移触发机制存在的问题,本文设计基于节点负载状态评估和动态阈值的虚拟机迁移触发策略,如图1所示,该策略包括两个部分,节点检测模块和全局检测模块。

图1 虚拟机迁移触发策略

各模块功能如图1所示,节点监测模块负责对节点负载状态进行评估,并主动将需进行迁移的节点信息发送给全局监控模块;全局监控模块负责状态阈值的动态调整,并接收节点负载信息,通过对全局负载度与高低负载节点占比进行监控,判断是否需要进行阈值调整,若需要则调整阈值并更新状态阈值,将新的阈值发送给各个节点。

该策略将负载评估部分放置于各个节点中,针对各个节点的配置差异设定状态阈值,可以节约全局检测模块的计算资源,且在规模较大时,可以获得更佳的服务质量。虚拟机迁移触发策略即确定需进行虚拟机迁移的节点列表,其过程可以用定义1表示。

定义1设数据中心有n个节点,节点集合为Node={N1,N2,…,Nn};虚拟机迁移时机触发策略便是通过节点负载状态评估,筛选出需进行虚拟机迁移操作的源节点集合S={s1,s2,…,sm},迁移触发过程可以描述如下:

(1)

定义2节点负载状态通过阈值法进行划分,包括轻载、适载和重载状态。负载超过高位阈值trh为重载;负载低于低位阈值trl为轻载;负载位于两个阈值之间为适载。

tri={trh,trl|trh,trl∈(0,1)}

(2)

(3)

2.2 节点负载评估算法

节点的负载状态决定了节点可承接的任务量及虚拟机数量,由于云数据中心中负载通常具有随机性、突变性与规律性[8-9]的特点,为了减少频繁获取节点实时负载信息的资源消耗与负载瞬时值对评估结果有效性的影响,本文使用状态阈值法对节点负载进行评估,并采用负载预测,以获得短时间内的未来负载值,减少采集信息的资源消耗,并降低负载瞬时值的影响。

2.2.1节点负载预测模型

本文将节点负载评估置于节点中,考虑到节点效益问题,节点预测模型应满足在占用较少的计算资源和易实现的前提下获得显著的预测效果。

常用的简单的短期预测模型包括自回归移动平均模型(RAMA)、自回归模型(RA)、指数平滑模型(ES)、移动平均模型(MA),其中RAMA效果最好,但是计算量及复杂度最高,其次ES效果最显著,且复杂度及计算量较低[15]。一次指数平滑法适合趋势较为平缓的时间序列预测[5],二次指数平滑法适合线性时间序列预测,三次指数平滑法(CES)适合非线性抛物线趋势时间序列预测[16]。由于负载时间序列是非线性的,故本文选取CES预测模型,但是CES具有滞后性,文献[17]采用分形插值法改进CES模型,并获得较好的交通预测效果。故本文选取三次指数平滑法,并使用插值法解决滞后性问题,加入误差修正减少峰谷值处误差。建立预测模型如图2所示,其中α为平滑因子。

图2 改进三次指数平滑法的负载预测模型

1) 插值预处理。第m期的预测值为:

Yt+m=At+Btm+Ctm2

(4)

式中:At、Bt、Ct为第t期预测参数。

(5)

对平滑因子α进行迭代,将处理后的负载序列进行三次平滑,得到m期的预测拟合曲线Yt+m,并通过计算实际值之差与预测误差的相关性,寻找最相关平滑因子αh。

2) 误差修正。根据已知t期的负载数据,计算预测点处与实际值的误差,并进行曲线拟合,计算处误差曲线。根据实验发现,第i期与第i-1期的差值与i点处实际值和预测值呈现相关性,故使用多项式拟合的方法,寻找误差修正公式。通过曲线拟合,确定a、b、c、d的值,从而得到误差表达式如下:

Res(m)=am3+bm2+cm+d

(6)

(7)

最终预测模型如下:

Yt+m=At+Btm+Ctm2+Res(m)

(8)

2.2.2节点负载状态评估

1) 初始化资源权重。节点i的负载指标权重为Ki=[k1k2k3],其中k1+k2+k3=1,该资源资源配置与标准节点资源配置比即为负载指标权重比:

(9)

由此求得Ki,可计算节点负载度Li。

(10)

2) 初始化状态阈值。在节点负载评估时,需根据该节点资源配置对此值进行初始化得到节点状态阈值thi,其中trl=Thl,设τtype为type资源指标调节比例常数,则节点i的type资源指标的高位阈值计算公式如下:

(11)

为了减少异构节点中负载瞬时值的影响并提高负载状态评估的合理性,本文设计基于负载预测的节点负载评估算法,算法流程如下:

Step1根据收集到的负载指标向量Ui组成节点负载状态向量si,令Sti=0为初始值。

Step2分别进行各指标过载判断,若负载指标均未大于该指标阈值则转至Step 4;若负载指标大于该指标阈值且满足以下条件之一便开启负载预测。若不满足以下任一条件则转Step 6。负载指标预测开启条件:(1) 上期数据与本期数据皆大于该指标的高位阈值;(2) 两期数据呈现增长趋势。

Step3进行负载指标预测,若预测周期内预测值均大于该指标阈值,则该节点为该指标类型过载,更新S值;跳转至Step 6。

Step4计算节点负载度,若此值大于低位阈值转至Step 6;若此值小于低位阈值且满足以下条件之一便开启负载预测。若不满足以下任一条件则转Step 6。负载度预测开启条件:(1) 上期值与本期值皆小于低位阈值;(2) 两期数据呈现下降趋势。

Step5进行负载度预测,若预测周期内预测值均小于低位阈值,则该节点轻载,更新Sti=4;转至Step 6。

Step6最终节点监测模块将更新后的si主动发送至全局监测模块。

算法流程如图3所示。

图3 节点的负载状态评估算法流程

此节点负载评估算法根据节点配置设置状态阈值,采用负载预测减少负载瞬时值的影响,但是状态阈值不能根据数据中心负载状况进行调整,故存在灵活性差问题。

2.3 阈值动态调整方法

状态阈值是迁移时机判决算法中的评判标准,针对静态阈值的适应性差和灵活度低问题,本文设计一种阈值动态调整方法,通过分析数据中心负载度、高负载比率和低负载比率对阈值进行动态调控。

1) 全局负载度。全局负载度可以用来监控数据中心整体负载情况。当全局负载度过高时,数据中心整体接收大量的负载任务,此时开放更多资源以承接负载任务;当全局负载度过低时,数据中心的负载任务减少,此时缩减可用资源范围,以节约资源。全局负载度计算方法如下。

取t时段内的负载信息并计算每个时刻内数据中心节点平均负载度,即:

(12)

得到全局负载度集合为{d1,d2,…,dt};剔除集合中的孤立点后集合为{d1,d2,…,dm},采用权重法计算全局负载度,如下:

(13)

(14)

为了保持数据中心的负载度,根据历史信息,按时间段为数据中心设置负载范围(ω1,ω2),当数据中心负载不在设定的范围内时,进行是否进行阈值调整的分析。

2) 高低负载节点比率。高低负载节点比率表现出数据中心节点利用率情况。当高负载节点数量过多时,会多次触发迁移操作,造成虚拟机频繁迁移,耗费大量资源;低负载节点比率过多时,此时数据中心过多节点资源处于未充分利用状态,造成资源浪费与成本消耗。设高负载比率、低负载比率分别为Lrh和Lrl,在t时间段内,计算公式如下:

(15)

设置高负载比率范围(minLrh,maxLrh)与低负载比率范围(minLrl,maxLrl)以判断是否进行阈值调整。

3) 阈值动态调整流程。通过全局负载度与高低负载节点比率实现对状态阈值的动态调控,流程如下:

(1) 计算t时段内全局负载度D,若D∈(ω1,ω2)则数据中心在适度负载内,不需要调整阈值;否则转步骤(2)。

(2) 计算高低负载节点,计算其占比Lrh和Lrl;分别比较其是否在设定的范围内,若不在此范围则转步骤(3);否则需要进行阈值调整,调整方式如下:

(16)

(3) 若D>ωl且Lrh>maxLrh时,则数据中心接受大量负载,此时需要启用新的节点服务器;若当D<ωl且Lrl>maxLrl时,则数据中心大量资源未被使用,此时需要关闭一些节点服务器,节约成本消耗。

2.4 迁移时机判决算法

基于以上研究,将动态阈值调整方法与节点负载评估方法进行整合,得到如图4所示的迁移时机判决算法。

图4 迁移时机判决算法流程

由全局监测模块对数据中心负载进行监控,一旦全局负载度超过指定范围或高低负载节点比率过高即开启阈值的动态调控,并将更新后的阈值发送至各个节点中,由节点根据自身配置信息设置状态阈值,用于节点负载状态评估中;节点负载状态评估完成后,将负载状态向量发送至全局监测模块,由全局监测模块组成节点负载状态矩阵并发送迁移请求。

3 仿真实验

3.1 实验准备

为了评估本文迁移触发策略(NLADT-MMT)的优越性,采用CloudSim仿真平台进行仿真验证。分别进行2组实验,一组选取50台异构物理主机作为物理节点的小型数据中心,另一组选取1 000台异构物理主机作为物理节点的大型数据中心,每台主机上分别配置3至5个不同个数的虚拟机,则实验环境配置如表1所示。

本文实验的虚拟机迁移调度策略均使用虚拟机最小迁移策略(Minimum Migration,MM)。使用文献[5]中的虚拟机迁移框架(即将本文负载评估和预测均放置在全局监控模块中)作为本文比对策略,包括2组比对对象,使用静态阈值和负载预测判断时机的策略(STLP-MMT)和使用动态阈值和负载预测判断时机的策略(DTLP-MMT)。实验参数如表2所示。

表2 实验参数配置表

3.2 评价指标

1) 节点负载预测误差。节点负载预测误差采用平均绝对误差(MAE)和均方误差(MSE)作为评价标准。

2) 虚拟机迁移次数。合理有效的迁移时机判决可以减少虚拟机的迁移次数,所以本文将虚拟机迁移次数作为评价标准。

3) 平均SLA违约率。用户服务质量水平的高低通常用平均SLA违背率来评价,该值越低则表示用户服务质量越高。本文采用文献[12]中提供的多维度平均SLA违约率计算方法,即:

(17)

3.3 实验分析

为了验证本文设计的虚拟机迁移触发策略(NLADT-MMT)适用于异构节点并可以有效减少由于瞬时峰值造成的虚拟机迁移,本文将实验分析分为两个部分,第一部分为节点的负载评估,包括节点负载预测的有效性以及节点状态评估的有效性分析;第二部分为迁移触发时机策略下,虚拟机迁移次数和SLA违约率的分析。

1) 节点负载评估有效性分析。实验中对节点CPU、内存和带宽利用率进行监控,由于实验分析过程相似,故取CPU利用率为例。实验中每隔100 s收集一次节点资源使用信息。为了比较改进的预测模型的有效性,共选取10个节点的CPU真实值和预测值,对其进行误差分析,以比较改进预测模型的有效性。MAE与MSE误差比较图如图5所示。

(a) CPU利用率预测MAE

改进算法可以有效减小预测的误差值,其MAE保持在0.2左右,且趋势平坦,相对未改进前的CES预测模型,预测值的MAE减少了0.68;其MSE保持在0.08左右,趋势也较为平坦,对比CSE,预测值的MSE减少了0.71。综上,改进算法预测可以大幅度提升预测精度,具有一定的稳定性。

为了验证基于负载预测的节点负载评估算法可以有效降低负载瞬时峰值的影响,将使用负载预测的载状态评估算法与未使用负载预测的载状态评估算法进行比较分析,如图8所示。其中CPU-NP、CPU-P、RAM-NP、RAM-P、BAND-NP、BAND-P分别表示没有使用预测机制CPU利用率算法的触发次数、使用预测机制的CPU利用率算法的触发次数、没有使用预测机制内存利用率算法的触发次数、使用预测机制内存利用率算法的触发次数、没有使用预测机制带宽利用率算法的触发次数、使用预测机制的带宽利用率算法的触发次数。

共选取了6组对比实验数据进行分析,针对负载较小、负载居中、负载较大的三种情况分别选取了两组数据。从图6可以看出,在六组数据中,基于节点预测的触发策略在触发次数方面均不同程度地低于没有负载预测的触发策略。由此可见,通过节点预测可以有效减少虚拟机触发次数。

图6 触发次数比较

2) 迁移触发时机综合分析。迁移触发的综合分析包括虚拟机迁移次数和SLA违约率。研究使用STLP-MMT、DTLP-MMT和NLADT-MMT的虚拟机迁移策略在不同数量节点下的迁移次数,实验对比结果如图7所示。

可以看出,STLP-MMT的变化趋势起伏波动最大,DTLP-MMT与NLADT-MMT的变化趋势平缓。由此可见,根据数据中心整体负载变化动态设定状态阈值可以有效减少虚拟机迁移次数和大批量的迁移操作,可以在一定程度上避免由于数据中心高负载情况下可用资源不足造成的虚拟机迁移。在节点数量多的实验中,NLADT-MMT的优势得以显现出来,由各个节点承担负载状态评估可以有效减少迁移时机触发的延时性,减少全局检测模块的负载。全局检测模块中的资源一旦超载,其工作效率下降,则SLA违约率上升,影响数据中心的服务的质量。不同规格的数据中心下不同触发策略的平均SLA违反率实验对比如图8所示。

(a) 小规模数据中心

(b) 大规模数据中心图8 不同规格的数据中心下的平均SLA违反率比较

随着时间推移,数据中心任务不断增多,剩余可用资源减少,STLP-MMT使用的静态阈值无法根据需要调节数据中心可用资源量,其平均SLA违反率逐渐上升。而使用了动态阈值的DTLP-MMT和NLADT-MMT的平均SLA违反率相对较低,对比图8(a)和(b),可知在规模较大的数据中心中NLADT-MMT的平均SLA违反率最低。由此可见,动态阈值可以改善数据中心服务质量,在大规模数据中心中,将负载状态评估放置在各个节点中的NLADT-MMT可以提供更好的服务质量。

综上所述,在大规模含有异构节点的数据中心中,NLADT-MMT可以有效避免由于负载瞬时值导致的迁移时机判断不合理问题,可以有效减少迁移触发次数和SLA违约率,提高数据中心资源利用率。

4 结 语

本文针对数据中心异构节点设计一种基于节点负载评估和动态阈值的虚拟机迁移触发策略。将负载状态评估放置在各个节点管理中,由全局监测模块控制动态阈值并主动发送至各个节点中用以判断节点负载状态。实验结果表明本文提出的负载评估模型可以由于大规模数据中心有效地对节点负载进行预测,减少负载瞬时值对迁移时机的影响;基于动态阈值的迁移判决算法从全局负载角度动态调节阈值,有效调节全局负载和高低负载节点占比率,降低SLA违约率。但要解决数据中心负载及资源利用率的问题,仅仅研究迁移时机是远远不够的,调度算法对于解决数据中心存在的问题也至关重要。所以本文的后续工作是在此迁移时机判断策略的基础上,研究虚拟机调度策略,以提高数据中心资源利用率和优化负载均衡。

猜你喜欢

全局时机阈值
基于改进空间通道信息的全局烟雾注意网络
领导者的全局观
改进的软硬阈值法及其在地震数据降噪中的研究
土石坝坝体失稳破坏降水阈值的确定方法
基于小波变换阈值去噪算法的改进
一种改进小波阈值去噪法及其仿真
落子山东,意在全局
两个人结婚的最好时机
统筹全局的艺术
时机与妙手