一种数据中心去带宽碎片化流调度方法

文档序号:7797446阅读:1025来源:国知局
一种数据中心去带宽碎片化流调度方法
【专利摘要】本发明公开了一种数据中心去带宽碎片化流调度方法,用于解决数据中心的带宽碎片化问题。其中,基于阈值的流信息统计筛选,能弹性筛选出符合要求的流,降低控制器的计算开销;基于带宽需求矩阵的实际带宽估算方法,合理的估算了新流的带宽需求,减少了由于带宽需求变化造成的调度错误;核心的概率带宽最紧匹配网络流调度算法,在带宽最紧匹配这种贪婪算法的基础上,合理引入概率,实现了去带宽碎片化和负载均衡的合理权衡;本发明在对新网络流合理调度的基础上,大幅度减少了整个网络的带宽碎片,降低了新网络流阻塞的可能性,提高了整个网络的网络利用率和吞吐率,最终提升了网络服务质量。
【专利说明】一种数据中心去带宽碎片化流调度方法
【技术领域】
[0001]本发明涉及计算机网络方向数据中心网络的负载均衡领域,尤其涉及一种基于软件定义网络的概率带宽最紧匹配路径网络流调度算法,用于解决现有数据中心网络均衡算法产生的带宽碎片化问题。
【背景技术】
[0002]网络的负载均衡(Load Balance)问题一直是计算机网络领域内的热点研究问题,它极大的相关于网络的服务质量(Quality of Service, QoS)。目前该领域的相关研究可以分为基于服务器(Servers)的网络负载均衡和基于链路(Links)的网络负载均衡两种类型。基于服务器的网络负载均衡主要着眼于多台服务器之间的任务分配造成的带宽使用的不均衡,通过调度任务迁移从而达到带宽负载均衡的目的;基于链路的负载均衡则主要关注整个网络中各条链路的负荷情况,通过改变不同网络流或数据包的路径,达到调节链路负荷,实现网络负载均衡的目的。
[0003]近年来,云计算技术的广泛应用使得数据中心得以大规模的兴建,而数据中心的网络,不同于传统意义上的网络,由于(I)巨量的服务器、(2)庞大复杂的网络拓扑、(3)同一服务虚拟机群部署的非局部性等特性的存在,使得基于链路的网络负载均衡方法更适用于数据中心网络的负载均衡研究。目前,大量的数据中心负载均衡研究据此展开,它们有一个共通的特点,利用数据中心网络拓扑中路径的冗余,调度网络流或数据报通过合适的路由,从而提高整个网络的带宽利用率和吞吐率,达到提高服务质量的目的。
[0004]目前,数据中心网络负载均衡的主流方法通常基于最小负载的概念,采用优先选取带宽占用量最少或较少的一条路径的办法,进而使得网络流尽可能均匀分布到各条链路,从而减少实时状况下网络流拥塞状况的发生,最终达到提高服务质量的目的。然而,这样的方法却缺少对下一步产生的网络流情况的考虑,在某些情况下,将产生网络带宽碎片化问题,反过来影响新网络流接收,特别是当新网络流颗粒度更大时,这种影响尤为明显。
[0005]带宽碎片化(Bandwidth Fragmentation, BF)是指独立的新网络流的带宽需求大于其任一候选网络链路的剩余带宽,却小于候选网络链路剩余带宽之和的现象。这一现象使得新网络流在网络中被阻塞,网络利用率降低,进而影响到服务质量。这说明现有的数据中心网络负载均衡方法在网络流的分配和调度上考虑不够全面,存在一定的不合理性。
[0006]面对数据中心中产生的带宽碎片化现象,如何能够去除它,成为了一道急待解决的难题。近两年来,一种叫做软件定义网络(Software Defined Network, SDN)的新型网络架构开始成为热门研究技术,它是一种网络虚拟化技术,由斯坦福大学的Clean State研究计划首先提出,其核心是Openflow协议,它通过将网络(交换机)中的数据面(Data Plane)和控制面(Control Plane)进行分离,通过软件的方式实现原本硬件应该完成的控制面部分,该部分软件安装在一台或多台控制器(Controller)上,从而通过这些控制器,以中央控制的方式,通过软件实现了网络流路由的灵活控制。这种可通过软件的方式实现对网络流路由策略进行自由控制的方法为上述网络中心带宽碎片化问题的解决提供了一种实现的可能性。

