基于灰色模型的云资源动态伸缩功能研究

2018-05-15 08:31王天泽
软件导刊 2018年4期
关键词:灰色预测云平台

王天泽

摘 要:随着云计算的快速发展,大量应用开始向云上迁移,云平台资源分配受到关注。云服务负载是动态变化的,为保证服务质量不受负载量变化影响,最大化利用云资源,如何动态扩充、缩紧资源成为需要考虑的重要问题。设计并实现了一个Docker Swarm弹性云动态伸缩模块,通过增加和减少云服务副本数量改变服务资源的分配。弹性云的动态伸缩模块使用了响应式伸缩模型与预测式伸缩模型,其中预测式伸缩模型基于灰色预测模型。实验证明基于灰色预测的预测式伸缩模型具有较高的预测准确率。

关键词:云平台;动态伸缩;弹性云;灰色预测

DOI:10.11907/rjdk.172652

中图分类号:TP319

文献标识码:A 文章编号:1672-7800(2018)004-0131-04

Abstract:With the development of cloud-computing,more and more application start to move on cloud,and the resource allocation of cloud platform has been much accounted.The workload of cloud-service is changing dynamically. It is the main concern of how to maximize cloud-resource and realize auto-scaling to ensure quality service. A Docker Swarm elastic-cloud platform has been designed and achieved,which uses replica to change resource allocation of platform.The auto-scaling model in elastic cloud uses both reactive scaling model and prediction scaling model to ensure auto-scaling.The prediction scaling model is based on Grey-forecasting model.The experiment proves the prediction scaling model which based on Grey-forecasting model has high prediction accuracy.

Key Words:cloud platform; auto-scaling; elastic cloud; grey-forecasting

0 引言

在PaaS(Platform as a service)概念支撑下,云服务获得了长足发展。很多公司如谷歌、亚马逊等都在云服务上获得了极大的成功[1]。云服务平台应该保证其提供的服务质量(QoS,Quality of Service)达到SLA(Service Level Agreement)协定要求。云服务负载往往随时间而剧烈变化。伴随着云服务发展的则是大量的突发访问[2]。如果维持最高负载所需资源,就会造成资源浪费。反过来,如果服务平台通过保证服务的最低或中等计算资源来缩减资源消耗,那么当服务负载达到峰值时其体验就会变差,最终导致客户流失。云计算是一种基于支付体系的需求导向计算模型。在云计算的帮助下,开发者可以通过手动或API的方式将应用资源扩容或缩容,这种扩缩容操作通常需要花费很长时间。云计算中的自动伸缩功能可以很好地解决这个问题。自治弹性云根据当前负载状态动态地分配资源[3],而基于以往负载记录对未来负载进行预测,就可以提前分配资源以避免违背SLA。

动态伸缩在云计算中是一个热门研究领域,弹性云常常搭建在虚拟机(VM,Virtual Machine)之上。但是VM对于Web应用来说过于重量级,因为Web应用所需要的仅是Web Server(APACHE,TOMCAT,NGINX)、语言包、数据库等运行环境,并非整个VM操作系统。因此,将Web应用部署在VM中就是一种资源浪费[4]。现在突发访问情况越来越多,需要弹性云自动扩容,而基于VM的弹性云并不能实现这个目标。Docker是一种新型轻量级虚拟化技术。在Docker的帮助下,可以将Web应用与它的运行环境打包到一个Docker镜像中进行开发、测试、转移和部署。在同一个宿主机上运行的Docker容器共享相同的Linux kernel,所以Docker容器可以在秒級时间内部署并充分利用计算资源[5]。本文基于Docker Swarm集群设计并实现一个带有响应式伸缩与预测式伸缩的动态伸缩模块。

1 相关工作

图1展现了Docker容器和虚拟机在架构上的不同之处。每个虚拟机都包含应用、二进制文件、依赖库及一整套操作系统,所以虚拟机会浪费很多CPU、内存与存储资源。在容器中只有应用与应用所依赖的库。容器相当于运行在宿主机系统上的一个资源隔离进程。容器可在2s~3s启动,而虚拟机启动则要花费数分钟,容器这种快速部署性质非常适合处理瞬间拥挤访问。IBM研究[6]对比了虚拟机与容器的性能,使用一套负载任务给予集群系统的CPU、内存、存储与网络资源压力,结果证明容器在大多数情况下性能优于虚拟机。

