一种数据中心网中混合式负载均衡方法与流程

文档序号:14953055发布日期:2018-07-17 22:59阅读:249来源:国知局

本发明涉及计算机网络领域,特别是涉及一种数据中心网中混合式负载均衡方法。



背景技术:

互联网为人类提供了极其方便的信息通信和资源共享平台,深刻地影响着人们的生产、生活和学习方式,也成为支撑现代社会生产发展、经济发展和科技创新的重要基础设施。而随着互联网的迅速发展,各式各样的应用服务也应运而生。从网页搜索、推荐系统等实时性应用,到数据备份、虚拟机迁移等高吞吐型服务,这些都对网络数据传输提出了严格的要求。数据中心网作为专用的高速网络,为多样化的服务提供了一个高性能的平台。多样的应用服务导致数据中心网内的流量也呈多样化特性,既有对延时比较敏感的实时性流量(通常为小流),也有对吞吐比较敏感的数据型流量(通常为大流)。大数据流用来维持数据的一致性和大量不同的分布系统的结构,其特点是数据量大,持续时间长,对完成时间要求不严格,比如虚拟机的流量迁移和管理存储数据的同步备份等都会产生持续较长时间的大数据流。小数据流通常来自于用户的交互行为,其特点是持续时间短,对完成时间有较高要求。之前的研究表明,数据中心网中大部分的流量数据都包含在10%的大流中,而且只有20%左右的数据量持续的时间超过11秒,大部分的多是对一或一对多的短时间的交互。小流虽然在数据中心网络中总的流量数据并不多,但是却占据了80%以上的数量,而且由于它本身的特性,小流往往才是影响用户体验和企业收益的重要的衡量指标。

为了满足这些多样化的用户流量需求,数据中心网络需要提供大量的带宽和高速传输速率。因此它的拓扑通常设计为对称结构,并且为每一对源和目的之间都提供大量的等价路径。如图1(a)-图1(b)所示的胖树结构和叶脊结构。即便如此,由于不合理的选路决策,数据中心网中也经常出现某些链路处于高度负载状态,而其他的等价路径处于空闲状态的现象。当前广泛使用的选路算法ecmp根据流的五元组进行静态哈希选路,在网络中有较大流量存在的时候,可能出现流量碰撞,这会造成严重的带宽浪费和网络拥塞。

针对ecmp的固有缺陷,现有的负载均衡方案一个重要的讨论点是全局信息的有无。在对称性网络中,基于本地决策的分布式负载均衡方案就可以实现较好的负载均衡效果,然而在非对称性网络中,全局信息对于负载均衡决策至关重要。如图2所示,假设节点a到节点f的总流量需求是30mb/s,如果a拥有全局信息,那么它会知道链路d-e是路径a-d-e-f的瓶颈链路,该链路最大容量是10mbps,因此a会发送20mb/s的流量至a-b链路,发送10mb/s的流量至a-d链路,最终实现30mb/s的总吞吐。然而如果节点a不知道全局信息,简单地将流量均分至两条路径上,那么最终只能实现25mb/s的吞吐。更糟的是,如果a是本地拥塞感知的,当它观察到链路a-d上的流量比链路a-b上的流量少时,它会将a-b上的流量转移部分到a-d上,这最终会使得链路a-b上的流量降为10mb/s,总吞吐降至20mb/s。由此可见,在非对称性网络中全局信息的重要性。虽然数据中心网拓扑结构普遍是对称的,但是在实际中,链路损坏或者是设备处理能力之间的差异都会导致非对称情况的出现。因此,要实现精细的负载均衡调度,必须掌握全局信息。

概括地来说,现有的负载均衡方案可以分为集中式和分布式两种。

