本发明涉及云计算领域,具体涉及一种openstack基于应用服务的虚拟机带宽分配方法。
背景技术:
云计算是新型的计算资源、网络资源和存储资源的交付模式和商业模式,通过动态可伸缩的虚拟化资源提高服务。openstack作为目前活跃度依旧高涨的开源云平台项目,凭借其高效的社区开发和灵活的部署模式,获得企业界和学术界的广泛关注。
网络资源是云数据中心重要的资源之一,而云数据中心接入的网络资源有限,如何合理分配网络资源,是云数据中心需要解决的问题。目前openstack部署在物理服务器上,基于openstack的数据中心接入的带宽有限,而资源的不合理分配会导致物理节点上的虚拟机访问外网或其他虚拟机时竞争接入的资源,云平台提供的基础应用服务无法按需合理利用分配的网络资源,从而导致资源的浪费。因此,如何动态分配接入openstack的带宽资源是云平台亟需解决的问题之一。
技术实现要素:
针对以上问题,本发明提供就一种基于应用服务的虚拟机带宽动态分配方法,可以有效解决openstack云平台虚拟机对带宽资源的竞争问题,在保证应用的网络qos的同时提高资源利用率。
一种openstack基于应用服务的虚拟机带宽分配方法,所述方法包括以下步骤:
s1、制定openstack云平台应用的网络qos指标(qualityofservice,服务质量);
s2、确定arima预测模型;
s3、根据应用流统计特性计算基于应用qos的有效带宽;
s4、根据有效带宽预测虚拟机下一周期的网络负载状态;
s5、根据虚拟机的网络负载状态,给虚拟机分配带宽。
优选地,在步骤s1制定openstack云平台应用的网络qos指标,包括以下步骤:
s1-1、调研不同公司的业务网络qos需求指标。业务分为语音业务、视频业务、数据业务,各个业务下不同的应用具有不同的网络qos指标,包括时延、抖动、丢包率等。类似调研结果如表1、表2、表3、表4所示。
表1华为技术有限公司提出的业务qos需求指标
表2武汉长光科技有限公司提出的业务qos需求指标
表3烽火通信股份有限公司提出的业务qos需求特征
表4烽火通信股份有限公司提出的业务qos需求指标
s1-2、每新增一个应用,管理员参考s1-1调研的指标,指定该应用的网络qos指标,每个应用的基本元素如下表5所示。
表5openstack云平台应用虚拟机描述表基本元素
优选地,所述arima(autoregressiveintegratedmovingaveragemodel)模型主要是由自回归模型ar模型、差分算子d和移动平均模型ma模型组成。
ar(auto-regressive)模型即自回归模型,用同一变量之前的表现情况来预测该变量现在或者未来的表现情况,假定ar模型是p阶的,用ar(p)表示,对于一个时间序列x(t),若满足
其中,xt为时间序列在第t时刻的观察值,
ma(movingaverage)模型即移动平均模型,利用序列数值之间的误差得出q阶移动平均模型,用ma(q)表示,其表达式为:
xt=μt-θ1μt-1-θ2μt-2-…-θqμt-q(2)
其中,θ1,θ2,...,θq为待估计的移动平均系数,μt,μt-1,μt-2,...,μt-q为模型在第t时刻,第t-1时刻,...,第t-q时刻的误差;
arma模型即自回归滑动平均模型,通过时间序列具有的特性来预测未来变化趋势,用arma(p,q)表示,arma(p,q)模型是ar(p)模型和ma(q)模型的结合,arma(p,q)模型其表达式为:
ar模型、ma模型和arma模型都是以平稳序列为前提的,而对于非平稳序列,需要用差分整合移动平均自回归模型,也称为arima模型,arima模型主要是先对非平稳序列进行d次差分计算转换为平稳序列,再进行模型识别,将其表示为arima(p,d,q);
通过平稳性检验判断流量序列是否平稳,若平稳,则d=0,此时arima(p,d,q)为arima(p,0,q),等同于arma(p,q);若非平稳,流量序列经过d次差分计算后转换为平稳序列,转换为平稳序列后为arma(p,q)模型,当p=0时,arma(p,q)退化成ma(q)模型,当q=0时,arma(p,q)退化成ar(p)模型。
在步骤s2arima预测模型的确定,具体步骤如下:
s2-1、采集虚拟机的流量,对流量序列进行adf(augmenteddickey-fullertest)平稳性检验,若序列非平稳,进行差分计算转换为平稳序列;差分计算过程如下:
非平稳序列xt差分转化为平稳序列,差分次数d也称为齐次的阶,用
同理,二阶差分用以下式子表示:
一般最多经过二次差分能将其化为平稳序列。
s2-2、由自相关函数acf和偏自相关函数pacf确定p、q的范围;
具体的,由s2-1经过平稳性检验流量序列转换为平稳序列,要判断使用哪个具体的模型,需要判断p、q是否等于0,并确定p、q的范围。自相关函数acf和偏自相关函数pacf可以确定p、q范围值。各个具体模型对应的acf和pacf特征如下表6所示。截尾是指流量序列的acf或pacf在某阶后均为0的性质,在大于某个常数k后快速趋于0为k阶截尾。拖尾是acf或pacf并不在某阶后均为0的性质,即始终有非零取值,不会在k大于某个常数后就恒等于零。
表6arima模型下具体模型对应的acf和pacf
(1)acf和pacf的计算公式如为:
时间序列xt滞后k阶的样本自相关函数(acf)为:
t表示时间点,t表示时间序列最后时间点,
用
将其记作偏自相关函数,即由以下式子的
用
(2)ma(q)模型的acf和pacf
自相关函数用来确定移动平均模型的阶数q,定义自协方差函数rk表示滞后k的随机变量xt和xt-k之间的相关程度,那么k阶的两个变量xt、xt-k之间的协方差为
rk=cov(xt,xt-k)=e[(xt-μ)(xt-k-μ)](13)
μ表示t-k到t时间点的序列的平均值,即
σ2是白噪声序列的方差,那么自相关函数ρk化简为:
r0表示式(14)中k=0时协方差rk的值,从而得到
由此看出ma(q)的acf在k>q下为0,也就是acf是q步截断的。而其pacf为无论k取多大,pacf的计算值均与1到q阶滞后的自相关函数有关。
(3)ar(p)模型的acf和pacf
对于ar(p)模型表达式
其acf为
其中
则
由此可以看出ar(p)的acf无论k取多大,均与1到p阶滞后的acf相关,不为0,为拖尾序列。
对于pacf,可按照如下推算:
对于ar(1)过程,当k=1时,
对于ar(2)过程,其偏自相关函数由式(9)和式(10)组成,可以看出在k≤2时,
因此,可推出对于ar(p)过程,当在k≤p时,
(4)arma(p,q)模型的acf和pacf
arma(p,q)模型的acf可以看成ma(q)的acf和ar(p)的acf的混合。如果p=0,它是截尾序列,如果q=0,它是拖尾序列,如果p和q都不为0,它是拖尾序列。
arma(p,q)模型的pacf可以同样看成ma(q)的pacf和ar(p)的pacf的混合。如果p=0,它是拖尾序列,如果q=0,它是截尾序列,如果p和q都不为0,它是拖尾序列。
s2-3、由s2-2步骤可以得到p和q的范围,在该范围内对不同的p、q值进行组合,代入到aic准则函数中进行计算,得到aic最小时p、q的值,从而确定最优的arima(p,d,q)模型;aic准则函数如下:
aic=-2ln(l)+2k(21)
其中l为arima模型的极大似然函数值,k为arima模型被估计的参数个数。比如在s2-1步骤经过d1(d1≥0)次差分计算将流量序列转换为平稳序列,在p、q范围内选取到某个组合(p1,q1),则arima模型为arima(p1,d1,q1),计算对应的极大似然函数值l1,k为式(3)中待估计的参数的个数。
优选地,步骤s3根据应用流统计特性计算基于应用qos的有效带宽,包括以下步骤:
s3-1、重标定域法计算流量序列的hurst指数值h;
具体的,重标定域法也称为r/s分析法,其计算指数值h的基本原理如下:(1)给定一个长度为n的时间序列x(t),以长度n均分整个序列为a个相邻的子区间,则有a×n=n;任一子区间表示为ia,a=1,2,......,a,在ia中的元素表示为n(k,m),k=1,2,......,n;m=1,2,.....,a,ia的均值为
(2)ia对于均值的累积截距xk,a定义如下:
ni,a表示在ia中的元素,i=1,2,......,n
(3)ia的极差
(4)子区间ia的标准差
(5)每一个
(7)n从3开始,并重复步骤(1)-步骤(5),直到n=n,得到序列[r/s]n,n=3,...,n;
(7)以log(n)为解释变量,log(r/s)为被解释变量进行线性回归:
log(r/s)=loge+h·logn(26)
其中,e是随机选取的正常数,斜率h即为hurst指数值。
s3-2、根据应用流的统计特性,计算应用流的有效带宽;
具体的,根据网络流量的统计特性,y(t)是应用流量序列,可以看成分形布朗运动过程,则有:
其中,zt是正态分形布朗运动,也为零均值、自相似特性参数0<h<1及t2h为方差的标准分形布朗运动,y为流量序列平均值,m为方差系数,t表示时间变量,h是hurst指数值。
有公式(27)推导出队列缓冲区队列长度大于b的概率:
其中,c为有效带宽,k(h)=hh(1-h)1-h。p(x(t)>x)等同于丢包率ε,b表示队列缓冲区大小,b(t)表示数据到达缓冲区的数据长度随着时间变化,用ε代入公式(28)之后得到应用流的有效带宽c:
在有效带宽计算中考虑到容忍时延和丢包率,克服原先基于丢失率的有效带宽计算方法不能保证时延的不足,结合缓存时延最大值=队列缓存长度÷队列输出速率,得到式子(15)
b=y×τ(30)
其中τ表示应用流的容忍时延,将其代入式子(29)得到满足网络qos需求的有效带宽为:
其中k=hh(1-h)1-h。
优选地,步骤s4所述的网络负载状态是以网络利用率μ来衡量,网络利用率μ为虚拟机应用流的有效带宽与管理员为虚拟机分配的带宽的比值;
根据网络利用率将虚拟机的网络负载状态分低网络负载、高网络负载和满网络负载,其中,低网络负载表示未来一段时间如果分配当前的带宽,虚拟机网络利用率μ将小于70%,将其判定为处于一个并发量少、负载小的状态,因此传输数据量小,网络资源相对空闲,此时需要回收1-(μ+10%)的带宽;高网络负载表示未来一段时间如果分配当前的带宽,虚拟机网络利用率μ将大于等于70%但小于等于85%,将其判定为虚拟机处于对网络需求要求比较高的状态,但此时能够充分利用带宽资源,且用户使用应用符合设定的网络需求,此时应用服务虚拟机的带宽无需改变;满网络负载表示未来一段时间虚拟机如果分配当前的带宽,虚拟机网络利用率μ将大于85%,判定虚拟机对网络资源要求比较高的状态,且应用服务虚拟机设定的带宽已经满足不了网络需求,此时应用服务虚拟机的带宽需要加大,初始加大为原来分配带宽的1.1倍。
优选地,在步骤s5的分配方式是由当前周期分配带宽e1,有效带宽c2按照式子
若0<μ<β,则虚拟机进行带宽回收,回收1-(μ+10%)的带宽,则e=e1×(μ+10%)(32)
若β≤μ≤γ,则虚拟机带宽保持不变,则
e=e1(33)
若μ>γ,则虚拟机带宽扩大,则
e=e1×(1+10%)(34)。
本发明与现有技术的相比,具有如下优点和有益效果:
本发明提供了一种openstack基于应用服务的虚拟机带宽分配方法,可以有效解决openstack云平台虚拟机对带宽资源的竞争问题,在保证应用的网络qos的同时提高资源利用率。本发明中首先分析了网络应用流的特性,并结合各大公司提出的应用qos指标及openstack云平台的使用场景,设置了针对openstack云平台应用的qos指标描述表,然后结合应用流量有效带宽的计算方式,加入了容忍时延、容忍丢包率进行改进,最后选取了比较成熟的时间序列分析方法arima模型对流量进行预测,并根据有效带宽预测虚拟机下一周期的网络负载状态,通过不同的网络负载采用不同的分配策略,从而对虚拟机的带宽实现动态分配。
附图说明
图1为本发明实施例基于应用服务的虚拟机带宽动态分配策略流程图。
具体实施方式
下面结合实施例,对本发明作进一步的描述,但不构成对本发明的任何限制,任何在本发明权利要求范围所做的有限次的修改,仍在本发明的权利要求范围内。
本实施例的一种openstack基于应用服务的虚拟机带宽分配方法,所述方法包括以下步骤:
步骤1、制定openstack云平台应用的网络qos指标,网络qos是指为保证某些网络需求以满足应用提供商与最终用户之间的服务水平协议(sla)的能力,网络需求包括带宽、延迟、抖动和可靠性。
制定过程具体如下:
s1-1、调研不同公司的业务网络qos需求指标。业务分为语音业务、视频业务、数据业务,各个业务下不同的应用具有不同的网络qos指标,包括时延、抖动、丢包率等。类似调研结果如表1、表2、表3、表4所示。
表1华为技术有限公司提出的业务qos需求指标
表2武汉长光科技有限公司提出的业务qos需求指标
表3烽火通信股份有限公司提出的业务qos需求特征
表4烽火通信股份有限公司提出的业务qos需求指标
s1-2、每新增一个应用,管理员参考s1-1调研的指标,指定该应用的网络qos指标,每个应用的基本元素如下表5所示。
表5openstack云平台应用虚拟机描述表基本元素
步骤2、arima模型预测下一周期流量序列,具体步骤如下:
s2-1、流量序列的数据检验。采集虚拟机的流量,对流量序列进行adf(augmenteddickey-fullertest)平稳性检验,若序列非平稳,进行差分计算转换为平稳序列;
具体的,arima(autoregressiveintegratedmovingaveragemodel)模型主要由自回归模型ar模型、差分算子d、移动平均模型ma模型组成。
ar(auto-regressive)模型即自回归模型,用同一变量之前的表现情况来预测该变量现在或者未来的表现情况,这种预测方法只与自己有关,而与其他变量无关,称作为自回归。假定ar模型是p阶的,那么对于一个时间序列x(t),若满足
其中,xt为时间序列在第t时刻的观察值,
ma(movingaverage)模型即移动平均模型,该模型利用序列数值之间的误差得出q阶移动平均模型,用ma(q)表示,其表达式为:
xt=μt-θ1μt-1-θ2μt-2-…-θqμt-q(2)
其中,θ1,θ2,...,θq为待估计的移动平均系数,μt,μt-1,μt-2,...,μt-q为模型在第t时刻,第t-1时刻,...,第t-q时刻的误差。
arma模型即自回归滑动平均模型,通过时间序列具有的特性来预测未来变化趋势,arma(p,q)模型是ar(p)模型和ma(q)模型的结合,arma(p,q)表示成
ar模型、ma模型、arma模型都是以平稳序列为前提的,而对于非平稳序列,需要用差分整合移动平均自回归模型,也称为arima模型,其主要是先对非平稳序列进行d次差分计算转换为平稳序列,再进行模型识别。通常将其表示为arima(p,d,q)。
综上分析,即arima(p,d,q)模型是通用模型。通过平稳性检验判断流量序列是否平稳,若平稳,则d=0,此时arima(p,d,q)为arima(p,0,q),等同于arma(p,q)。若非平稳,流量序列经过d次差分计算后转换为平稳序列,转换为平稳序列后就是arma(p,q)模型了,当p=0时,arma(p,q)退化成ma(q)模型,当q=0时,arma(p,q)退化成ar(p)模型。
差分计算过程如下:
非平稳序列xt差分转化为平稳序列,差分次数d也称为齐次的阶。用
同理,二阶差分用以下式子表示:
一般最多经过二次差分就可以将其化为平稳序列
s2-2、由自相关函数acf和偏自相关函数pacf确定p、q的范围;
具体的,由s2-1经过平稳性检验流量序列转换为平稳序列,要判断使用哪个具体的模型,需要判断p、q是否等于0,并确定p、q的范围。自相关函数acf和偏自相关函数pacf可以确定p、q范围值。各个具体模型对应的acf和pacf特征如下表6所示。截尾是指流量序列的acf或pacf在某阶后均为0的性质,在大于某个常数k后快速趋于0为k阶截尾。拖尾是acf或pacf并不在某阶后均为0的性质,即始终有非零取值,不会在k大于某个常数后就恒等于零。
表6arima模型下具体模型对应的acf和pacf
表6的推导过程如下:
(1)acf和pacf的计算公式
时间序列xt滞后k阶的样本自相关函数(acf)为:
t表示时间点,t表示时间序列最后时间点,
用
将其记作偏自相关函数,即由以下式子的
用
(2)ma(q)模型的acf和pacf
自相关函数用来确定移动平均模型的阶数q,定义自协方差函数rk表示滞后k的随机变量xt和xt-k之间的相关程度,那么相隔k阶的两个变量xt、xt-k之间的协方差为
rk=cov(xt,xt-k)=e[(xt-μ)(xt-k-μ)](13)
μ表示t-k到t时间点的序列的平均值。
即
σ2是白噪声序列的方差。
那么自相关函数ρk化简为:
r0表示式(14)中k=0时协方差rk的值,从而得到
由此看出ma(q)的acf在k>q下为0,也就是acf是q步截断的。而其pacf为无论k取多大,pacf的计算值均与1到q阶滞后的自相关函数有关。
(3)ar(p)模型的acf和pacf
对于ar(p)模型表达式
其acf为
其中
则
由此可以看出ar(p)的acf无论k取多大,均与1到p阶滞后的acf相关,不为0,为拖尾序列。
对于pacf,可按照如下推算:
对于ar(1)过程,当k=1时,
对于ar(2)过程,其偏自相关函数由式(9)和式(10)组成,可以看出在k≤2时,
因此,可推出对于ar(p)过程,当在k≤p时,
(4)arma(p,q)模型的acf和pacf
arma(p,q)模型的acf可以看成ma(q)的acf和ar(p)的acf的混合。如果p=0,它是截尾序列,如果q=0,它是拖尾序列,如果p和q都不为0,它是拖尾序列。
arma(p,q)模型的pacf可以同样看成ma(q)的pacf和ar(p)的pacf的混合。如果p=0,它是拖尾序列,如果q=0,它是截尾序列,如果p和q都不为0,它是拖尾序列。
s2-3、由s2-2步骤可以得到p和q的范围,在该范围内对不同的p、q值进行组合,代入到aic准则函数中进行计算,得到aic最小时p、q的值,从而确定最优的arima(p,d,q)模型;aic准则函数如下:
aic=-2ln(l)+2k(21)
其中l为arima模型的极大似然函数值,k为arima模型被估计的参数个数。比如在s2-1步骤经过d1(d1≥0)次差分计算将流量序列转换为平稳序列,在p、q范围内选取到某个组合(p1,q1),则arima模型为arima(p1,d1,q1),计算对应的极大似然函数值l1,k为式(3)中待估计的参数的个数。
步骤3、根据应用流统计特性计算基于应用qos的有效带宽,具体如下步骤:
s3-1、重标定域法计算流量序列的hurst指数值h;
具体的,重标定域法也称为r/s分析法,其计算指数值h的基本原理如下:
(1)给定一个长度为n的时间序列x(t),以长度n均分整个序列为a个相邻的子区间,则有a×n=n。任一子区间表示为ia,a=1,2,......,a。在ia中的元素表示为n(k,m),k=1,2,......,n;m=1,2,......,a。ia的均值为
(2)ia对于均值的累积截距xk,a定义如下:
(3)ia的极差
(4)子区间ia的标准差
(5)每一个
(6)n从3开始,并重复1-5步,直到n=n,得到序列[r/s]n,n=3,...,n。
(7)以log(n)为解释变量,log(r/s)为被解释变量进行线性回归:log(r/s)=loge+h·logn(26)
其中,e是随机选取的正常数,斜率h即为hurst指数值。
s3-2、根据应用流的统计特性,计算应用流的有效带宽;
具体的,根据网络流量的统计特性,y(t)是应用流量序列,可以看成分形布朗运动过程,则有:
其中,zt是正态分形布朗运动,也为零均值、自相似特性参数0<h<1及t2h为方差的标准分形布朗运动,y为流量序列平均值,m为方差系数,t表示时间变量,h是hurst指数值。
有公式(27)推导出队列缓冲区队列长度大于b的概率:
其中,c为有效带宽,k(h)=hh(1-h)1-h。p(x(t)>x)等同于丢包率ε,b表示队列缓冲区大小,b(t)表示数据到达缓冲区的数据长度随着时间变化,用ε代入公式(28)之后得到应用流的有效带宽c:
在有效带宽计算中考虑到容忍时延和丢包率,克服原先基于丢失率的有效带宽计算方法不能保证时延的不足,结合缓存时延最大值=队列缓存长度÷队列输出速率,得到式子(30)
b=y×τ(30)
其中τ表示应用流的容忍时延,将其代入式子(29)得到满足网络qos需求的有效带宽为:
其中k=hh(1-h)1-h。
步骤4、根据有效带宽预测虚拟机下一周期的网络负载状态;所述的网络负载状态网络负载状态是以网络利用率μ来衡量,网络利用率μ为虚拟机应用流的有效带宽与管理员为虚拟机分配的带宽的比值;
根据网络利用率将虚拟机的网络负载状态分低网络负载、高网络负载和满网络负载,其中,低网络负载表示未来一段时间如果分配当前的带宽,虚拟机网络利用率μ将小于70%,将其判定为处于一个并发量少、负载小的状态,因此传输数据量小,网络资源相对空闲,此时需要回收1-(μ+10%)的带宽;高网络负载表示未来一段时间如果分配当前的带宽,虚拟机网络利用率μ将大于等于70%但小于等于85%,将其判定为虚拟机处于对网络需求要求比较高的状态,但此时能够充分利用带宽资源,且用户使用应用符合设定的网络需求,此时应用服务虚拟机的带宽无需改变;满网络负载表示未来一段时间虚拟机如果分配当前的带宽,虚拟机网络利用率μ将大于85%,判定虚拟机对网络资源要求比较高的状态,且应用服务虚拟机设定的带宽已经满足不了网络需求,此时应用服务虚拟机的带宽需要加大,初始加大为原来分配带宽的1.1倍。
步骤5、由虚拟机的网络负载状态按照不同的分配策略分配带宽。分配方式具体为:
由当前周期分配带宽e1,有效带宽c2按照式子
若0<μ<β,则虚拟机进行带宽回收,回收1-(μ+10%)的带宽,则
e=e1×(μ+10%)(32)
若β≤μ≤γ,则虚拟机带宽保持不变,则
e=e1(33)
若μ>γ,则虚拟机带宽扩大,则
e=e1×(1+10%)(34)
本发明提供的虚拟机带宽动态分配方法,克服了静态带宽分配方法资源利用率低的缺点,弥补了传统带宽分配方法无法保证应用网络qos的不足,使得openstack云平台带宽资源被合理有效利用,提高了带宽资源利用率,同时保证了虚拟机应用的qos。
结合以上步骤,基于应用服务的虚拟机带宽动态分配策略流程图如图1所示,具体包括以下步骤:
步骤1、为虚拟机分配初始带宽,每台应用服务虚拟机的初始带宽由管理员指定(如表5所示的初始带宽),并监控虚拟机虚拟网卡流量变化;
步骤2、使用程序中的定时器每隔30分钟执行一次带宽计算及分配;
步骤3、到达定时器设定的时间,获取当前周期虚拟机的历史流量为:
f={f1,f2,f3,......,ft-1,ft}
其中t表示时间点,ft表示在t时间点采集到的流量数据。
步骤4、由步骤3得到的流量序列利用arima模型预测下一周期的流量序列为:
p={p1,p2,p3,......,pt-1,pt}
其中t表示时间点,pt表示预测在t时间点虚拟机的流量数据
步骤5、由步骤4得到的流量序列计算下一周期的有效带宽c2为:
步骤6、由当前周期分配带宽e1,有效带宽c2按照式子
若0<μ<β,则虚拟机进行带宽回收,回收1-(μ+10%)的带宽,则
e=e1×(μ+10%)(36)
其中e表示虚拟机下一周期应该分配的带宽。
若β<μ<γ,则虚拟机带宽保持不变,则
e=e1(37)
若μ>γ,则虚拟机带宽扩大,则
e=e1×(1+10%)(38)。
综上所述,以上仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和实用性。