论文部分内容阅读
云计算的出现与发展正在改变人们使用计算资源的方式,借助于“云”,用户不再需要自己购买和维护硬件设备,而是通过向“云”提供商租用计算资源的方式,去执行其任务。基础设施云(IAAS)是云计算中的一大类型,它以向用户出租虚拟机的方式提供服务。虚拟机在逻辑上是独立的,用户可以在虚拟机上安装自己的操作系统及软件,就像是使用自己的电脑一样。越来越多的用户将计算放入“云”中,使得数据中心的规模不断扩大,数据中心中的虚拟机数量也不断增加。数据中心的管理者需要一个好的策略将这些虚拟机映射到物理机上,即虚拟机的部署。不同的虚拟机部署策略有着不同的目标,例如目标是提高数据中心的资源利用率或降低运行时能耗等。现有的虚拟机部署算法集中在考虑虚拟机在CPU、内存方面的需求,通过合理部署虚拟机,以期最小化计算、存储等代价。然而,Map-Reduce等分布式计算架构的流行,使得“云’中的分布式计算任务的比例正在增加。部署分布式计算的任务,意味着承载任务的各个虚拟机之间存在大量的网络通信,而它们之间的网络通信能力又影响着整个任务的性能。因此,对于这类任务,在虚拟机部署时,不仅要考虑每个虚拟机的CPU、内存需求,也要考虑虚拟机之间的网络通信需求。文本针对分布式计算模式下的虚拟机部署问题,深入研究了基于网络感知的虚拟机部署策略,提出了流量感知的最矮子树虚拟机部署算法和流量感知的虚拟机聚类算法。算法在兼顾虚拟机通信性能和数据中心网络通信整体性能条件下,进行虚拟机的部署,使得有高网络通信需求的虚拟机组能够获得较高的带宽。对于已知虚拟机之间的网络通信矩阵并且无法在流量感知的最矮子树算法下取得最佳网络部署效果的虚拟机组,我们首先对虚拟机按其相互间的通信流量进行聚类,然后聚类后的分组部署到物理机上。而在线的虚拟机部署策略由于虚拟机退出所造成的资源碎片会使得算法性能受到影响,即虚拟机组的网络通信能力下降。因此,本文又研究了面向网络感知的虚拟机整合问题,提出了面向机架的虚拟机整体聚集和面向机架的虚拟机贪心聚集两种策略,通过尽可能低代价的虚拟机迁移来提高虚拟机之间的网络通信能力,以提升部署在虚拟机组上的任务的执行效率。本文在一个由20台机器组成的模拟数据中心中,搭建了一个云平台原型系统,并将本文提出的流量感知的虚拟机部署算法和网络感知的虚拟机整合算法应用于其中。通过模拟实验,验证了流量感知的虚拟机部署算法能够使得任务的部署处于较优的网络状态,并且使得交换机的流量分布更为均衡;流量感知的虚拟机聚类算法使得虚拟机之间的跨机架通信流量进一步降低。通过在云平台原型系统上进行仿真实验,验证了网络感知的虚拟机整合算法能够缩短大数据处理任务的完成时间、降低Web应用的访问时延。通过真实的数据集进行大规模的模拟实验,本文对比了在多种虚拟机部署算法下,应用网络感知的虚拟机整合算法前后虚拟机的网络通信状态,验证了算法能够以较小的代价使得高网络通信代价的任务数量明显减少,虚拟机组的网络通信能力显著提高。