文献[7]提出了基于DSA (detect-strategy-action)思想的资源调度策略框架。文献[8]基于云计算虚拟化技术,提出了一种租借理论和动态多级资源池相结合的资源调度策略,可以有效减少资源空闲时间,提高资源利用率。文献[9]提出了一种基于马尔科夫链的资源预测方法,它全面考虑了CPU使用量、网络负载以及资源失败率,预测使用何种资源配置能获得更好的工作调度结果。但是马尔科夫链模型只考虑了当前状态,忽视了资源配置的历史记录。文献[10]提出了基于模型匹配的云计算资源预测,将历史负载信息与当前负载情况配对解决负载预测问题,阐述了使用这种方法进行云资源自动扩缩容算法。这种基于历史记录的方法在没有可匹配记录时效果很差。

考虑到长连接应用特点,文献[11]提出了基于最小权重连接的指数平滑预测法(ESBWLC)。ESBWLC优化了实际负载与服务能力权重,使用一次指数平滑法的预测机制。这种算法可以增加服务器的负载效率,但预测精度较差。

许多资源预测系统把重点放在预测任务的执行时间而非任务所需资源上。文献[12]、[13]中的预测系统需要用户提供任务运行时间的近似值,然后根据现有CPU负载预测任务运行时间。除此之外,还有一些技术不需要用户提供任何信息就可预测任务的运行时间,如文献[14]就使用了同用户过往相似任务的执行情况进行回归分析,以得到任务运行时间的预测值。

灰色預测模型基于灰色理论,灰色理论认为系统的行为现象尽管是朦胧的、数据是复杂的,但它毕竟是有序的,是有整体功能的。灰数的生成就是从杂乱中寻找出规律[15]。灰色预测广泛应用于销售与生产预测,本文基于灰色预测进行负载预测。

2 架构设计

图2是弹性云平台的基本架构,包括一个集群控制节点、多个工作节点、集群状态监控子系统、资源预测子系统、伸缩控制模块。考虑到应用会频繁更新升级,所以添加了一个镜像仓库,能更方便地转移、部署与更新在平台上的应用。实现动态伸缩的3个模块主要功能如下:

(1)集群状态监控子系统:监控集群的负载状态,用以实现响应式伸缩,负责记录每个Service状态,用以实现预测式伸缩。

(2)集群预测子系统:通过状态监控的记录数据预测集群未来的负载情况,提前分配资源以维持SLA。

(3)伸缩控制模块:是伸缩功能的实施模块,可通过集群状态监控子系统获得集群状态,进行响应式伸缩,也可从资源预测子系统获得预测信息进行预测式伸缩。

3 算法描述

3.1 灰色预测

灰色预测通过鉴别系统因素之间发展趋势的差异程度,对原始数据进行生成处理,寻找系统变动的规律,生成有较强规律性的数据序列,然后建立相应的微分方程模型,从而预测事物未来发展趋势。灰色预测的数据是通过生成数据模型得到的预测值的逆处理结果。灰色预测以灰色模型为基础。在诸多的灰色模型中,以灰色系统中单序列一阶线性微分方程模型GM(1,1)最为常用。GM(1,1)模型介绍如下:

3.2 响应式伸缩模型

服务刚建立时,还没有负载历史记录用以预测,所以这时使用响应式伸缩模型实现动态伸缩功能。当某个服务的replica CPU负载达到90%时,触发扩容,为其增加replica,直到负载回复到80%。当某个服务的replica CPU负载低于50%时,触发缩容,为其缩减replica,直到负载回复到60%以上。

算法描述如下:

function reactiveScaling()

Nexceed=0

while(R>=Tupper)

Nexceed++

end while

while(R<=Tlower)

Nexceed--

end while

Return Nexceed