集中式的负载均衡方案通常部署一个中央控制器来获取全局拓扑、链路带宽和网络流量信息,并且根据全局信息计算出合适的路径。这种方案最大的优点如下:(1)它可以获取全局信息,了解链路的负载情况和拥塞状况;(2)无论是在对称网络还是非对称网络中,它都能够根据全局信息计算出当前状态下的最优决策。但是集中式方案的缺点也很明显,主要如下:(1)中央控制器的全局信息收集、路径计算和规则的下发是有时间代价的,因此对于时延敏感的小流而言,利用中央控制器计算路径是不合理的。(2)中央控制器收集全网信息,需要和交换机进行信息交互,如果交互太过频繁会引入大量的额外流量开销。(3)对中央控制器极度依赖,可扩展性差,一旦控制器故障,则整个系统都将无法工作。由于以上缺点的存在,大多数集中式负载均衡方案都只考虑大流的路径分配问题,为了减少信息收集带来的交互开销,它们定期进行流量需求、剩余带宽等网络信息的采集,并利用这些信息为网络中的大流量重新分配最佳路径,以避免碰撞,实现大流量的负载均衡。少数集中式方案也会考虑网络中的全部流量,比如fastpass,它为每一个数据包确定发送的路径和发送的时间段。为了克服中央控制器固有的缺点,进行快速计算、减少规则下发的时延,fastpass部署了若干控制器进行串行流水线工作,并采用快速涂色算法进行路径分配。这样虽然能实现较快的精确控制,但是如上所述,中央控制器和交换机之间的频繁交互给网络带来了大量的额外的流量开销,加重网络负担。

分布式的负载均衡方案相对灵活很多,它们通常部署在网络边缘,比如边缘交换机或者终端主机上。分布式负载均衡方案主要有如下两个优点:(1)无需和中央控制器进行交互,可直接在本地进行快速决策;(2)可拓展性好,不因网络规模的扩大而产生管理瓶颈。而另一方面,与集中式负载均衡方案相反,分布式方案的主要缺点如下:(1)全局信息的获取困难,大部分方案都是基于本地做随机选择,不能做出全局最优决策;(2)由于无法拥有全局眼光和进行整体协调,分布式方案基本都是自私路由。即便是通过一定手段,在本地获取当前网络信息,它们也只能根据这些信息做出对自己最有利的选择,而非各个终端协调之后做出全局最有利的决策,因此经常会出现震荡问题(即所有终端同时选择负载最小的链路,导致该链路负载急速增大)。针对全局信息的有无,分布式方案大致能分为两种。不获取全局信息的分布式负载均衡方案,没有复杂的反馈过程,在对称型网络中能够通过随机选择达到比较好的负载均衡效果。同时,为了追求更精细的负载均衡效果,这种随机的分布式方案通常采用比流更小的调度粒度,比如数据包级别,或者采用flowlet(以时间间隔为分割,将一条流分成多个burst,粒度比流小,比数据包大)以规避乱序问题。这种随机方案在非对称网络中,往往会有很多问题。比如在下游链路拥塞或者某些链路损坏的情况下,随机决策可能加重拥塞,引发丢包。获取全局信息的分布式负载均衡方案,通常需要交换机的配合进行全局信息反馈,这要么会引入大量额外流量开销(比如dadr,结合openflow,在终端各自进行信息收集),要么需要修改交换机硬件以实现信息采集需求(比如conga、hulu等,利用交换机在包头打ce标记),虽然这种类型的方案能够实现较好的负载均衡效果,并且保持分布式方案快速、拓展性好的特点,但是它们的反馈系统往往十分复杂,现在的商用交换机并不能支持这些功能。

总的来说,集中式负载均衡方案和分布式负载均衡方案都有明显的缺陷,它们要么忽略了中小流对网络的影响,要么忽视了全局决策的重要性。



技术实现要素:

本发明的主要目的在于针对现有技术的不足,提供一种数据中心网中混合式负载均衡方法。

为实现上述目的,本发明采用以下技术方案:

一种数据中心网中混合式负载均衡方法,其中,部署中央控制器进行网络全局信息的获取,部署终端主机进行中小流快速路由,并同时赋予中央控制器集中式负载均衡的决策权以及终端主机分布式负载均衡的决策权;所述中央控制器利用全局信息为预定义的大流安排路径,并且为预定义的中小流计算出全局最优的网络排队时延,所述终端主机对所述中小流进行分布式选路,并且在全局最优网络时延的限制下进行重路由。

进一步地:

所述分布式负载均衡在全网最优目标的约束下采用随机“二选一”决策。

以数据中心网络中核心层交换机的排队时延作为分布式最优负载均衡目标,来进行负载均衡。

所述中央控制器为大流安排路径包括:

以fi表示第i条大流的带宽需求,则若这条流经过路径l,则它在链路l上的带宽需求fli为该条大流的总需求fi,表示如下:

