zoukankan      html  css  js  c++  java
  • 后浪:移动互联网时代的数据中心设计

    前言

    随着移动互联网的蓬勃发展,今天的数据中心和10年前的数据中心大为不同,无论从IDC的机器规模,还是流量模型都发生了很大变化。《前浪:传统数据中心的网络模型》已经为大家介绍了数据中心网络建设的基本要求、传统web时代的网络架构;本文将从以下几方面对移动互联网时代的数据中心进行介绍。

    01 移动互联网时代的数据中心网络设计的目标是什么?

    02 移动互联网时代数据中心的架构是怎样的?

    03 Clos架构为何选择BGP作为路由协议?

    04 数据中心中服务器双归路接入是怎样的?

    作者| 个推高级运维工程师 山川

    01

    互联网时代数据中心的设计目标

    现代数据中心的演进都是由大型互联网公司的需求驱动的,数据中心的核心需求主要包括三个维度:

    a)  端到端(server to server)的通信量

    单体应用到微服务化的转变,导致南北向流量减少,东西向流量增加。

    b)  规模

    现代数据中心一个机房可能就有数万台服务器。

    c) 弹性

    传统数据中心的设计都是假设网络是可靠的,而现代数据中心应用都是假设网络是不可靠的,总会因为各种原因导致网络或机器故障。弹性就是要保证发生故障时,受影响的范围可控,故障后果可控。

    现代数据中心网络必须满足以上三方面基本需求。

    注:多租户网络需要额外考虑支持虚拟网络的快速部署和拆除。

    02

    现代数据中心网络架构

    目前,大型互联网公司采用一种称为 Clos 的架构。Clos 架构最初是贝尔实验室的 Charles Clos 在 1950s 为电话交换网设计的。Clos设计可以实现无阻塞架构(non-blocking architecture),保障上下行带宽都充分利用。

    1) Clos架构由来

    传统三层网络架构采用的“南北流量模型”,不适用于移动互联网环境。2008年,一篇题为《A scalable, commodity data center network architecture》的文章,首先提出将Clos架构应用在网络架构中。2014年,在Juniper的白皮书中,也提到了Clos架构。这一次,Clos架构应用到了数据中心网络架构中来。这是Clos架构的第三次应用。由于这种网络架构来源于交换机内部的Switch Fabric,因此这种网络架构也被称为Fabric网络架构。现在流行的Clos网络架构是一个二层的spine/leaf架构, spine交换机和leaf交换机之间是以full-mesh方式连接。

    2) Clos架构中交换机的角色

    Clos架构中交换机有两种角色:leaf switch 和 spine switch。

    leaf switch:相当于传统三层架构中的接入交换机,作为TOR(Top Of Rack)直接连接物理服务器。与接入交换机的区别在于,L2/L3网络的分界点现在是在leaf交换机上,leaf交换机之上则是三层网络。

    spine switch:相当于核心交换机。spine和leaf交换机之间通过ECMP(Equal Cost Multi Path)动态选择多条路径。区别在于,spine交换机现在只是为leaf交换机提供一个弹性的L3路由网络,数据中心的南北流量可以选择从spine交换机发出,也可以与leaf交换机并行的交换机(edge switch)先连接,再从WAN/Core router中出去。

    3)Clos网络架构的特点

    a) 连接的一致性(uniformity of connectivity):任意两个服务器之间都是 3 跳

    b) 节点都是同构的(homogeneous):服务器都是对等的,交换机/路由器也是

    c) 全连接(full-mesh):故障时影响面小(gracefully with failures);总带宽高 ,而且方便扩展,总带宽只受限于 Spine 的接口数量

    4)Clos架构和传统三层网络对比

    对比spine/leaf网络架构和传统三层网络架构,可以看出传统的三层网络架构是垂直的结构,而spine/leaf网络架构是扁平的结构。从结构看,spine/leaf架构更易于水平扩展。

    5)移动互联时代二层技术Vxlan

    Vxlan(虚拟扩展局域网),是由IETF定义的NVO3(Network Virtualization over Layer 3)标准技术之一,采用L2 over L4(MAC-in-UDP)的报文封装模式,将二层报文用三层协议进行封装,可实现二层网络在三层范围内进行扩展,同时满足数据中心大二层虚拟迁移和多租户的需求。

    6)Clos和Vxlan结合的逻辑二层网络模型

    路由转发层面采用Clos组网模式,二层的虚拟机漂移用Vxlan技术隔离二层的广播域,兼具三层组网的灵活性,同时又避免了二层的环路和广播风暴问题。

    03

    Clos架构中为何选择BGP作为路由协议

    运营商和数据中心场景对比

    在 BGP 应用于数据中心之前,它主要服务于提供商网络。这导致的一个问题就是,数据中心不能运行 BGP,否则会和底层供应商的网络相冲突。网络管理和运维人员,应重点关注这一点。

    运营商和数据中心网络场景对比

    数据中心:高密度连接

    服务提供商:主要是区域间网络互联,相对低密度连接

    服务提供商的网络首先需考虑可靠性,其次才是(路由等)变化的快速通知。因此,BGP 发送通知的实时性较弱。而在数据中心中,路由需要快速收敛。

    另外,由于 BGP 自身的设计、行为,以及它作为路径矢量协议的特性,单个链路挂掉会导致节点之间发送大量 BGP 消息。BGP 从多个 ASN 收到一条 prefix(路由网段前缀)之后,最终只会生成一条最优路径。而在数据中心中,我们希望生成多条路径。为适配数据中心而对 BGP 进行的改造,大家可以自行查阅FRC 7938文档。

    BGP从运营商环境适配到数据中心的改动

    数据中心的改动以及需要考虑的因素主要涉及到以下几个方面:

    各种路由协议

    传统 BGP 从 OSPF、IS-IS、EIGRP等内部路由协议(internal routing protocols)接收路由通告,用于控制企业内的路由。因此不少人误以为要在数据中心中落地 BGP,还需要另一个协议。但实际上,在数据中心中 BGP 就是(特定的)内部路由协议,不需要再运行另一个协议了。

    iBGP和eBGP

    不少人在数据中心协议选择中存在一个误区,即认为在数据中心内部,就应该选择内部网关协议(iBGP)。实际上,在数据中心中, eBPG 的使用最为广泛,其主要原因是 eBGP 比 iBGP 更易理解和部署。iBGP 的最优路径选择算法很复杂,而且存在一些限制,其使用、配置、管理相对比较复杂,而eBGP 的实现比 iBGP 简单的多,可供我们选择的路径也比较多。

    默认定时器导致的慢收敛

    简而言之,BGP 中的几个定时器控制 peer 之间通信的速度。对于 BGP,这些参数的默认值都是针对服务提供商环境进行优化的,其中稳定性的优先级高于快速收敛。而数据中心则相反,快速收敛的优先级更高。

    当一个节点挂掉,或挂掉之后恢复时,有四个定时器影响 BGP 的收敛速度。我们对这些参数进行调优,可以使BGP 达到内部路由协议(例如 OSFP)的性能,推荐配置如下:

    Advertisement Interval

    Keepalive and Hold Timers

    Connect Timer

    Advertisement Interval

    Advertisement Interval

    在发布路由通告的间隔内所产生的事件会被缓存,等时间到了一起发送。

    默认:eBGP 是 30s,iBGP 是 0s。

    对于密集连接型的数据中心来说,30s 显然太长了,0s 比较合适。这会使得eBGP 的收敛速度达到 OSFP 这种 IGP 的水平。

    Keepalive and Hold Timers

    每个节点会向它的 peer 发送心跳消息。如果一段时间内(称为 hold time)网络设备没收到 peer 的心跳,就会清除所有从这个 peer 收到的消息。

    默认:

    Keepalive: 60s

    Hold timer: 180s

    这表示每分钟发一个心跳,如果三分钟之内一个心跳都没收到,就认为 peer 挂了。数据中心中的三分钟太长了,足以让人“过完一生”。

    典型配置

    Keepalive: 3s

    Hold timer: 9s

    Connect Timer:节点和 peer 建立连接失败后,再次尝试建立连接之前需要等待的时长。

    默认:60s。

    数据中心默认 BGP 配置

    很多 BGP 实现的默认配置都是针对服务提供商网络调优的,而不是针对数据中心。

    建议:显示配置用到的参数(即使某些配置和默认值相同),这样配置一目了然,运维和排障都比较方便。

    以下是 FRRouting BGP 的默认配置,我们认为是数据中心 BGP 的最优实践,供大家参考。

    Multipath enabled for eBGP and iBGP

    Advertisement interval: 0s

    Keepalive and Hold Timers: 3s and 9s

    Logging adjacency changes enabled

    数据中心服务器接入技术概述

    数据中心服务器接入主要采用以下三种模式:

    1)主备双上联模式

    服务器网卡bond模式配置mode 0 ,链路双上联主备模式,Tor层面采用两台独立的交换机。

    2)链路捆绑双上联

    服务器网卡bond模式配置mode 4 ,动态lacp协商,TOR交换机采用两台逻辑虚拟化部署,从设备和链路层逻辑上都呈现为传统二层模式,是当前用的较多的接入技术方案。

    3)M-lag 技术

    服务器网卡bond模式配置mode 4 ,动态lacp协商,TOR交换机采用两台独立部署,中间加心跳线,运行M-lag协议。这个是国内设备厂家支持的通用技术。

    结语

    IDC网络是上层应用的基础,稳定的网络建设才能为上层应用提供强大的支撑和保障。本文对IDC网络从PC时代到移动互联网时代的演进过程进行了总结,希望能给大家的网络建设提供一定的思路。个推也将持续关注网络发展趋势,不断探索多种应用场景,与开发者一起分享最新实践。

  • 相关阅读:
    剑指Offer-30.连续子数组的最大和(C++/Java)
    剑指Offer-29.最小的K个数(C++/Java)
    UVA 1616 Caravan Robbers 商队抢劫者(二分)
    UVA 10570 Meeting with Aliens 外星人聚会
    UVA 11093 Just Finish it up 环形跑道 (贪心)
    UVA 12673 Erratic Expansion 奇怪的气球膨胀 (递推)
    UVA 10954 Add All 全部相加 (Huffman编码)
    UVA 714 Copying Books 抄书 (二分)
    UVALive 3523 Knights of the Round Table 圆桌骑士 (无向图点双连通分量)
    codeforecs Gym 100286B Blind Walk
  • 原文地址:https://www.cnblogs.com/evakang/p/13783049.html
Copyright © 2011-2022 走看看