论文部分内容阅读
随着大量的基于互联网的服务与大量的服务托管在云平台上的趋势日益流行,需要更加强大的后端存储系统来支持这些服务。一方面存储系统自身应该要有更强大的处理高并发和高强度的工作负载的能力。分布式存储是当前一种很优秀的解决办法。它将会实现以下特性:伸缩性、可用性、持久性、一致性以及分区容忍性。目前实现一个分布式存储来满足以上所有设想是非常困难的或者说是不可能的。因此,把研究的重点放在限制不同的特性来设计不同的分布式存储解决方案来满足不同的使用场景。另一方面,随着云计算技术的发展为设计分布式存储带来了新的挑战。为了更好的在云计算中使用现收现付的价格模型,一种动态的资源部署中间件被提出来(如弹性控制器)。弹性控制是能够帮助节约应用的程序的配置成本,同时不损耗应用的性能。设计一种弹性控制机制来自动部署分布式存储系统是非常重要的。这个问题将要面对的挑战是对系统的工作负载的正确判断和在伸缩系统的时候的数据迁移开销(即是系统添加或删除实例的时候传输数据消耗的时间和资源)。本课题设计的自动部署系统主要是采用了工作负载预测的方法来实现的。主要是通过监测存储系统的性能指标数据(请求延迟、cpu利用率、实例数量等),通过检测的工作负载数据来预测系统下一个时期的工作负载情况,以及使用检测的数据推出系统满足SLA的最小配置,从而在下一预测窗口开始前重新部署系统规模。在添加或移除实例的时候会做一个数据的迁移,使服务请求更加均匀的访问每一个存储实例。对工作负载的预测是整个系统的核心部分,本课题采用了基于维纳滤波器的原理实现的维纳预测器来预测每一个工作负载预测窗口的工作负载,这也是本课题的创新点。对于预测工作负载本文采用特定类型的工作负载,根据其周期性将工作负载分为特定时长的预测窗口,在每一个预测窗口开始的时候预测下一个预测窗口的工作负载。最后,通过大量的实验和测试对本课题提出的提出的预测算法以及验证分布式系统的性能,证实了基于维纳预测的方案能够在保证SLA的前提下,节约平台资源同时也就节省了配置成本。