首页 > 新闻 > 专家观点 >

数据中心互联网络的SDN解决思路

2015-01-09 14:28:07   作者:腾讯公司高级网络架构师 何泽坤   来源:CTI论坛   评论:0  点击:


  SDN应对数据中心互联网络的挑战

  腾讯的网络架构伴随了腾讯15年的发展,几乎承载了全部互联网业务产品,包括即时通信(QQ/微信)、SNS(QZONE)、网络媒体(腾讯网/微博)和游戏(QQGAME)等,为了给广大互联网用户提供更好的接入体验,数十万服务器分布在全球10多个城市、数十个数据中心,产生的跨城数据中心间流量达到数百G规模。在业务类型多样及流量需求规模巨大的情况下,腾讯数据中心间网络主要存在如下挑战:

  首先,从响应业务的角度来看,数据中心间网络链路带宽资源有限,难以满足业务临时性的大容量传输需求,通常需要业务部门自行搭建VPN平台并通过公网传输;对重点业务流量的QoS保障也需要较长时间的扩容来满足,业务部门通常抱怨基础架构侧行动缓慢、缺乏灵活性、响应速度慢。

  其次,从链路利用率角度分析,为确保DCI(Data Center Interconnect,数据中心互联)专线的可靠性需要对其进行1:1备份,所以正常情况下网络链路利用率低于50%。昂贵的DCI专线带宽浪费过半,而业务部门又苦于DCI专线带宽不够,如何提高DCI链路利用率成为一个难题。

  第三,从网络管理的角度分析,在大型骨干网中,由于地理分布较广和业务类型众多等原因,一个管理域中设备数量往往接近1000台,完全通过人工方式来管理如此大型的分布式网络系统,需要一个非常复杂的管理体系和风险控制流程。而且,未来网络规模还会持续不断地增加,完全通过传统方式进行管理将是不可想象的;同时,业务模式的多样性还意味着需要为不同的业务类型提供差异化服务,也就是说,在管理一个规模达1000台设备的网络的同时,还要求在每台设备上为不同类型的业务提供实时变化的差异化服务,其复杂程度可想而知。

  SDN(Software Defined Networking,软件定义网络)将网络配置从单台设备迁移到软件平台,设备本身变得更加简单。网络配置由中央控制器管理,控制器是一个包含算法、分析和规则的软件,它来自一组规则,并使用OpenFlow或其它协议将配置下发到网络设备。SDN允许网络工程师更为灵活地控制和管理网络,以便最好地服务需求,从而达到增加功能和降低运营成本的目的。

  为了更好地满足业务的带宽需求、提升专线利用率以及降低运营复杂度,腾讯逐步实践了数据中心间网络SDN解决方案。为此我们提出了一个全新的概念——“Network as a Router”,它假设整个网络只有一台路由器,所有的功能和配置都在其中实现。试想一下,管理这样的网络将会是一件多么轻松愉悦的事情,不仅如此,通过这台路由器提供的标准API,甚至可以让每个用户来自己管理其在网络上使用的资源。那么,腾讯是如何将数据中心间网络从传统的网络架构演变为“Network as a Router”?又是怎样在SDN解决方案下实现智能的流量调度、网络管理的?

  分阶段逐步演进的解决思路

  规划和构建一个网络就好比建设一座城市,俗话说“罗马不是一天建成的”,网络架构的改变也是一项长期而重大的工程,需要在一个总体的蓝图下分阶段逐步演进。

  道路建设

  任何一座智能城市,都需要建立在稳固的基础设施架构之上,没有好的公路便谈不上城市的智能。网络也是一样,任何智能网络都是建立在稳定、可靠的基础设施之上的。

  在数据中心间网络上,需要选择稳定、可靠的网络设备和主备链路,选择设备节点的异地备份,选择具备良好扩展性的路由协议。物理硬件设施的基础特性跟传统的网络理念是一致的。

  BRT工程

  当一个城市把公路修好之后是否就可以高枕无忧?答案是否定的,随着城市车辆的增多、人口的增长,再宽敞的马路也会逐步产生拥堵,特别是在交通高峰期更会发生大面积拥堵,为了解决这一问题,国内各大城市开始建设BRT(Bus Rapid Transit,快速公交系统)工程,通过公交车专用车道,提前预留专用道路给公交车,让优先级别更高的公交车可以畅通无阻地通行。

  在网络上也需要相应的技术手段预留带宽,让专用的流量在专用的带宽上转发,例如MPLS-TE,不同优先级别的TE,可以为不同类型的业务保障、承诺不同等级的服务。

  智能交通

  现在,驾车者为了更快地到达目的地,通常会选择导航工具来提供所有道路的交通信息,通常导航工具推荐的路径可能不是物理距离最短的,但却是交通最畅通、花费时间最短的路径,这里体现了道路交通的一部分智能化。

  在网络上也可以实现类似的功能,和过去不同的是,现在我们可以把全网的所有链路和设备都看作一个资源池,从A点到B点,使用者不需要知道直连的物理链路有多少,只需能够调配资源池里面的所有资源即可,因为从A到B不仅仅只有A→B直连的路径,也有可能是A→C→B或者A→D→B。到底使用哪个路径到达目的地,使用者也许不必关心。

  如何把不同的流量放到不同的路径上,从而避免网络发生拥塞的情况,这就完全依赖于网络控制器了(Network Controller)。Controller不仅仅能看到某条物理专线的带宽,还能看到整个资源池,对池中的资源进行总体调度,它可以判断哪里有网络带宽,甚至与业务应用的计算联动,根据网络资源情况将计算放到有资源的节点进行处理。

  网络控制器拥有面对用户的接口,能够获取网管工具传递的信息,并通过用户信息和网管信息等有效控制网络设备和网络资源。它可以根据实时需求将不同的flow在不同的路径上进行添加、删除、修改等操作,让全网资源得到合理的共享。这就相当于将全网看作一台路由器,只需要维护和管理控制器就可以管理整个网络,从而实现“Network as a Router”的目标。

  智能调度网络的技术实现

  腾讯的下一代数据中心间网络将会实现资源自动池化、业务应用自动化管理网络资源、业务应用自动感知网络资源等特征。业务系统直接通过网络系统提供的北向API接口实现自动申请、使用和释放网络资源,利用集中式调度系统自动完成网络资源合理分配和使用。为了实现以上智能调度工作,PCEP(Path Computation Element Protocol)协议给了控制器和路由器一个非常好的交互接口。

  传统网络设备的工作角色

  在未来的网络世界,报文的转发路径不能再由每个独立的路由器决定。原因很简单,因为网络中每个独立的路由器就像城市中的汽车一样,只知道自己怎样走,不会去考虑会不会给整个城市带来交通拥堵。

  因此,未来数据中心间网络中的路由器的角色将会发生变化,由原来的计算路径、转发报文两个功能减少为只有转发报文的能力,而路径计算将会交给集中式智能管理系统统一计算和调度。在PCEP协议中,传统路由器将担当PCC(Path Computation Client)角色,在整套控制系统中成为控制系统的Client端。

  集中控制系统的工作角色

  集中控制系统就像一个交通枢纽中心,它知道每一条道路的容量、当前流量以及路上每一辆汽车将要到达的目的地。利用这些信息,它可以通过智能算法为每一个业务flow计算出最合适的路径。所以集中控制器就成为了PCEP协议中的Server端。但在整个控制系统中,核心部分是控制系统的逻辑算法,而不是PCEP协议,PCEP协议只是为传统网络设备提供了北向接口,为控制器提供了南向接口。

  为什么说控制系统中最重要的是逻辑算法呢?因为不同的网络、业务系统和业务类型对网络资源有不同的要求,在传统网络架构中,只能按照统一的硬件网络设备设计好的路径转发,而不能灵活地为不同的业务类型提供不同的选路方案。

  在传统网络中,硬件设备提供商或者IETF协议已经把规则固化在硬件设备中,允许用户调整的空间很小,作为用户只能按照固化的规则进行业务的部署。那么这是否是我们想要的呢?从众多的实际业务部署场景中可以看到,很多时候网络的路径选择并不是最贴合业务需求的,这些方案的选择应该交给网络的使用者来决定,甚至应该交由上层的业务应用层进行选择。作为网络的使用者,应当能更多地控制路径选择的逻辑算法,甚至可以为每种不同类型的业务应用提供不同的网络选路算法。

  业务应用系统的工作角色

  上面所说的网络控制系统是为业务应用系统提供服务的,业务应用系统通过调用网络控制系统提供的北向API接口来申请、使用、释放网络资源,通过API接口通知网络控制系统业务的真实需求(包括需求带宽、延时、使用时长等信息)。

  向更简单、更智能方向发展

  为了不断提高广大互联网用户的使用体验,满足不断发展的业务需求,我们正在尝试利用SDN的思路研究下一代数据中心互联网络。

  在过去阶段,腾讯按照业务带宽需求构建了一个高速、稳定、可靠的数据中心间网络,并且全面承载腾讯所有类型的业务,实现了网络资源的灵活共享。在现阶段,我们正在进行BRT工程的建设,使用SDN的初级理念实现QoS的集中管理和控制,使用MPLS-TE提供业务差异化服务能力,为业务的快速部署提供了坚实基础。在未来阶段,我们将进一步引入SDN理念,采用Controller控制全网flow的转发,让特定的flow转发到特定的路径上。实现集中控制的智能调度网络,简化网络管理。

  可以预计的是,基于SDN理念的网络正向着更简单、更智能化的方向发展,未来将会衍生出一系列相对于现有路由协议更轻量级、更易于管理的协议。千里之行,始于足下,今天我们研究SDN,应该着眼于如何协调网络的能力,增加网络的可视化,提升网络的差异化服务,从而为今后提供更智能、更便捷的服务夯实基础。

  今天,我们探讨了数据中心间网络流量调度的思路,通过这个思路可以解决我们长期以来DCI流量模型的困惑,指导我们未来DCI流量调度的发展方向。但是否所有问题都解决了呢?在大型网络中,大量的路由条目、运行了20多年的BGP协议、每个AS各自管理自己的路由条目接收发送、由于某些运营商的不正确操作经常导致大规模故障事件……这种运营了20多年的互联网协议和模式是否还适合今天的运营环境?这应该引起大家更多的思考。

分享到: 收藏

专题