数据中心网络中面向流的路径选择和调度算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.2 国内外研究现状
1.2.1 数据中心网络概述
数据中心网络是近年来提出的概念,数据中心网络(Data Center Network,DCN)是连接大量服务器的部署于数据中心的网络,传统数据中心网络已经暴露了很多问题,传统数据中心层次结构如图1.1所示:
Internet
图1.1 传统数据中心网络结构
1.服务器到服务器之间的连接和带宽受限,主要原因是AR和BR路由器之间的
链路容量远远低于服务器的输出容量,导致不同层的服务器之间的带宽受限。
2.数据中心流量具有动态性、不均衡性和突发性,传统流量工程方法难以有效工
作。
3.传统数据中心的三层结构需要为每个交换机配置网络信息,并同步地址分配服
务器的子网IP地址,需要大量人工配置且容易发生配置错误。
4.传统数据中心广泛引用TCP协议,TCP协议是基于Internet开发的,不能满足
低时延和高带宽需求,而且容易导致链路资源利用率低。
基于数据中心内的流量有数量大、集中和东西流量渐长的特性,这需要数据中心网络作出进一步的提升:服务器之间的高速传输和高带宽、规模容易拓展而且成本低、DCN 要具有健壮性(能处理各种设备或链路失效)、配置自动化、高效的拥塞控制、高效的网
络协议和能效性(单位能源的效率)等等。面对这样情况,传统的三层树形结构不能完全满足需求,网络扁平化、网络虚拟化以及SDN 网络成为数据中心网络结构可以发展的新方向。
数据中心网络拓扑结构可分为:
1. 以交换机为中心
在这种结构中网络流量都是由交换机和路由器所路由,通过改变网络连接方式和路由策略来达到各种目标。主要结构有FatTree 、VL2、PortLand 等。文献[3]提出FatTree 结构,FatTree 结构如图,Fat-Tree 三层结构包括核心层(Core)、聚集层(Aggregate)和边缘层(Edge)。聚集层交换机和边缘层交换机组成一个Pod ,若有n 个Pod ,则一个Pod 包含n 个交换机,其中聚集层和边缘层各n/2个。Fat-Tree 通过在核心层多条链路实现对负载的及时处理,避免网络拥塞,通过在Pod 内合理分流,避免过载问题。
核心层
汇聚层
边缘层
图1.2 Fat-tree 结构图
VL2[4]属于switch-only 结构,交换机分为三层:中间交换机、汇聚交换机和机架交换机,结构如图1.3。最底层的机架交换机连接多个服务器,服务器到机架交换机的带宽为1Gbps ,机架交换机到汇聚交换机和汇聚层交换机到中间层交换机的带宽为10Gbps ,VL2拓扑分为两层,机架交换机和其下服务器组成服务器集群,汇聚交换机和中间交换机构成交换网络层。VL2中的多路径可以提高交换机失效的容错。但是和FatTree 类似,对底层交换机故障容忍差,容易子网瘫痪。
服务器
图1.3 VL2网络拓扑结构
2. 以服务器为中心
服务器为中心结构中通常用迭代方式构建网络,通过少量交换机连接大量服务器,服务器不仅作为终端也作为路由传输节点。这样避免了核心层交换机的传输瓶颈。这类结构现有BCube 、DCel 、FiConn 等。BCube [5]设计目标是为数据中心模块之间互联。一个BCube k 由n 个BCube k-1 和n k 个n 端口的miniswitch 相连接,结构如图1.4所示。
Bcube 对于发生网络故障的时候网络性能下降较为缓慢,而且能为多对多通信模式提供高网络容量。Bcube 中有大量的mini-switch,在构建大规模数据中心时设备开销不够低,而且布线复杂。
Level 1
图1.4 BCube 1结构
1.2.2 多约束QoS 路由算法概述
随着互联网的飞速发展,网络用户的需求也逐渐提高,而对不同业务的服务质量(QoS)的要求也不尽相同,所以网络需要根据不同用户的不同的需求从而调度资源来满足用户需求。
现有互联网通常采用的是best-effort[6]的模式提供服务,但是这种模式下,网络资源面对所有用户应用是公平共享的,路由器对数据包也是采用先来先服务的策略。这种模式在数据量不大或者网络负载轻时所提供的服务质量尚可,但也可能导致早到的但是时间充足的流得到了带宽而晚到的接近超时的流不能完成传输,而在网络资源不能充足的满足用户需求资源时候,用户之间的恶意竞争会导致竞争用户的服务质量下降。怎样为用户提供高质量而且稳定的服务成为热点,多约束QoS路由算法被提出。
多约束QoS路由算法使用一组参数来评估服务质量,这些评估标准有时延、抖动、带宽利用率、丢包率等等,基本思想是找到源-目的满足QoS需求的路径。文献指出多约束QoS路由算法属于NP完全问题,而现有的一些降低复杂度的方法有:缩小搜索空间、简化QoS约束、启发式算法等等。
扩展的Dijkstra算法[7]能够用来解决这个问题,它要求每个节点b都要存储从a到b的路径集合。通过每个节点记录优化路径来找到满足QoS的路径,这种方法的缺点也是明显的,节点的路径集合随着节点数量的增多指数增长,时间和空间复杂度都限制了算法的实用性。由于提出的较早,还处于对QoS路由的探索阶段,有一定的借鉴意义。
文献[8]提出了一种分布式算法,算法过程为首先从源节点通过广播方式发送探测数据包,在传输过程中,中间节点将自己的时延和数据包已经过路径时延相加,判断是否超过约束值,超过则停止转发,为了防止数据包回流,每个节点只会接受同样的数据包一次,直到达到目的节点时,则经过的路径是满足要求的。
基于拉格朗日松弛算法[9],通过松弛可以将约束条件总和为目标函数,将问题转化为仅仅求最优路径的问题,这种想法比较巧妙,但是算法循环次数不能保证,精度也不高。
MCP问题即多约束路径问题,就是在一个多加权图中找到满足约束条件的可行路径,并不一定是最优路径。MCOP问题则更进一步,求满足约束的最优路径。文献[10]将多目标最优路径转化为单目标最短路径来考虑。
A*Prune:算法[11]是基于A*算法在多约束路由算法中的延伸,A*算法是一种人工智能启发式搜索算法,在选择下一步节点时候,使搜索方向趋近目标节点。算法每次迭代时,都会将肯定会超出约束的路径剪除,保证只有那些有可能成为可用路径的路径,选择哪个路径进行拓展哪个进行剪除取决于预期的路径成本函数。A*Prune算法很大程度上缩小了搜索范围。