对于大流的路径分配,总体的负载均衡目标是最小化最大链路利用率,表示为:

minimize:γ

约束条件为:

其中,γ表示最大链路利用率,ul表示链路l的利用率,rl表示链路l的剩余带宽,cl表示链路l的容量,中央控制器从网络中收集上述信息,在已知全部链路带宽信息和每条流的路径选项信息的前提下,求解每条大流的路径分配;

中央控制器求解出每条大流的路径之后,通过openflow,将这些流的流表规则安装到路径上的交换机上,由此实现对大流的路径控制。

所述中央控制器为中小流计算出全局最优的网络排队时延包括:

用两层的leaf-spinetree作为建模基础,或者将fat-tree在逻辑上抽象成两层的leaf-spinetree作为建模基础;

考虑到达某一个叶交换机i的总流量λi,假设将流量按照wi1,wi2,……,win的比例分配到n个核心交换机上,并且这些核心交换机连接该叶交换机i的出口处理能力为μi1,μi2,……,μin,则负载均衡目标是使得数据包在每个一个核心交换机的排队时延相同,表示为:

约束条件为:

其中tij表示目的地为第i个叶交换机的数据包,在第j个核心交换机经历的排队时延,求解得到流量的分配比例和排队时延如下:

根据上述公式,对于到达每个不同叶交换机的流量,求出它们在核心层的分配比例;对于单个核心交换机j,其汇聚了不同目的地的流量,假设这些目的地的流量分别为λ1,λ2,……,λm,则它们各自分配到第j个核心交换机的流量为w1jλ1,w2jλ2,……,wmjλm,并且该核心交换机各个出口的处理能力为μ1j,μ2j,……,μmj,求得在该交换机上每个数据包的期望排队时延如下:

约束条件为:

其中,χj表示该核心交换机上的总流量,pij表示目的地为第i个叶交换机的流量在该核心交换机上占据的比例;

由此类推,求出每一个核心交换机的期望排队时延,进而求出在整个网络的核心交换机层数据包的排队时延如下:

其中χ表示网络总流量,qj表示分配到第j个核心交换机的流量所占的比例;

由此,得到在当前网络总流量和链路处理能力的条件下,全网核心层最佳的网络排队时延t。

所述分布式的负载均衡在全网最优目标的约束下进行随机“二选一”决策包括:

当需要为中小流进行选路决策时,终端主机随机选择两条路径,并且比较这两条路径的端到端时延,选择有较小时延的那条路径进行发送。

所述终端主机在全局最优网络时延的限制下进行重路由的实现过程包括:

所述终端主机保存所述中央控制器下发的最优网络时延,同时所述终端主机为每条流记录了基础端到端时延,将所述基础端到端时延和最优网络时延相加得到流的全局端到端时延目标;所述终端主机监控每条流中数据包的rtt信息,当连续预定数量的数据包的rtt都超过了该流全局端到端时延目标时,触发重路由机制,重新为该流选择路径;优选地,重路由选择路径的机制是随机“二选一”决策,终端随机从所有可选路径中随机选择探测两条路径,并且选择这两条路径中时延较低的那条路径作为新的转发路径。

所述终端主机对所述中小流进行分布式选路并且在全局最优网络时延的限制下进行重路由,包括以下步骤:

[1]、所述终端主机定期从中央控制器获取全局最优核心层排队时延t;

[2]、对于每一条新的流量,所述终端主机记录其所有可选路径中的最小端到端时延作为该流的基础时延,计算其最优rtt阈值=基础时延+t,并且选择时延最小的那条路径进行发送;

[3]、对于每一条流,所述终端主机监控其数据包的实时rtt,如果连续若干数据包的rtt超过最优rtt阈值,则采用“二选一”随机算法为该流更换路径。

[4]、重复操作[3]直到该流发送完毕。

所述终端主机进行选路包括:对于每一条新的流量,终端主机发送探测包来探测该流源和目的之间所有路径的当前时延,选择时延最低的路径进行转发,并且这条路径的最低端到端时延作为该流的基础端到端时延;优选地,终端主机进行控制流的路径转发通过修改目标ip地址进行控制实现,优选地,对于整个数据中心网络,用一个特定网段,每台主机的ip地址编码方式为10.叶节点编号.核心节点编号.主机编号,对于每个主机都有相应路径数的ip别名,终端主机通过修改目的主机的核心节点编号字段进行路径控制。