其中,Nexceed是 replica变化个数,R为服务当前负载,Tupper为触发上界,Tlower为触发下界。

3.3 预测式伸缩模型

服务运行一段时间后,集群控制模块有了负载历史记录,这时就可使用预测式伸缩模型进行动态伸缩。利用过去100s的负载记录,使ΔT为10s,那么原始数据列就是过去100s内每10s的CPU负载均值。将ΔT设为10s较好地利用了Docker秒级部署优势。

4 实验结果

为了验证灰色预测的准确度,使用Tsung模拟负载,将预测结果与真实负载进行比较,如图3所示。将灰色预测与简单平均法、加权移动平均法的预测结果进行对比,可以明显看出灰色预测的优势,如图4所示。

从图3可以看出,灰色预测与真实值的近似程度很高,其预测值随着调度时间降低而减少。从图4可以看出,灰色预测比简单平均法和加权移动平均法表现更好,因为灰色预测不仅考虑当前情况,还根据以往记录进行预测。

通过SLA的违背次数评价弹性云动态伸缩的可靠性,如图5所示。服务刚被创建时,使用响应式伸缩模型, SLA的违背次数较多。预测式伸缩模型启动后,SLA的违背次数就变得非常小。

5 结语

本文设计并实现了一个基于Docker Swarm集群的动态伸缩功能。设计了响应式伸缩模型与基于灰色预测的伸缩模型,以调度集群的伸缩。实验结果证明,灰色预测模型具有良好的预测准确率,且该Docker Swarm集群动态伸缩功能具有良好的可靠性。但灰色预测模型在波动性较大的情况下精准度欠佳,未来将对这一问题进行改进。

参考文献:

[1] 吴吉义,平玲娣,潘雪增,等.云计算:从概念到平台[J].电信科学,2009(12):168-171.

[2] 刘鹏程.云计算中虚拟机动态迁移的研究[D].上海:复旦大学,2009.

[3] 李冰.云计算环境下动态资源管理关键技术研究[D].北京:北京邮电大学,2012.

[4] 马越,黄刚.基于Docker的应用软件虚拟化研究[J].软件,2015,36(3):10-14.

[5] 刘思尧,李强,李斌.基于Docker技术的容器隔离性研究[J].软件,2015,36(4):110-113.

[6] FELTER W, FERREIR A, ARAJJAMONY R, et al. An updated performance comparison of virtual machines and linux containers[J].Technology,2014(2):28-32.

[7] 肖斐.虚拟化云计算中资源管理的研究与实现[D].西安:西安电子科技大学,2010.

[8] 孙瑞锋,赵政文.基于云计算的资源调度策略[J].航空计算技术,2010(3):123-125.

[9] SHI L L, YANG S B, GUO L M, et al. A Markov Chain based resource prediction in computational grid[C].Frontier of Computer Science and Technology,2009. FCST'09. Fourth International Conference on,2009:119-124.

[10] CARON E, DESPREZ F, MURESAN A. Forecasting for grid and cloud computing on-demand resources based on pattern matching[J].Cloud Computing Technology and Science (CloudCom),2010 IEEE Second International Conference on,2010(12):456-463.

[11] REN X N, LIN R H, ZOU H. A dynamic load balancing strategy for cloud computing platform based on exponential smoothing forecast[C].Cloud Computing and Intelligence Systems (CCIS),2011 IEEE International Conference on,2011.

[12] PADGETT J, DJEMAME K, DEW P. Predictive run-time adaptation for service level agreements on the grid[J]. 21st UK Performance Engineering Workshop. Nottingham,2005(7):267-269.

[13] DINDA P. Online prediction of the running time of tasks[J].Cluster Computing,2002,5(3):225-236.

[14] SMITH W, FOSTER I, TAYLOR V. Predicting application run times using historical information[J].Lecture Notes in Computer Science,1998,1459(122):183-185.

[15] 鄧聚龙.灰色系统理论教程[M].武汉:华中理工大学出版社,1990.

(责任编辑:杜能钢)

猜你喜欢
灰色预测云平台
收益还原法在房地产估价工作中的应用与改进
企业云平台建设研究