【发明内容】

[0007]有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是结合新兴的软件定义网络架构,设计一种概率带宽最紧匹配路径分配的网络流调度算法并将其实现为整个流调度控制模块,期间还需克服以下3个技术难点:
[0008](I)负载均衡和去网络碎片的权衡;前者能有效减少当前网络的阻塞状况,却可能产生未来的阻塞,后者能减少网络碎片,却又增加了当前网络流调度的难度,因此找到一个平衡点尤为重要。
[0009](2)如何获取网络流带宽需求;网络流的实际流量并不代表网络流的带宽需求,如果将现有的网络流路由路径改变到另一条候选路径上,网络流的实际流量可能会增大,这会影响去带宽碎片化算法的有效性。
[0010](3)如何判断网络流的结束;网络流结束后会释放其占用的带宽资源,在去带宽碎片化算法中准确判断网络流的结束对算法下一步的进行有关键作用。
[0011]为实现上述目的,本发明提供了一种基于软件定义网络的数据中心去带宽碎片化流调度方法,包括以下步骤:
[0012]步骤1:在软件定义网络架构的数据中心的网络中,当新的网络流进入网络,流调度控制模块必须要从边缘交换机,即直接连接服务器主机的交换机,汇总统计数据,并根据预先设定的阈值,筛选出需要进行调度的新网络流。发明事先设定的阈值是根据相应参考文献和多次实验得出的较优值,参考文献是Hedera:Dynamic Flow Scheduling for DataCenter Networks Mohammad。
[0013]步骤2:当流调度控制模块筛选出需要调度的网络流后,它会根据新网络流的通讯模式进行网络流带宽需求估算,生成带宽需求矩阵,计算出新网络流在网络链路无速率限制的情况下的真实带宽需求。
[0014]步骤3:根据步骤2计算出的新网络流的真实带宽需求,流调度控制模块进行调度算法的核心部分,即先计算出网络中所有符合新网络流真实带宽需求的可选路由,可选路由中剩余的最小带宽需大于或等于真实带宽需求,然后根据每条可选路由中剩余的最小带宽与真实带宽需求之差,给定一个概率,差值越小概率越大,差值越大概率越小,最后根据这个概率随机将新网络流分配到可能的可选路由上去,这就叫做概率带宽最紧匹配路径分配。
[0015]步骤4:在新网络流被分配到具体的可选路由后,调度控制程序中的核心部分(SP步骤3)将被重置,继续监听符合要求的新网络流的到来,等待下一次的触发。
[0016]步骤5:在新网络流结束后,流调度控制模块并不清楚其已经结束,之前分配给其的网络带宽资源仍然在控制器中显示被占据,并且交换机中的路由信息仍然存储在控制流表中,浪费资源。本发明进一步地采用软件定义网络中的空闲超时(idle_timeout)机制,这种机制会在定长的时间间隔清理交换机中的没有数据传输的流表项,同时控制器(Controller)会周期性的重新计算实时流量统计和路径分配,从而删除掉不符合要求的网络流占据的带宽分配,释放资源。
[0017]本发明的基于软件定义网络的数据中心去带宽碎片化流调度方法具有以下有益的技术效果:
[0018](I)本发明在对新网络流合理调度的基础上,大幅度减少了整个网络的带宽碎片,降低了新网络流阻塞的可能性,提高了整个网络的网络利用率和吞吐率,最终提升了网络服务质量。
[0019](2)本发明中基于阈值的流统计信息筛选,能够弹性的筛选出满足实际需求的网络流,减少需要进行实际需求带宽估算的网络流数目,降低控制器计算资源开销。
[0020](3)其次,发明中基于带宽需求矩阵的实际网络带宽估算方法,可合理估算出新网络流的实际网络带宽需求,减小因为网络流带宽需求变化造成的调度错误。
[0021](4)本发明的概率带宽最紧路径匹配算法,在带宽最紧比较的贪心策略基础上,力口入了概率选择,实现了去带宽碎片和负载均衡的合理权衡;
[0022](5)本发明采用的流结束判断和资源回收机制,基于Openflow协议的空闲超时(idle_timeout)机制和对边缘交换机周期性统计办法,合理的判断了数据中心网络流的结束,有效了回收了无效占用的网络资源,为下一步的网络流调度腾出了资源空间;
[0023](6)相比现有数据中心网络拓扑,本发明的采用的最新的软件定义网络架构和其核心Openflow协议,这种软件定义的调度机制使得网络流的调度更加灵活,并且能够有效实现资源隔离性。
[0024]以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
【专利附图】

