动态分流调度系统和方法

文档序号:7632470阅读:293来源:国知局
专利名称:动态分流调度系统和方法
技术领域
本发明涉及数据中心网络领域,具体涉及一种动态分流调度系统和方法。
背景技术
随着互联网和云计算服务等应用的发展,数据中心的规模日益增大。当前,数据中心包含着成千上万台的服务器和交换机。另外,数据中心通常同时支持多种不同的应用,其中一些应用要求数据中心内部的不同服务器之间执行大量的数据通信。数据中心规模的增大和应用的发展对其网络架构带来了新的挑战。由于交换机端口数目的限制,数据中心通常采取一种多根树的拓扑结构。图I示出了一种多根树的拓扑结构,该拓扑结构为主机之间的通信提供了多条可选的路径。由于存在多条可选的路径,一个关键的问题就是如何在这些多条可选的路径上动态的进行流调 度,以获取大的网络聚合带宽。当前最常用的流调度机制是等价多路径(Equal Cost Multipath, ECMP)。交换机对某个给定的目的地址配置多个可选的转发路径,当数据包到达交换机的时候,交换机对数据包的首部中的某些字段进行哈希运算,然后根据总的路径个数进行模运算,得到最终选择的路径并将数据包从该路径转发。哈希算法能够将数据流量随机的分布到多条可选路径上,从而实现负载均衡。然而,ECMP是一种静态映射,属于同一条流的数据包都会被固定的映射到某一条路径上。另外,ECMP完全根据哈希运算结果来选择路径而不考虑网络利用率和流的大小。这样,在某些情况下,多条大的流选择了同一条路径,会形成网络瓶颈并导致整个网络利用率的降低。图2示出了两种类型的流冲突的例子。如图2所示,流A和流B由于在交换机AggO处的哈希运算冲突而选择了同一条路径。另外,交换机Aggl和Agg2独立的对流C和流D的数据包进行转发,但是在交换机Core2处遭遇冲突。假定图2中所有的链路都是lGbps,因为发生了流冲突,所有4条流都只能获得500Mbps的带宽。如果系统根据网络资源利用和流的情况采用更好的流调度策略,比如将流A调度到交换机Corel,将流D调度到交换机Core3,所有的4条流就都能达到lGbps。因此,ECMP这种静态映射机制没有考虑到网络利用率和流的大小,从而可能造成流的冲突并降低网络的整体利用率。参考文献I ( “Hedera :Dynamic Flow Scheduling for Data Center Networks,,,Mohammad Al_Fares,et al,NSDI 2010)提出了一种用于数据中心网络的动态流调度系统。该系统首先在边缘交换机处检测大流,然后估计这些大流的带宽需求,并且计算这些大流的最佳路径。最后,将这些路径安装在交换机上。图3示出了 Hedera的系统结构图。如图3所示,Hedera是一种基于“胖树”(Fattree)网络拓扑设计和实现的流调度系统(参见参考文献2 :“A scalable,Commodity DataCenter Network Architecture”, Mohammad Al-Fares, et al, SIGCOMM 2008)。 Fat tree中的交换机自下而上分成三层边缘层,汇聚层和核心层。不同层中所有的交换机都是相同的,每个交换机包含k个端口。图3示出了 k = 4的Fat tree拓扑。Fat tree分为k个独立的分块(pod),如图中边缘层和汇聚层的k个虚线框所示,每个框里面的k个交换机组成一个分块。Fat tree拓扑结构可以支持k3/4台主机,使用5k2/4个k 口交换机。交换机上运行OpenFlow, OpenFlow控制器可以访问交换机的转发表,对转发表的表项进行查询、插入、修改等操作。流调度器根据当前的网络状况将流调度到不相互冲突的路径上。OpenFlow控制器和流调度器工作在一个逻辑上集中的中心管理器上。图4示出了 Hedera的系统框图。如图4所示,该Hedera系统40由交换机410和中心管理器420组成。交换机410包括转发表4110、数据包转发单元4120和流统计信息汇报单元4130。转发表4110用于存储流与发送端口之间的映射。数据包转发单元4120根据转发表4110中存储的映射关系而转发数据包。流统计信息汇报单元4130用于统计流量信息,并且定期发送(例如每5秒发送一次)给中心管理器420。中心管理器420包括交换机控制器4210、流调度单元4220、流需求估计单元4230、流需求表4240以及流统计信息收集单元4250。流统计信息收集单元4250在每个调度周期(例如5秒)从流统计信息汇报单元4130接收流量信息,以检测大流。流需求表4240存储所有主机的流需求矩阵。流需求估计单元4230使用已统计的流量信息来估计流的带宽需求。流调度单元4220从所有可选路径中为大流分配合适的路径。交换机控制器4210根据流调度单元4220的调度结果,在相应的交换机上创建转发表项,使该流通过新选的路径转发。具体地,当一个新流开始传输的时候,交换机410的缺省操作是基于流的哈希值在等价路径中选择一个(如ECMP所描述)。交换机410 —直使用这个路径来转发该流,直到该流的流量超过某个预定的阀值,比如100Mbps (IGigE链路带宽的10% )。在每个调度周期内,流统计信息收集单元4250从边缘交换机获得流量统计信息以检测大流。然后,流需求估计单元4230估计大流的带宽需求。接下来,流调度单元4220基于大流的带宽需求,为大流计算合适的路径。最后,交换机控制器4210将这些路径安装在相应的交换机上,修改转发表项使这些流通过新选择的路径转发。流需求估计单元4230的输入是当前所有大流的流量信息,其维护着一个N*N的矩阵M,其中N是主机的个数,矩阵M中位于第i行和第j列的元素M(i,j)包含了从主机i到主机j的流的需求的估计值。流需求估计单元4230重复如下操作增大流在源主机的带宽需求,根据目的主机的带宽限制减少流所超出的带宽,最终使所有流收敛到它们本身的带宽需求。在估计大流的带宽需求之后,流调度单元4220根据带宽需求为大流计算合适的路径。在参考文献I中使用了两种调度算法。第一种是“全局首个匹配(Global FirstFit) ”,当检测到一条新的大流时,调度器线性的搜索所有可能的路径,当找到一个所有链路都满足带宽需求的路径时,就选择此路径为调度结果。第二种是“模拟退火(SimulatedAnnealing)”,模拟退火是一种通用的概率算法,对状态空间进行搜索来寻找一个接近最优化的解。为了减少搜索空间的状态数,Hedera系统40为每个目的主机分配一个核心交换机,而不是为每个流分配一个核心交换机。然而,Hedera系统中的流调度机制存在以下两点不足
第一,不能及时准确的得到流的实际带宽需求,这是因为流的带宽需求是根据边缘交换机测量出来的流量统计数据估计出来的,有时候不能准确的反映应用的实际带宽需求。此外,调度仅在每个调度周期(例如5秒)执行一次。因此,在一个调度周期内,流量状况可能已经发生了很大的变化。第二,由于调度的粒度是流,因此有些情况下不足以实现网络利用率的平衡和大的网络聚合带宽。

