论文部分内容阅读
云计算通过数据中心为各类云应用提供基础设施资源。如何在满足用户服务质量的前提下,实现数据中心资源的最大化利用是云计算当前亟待解决的一个难题。不合理的资源分配方式不仅使得资源利用率低下,有时甚至难以满足应用的动态资源需求。虚拟化技术是目前云计算环境下实现资源最大化利用的一种重要手段,然而现有的资源分配方式主要以虚拟机为粒度,缺乏对网络资源的有效管理,导致难以满足对网络资源敏感的应用的服务质量需求。虚拟网络在物理网络的基础上引入虚拟化的概念,在同一物理网络上可以构建多个虚拟的网络,在满足应用个性化需求的同时提高网络资源的利用率。如何在数据中心内部有效地利用虚拟网络技术,是基于虚拟网络资源分配问题面临的重要挑战。根据应用是否预先可知,可将基于虚拟网络的资源分配问题分为静态资源分配问题和动态资源分配问题,前者中的应用请求预先可知且不发生改变,后者中的应用请求预先不可知且易发生改变。对于这两类问题,学术界和工业界已经展开了初步的探索,并取得了一定的成果。但当前基于启发式思想的主流方法存在缺乏对解的优劣性的评估、动态分配过程中容易产生碎片资源、分配效率低下等局限性。针对已有方法的上述局限性,本文基于虚拟网络技术为云环境下的应用分配资源,并围绕静态与动态两种问题下的资源分配展开了深入研究。具体而言,本文的主要工作和贡献如下:(1)基于分布式约束优化模型的最优资源分配方法已有的静态资源分配方法在求解时仅考虑寻找可行解,缺乏对解的优劣性评估。针对这一局限性,本文提出了一种基于分布式约束优化模型的最优资源分配方法RADCO,以实现分配给应用的资源数量最小化的目标。在该方法中,首先将静态资源分配问题建模为分布式约束优化问题,其中应用请求被建模为其中的Agent对象,而Agent之间共享基础设施资源的现象被建模为其中的约束条件,虚拟网络中的虚拟链路被建模为其中的变量;在此基础上,基于深度优先搜索树,采用异步搜索方式寻找最优解。已证明该方法能够保证所获得的解是最优解。同时通过大量模拟实验对该方法在求解最优解过程中的性能进行了测试。(2)虚拟网络拓扑结构感知的资源优化分配已有研究缺乏对应用中节点之间的组织方式以及通信模式的充分考虑,导致资源分配效率低下。针对这一局限性,本文提出了通过虚拟网络拓扑结构感知技术来优化资源分配过程。一方面,对于一般的云应用,提出了一种基于虚拟网络拓扑结构的映射方法TAMA。该方法将映射过程分为节点映射和链路映射阶段,在节点映射阶段,综合考虑了节点所需的资源和节点映射的结果对链路映射的影响;链路映射阶段采用k-最短路径算法映射虚拟链路。模拟实验结果表明TAMA能够显著地提高资源利用率;另一方面,对于云环境下的数据密集型MapReduce应用,提出了一种基于最短路径图匹配的映射方法SPGM。该方法同时映射虚拟网络中的节点和链路,在保证其它性能指标的前提下,能够显著地减小映射的时间。(3)基于多资源节点排序的资源分配方法已有方法在衡量节点资源时易出现对某种资源过分偏好而导致数据中心产生大量碎片资源。针对这一局限性,本文提出了一种基于多资源节点排序的资源分配方法TK-Match。在该方法中,首先,通过Top-k支配模型对虚拟网络和数据中心网络中节点资源数量进行排序,避免出现衡量节点资源时偏好于某种资源的情况。在此基础上,将资源分配过程分为节点映射和链路映射两个阶段:在节点映射阶段,基于节点映射树结构映射虚拟节点,它能够有效地避免节点映射和链路映射严格分离导致物理路径跳数过大的问题;在链路映射阶段,采用k-最短路径算法映射虚拟链路。模拟实验结果表明该方法在求解动态资源分配问题时能够取得很好的性能。(4)基于负载脱落的动态资源分配方法针对基础设施资源动态变化易导致资源分配方案失效的问题,本文提出了一种基于负载脱落的动态资源分配方法DRALS。在基础设施发生改变时,该方法根据物理节点和物理链路的资源脱落因子判断需要脱落的虚拟节点和虚拟链路集合,并通过贪婪算法对脱落的虚拟节点和链路进行重配置。该方法在基础设施发生动态变化时,快速地对失效的分配方案进行调整,能够有效地提高资源利用率,满足用户服务质量。