【附图说明】
[0025]图1是数据中心网络带宽碎片化示意图;
[0026]图2是本发明的系统架构示意图;
[0027]图3是本发明的流调度控制模块流程图;
[0028]图4是本发明的流调度算法流程图。
【具体实施方式】
[0029]如图1所示为简单的三层数据中心网络拓扑图,C1-C2为核心交换机,A1-A4为聚集交换机,E1-E8为边缘交换机,边缘交换机下接有若干主机。所有路径的带宽为lGbps,现在有flowl-4共计4条流,它们的带宽需求分别为0.5Gbps,根据最小负载路径优先的负载均衡策略:每条新的flow,它的路由通常是可选路由中已有负载最小的路由,因此它们的路径应分别为:E1-A1-C1-A3-E5、E2-A1-C2-A3-E6、E3-A2-C1-A4-E7 和 E4-A2-C2-A4-E8。这些flow进入网络后,Cl和C2两台核心交换机各自连接的四条链路都还剩0.5Gbps的剩余带宽,如果有一条新流f low5进入,它的起源地是E1,目的地是E5,并且其带宽需求为
0.8Gbps,那么现有带宽分配方式已经无法找到一条满足该流带宽需求的路径,这样就会产生网络拥塞。但是,如对带宽均衡策略进行调整,把flowl-4依次分到:E1-A1-C1-A3-E5、E2-A1-C1-A3-E6、E3-A2-C2-A4-E7、E4-A2-C2-A4-E8,那么 flow5:E1>E5 就能找到合适的满足其带宽需求的路径:E1-A2-C1-A4-E5。
[0030]如图2所示的本发明的系统架构图,它是数据中心中常见的Fattree网络架构,同时本发明采用了最新的软件定义网络架构和其核心的Openflow协议,所有系统中每台交换机均为支持Openflow的交换机,它们有安全信道同一台作为Openflow控制器I的主机相连,控制器I上运行着分离出的控制面程序,负责实时流量统计,带宽需求估算,网络流路径调度等等控制面的工作。
[0031]如图3所示的流调度控制模块流程图,它是基于事件驱动模型设计的,主要包括一个主循环步骤和一个处理流调度定时器事件的循环步骤,它们是两个独立的循环步骤。当流调度控制模块启动后,在主循环步骤中,第一步先设置启动流调度定时器,随后该步骤进入一个循环。在主循环步骤中会等待交换机内无路由信息从而无法处理的新流,控制器会依据事先设定好的传统算法对根据发送方和接受方计算出默认路由,并依据Openflow协议修改计算出的默认路由所涉及的所有交换机内部的流表。而对于处理流调度定时器事件的循环步骤来说,首先主循环步骤设置好的流调度定时器在超时时会触发流调度定时器事件,控制器会先根据从各个边缘交换机中网络流量信息进行汇总统计,筛选出流量较大的流,通过估算得到各个流的真实流量需求,然后据此进行调度,调度完成后重置调度定时器,继续循环监听定时器是否超时。其中使用边缘交换机进行信息统计的原因是所有主机发出或接收的流都必须经过边缘交换机,因此边缘交换机记录了所有流的流量信息。
[0032]如图4所示,基于软件定义网络的数据中心去带宽碎片化流调度方法具体步骤如下:
[0033]步骤1:在软件定义网络架构的数据中心的网络中,当新的网络流进入网络,流调度控制模块必须要从边缘交换机汇总统计数据,由于数据中心网络中同一时刻并发的网络流数量非常大,如果不经过筛选,对如此庞大的数据流进行估算和调度会带来非常大的开销,控制器将成为性能瓶颈。因此发明事先设定了阈值,以此减小筛选出需要进行调度的新的网络流。发明事先设定的阈值是根据相应参考文献和多次实验得出的较优值,在成百上千台主机的数据中心网络中,带宽的10%-15%是一个推荐的范围。
[0034]步骤2:当流调度控制模块筛选出需要调度的网络流后,它会根据网络流的通讯模式进行网络流带宽需求估算,生成带宽需求矩阵,计算出网络流在网络链路无速率限制的情况下的自然带宽需求。具`体来讲,首先流带宽需求估算算法的输入是集合G,G中元素是所有超过阈值的流,估算算法会将其转换成带宽需求估算矩阵M,M有N行N列,N为所有发送方和接收方主机的总数。位于M中第i行j列的元素拥有3个字段信息:(I)发送方主机i到接收方主机j流的数目;(2)估算得到的带宽需求;(3)估算收敛标志位,它用来表示流量估算过程是否完成。该算法的主程序伪代码如下:
[0035]
BANDWIDTHESTIMATEO
for all i, j
Mi,j = 0

do

for each host do EST_SRC(host)

for each host do EST DST(host)

_ 、 f

while M changed

return M[0036]步骤3:根据步骤2计算出的新网络流的真实带宽需求,流调度控制模块进行调度算法的核心步骤,先计算出网络中所有符合新网络流真实带宽需求的路由,然后根据每条路由中剩余的最小带宽与真实带宽需求之差,选取差最小的路径。这种方法会使得大部分的流被分配到带宽使用率比较高的路径上,从而导致某些路径或其中部分的链路被完全占据而其他链路空闲的状况。这种不平衡的方法在某些情况下潜在可能引起更多的拥塞,进而影响网络整体的服务质量。因此,算法进一步改进,对于每一个路径带宽和需求带宽之差给定一个概率,差越小的概率越大,差越大的概率越小,这使得剩余带宽容量和流的带宽需求最接近的路径的分配概率最大,而其他剩余带宽容量比较大的路径也有一定概率分配网络流在其中,这就叫做概率带宽最紧匹配路径分配。概率计算公式如下:
【权利要求】
1.一种数据中心去带宽碎片化流调度方法,其特征在于,所述调度方法是通过流调度控制模块来完成的,包括以下步骤: 步骤1:在软件定义网络架构的数据中心网络中,当新的网络流进入所述网络,所述流调度控制模块从边缘交换机汇总统计数据,并根据预先设定的阈值,筛选出需要进行调度的新网络流; 步骤2:当所述流调度控制模块筛选出需要调度的所述新网络流后,会根据所述新网络流的通讯模式进行网络流带宽需求估算,计算出所述新网络流在网络链路无速率限制的情况下的真实带宽需求; 步骤3:所述流调度控制模块进行调度算法的核心部分:先计算出所述网络中所有符合所述新网络流的所述真实带宽需求的可选路由,所述可选路由中剩余的最小带宽需大于或等于所述真实带宽需求,然后根据每条所述可选路由中剩余的所述最小带宽与所述真实带宽需求之差,给定一个概率,差值越小则所述概率越大,所述差值越大则所述概率越小,根据所述概率随机将所述新网络流分配到所述可选路由之一上去; 步骤4:重置所述流调度控制模块中的所述核心部分,以继续监听符合要求的下一个所述新网络流的到来,等待下一次的触发; 步骤5:所述新网络流结束后,对交换机中没有数据传输的流表项进行清理,并删除掉不符合要求的网络流占据的带宽分配。
2.如权利要求1所述的数据中心去带宽碎片化流调度方法,其特征在于,所述步骤5中采用所述软件定义网络中的空闲超时机制在定长的时间间隔清理所述交换机中的没有数据传输的所述流表项。
3.如权利要求1所述的数据中心去带宽碎片化流调度方法,其特征在于,所述步骤5中采用所述软件定义网络中的控制器周期性的重新计算实时流量统计和路径分配,从而删除掉不符合要求的所述网络流占据的带宽分配。
【文档编号】H04L12/803GK103825838SQ201410062758
【公开日】2014年5月28日 申请日期:2014年2月24日 优先权日:2014年2月24日
【发明者】管海兵, 宋涛, 李健, 马汝辉, 刘宇宸 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1