目前已经有大量关于提高数据中心间网络性能的研究[1][2][3][4][5],但这些已有研究都专注于改善每个数据中心对之间的广域网路径的性能。由于这些方法未能利用存在于地理分布的数据中心上的大量应用层覆盖路径,也未能发现服务器存储转发数据的能力,因而它们是不完备的。而通过覆盖路径的使用,结合对带宽的预测,实时地对数据复制传输进行调度,能够实质性地提高数据中心间数据复制的性能。
关键词: 数据中心 流量调度 预测
一、 引言
如今,越来越多的大型企业在全国各地构建起了自己的数据中心以及跨数据中心域的数据传输平台。但是,连接每个数据中心对的长途链路十分昂贵,因此提高数据中心间链路的利用率能够为企业带来巨大的效益,尤其是随着5G的到来以及传输数据量的急剧膨胀,数据中心间链路利用率的提升更为紧迫,其所带来的效益更为显著。
传统的数据中心间的数据复制方法具有三个局限:
第一,低效的局部适应。现有的非集中式的协议缺少全局视图,这将导致次优的调度和路由决策。每个服务器仅看到可用的数据源(已下载部分文件的服务器)的子集,因此不能利用所有可用的覆盖路径来最大化吞吐量。即使覆盖网络只是部分分散,得到次优性能的现象也会发生[9]。即使每个服务器都有全局视图,单个服务器的本地适应仍然会在覆盖路径上产生潜在的热点和拥塞。
第二,高计算开销。为了得到全局视图并且实现最优的调度协议,现有的集中化的协议都要承受高的计算开销。大多数模型都是超线性的,所以集中化协议的计算开销通常都是指数增长的,这使得这些协议实际上不可行。
第三,固定的带宽分离。固定地分离链路带宽将会导致过度使用带宽或者不能充分使用带宽的现象。理论上,如果我们能够实时地充分利用在线流量所剩的可用带宽,则链路利用率会更稳定。
所以本文提出了基于预测的实时增量调度的方法。
二、 研究背景及现状
在数据中心间进行数据复制的需求急剧增长,为了满足这一需求,百度几年前部署了一个应用层的覆盖网络——Gingko。尽管后来Gingko进行了改良,但它依然基于接收者驱动的非集中化的覆盖多播协议,这类似于在其他覆盖网络(如CDNs和基于覆盖的实时视频流[6][7][8])中使用的协议。它的基本思路是,当多个数据中心希望从一个源数据中心中请求一个数据文件时,被请求的数据将会经过多阶段的中间服务器传回请求方,其中,每个阶段的发送方选择是由下一阶段的接收者以分散的方式驱动的。
为了提高数据中心间WAN的链路利用率,Google先后提出了B4 WAN[17]以及它的升级版本B4 and After[18],此外还有支持TE组件的BwE组件。
B4是连接Google全球数据中心的专用WAN,在它提出时,Google在全球的数据中心站点有12个,而到B4 and After提出时,Google的全球数据中心站点已经达到了33个。而且Google也表明,在B4提出之后的5年之内,带宽需求已经增长了100倍,而且会以每9个月翻倍的速度增长。B4 整体采用SDN的结构来实现,SDN能够提供一个运行在商用服务器上的、专用的、基于软件的控制平台,让使用者能对全局状态进行分析,简单地对计划内和计划外的网络变化进行协调。OpenFlow能够搭建SDN的生态系统,Google通过它可以开发多种switch/data平面元素。SDN和OpenFlow将软硬件的发展进行了解耦,使得控制平面的软件更简单,发展更快,同时促使数据平面的硬件能够基于可编程性来发展。此外,使用SDN的结构还有其他优势:新协议的快速迭代;简化的测试环境;通过模拟确定性中央TE服务器而不是尝试分布式协议的异步路由,可以改进TE规划;通过以结构为中心而不是以路由器为中心的WAN视图,可以简化网络管理。由于B4采用了SDN的结构,而且当时没有现有平台可以支持SDN部署,因此Google还定制了自己的交换机硬件。B4主要通过一个集中式的流量工程(TE)算法来为应用分配带宽,实现最大最小公平(max-min fairness),这一方式能够使链路利用率达到接近100%。
针对增长了100倍的带宽需求,从99%到99.99%的可靠性要求,以及容量不对称的现象,Google提出了B4 and After。B4的扩展方案是在原有站点附近新增站点,这样将会影响TE优化算法的性能,而且有限的交换机转发表空间将成为瓶颈。因此B4 and After将每一个站点设计为两层的拓扑抽象,底层引入一个称为supernode的结构,这是由商用硅交换芯片构成的标准两层Clos网络,顶层将多个supernode节点连成一个全网状的拓扑。这样一来,通过添加supernode节点便可以实现横向的扩展,通过仅更新需要的supernode便可以实现纵向的扩展,划分为supernode的粒度又能够提高可用性。分层拓扑结构中的容量不对称现象会降低链路可利用的空间,阻碍链路利用率的提升,为了解决这一问题,Google引入了sidelinks的概念。Sidelinks连接每个站点中的supernodes,构成全网状的结构,通过使用sidelinks,中央控制器动态地平衡一个站点中的由WAN链路故障引起的容量不对称。然而,之前的站点级别的TE并不能做到这些,这就需要一个supernode级别的TE来计算sidelinks的容量。但是,仅使用supernode级别的TE,需要进行IP-in-IP的封装,而且不能很好地收敛计算时间,同时还需要更大的交换机转发表来支持。于是,Google采用了分层TE的做法,结合使用站点级别的TE和supernode级别的TE。这样的做法只需要一次封包封装就能够实现站点到站点的传输,而且最短路径的计算成本较低,能够实现可扩展。
三、 动态分离的传输机制
3.1 DC间流量特征分析