发明内容
为了解决上述问题,本发明提供了一种用于数据中心网络的动态分流调度系统。主机为特定流向数据中心的流调度器申请带宽预留。流调度器检查该特定流可以选择的所有路径的带宽使用情况,如果这些路径上剩余的带宽之和满足该特定流的带宽需求,则将该流分成一个或多个子流,然后将这些子流在相应的路径上转发。如果所有路径上的剩余带宽不能满足该特定流的带宽需求,则将这些路径上现有的流转移到其他路径上,从而腾 出空间用以转发该特定流。根据本发明的一个方面,提供了一种中心管理器,包括带宽需求收集单元,用于从源主机收集特定流的带宽需求;存储单元,用于存储链路的带宽使用情况以及主机对的可选路径;流调度单元,用于根据当前的链路的带宽使用情况从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径,将分配的路径返回所述源主机,以及从所述源主机接收子流信息;以及交换机控制器,用于根据流调度单元的调度结果对相应的交换机进行配置。优选地,流调度单元被配置为计算所述特定流的可选路径的空闲带宽之和;以及如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径。优选地,流调度单元还被配置为如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述特定流的可选路径按照其空闲带宽的大小降序排列,并从排序后的可选路径中依次选取路径,直到所选择的路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。优选地,流调度单元还被配置为如果所述特定流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则查找通过所述特定流的可选路径的其他流,并计算所述其他流的可选路径的空闲带宽之和;以及如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则对所述其他流进行重新调度,然后从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径。优选地,流调度单元还被配置为如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述其他流按照其可选路径的空闲带宽之和降序排列,从排序后的流中依次选取流并将该流进行重新调度,直到所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。优选地,流调度单元还被配置为如果所述其他流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则把所述其他流重新调度到其空闲路径上,然后将所述特定流的可选路径的空闲带宽按照最大-最小公平准则分配给所述特定流和重新调度后仍通过所述特定流的可选路径的流。优选地,流调度单元还被配置为把从源主机接收的子流信息发送至目的主机。优选地,存储单元还存储所述子流信息。优选地,子流信息包括子流的端口号。根据本发明的另一方面,提供了一种流调度方法,包括从源主机收集特定流的带宽需求;根据当前的链路的带宽使用情况,从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径,将分配的路径返回所述源主机,以及从所述源主机接收子流信息;以及根据调度结果对相应的交换机进行配置。优选地,分配路径的步骤包括计算所述特定流的可选路径的空闲带宽之和;以及如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则从所·述特定流的可选路径中为所述特定流分配一个或一个以上的路径。优选地,如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述特定流的可选路径按照其空闲带宽的大小降序排列,并从排序后的可选路径中依次选取路径,直到所选择的路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。优选地,如果所述特定流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则查找通过所述特定流的可选路径的其他流,并计算所述其他流的可选路径的空闲带宽之和;以及如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则对所述其他流进行重新调度,然后从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径。优选地,如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述其他流按照其可选路径的空闲带宽之和降序排列,从排序后的流中依次选取流并将该流进行重新调度,直到所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。优选地,如果所述其他流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则把所述其他流重新调度到其空闲路径上,然后将所述特定流的可选路径的空闲带宽按照最大-最小公平准则分配给所述特定流和重新调度后仍通过所述特定流的可选路径的流。优选地,该方法还包括把从源主机接收的子流信息发送至目的主机。优选地,子流信息包括子流的端口号。根据本发明的再一方面,提供了一种主机,包括带宽预留单元,用于向中心管理器申请针对特定流的带宽;以及流控制单元,根据中心管理器返回的调度结果将所述特定流分为一个或一个以上的子流,并建立相应的连接从而将所述一个或一个以上的子流在中心管理器分配的路径上转发。优选地,该主机还包括数据重组单元,用于把通过所述一个或一个以上的子流接收到的数据进行重组。优选地,流控制单元被配置为如果从中心管理器接收到改变子流的指令,则调整相应的连接。本发明的动态分流调度系统和方法能够及时准确的得到流的实际带宽需求,并且能够在比流更细的粒度上(即子流)执行调度。因此,本发明的动态分流调度系统和方法使整个数据中心网络的利用率得到平衡,并且使整个数据中心网络的聚合带宽增大。


