论文部分内容阅读
近年来,随着许多云提供商的出现,云计算越来越受到欢迎,大量的企业和用户将它们的应用部署到云上来。通常云提供商以虚拟机的形式向用户提供软硬件资源。对于许多应用来说,网络是一种十分重要的资源,而当前的云数据中心提供给用户的虚拟机配置通常只有CPU、内存和硬盘等资源,网络资源则由所有用户的虚拟机以尽最大努力的方式共享,这样很难在用户之间保证网络共享的公平性,同时也不能保证用户的虚拟机具有可靠的网络性能。因此,网络的共享问题是当前云数据中心亟待解决的问题。云数据中心可以通过为用户虚拟机预留带宽的方式来保证它们的网络性能,然而这样会导致数据中心网络资源的低利用率。由于各虚拟机数据流的产生和发送具有随机性,如果一些虚拟机当前没有数据发送,为它们预留的带宽也不会分配给其他有需求的虚拟机,从而导致了网络资源的浪费。因此,为了提高数据中心的网络利用率和用户虚拟机的数据发送速率,我们需要根据实时的网络状态,动态地进行网络资源的分配。关于数据中心网络资源的动态分配问题,已经出现了多个解决方案。在大部分的方案中,带宽分配都是在主机端进行。然而由于主机对网络的状态信息知道的非常少,它们很难准确获取到各个虚拟机的公平带宽份额,因此它们主要采用自适应的方式来调整各虚拟机的带宽,但是这通常需要迭代很多次才能收敛到公平的分配。软件定义网络(SDN)的出现为我们提供了新的思路:我们可以在控制器中实时维护网络的状态视图,并根据该视图为各个虚拟机计算公平的带宽份额。给定各个虚拟机的实时状态以及用户购买时为它们设置的权重信息,我们就可以计算出各个虚拟机的公平带宽,这是一个最大-最小公平带宽分配问题,可以采用集中式的算法来解决。然而数据中心的网络状态不断变化,我们需要动态的进行带宽分配,集中式的算法会面临严重的扩展性问题。为此,本文提出了基于链路最大-最小公平的带宽分配方法(LMF),该方法每次在一条链路上进行局部最大-最小公平的带宽计算。由于每次网络状态的变化只会影响一部分链路,因此我们只在状态发生变化的链路上执行LMF方法。LMF是一个分布式算法,多个工作进程可以同时在不同链路上进行带宽的分配,因此LMF具有很好的可扩展性。另外,我们还定义了一系列规则在链路之间同步带宽分配信息,使我们的带宽分配能收敛于全局公平。本文设计一个基于SDN的带宽分配系统FairShare,它采用LMF方法进行带宽分配。FairShare有三个主要的模块:虚拟机监控模块,实时维护网络视图;带宽分配模块,根据网络视图进行动态的带宽分配计算;速率控制器,根据带宽分配模块计算的带宽在交换机上控制虚拟机的速率。我们对FairShare进行了实验验证,结果表明它不仅能在各个虚拟机之间保证公平,而且提高了它们的网络性能。在当前的数据中心网络拓扑中,一对主机之间通常会有多条路径,以实现负载的均衡。而以往关于动态网络资源分配的研究工作一般只为一对虚拟机设置一条链路,这样可能会造成网络的利用率较低。为了更好的利用多路径带来的好处,我们实现了基于最优路径选择的带宽分配系统FairShare-MP。当一对虚拟机有通信时,FairShare-MP首先会为它选择最优路径,然后在最优路径上为它分配公平的带宽。我们对最优路径选择算法进行了优化,使得路径选择时间非常短。通过实验验证,基于最优路径的策略使虚拟机获得的带宽得到了很大的提高。