蒋堃, 陈永红, 田晖, 王田, 蔡奕侨
(华侨大学 计算机科学与技术学院, 福建 厦门 361021)
监控与预测的云资源优化配置
蒋堃, 陈永红, 田晖, 王田, 蔡奕侨
(华侨大学 计算机科学与技术学院, 福建 厦门 361021)
针对云环境下虚拟机资源在多数时间中处于闲置状态导致云资源利用率低的问题,设计一种云资源监控系统,并在云监控基础上提出一种基于自回归积分滑动平均(ARIMA)模型的动态负载预测与资源配置的方法.该方法利用虚拟机负载与配置的关系,通过预测负载情况,提前启动或者挂起虚拟机,提高云资源的利用率.研究结合OpenStack云环境提供的虚拟机,实现其下的云资源监控,预测和弹性分配功能.结果表明:该系统能准确预测虚拟机的需求量,所制定的资源弹性分配策略能够提高云资源的利用率,进一步节约成本. 关键词: 云计算; 负载预测; 自回归积分滑动平均模型; 弹性计算; 云监控
随着云计算技术的成熟,云时代已经到来.伴随着云服务的大规模部署与应用,云数据中心中资源利用率低,导致的高能耗问题逐渐凸显[1].要解决云资源弹性优化配置的问题需要分为3步:首先,需要有效的云资源监控系统;然后,根据资源和负载监控数据,通过预测模型对负载进行预测;最后,根据对负载的预测,定制云资源动态配置策略,从而实现云资源弹性优化配置,其中,云资源的负载预测和资源弹性配置是整个流程中需要解决的难点.Nilabja等[2]提出基于模式匹配方法对资源需求量进行预测;Xu等[3]提出基于AR(autoregressive)预测模型的方法对CPU使用率进行预测;Mdtoukir等[4]提出基于神经网络模型的方法对资源利用率进行预测,并根据预测值对资源进行调整;Li等[5]提出基于贝叶斯网络的资源预测方法,进行秒级的资源使用率预测;Gong等[6]提出基于统计学习方法对应用负载预测的方法,通过预测的资源需求量,提前进行资源分配.文献[2,4-5]所采用的预测方法时间复杂度过高,会影响系统性能,使预测过程本身成为主要的系统资源开销;文献[3]采用基于AR模型的预测方法,忽视了负载的周期性变化规律.本文引入基于自回归积分滑动平均模型(autoregressive integrated moving average model,ARIMA)的预测方法进行负载预测.
1.1 云监控动机
云监控是一个对于云服务提供方(云服务方)和云服务用户方(云用户方)同样重要的服务.对云计算和它的服务水平协议(SLA)进行持续的监控,可以为服务方和用户方提供许多关键信息,对云环境构建云监控系统有很多原因[7],最重要的原因包括:1) 容量和资源管理;2) 服务水平协议管理;3) 性能管理;4) 故障恢复;5) 安全管理.
1.2 云监控系统的架构
云监控系统架构分为3层:基础设施层、汇聚层和视图层.基础设施层包含了OpenStack运行所必须的物理设备和虚拟设备,其为OpenStack运行的基础,同时也是被监控的对象.主要监控对象包括:服务器、核心交换机、KVM虚拟机、Xen虚拟机等.汇聚层的功能是收集和汇总监控数据,将数据传递给视图层用于展示和告警.其主要的组件包括:物理机监控agent、虚拟机监控agent和群集数据汇总节点.视图层的功能是为用户展示系统运行状况,并根据预定义的告警阈值发送故障信息.告警机制主要依赖于Nagios Core[8]实现,运行情况的可视化展示依赖于RRD(round robin database)工具.
1.3 模型的部署
一方面云监控系统的部署使用多台独立的监控服务器构成监控群集;另一方面,在OpenStack私有云中将一定数量的物理服务器分成一个群集.各群集中的每台物理服务器上面运行物理机监控agent,一个群集中的所有的物理机监控agent,把获取的监控数据统一发送到本群集对应的群集数据汇聚节点.各群集的群集数据汇聚节点负责收集它所在群集的监控数据,统一汇总后发送到监控服务器群集,历史监控数据存储于后台数据库,虚拟机也按照一定数量划分为一个群集.云用户方和云实时查看监控数据获取报警信息.
2.1 ARIMA模型
ARIMA模型提供了一种对时间序列数据做预测的方法,模型记作ARIMA(p,d,q).ARIMA模型是AR模型、MA模型和ARMA模型[9]的组合.ARIMA(p,d,q)模型[10]的表达式为
(1)
式(1)中: εt为零均值随机干扰序列;xt为负载序列;d=(1-B)d表示时间序列的d阶差分;Φ(B)=1-φ1B-…-φpBp表示ARMA(p,q)模型的自回归系数多项式;Θ(B)=1-θ1B-…-θqBq表示平稳可逆ARMA(p,q)模型的移动平滑系数多项式.
2.2 分布式预测模型
云环境中运行了大量的Web服务器,它们每小时产生的访问日志的数量巨大.为了加速访问日志处理和负载预测过程,采用Hadoop群集存储和处理Web访问日志,设计了一种分布式预测模型.分布式预测流程如图1所示.
图1 分布式预测流程图Fig.1 Distributed forecast flowchart
每台Web Server都在本地存储了一份自身的Web访问日志.通过crontab定时任务程序,定时将Web日志文件拷贝到HDFS分布式文件系统中.Map-Reduce群集运行于多台服务器上,利用分布式并行计算的高效性,通过读取HDFS分布式文件系统中存储的日志文件,提升计算访问负载的时间序列数据的效率.
2.3 预测与资源优化配置
在云环境中的应用负载,Web服务有显著的时域波动特征,所以采用季节性的ARIMA模型,可以预测负载.算法中:C为负载周期,24 h;n为用于预测的样本周期数;T为预测的时间片;Lmax为单台虚拟机的最大负载量;α为额外分配的资源比例.其算法主要流程如下:
1) 从历史监控数据中取出最近的C·n个数据作为输入样本序列W;
3) 根据预测负载进行资源分配:计算下一个时间片T+1时的预估资源需求S(T+1)=(1+α)Lw/Lmax;若S(T+1)>S(T),则通过云控制器自动启动ΔS个虚拟机;若S(T+1)
4) 通过云监控系统获取当前实际的负载数据并存入历史数据中,转至流程1).
3.1 实验平台
实验环境,如图 2所示.实验环境中:6台HP DL388 Gen8服务器分别担任了OpenStack云环境中6个不同角色的节点,Controller是控制节点;Network是网络节点;Compute0是计算节点0;Compute1是计算节点1;NTP-server是时间同步服务器;monitor-server是监控服务器.实验环境划分了2个网段:一个是192.168.11.0/24网段,它运行TCP/IP协议,6台物理服务节点通过三层交换机互联,并且通过路由器接入Internet;另外一个是10.0.0.0/24网段,它运行GRE tunnel,是OpenStack云系统中的各组件互相通信的私有网络.
3.2 数据获取
在实验平台中运行多台虚拟机,如图3所示.图3中:1台作为Nginx负载均衡器;1台作为MySQL数据库服务器;n台作为运行PHP Web服务器;另运行m台虚拟机模拟用户,作为客户端产生负载压力.根据文献[1]和实际云环境(如Amazon 云的服务计费方式以小时为单位),采用每小时的访问量作为监控系统采样和预测的频率.通过云监控系统获取得到2014年9月17日-2014年9月21日的该网站每小时的下载访问量.
图2 实验环境 图3 负载数据获取平台Fig.2 Experimental environment Fig.3 Load data acquisition platform
3.3 数据建模与预测
负载预测方法下,实验过程中选取了不同阶段的数据在Holt-Winters乘法模型[12]和基于ARIMA季节性模型的预测结果.鉴于篇幅限制,这里只选取有代表性的部分预测实验结果进行说明,根据参数估计和模型定阶过程得出适用的模型为ARIMA(1,1,1),其拟合公式为
(2)
使用矩估计方法对位置参数进行估计,求得参数为
(3)
预测结果,如图4所示.由图4可知:基于ARIMA季节性模型的预测结果比Holt-Winters乘法模型预测结果更接近实际负载.
图4 预测值与实际监控值对比Fig.4 Comparison of predictive values and monitoring values
预测结果对比,如表1所示.表1中:max(AE)为最大绝对误差;min(AE)为最小绝对误差;MAE为平均绝对误差;MRE为平均相对误差,即
(4)
MSE为预测均方差,即
(5)
由表1可知:基于ARIMA季节模型的预测结果明显优于Holt-Winters乘法模型;从平均绝对误差来看,基于ARIMA季节模型预测的平均绝对误差约为Holt-Winters乘法模型的1/6;从平均相对误差来看,基于ARIMA季节模型为14%,比Holt-Winters乘法模型提高将近16倍,并且基于ARIMA季节模型预测误差的均方差也较小,最大绝对误差和最小绝对误差也明显小于Holt-Winters乘法模型.
表1 预测结果对比Tab.1 Comparison of predicted results
3.4 资源需求分析与优化配置
云环境中的虚拟机的硬件配置直接决定其最大负载的处理能力.vCPU、内存的数量和虚拟机负载量成正比关系为
(6)
式(6)中:P(vCPU)和P(mem)分别表示vCPU和内存的配置数量;T(Load)表示在该vCPU或内存配置下虚拟机所能承受的负载量,对虚拟机负载量的预测值可以作为虚拟机资源配置的依据.
表2 虚拟机价格模型Tab.2 VM's price model
云平台中3种类型的虚拟机的配置、费用和负载量,如表2所示.其费用标准参考AWS的EC2定价规则,各配置下的负载量由实验平台实际测试获得.为优化虚拟机资源配置,假定以每日最小的经济成本为目标.提出虚拟机资源优化配置函数为
(7)
式(7)中:NS为Small类型虚拟机所需数量;NM为Medium类型虚拟机所需数量;NL为Large类型虚拟机所需数量;Lf为预测的负载值,t为虚拟机租用时长(h).
由式(7)资源优化配置函数,得到21日每小时的虚拟机资源弹性配置策略.其中,0:00-11:59和12:00-23:59的虚拟机资源弹性配置策略,分别如图5,6所示.图5,6中:S表示配置为Small的1台虚拟机;折线表示每小时的预测负载量.根据资源配置策略,21日虚拟机租用成本为7.41 美元.如果不引入弹性资源配置策略,为满足最大负载量下网站访问的可用性,需要租用5台配置Small的虚拟机24 h,租用成本为15.6 美元.经计算可知,采用弹性资源配置策略,可以在保证服务质量前提下21日节约52.5%的经济成本.
图5 0:00-11:59虚拟机资源弹性配置策略Fig.5 VM′s resource elastic allocation strategy from 0:00 to 11:59
图6 12:00-23:59虚拟机资源弹性配置策略Fig.6 VM′s resource elastic allocation strategy from 12:00 to 23:59
研究OpenStack云环境下基于监控与预测的虚拟机资源弹性配置策略,包括云监控模块、虚拟机负载预测模块和虚拟机资源弹性配置模块.其中:基于OpenStack的云监控模块能够实时监控云环境中虚拟机负载情况.提出了云环境中虚拟机负载的预测与资源弹性配置模型、算法.实验结果表明:基于监控和预测的云环境中虚拟机资源弹性配置方法,能够提高云资源利用率,降低成本.
有待进一步深入的研究工作如下:1) 进一步优化云资源负载预测模型,提高预测精度;2) 将云监控与资源预测、弹性配置模块整合,实现虚拟机资源的自动化部署与管理,使得研究内容应用到实际的生产环境中.
[1] 叶可江,吴朝晖,姜晓红,等.虚拟化云计算平台的能耗管理[J].计算机学报,2012,35(6):1262-1285.
[2] ROY N,ABHISHEK D,ANIRUDDHA G.Efficient autoscaling in the cloud using predictive models for workload forecasting[C]∥International Conference on In Cloud Computing.Washington D C:IEEE Press,2011:500-507.
[3] XU Wei,XIAO Yunzhu,SHARAD S,etal.Predictive control for dynamic resource allocation in enterprise data centers[C]∥Network Operations and Management Symposium.Busan:IEEE Press,2006:115-126.
[4] IMAM M,SHEIKH F M,RAHMAN R M,etal.Neural network and regression based processor load prediction for efficient scaling of grid and cloud resources[C]∥14th International Conference on Computer and Information Technology.Dhaka:IEEE Press,2011:333-338.
[5] LI Jian,KAI Shuang,SEN Su,etal.Reducing operational costs through consolidation with resource prediction in the cloud[C]∥12th IEEE/ACM International Symposium on Cloud and Grid Computing.Ottawa:IEEE Press,2012:793-798.
[6] GONG Zhenhuan,GU Xiaohui.Predictive elastic resource scaling for cloud systems[C]∥International Conference onIn Network and Service Management.Paris:IEEE Press,2010:9-16.
[7] GIUSEPPE A,BOTTA A,de DONATO W,etal.Cloud Monitoring: Definitions, issues and future directions[C]∥2012 IEEE 1st International Conference on In Cloud Networking.Paris:IEEE Press,2012:63-67.
[8] JOSEPHSEN D.Nagios: Building enterprise-grade monitoring infrastructures for systems and networks[M].Upper Saddle River:Prentice Hall Press,2013:15-22.
[9] GEORGE E P B,GWILYM M,JENKINS G C,etal.Time series analysis: Forecasting and control[M].Hoboken:John Wiley and Sons,2013:35-40.
[10] CALHEIROS R,MASOUMI E,RANJAN R,etal.Workload prediction using ARIMA model and its impact on cloud applications QoS[J].IEEE Transactions on Cloud Computing,2014,3(4):1-11.
[11] JAMES G.Numerical distribution functions for unit root and cointegration tests[J].Journal of Applied Econometrics,1996,11(6):601-618.
[12] 王燕.应用时间序列分析[M].北京:中国人民大学出版社,2008:164-169.
(责任编辑: 陈志贤 英文审校: 吴逢铁)
Cloud Resource Optimization Configuration Based on Cloud Monitoring and Prediction
JIANG Kun, CHEN Yonghong, TIAN Hui,WANG Tian, CAI Yiqiao
(College of Computer Science and Technology, Huaqiao University, Xiamen 361021, China)
In order to solve the problem under the cloud of virtual machine resources are idle most of the time, resulting in a cloud resource utilization is low, we designs a cloud resource monitoring system in this paper. And a dynamic load forecasting and resource allocation method is proposed based on cloud monitoring and a autoregressive integrated moving average (ARIMA) model . This method makes use of the relationship between the load and the virtual machine′s virtual hardware configuration by predicting loads and pre-starting or suspending a virtual machine to improve the utilization of cloud resources. Our studies realize monitoring, forecasting cloud resources and elastic cloud resources allocation based on the virtual machines in the OpenStack cloud environment. Finally, the result shows that: the system can accurately predict the demand for virtual machines and elastic cloud resources allocation policies can imporve the utilization of cloud resources and drive cost savings.
cloud computing; workload prediction; autoregressive integrated moving average model; elastic calculation; cloud monitoring
10.11830/ISSN.1000-5013.201704024
2014-12-30
陈永红(1974-),男,教授,博士,主要从事计算机网络和信息安全的研究.E-mail:djandcyh@163.com.
国家自然科学基金面上资助项目(61370007); 福建省自然科学基金面上资助项目(2013J01241); 华侨大学国家自然科学基金培育项目(JB-ZR1131); 华侨大学高层次人才科研启动项目(10Y0199)
TP 391.4
A
1000-5013(2017)04-0573-06