所述的数据中心网中混合式负载均衡方法用在sdn上,利用网络层的套接字编程,在所述中央控制器和所述终端之间直接建立通信通道,实现终端和控制器之间的信息交流。

本发明具有如下有益效果:

本发明提供了一种可以保证中小流低时延和大流高吞吐的混合式负载均衡方案。该方案结合了集中式方案和分布式方案各自的优点,部署中央控制器进行全局信息的获取,部署终端主机进行中小流快速路由,并同时赋予中央控制器和终端主机负载均衡的决策权。中央控制器和终端主机相互配合,由此实现大流的全局最优选路和中小流基于全局最优约束下的快速选路。

本发明可通过利用在sdn部署一个中央控制器,定期收集网络中的流量、带宽等信息。中央控制器利用全局信息为大流合理安排路径,并且为中小流计算出全局最优的网络排队时延。中小流由终端进行分布式选路,以保证快速决策,同时在全局最优网络时延的限制下,启用重路由机制,保证中小流能够争取到更优的网络资源。本方案通过结合集中式负载均衡和分布式负载均衡,让中央控制器和终端主机分工协作,在不同流量需求共存的网络情况下,同时保证了大流的高吞吐量和中小流的低时延请求。

本发明及其优选实施例的优势主要体现在:

提供了一种混合式的负载均衡方法,该方法较之单纯的集中式或分布式方案,能兼顾网络中的全部流量,并且满足不同流量的需求;

将负载均衡决策模块安置到中央控制器以及终端主机,不涉及交换机功能的更改,灵活方便,易于配置;

提出分布式的负载均衡应当在全网最优目标的约束下进行随机“二选一”决策,以保证小流的快速灵敏反应;

以数据中心网络中核心层交换机的排队时延作为分布式最优负载均衡目标。排队时延作为重要的网络信息,能够同时兼顾链路传输能力和当前网络流量情况。

附图说明

图1(a)为数据中心网胖树结构示例图;

图1(b)为数据中心网叶脊结构示例图;

图2是表示全局信息和局部信息对负载均衡决策的影响的示意图;其中(a)部分表示基于全局信息的负载均衡;(b)部分表示本地随机哈希负载均衡;(c)部分表示基于本地拥塞感知的负载均衡;

图3为实施本发明的混合式负载均衡方法的网络系统的结构示例图;

图4是表示系统中源-目的(a-b)之间每条路径都只经过唯一一个核心交换机的示意图;

图5是表示到达叶节点i的总流量λi按权重wij分配到不同核心交换机的示意图;

图6是表示一个核心交换机上汇聚了到达不同叶节点的所有流量的示意图;

图7为本发明的混合式负载均衡方法实施例中的终端分布式选路方法的流程图。

具体实施方式

以下对本发明的实施方式作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。

参阅图3,在一种实施例中,一种数据中心网中混合式负载均衡方法,其中,部署中央控制器进行网络全局信息的获取,部署终端主机进行中小流快速路由,并同时赋予中央控制器集中式负载均衡的决策权以及终端主机分布式负载均衡的决策权;所述中央控制器利用全局信息为预定义的大流安排路径,并且为预定义的中小流计算出全局最优的网络排队时延,所述终端主机对所述中小流进行分布式选路,并且在全局最优网络时延的限制下进行重路由。

在一种实施例中,实施本发明的混合式负载均衡方法的系统的总体结构如图3所示,以下分别从中央控制器的负载均衡和终端主机的负载均衡这两个方面对本发明的方法描述。

1.中央控制器的负载均衡

1.1大流路径分配

全局信息的重要性在上文中已经进行了充分说明。由于数据中心网络中的流量特性,即20%的流提供了80%的数据量,大流路径的安排显得尤为重要。而利用中央控制器来安排大流路径是最好的选择:(1)大流提供的数据量巨大,如果发生碰撞会造成严重的网络拥塞;(2)大流持续时间长,相对于大流的生命周期而言,中央控制器路径的计算时延可以忽略。为了不引入流的乱序问题,我们为检测的大流分配单一的路径,而不是让它同时在好几条路径上传输。假设fi表示第i条大流的带宽需求,则若这条流经过路径l,则它在链路l上的带宽需求fli为该条大流的总需求fi,表示如下:

对于大流的路径分配,总体的负载均衡目标是最小化最大链路利用率。因此整个问题可以形式化如下:

minimize:γ

约束条件为:

其中,γ表示最大链路利用率,ul表示链路l的利用率,rl表示链路l的剩余带宽,cl表示链路l的容量。这些信息我们都可以通过中央控制器从网络中收集,在已知全部链路带宽信息和每条流的路径选项信息的前提下,每条大流的路径分配可以被求解出来。

中央控制器求解出每条大流的路径之后,通过openflow,将这些流的流表规则安装到路径上的交换机上。由此实现对大流的路径控制。

1.2中小流最优排队时延计算

为了保证终端主机能够在未知全局信息的条件下做出快速决策,并且遵循最优负载均衡目标,中央控制器必须利用自身的优势,为终端计算出这个全局最优目标。

值得强调的是,我们选择网络中的排队时延作为负载均衡目标。可以说负载均衡的目标是消除路径之间的差异,负载流量和链路处理能力的不同导致了路径之间的不均衡,而这些不均衡直接反映在链路时延上。如果当一个包选择不同的路径,会有相同的端到端时延时,我们可以认为这些链路是无差异的。而在传播时延和交换机处理速率基本固定的情况下,排队时延又是造成链路时延变化的主要因素。排队时延同时受链路处理能力和当前网络流量的影响,因此将排队时延作为负载均衡目标能同时考虑到多方面影响因素。

另外,数据中心网络中基本所有流量都汇聚在核心层交换机,并且常用的数据中心网拓扑,比如fattree和leaf-spinetree,都有这样的特性:每一对源和目的之间的每一条路径都只经过一个特定的核心交换机。如图4所示。如果能够控制到达每个核心交换机的流量,那么也就意味着能够控制每条路径的负载情况。因此我们只需要对核心层交换机进行建模分析即可。为了简化问题,我们用两层的leaf-spinetree作为建模基础(如果将每个pod看做成一个leafswitch,那么fat-tree在逻辑上也能抽象成两层的leaf-spinetree)。

首先,考虑到达某一个叶交换机i(leafswitch)总流量λi,假设这些流量按照wi1,wi2,……,win的比例分配到n个核心交换机上,并且这些核心交换机连接该叶交换机i的出口处理能力为μi1,μi2,……,μin,如图5所示,那么我们的负载均衡目标是,使得数据包在每个一个核心交换机的排队时延相同。根据单队列多服务台排队论模型我们可以形式化这个问题如下:

约束条件为:

其中tij表示目的地为第i个叶交换机的数据包,在第j个核心交换机经历的排队时延。以上方程组可以很容易求解出来,得到流量的分配比例和排队时延如下:

根据上述公式,到达每个不同叶交换机的流量都能求出它们在核心层的分配比例,那么考虑单个核心交换机j,它汇聚了不同目的地的流量,假设这些目的地的流量分别为λ1,λ2,……,λm,那么它们各自分配到第j个核心交换机的流量为w1jλ1,w2jλ2,……,wmjλm,并且这个核心交换机各个出口的处理能力为μ1j,μ2j,……,μmj如图6所示。我们可以很容易求得在该交换机上每个数据包的期望排队时延如下:

约束条件为:

其中,χj表示该核心交换机上的总流量,pij表示目的地为第i个叶交换机的流量在该核心交换机上占据的比例。

由此类推,我们可以求出每一个核心交换机的期望排队时延,进而可以求出在整个网络的核心交换机层,数据包的排队时延应当如下:

其中χ表示网络总流量,qj表示分配到第j个核心交换机的流量所占的比例。这样我们就求出了在当前网络总流量和链路处理能力的条件下,全网核心层最佳的网络排队时延为t。

2终端主机的负载均衡

分布式负载均衡的特点是决策快、易部署与移植,对于中小流而言,分布式负载均衡能更好地满足它们的需求。在本系统中,为了保持分布式负载均衡方案的这些优良特点,终端主机仍然采用随机选路算法。如前文所述,我们已经通过排队论建模求出了当前流量需求和网络状况的条件下的全局最优排队时延t。因此为了达到这个全局最优目标,终端主机的随机选路是在最优时延阈值的约束下进行。同时,为了保证中小流有机会争取到更优的网络资源,我们允许终端主机对中小流进行重路由。

