论文部分内容阅读
本文旨在研究云计算环境中多约束情况下的虚拟资源调度管理问题。多约束一方面是指来自用户的质量属性约束,比如对响应时间和吞吐量等性能要求和对部署在云平台上应用的可用性要求。这些用户约束是以SLA的形式,由用户向云服务提供商提出的。另一方面,多约束是指来自云服务提供商的约束,主要是指减少包括能源开销在内的运营成本的约束。在运行和维护云平台时,云服务提供商总是力求减少能耗来降低成本,提高利润。云平台中资源的供给和部署需要在满足用户约束和降低云服务提供商的运营成本之间进行平衡。为云用户提供更多的虚拟资源可以确保云应用的性能和可用性等需求得到满足,但是会增加云服务提供商的运营成本;反之,如果为云用户提供较少的虚拟资源,尽管可以有效减低云服务提供商的运营成本,但是可能会导致云应用响应时间过长和可用性过低等情况。因此,如何提供、安置和整合云平台上的虚拟资源满足不同利益共享者的约束成为了云服务用户和云服务提供商两方面共同关注的话题。因而,本文提出了一种约束分离的云资源管理框架——通过分离云应用和云服务提供商不同的需求关注点,在不同层次上满足他们各自的需求。我们将云资源的管理分为应用层和平台层上的资源管理。其中,质量属性需求到虚拟资源的映射被抽象成应用控制器。在应用控制器中,用户对性能属性的要求被转化为虚拟资源的数量,将可用性需求转化为虚拟资源位置的部署方案。在平台层的管理框架中,采用整合策略,使得虚拟资源尽可能地运行在较少的物理服务器上,以达到减少运行的物理机数量从而节约能源和成本的目的。在应用层的资源管理模块中,本文提出了一种计算部署在云平台上的应用可用性的计算模型,以及一种动态虚拟资源安置算法。它们在最大程度上满足了用户的应用可用性需求,同时也减少了分散部署虚拟资源带来的通讯开销。资源安置算法综合使用了两种伸缩策略:水平伸缩和垂直伸缩。垂直伸缩策略是指改变虚拟机内部持有的资源数量,而水平伸缩策略是指改变虚拟机实例的数量。由于这两种策略对应用可用性、通讯开销和软件版本开销的影响不尽相同,我们根据应用当前的可用性和用户约束中规定的可用性的差值来选择执行哪种策略。在平台层的资源管理模块中,本文也给出了一种改进的资源整合方案。该方案将资源的整合分为反应式资源整合模块和周期性资源整合模块。反应式资源整合模块自治地运行在每一台物理服务器内部,根据监测是否有异常情况,决定是否进行资源整合。异常情况包括超过预定资源利用率上限的负载过度情况,和低于预定资源利用率下限的负载不足情况。针对这两种情况本文给出了不同的算法来制定资源整合方案。周期性资源整合模块,作为反应式资源整合的补充,周期性地在可用性区域内进行所有虚拟资源的整合。最后为了验证这两种策略—可用性感知的动态资源安置模块和资源整合模块的正确性和有效性,本文模拟真实云环境的架构,设计并实现了两个实验。在实验一中通过模拟两种典型场景——扩容和减容的应用,对比了水平伸缩策略、垂直伸缩策略和本文提出的可用性感知策略在可用性满足率、平均应用可用性、通讯开销和软件版本开销上的表现。实验二通过模拟一个可用性区域中多台物理服务器和多台多种粒度的虚拟机,来验证改进的资源整合方案的有效性。实验结果表明,本文中提出的算法减少了整合活动带来的迁移成本,是一个实际具有应用价值的有效策略。本文的主要贡献在于从不同利益共享者的角度对多约束资源管理框架的构建进行了初步的探索。将来自不同利益共享者的约束分离开来,在不同层次上予以满足。其中,重点关注了应用层上的可用性约束的满足和云平台层上的节能约束的满足,从而达到云资源使用者和云资源管理者共赢的目的。