通过下文结合附图的详细描述,本发明的上述和其它特征将会变得更加明显,其中图I是示出了现有技术中的多根树拓扑结构的示意图;图2是示出了现有技术中的两种类型的流冲突的示意图;图3是示出了现有技术中的Hedera系统的示意图;图4是示出了现有技术中的Hedera系统的框图; 图5是示出了根据本发明一个实施例的动态分流调度系统的框图;图6是示出了根据本发明一个实施例的动态分流调度系统的操作的流程图;图7是示出了根据本发明一个实施例的流调度算法的流程图;图8是示出了根据本发明另一个实施例的动态分流调度系统的框图;以及图9是示出了根据本发明另一个实施例的动态分流调度系统的操作的流程图。
具体实施例方式下面,通过结合附图对本发明的具体实施例的描述,本发明的原理和实现将会变得明显。应当注意的是,本发明不应局限于下文所述的具体实施例。另外,为了简便起见,省略了与本发明无关的公知技术的详细描述。图5示出了根据本发明一个实施例的动态分流调度系统50的框图。如图5所示,动态分流调度系统50由三种类型的节点组成主机510、中心管理器520和交换机530。交换机530包括转发表5310和数据包转发单元5320。其中转发表5310用于存储流与发送端口之间的映射。数据包转发单元5320根据转发表5310中存储的映射关系而转发数据包。主机510包括流控制单元5110和带宽预留单元5120。其中,带宽预留单元5120用于为某个特定的流向中心管理器520申请带宽预留。流控制单元5110用于根据中心管理器520提供的调度结果把该特定的流分为一个或更多个子流,然后将这些子流在相应的路径上转发。中心管理器520包括交换机控制器5210、流调度单元5220、带宽使用及路径信息表存储单元5230以及带宽需求收集单元5240。其中,带宽需求收集单元5240用于从主机510收集流的带宽需求。带宽使用及路径信息表存储单元5230用于存储所有链路的带宽使用情况以及任意主机对的所有可选路径。流调度单元5220基于当前网络上的链路的带宽使用情况,从所有可选路径中为某个特定的流分配一条或者多条合适的路径。交换机控制器5210根据流调度单元5220的调度结果,在相应的交换机上创建转发表项,用以对流进行转发。下面,结合图6来详细描述图5所示的动态分流调度系统50的操作。图6示出了根据本发明一个实施例的动态分流调度系统50的操作流程图。在图6中,主机A、主机B和主机C均可以由图5中所示的主机510来实现,中心管理器可以由图5中所示的中心管理器520来实现,而交换机可以由图5中所示的交换机530来实现。具体操作如下I. I :源主机A上的某个特定的应用向带宽预留单元告知与该应用相对应的流的带宽需求。I. 2 :源主机A中的带宽预留单元向中心管理器申请带宽预留。I. 3 :中心管理器中的流调度单元根据调度算法(具体算法在下文中描述)进行流调度,即从所有可选路径中为该特定的流分配一条或者多条路径。I. 4:中心管理器向申请带宽预留的源主机A返回分配的路径及每条路径上预留的带宽。
I. 5 :源主机A的流控制单元根据调度结果,将该特定的流切分成一个或者多个子流。I. 6:源主机A将子流信息(例如包括子流使用的端口号)汇报给中心管理器。I. 7 :中心管理器中的交换机控制器在相应的交换机上创建转发表项,使交换机对这些流通过新选的路径转发。I. 8 :在某些情况下,中心管理器会要求其他主机(例如主机C)更改某些现有流的路径和占用带宽,以便为申请带宽预留的特定流腾出空间。I. 9:收到指示的主机C根据中心管理器的要求改变现有的某些流的路径和占用带宽。I. 10 :源主机A使用一个或者多个连接发送数据,每条连接对应一个子流。I. 11 :目的主机B通过一个或者多个子流接收数据。图7示出了根据本发明一个实施例的流调度算法的流程图。该调度算法可以由图5所示的中心管理器520的流调度单元5220来执行,以实现流调度。首先,在步骤S701,获得流F及其带宽需求Rf。在步骤S702,找出流F的所有可选的路径。假定共有N条路径{Pi,I < = i < =N},每条路径Pi的空闲带宽为Ci。在步骤S703,计算所有N条路径的空闲带宽的和,即&。
/=1接下来,在步骤S704判断Sf是否大于或等于RF。如果Sf大于或等于Rf,表明现有的N条路径上的空闲带宽可以满足流F的带宽需求,此时转向步骤S705继续执行。如果Sf小于Rf,表明现有N条路径上的空闲带宽不能满足流F的带宽需求,需要这些路径上的其他流腾出空间,此时转向步骤S707继续执行。如果Sf大于或等于Rx,在步骤S705将每条路径Pi按照其空闲带宽Ci降序的方
式排序,从空闲带宽由大到小依次选取路径Pi,直到满足条件f;Cf,假定选择了 M条
/=1
路径Pi。接下来,在步骤S706将选择的M条路径分配给流F,每条路径上的空闲带宽Ci是为流F预留的带宽。之后,流调度结束并返回。如果Sf小于Rf,在步骤S707找到通过{Pi,I < = i < = N}中任意一个路径的所有流{Fj,l <= j < = L},即这L个流与流F共享路径。因为现有的N条路径上的空闲带宽不能满足流F的带宽需求,需要这L个流中的若干个流腾出一定空间来满足流F的带宽需求。在步骤S708,针对每条流Fj,找到Fj所有可选的路径{Hjk,I < = k < = Nj},其中第j条流Fj共有Nj条路径,假定每条路径Hjk的空闲带宽为Cjk。另外,在{Hjk,I < =k<=Nj}这些路径中,假定一共有T条路径。因为不同Fj的路径Hjk可能会有重复,所以
权利要求
1.一种中心管理器,包括 带宽需求收集单元,用于从源主机收集特定流的带宽需求; 存储单元,用于存储链路的带宽使用情况以及主机对的可选路径; 流调度单元,用于根据当前的链路的带宽使用情况从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径,将分配的路径返回所述源主机,并从所述源主机接收子流信息;以及 交换机控制器,用于根据流调度单元的调度结果对相应的交换机进行配置。
2.根据权利要求I所述的中心管理器,其中,所述流调度单元被配置为 计算所述特定流的可选路径的空闲带宽之和;以及 如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径。
3.根据权利要求2所述的中心管理器,其中,所述流调度单元还被配置为 如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述特定流的可选路径按照其空闲带宽的大小降序排列,并从排序后的可选路径中依次选取路径,直到所选择的路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。
4.根据权利要求2所述的中心管理器,其中,所述流调度单元还被配置为 如果所述特定流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则查找通过所述特定流的可选路径的其他流,并计算所述其他流的可选路径的空闲带宽之和;以及如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则对所述其他流进行重新调度,然后从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径。
5.根据权利要求4所述的中心管理器,其中,所述流调度单元还被配置为 如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述其他流按照其可选路径的空闲带宽之和降序排列,从排序后的流中依次选取流并将该流进行重新调度,直到所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。
6.根据权利要求4所述的中心管理器,其中,所述流调度单元还被配置为 如果所述其他流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则把所述其他流重新调度到其空闲路径上,然后将所述特定流的可选路径的空闲带宽按照最大-最小公平准则分配给所述特定流和重新调度后仍通过所述特定流的可选路径的流。
7.根据权利要求I所述的中心管理器,其中,所述流调度单元还被配置为 把从源主机接收的子流信息发送至目的主机。
8.根据权利要求7所述的中心管理器,其中,所述存储单元还存储所述子流信息。
9.根据权利要求7或8所述的中心管理器,其中,所述子流信息包括子流的端口号。
10.一种流调度方法,包括 从源主机收集特定流的带宽需求; 根据当前的链路的带宽使用情况,从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径,将分配的路径返回所述源主机,并从所述源主机接收子流信息;以及根据调度结果对相应的交换机进行配置。
11.根据权利要求10所述的方法,其中,所述分配路径的步骤包括 计算所述特定流的可选路径的空闲带宽之和;以及 如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径。
12.根据权利要求11所述的方法,其中,如果所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述特定流的可选路径按照其空闲带宽的大小降序排列,并从排序后的可选路径中依次选取路径,直到所选择的路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。
13.根据权利要求11所述的方法,其中,如果所述特定流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则查找通过所述特定流的可选路径的其他流,并计算所述其他流的可选路径的空闲带宽之和;以及如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则对所述其他流进行重新调度,然后从所述特定流的可选路径中为所述特定流分配一个或一个以上的路径。
14.根据权利要求13所述的方法,其中,如果所述其他流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求,则把所述其他流按照其可选路径的空闲带宽之和降序排列,从排序后的流中依次选取流并将该流进行重新调度,直到所述特定流的可选路径的空闲带宽之和大于或等于所述特定流的带宽需求为止。
15.根据权利要求13所述的方法,其中,如果所述其他流的可选路径的空闲带宽之和小于所述特定流的带宽需求,则把所述其他流重新调度到其空闲路径上,然后将所述特定流的可选路径的空闲带宽按照最大-最小公平准则分配给所述特定流和重新调度后仍通过所述特定流的可选路径的流。
16.根据权利要求10所述的方法,还包括 把从源主机接收的子流信息发送至目的主机。
17.根据权利要求16所述的方法,其中,所述子流信息包括子流的端口号。
18.—种主机,包括 带宽预留单元,用于向中心管理器申请针对特定流的带宽;以及 流控制单元,根据中心管理器返回的调度结果将所述特定流分为一个或一个以上的子流,并建立相应的连接从而将所述一个或一个以上的子流在中心管理器分配的路径上转发。
19.根据权利要求18所述的主机,其中,所述流控制单元被配置为 如果从中心管理器接收到改变子流的指令,则调整相应的连接。
20.根据权利要求18或19所述的主机,还包括 数据重组单元,用于把通过所述一个或一个以上的子流接收到的数据进行重组。
全文摘要
本发明提供了一种用于数据中心网络的动态分流调度系统和方法。主机为特定流向数据中心的流调度器申请带宽预留。流调度器检查该特定流可以选择的所有路径的带宽使用情况,如果这些路径上剩余的带宽之和满足该特定流的带宽需求,则将该流分成一个或多个子流,然后将这些子流在相应的路径上转发。如果所有路径上的剩余带宽不能满足该特定流的带宽需求,则将这些路径上现有的流转移到其他路径上,从而腾出空间用以转发该特定流。本发明的动态分流调度系统和方法能够及时准确的得到流的实际带宽需求,并且能够在比流更细的粒度上执行调度,从而使整个数据中心网络的利用率得到平衡并且使整个数据中心网络的聚合带宽增大。
文档编号H04L12/56GK102710489SQ20111008581
公开日2012年10月3日 申请日期2011年3月28日 优先权日2011年3月28日
发明者夏勇, 胡艳, 陈松杰 申请人:日电(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1