2.1基于“thepoweroftwochoices”随机算法的终端选路

“thepoweroftwochoices”二选一随机算法是由哈弗大学的michaerlmitzenmacher提出的一种快速有效的随机选择算法。michaerl利用排队论对“超市排队模型”进行建模分析。得出了如下结论:

(1)在一个多服务台排队系统中,允许顾客随机选择两个或多个服务台进行比较,并且从中选择人数最少的服务台进行排队,则顾客在系统中总共花费的等待时间与从所有服务台中随机选择一个进行排队相比,能达到指数级别的收益(即等待时间呈指数缩减)。

(2)在多服务台排队系统中,顾客随机选择两个以上的服务台进行比较,并选择人数最少的服务台进行排队,与从两个随机的服务台中选择人数较少的进行排队相比,等待时间只能达到线性收益(即等待时间线性缩减)。

基于这个模型和结论,为达到中小流快速选路的目的,分布式随机选路系统的选路算法采用“二选一”模式。“多选一”模式相对于“二选一”模式而言,仅仅能达到线性收益,并且终端还需要记录更多的信息,带来额外开销。因此“二选一”模式具有更高的性价比。

当需要为中小流进行选路决策的时候,终端会随机选择两条路径,并且比较这两条路径的端到端时延,选择有较小时延的那条路径进行发送。虽然理论上来说,从所有路径中选择最小时延的路径进行发送能获取最高的时间收益(即等待时间理论上最小),但是终端都进行“自私路由”,它们之间没有交流和合作,因此很有可能所有终端同时选择同一条时延最小的路径,导致这条路径上负载迅速增加的情况,由此容易引发网络流量的震荡。“二选一”的随机算法可以有效避免网络震荡的发生。

2.2最优排队时延约束下的终端重路由

终端的分布式负载均衡为保证做出快速的选路决策,即使我们采用了性能更高的随机算法,但其本质上仍然是无拥塞意识的。为保证分布式负载均衡也能对网络中的拥塞情况做出反应,本系统中的终端选路启用重路由机制,即我们允许中小流在一定条件下,重新选择一条路径进行发送,以获取更高的时间收益。

但是如果让终端直接去获取网络中的拥塞情况,实现起来比较复杂,终端需要收集所有链路带宽信息和流量信息,这可能需要在交换机上实现一些特定的功能,而信息的频繁收集也会带来额外的流量开销,占用网络的带宽资源。

而利用中央控制器的全局掌控力,我们可以很容易实现网络信息的收集。同时,中央控制器还可以将这些网络信息例如带宽、流量等进行处理之后再通告给终端,以减小交互开销。因此,我们利用中央控制器,定期根据当前网络状况为中小流计算出全局最优的核心层网络排队时延t,如前文第1.2小节所述。中央控制器将这个最优时延t通告给终端。但是网络核心层的排队时延终端是无法获取的,因此我们需要将这个全局最优排队时延转化成端到端时延。

由于网络中的流量情况和拥塞状况是动态变化的,我们无法做出精准的时延转换。这里我们采用一种近似的转换方式:对于每一条要发送的流,终端会首先获取当前所有可选路径中的最小时延作为该流的基础时延,在这个基础时延加上t即作为该流的最优rtt阈值(端到端时延目标)。对于每一条流,终端都会监控其数据包的rtt信息,当连续若干个或者一定比例的数据包的rtt超过该流的最优rtt阈值的时候,将触发重路由机制。这时终端将通过“二选一”随机算法为该流另选一条路径,以满足中小流全局最优网络时延的目标。

2.3终端分布式选路

分布式方法流程如图7所示,概述如下:

[1]、终端定期从中央控制器获取全局最优核心层排队时延t。

[2]、对于每一条新的流量,终端记录其所有可选路径中的最小端到端时延作为该流的基础时延,计算其最优rtt阈值=基础时延+t,并且选择时延最小的那条路径进行发送。

[3]、对于每一条流,终端监控其数据包的实时rtt,如果连续若干数据包(比如连续10个)的rtt超过最优rtt阈值,则采用“二选一”随机算法为该流更换路径。

[4]、重复操作[3]直到该流发送完毕。

本方案只需要部署中央控制器和增加终端功能,对于sdn网络中的转发设备(交换机等)不需要进行任何修改。控制器需要增加大流最优路径计算模块和网络最佳时延计算模块。终端需要增加大流检测模块、选路模块和重路由模块。此外,在sdn的部署情况下,终端和控制器无法直接进行通信,为解决这个问题,我们利用网络层的套接字编程,很容易在中央控制器和终端之间直接建立通信通道,实现终端和控制器之间的信息交流。

下面具体地介绍为实施本发明的方法在中央控制器和终端主机中的每一个模块的功能和实现。其中,中央控制器的功能模块如下:

(1)大流最优路径计算模块

部署sdn之后,控制器和交换机之间通过openflow协议中的portstatistics消息可以很容易查询交换机的端口状态,由此获取网络中的拓扑、流量和带宽信息。该模块定期从终端收集当前网络中的大流情况(包括速率,源和目的地等),并且根据从交换机处收集的全局网络状态信息对这些大流进行合理的流量分配。该模块计算好大流的路径之后,使用openflow协议中规则安装消息flow_mod,在路径涉及的交换机上安装该流的转发规则。此后,相应大流可以在经过交换机时按照转发规则进行正确的路径选择。

(2)网络最佳时延计算模块

该模块主要功能是计算全局最优的网络时延,以便为中小流的负载均衡提供全局的最优标准。计算所需的网络各种流量、带宽、拓扑信息,中央控制器均可通过openflow协议中的portstatistics消息,向网络中的交换机进行端口信息查询、计算获取。中央控制器定期计算出全局最优网络时延之后,通过我们建立的中央控制器和终端之间的通信通道,将该最优网络时延发送到终端,终端根据这个最优时延进行中小流的负载均衡策略。

终端主机的各功能模块如下:

(1)大流检测模块

由于我们的方案是基于流量信息未知的,因此并不能在流量产生的时候就标注是否大流。数据中心网络中绝大部分数量的流量都小于1m,基于每条流已经发送的数据包数量,我们可以将历史发送流量超过1m的流标记为大流。终端监控每条流的发送状态,当某条流发送的数据包已经超过1m,终端即通过控制器和终端之间的通信通道将这条流的信息通报给中央控制器,控制器收集该大流信息之后即可根据网络全局信息计算大流最优路径。

(2)路径选择模块

对于每一条新的流量,终端主机发送探测包来探测该流源和目的之间所有路径的当前时延,选择时延最低的路径进行转发,并且这条路径的最低端到端时延作为该流的基础端到端时延。

终端主机进行控制流的路径转发可以通过修改目标ip地址进行控制实现的。对于整个数据中心网络,可以用一个特定网段,每台主机的ip地址编码方式为10.叶节点编号.核心节点编号.主机编号,对于每个主机,都有相应路径数的ip别名,即核心节点的数目有多少,该主机ip别名就有多少,终端通过修改目的主机的核心节点编号字段即可进行路径控制。这只是一个终端控制方式,其他的实现方法还有如mpls、xvlan等的各种标签转发。

(3)重路由模块

重路由模块是中小流负载均衡决策的关键模块。终端保存中央控制器下发的最优网络时延,同时在路径选择模块中,终端已经为每条流记录了基础端到端时延,我们将这个基础端到端时延和最优网络时延相加得到该流的全局端到端时延目标。终端监控每条流中数据包的rtt信息,当连续若干数据包的rtt都超过了该流全局端到端时延目标的时候,就会触发重路由机制,重新为该流选择路径。重路由选择路径的机制是“二选一”随机算法,即终端随机从所有可选路径中随机选择探测两条路径,并且选择这两条路径中时延较低的那条路径作为新的转发路径。

综上,本发明可在未知流大小的条件下,实现全网不同需求流量的负载均衡,达到同时保证大流的高吞吐和小流的低时延的目标。根据上述实施例,本发明可利用软件定义网的特点实现大流的调度,获取网络中流量和网络状况的具体信息;根据数据中心网络的特点建立最优排队时延计算的模型;将中央控制器为中小流量计算的全局最优排队时延转换成终端rtt阈值;系统中涉及到大流信息的上报和全局最优排队时延的下发,实现中央控制器和终端主机的通信。

以上内容是结合具体/优选的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,其还可以对这些已描述的实施方式做出若干替代或变型,而这些替代或变型方式都应当视为属于本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1