数据中心的前浪与后浪

2020-10-08  本文已影响0人  个推大数据

上篇——前浪: 传统数据中心的网络模型

个推运维平台高级网络工程师 山川

随着互联网公司规模的扩大,企业对成本控制和数据安全的需求越来越高,大部分公司往往会自建机房,而非租用云服务器。个推在互联网数据中心(Internet Data Center,简称IDC)网络规划和运营方面也经历了几次的迭代和变迁,同时,我们也对数据中心网络发展的历程进行了总结。

我们将围绕IDC网络运营规划的基本要求、传统PC时代的网络架构、移动互联网和大数据时代的IDC网络结构、常用服务器接入技术四个部分对数据中心的发展历程进行拆解。本文将先与大家分享传统数据中心的网络模型。

01数据中心网络建设的基本要求

数据中心网络建设基本要求可以归纳为四点:

a)   带宽和流量模型的适配

 “南北”流量通常指的是进入和离开数据中心的流量。而服务器到服务器间的交互流量,通常称为“东西”流量。传统的“树形”拓扑中“南北”流量占比较高,当需要更大带宽时,我们往往可以通过升级设备的线卡结构或使用端口密度更高的设备来满足要求。现代数据中心内常见的应用,例如Hadoop等,大多采用“东西”流量,其某些特定集群之间需要复制大量数据或进行虚拟机迁移。因此,传统“树形”拓扑不太适用于现在IDC的互联网应用。

b)   资本支出最小化

与网络相关的资本支出(CAPEX)所占比重比较大,仅基础架构就占据了整个数据中心约10-15%支出。尽管绝对成本的支出是不可避免的,但我们还是可以采取一些方式来减少绝对成本的支出。

有以下两种方法:

从采购层面来看,我们可以通过设备标准化来降低成本:比如使用相同类型的设备甚至使用同一种型号的设备,这样我们可以通过批量定价、批量采购的方式,减少设备维护和备件购买成本。

从网络规划层面来看,网络层协议的设计要兼容多厂家,我们可以通过引入多个网络设备供应商,采用竞价的方式来降低成本。

c)   运营支出最小化

数据中心规模越大,企业运营支出成本就越高。据有关统计,网络设备越多,故障率越高。在网络控制层面上,设计越简洁,功能越稳定,这样我们就可以最大限度地减少软件问题相关的故障。

最小化运营支出的一个关键点在于减少网络中故障域的大小。网络(这里指的是以太网络)故障主要是由广播或未知单播流量引起的,我们通过使用全布线设计,可以大大减少数据平面故障域的大小,即将它们限制为网络层次结构中的最低级别。但是,这样的设计不能解决分布式控制平面故障的问题,所以网络设计上我们需要保持简洁,尽量减少控制平面协议的使用以尽可能避免协议交互问题的发生、降低网络整体故障发生的频率。此外,我们还应最大限度减少网络协议的使用,以减少测试成本,提高人效。

d)   流量负载均衡的合理应用

应用程序负载均衡对于任意一个数据中心而言,都是至关重要的功能。在传统流量工程中,负载均衡器是流量转发路径中的专用设备。网络规划可以帮助组内多台负载均衡器合理分配流量。任意播前缀[ RFC4786 ]和等价组合多路径(ECMP)功能可用于实现网络流量调度。

02

传统web时代的网络架构

首先我们要明确一点:大二层网络基本上针对的是数据中心场景,旨在解决数据中心虚拟机动态迁移这一特定需求。对于园区网之类的网络,大二层网络架构适用性不强(除了某些特殊场景,例如WIFI漫游等)。

传统二层架构

为了保障网络的高可靠性,传统的二层架构在应用于数据中心场景中,网络设计上往往采用二层冗余链路,而由于传统二层协议没有任何防环机制,这样的做法容易引发二层环路和广播风暴。为了解决环路问题,我们采用了两种技术:VLAN技术和xSTP技术。而为了解决广播风暴问题,我们采用了如下两个解决方案:

1)通过划分VLAN缩小广播域的规模

VLAN技术可以把一个相对比较大的物理二层域划分成许多较小的逻辑二层域,这种逻辑二层域被称为VLAN。同一个VLAN内可以进行二层通信,不同VLAN之间则进行二层隔离,这样广播的范围就可以控制在一个VLAN内,不会扩散到整个物理二层域。

VLAN虽然可以在一定程度上降低广播风暴的范围和强度,但还是无法防止VLAN内广播风暴的形成(只要同一个VLAN内还有环路)。

2) 通过破环协议防止环路的产生

我们从广播风暴形成的根本原因入手,可以更好地解决广播风暴问题。由于广播风暴是出现环路才导致的,因此,通过一定的手段,防止环路出现就可以有效避免广播风暴的发生。

为防止环路出现,并保证网络的可靠性,我们可以将冗余设备和冗余链路变成备份设备和备份链路,即在正常情况下,将网络冗余的设备端口和链路进行阻塞,使端口与链路临时不参与数据报文的转发。

只有当前转发的设备、端口、链路出现故障,导致网络不通时,冗余的设备端口和链路才会被打开,使网络恢复正常。实现这些自动控制功能的协议我们称为破环协议,其中最常用的协议则是生成树协议(xSTP)。

当然,也有一些其他的破环协议,比如SEP、RRPP等等,其本质思想和xSTP协议一致。

3) 传统的二层技术网络规模之困境

上面提到传统二层网络最主要的技术是VLAN和xSTP,但这两个技术存在以下问题。

a.  VLAN的问题

正如前文所述,VLAN的核心思想之一,就是通过划分VLAN来缩小二层域的范围和规模,从而控制广播风暴的规模。而大二层网络又要求把所有服务器都纳入同一个二层域。这和划分VLAN的初衷是背道而驰的。所以VLAN技术就无法很好地支持大二层网络。

b.  xSTP的问题

xSTP可以解决大二层网络的环路问题,但由于xSTP的收敛性能等原因(如果xSTP的节点过多,那么整网的收敛速度会呈指数级下降),所以一般情况下xSTP的网络要求其交换机数量不能超过100台。同时由于xSTP需要对冗余设备和链路进行阻塞,这也在一定程度上降低了网络资源的带宽利用率。故xSTP协议无法很好地满足大二层网络的需求。

4) 小结

总之,由于前文所提及的制约条件,基于VLAN+xSTP技术的二层网络(作为大二层网络的一种),其所能容纳的服务器数量,通常不会超过1K。这与真正意义上大二层网络至少能容纳一万台以上主机的要求差距甚远。

设备虚拟化架构

传统的xSTP技术无法有效解决大二层环境中的环路问题,于是一种新的技术便应运而生——网络设备虚拟化技术。所谓网络设备虚拟化技术,就是将相互冗余的两台或多台物理网络设备组合在一起,虚拟化成一台逻辑网络设备,在整个网络中只呈现为一个节点。

只要网络设备虚拟化与链路聚合技术相配合,就可以把原来的多节点、多链路的结构变成逻辑上单节点、单链路的结构,从而有效避免环路问题。

网络设备虚拟化+链路聚合技术构建的二层网络天然没有环路,其规模仅受限于虚拟网络设备所能支持的接入能力,只要虚拟网络设备允许,二层网络的规模就不受限制。

但是网络设备虚拟化方案也存在一定的缺点:

1)这些协议都为厂家私有,因此我们只能使用同一厂家的设备组网。

2)由于堆叠系统本身的规模限制,目前最大规模的堆叠/集群大概可以支持接入1-2万主机,对于超大型的数据中心来说,就显得力不从心了。但是对于一般的数据中心而言,还是可以游刃有余地运行的。

随着移动互联网的蓬勃发展,大数据技术应用变得越来越普及,传统时代的IDC架构难以进行动态扩展,Clos架构由于灵活和成本较低的优势,被越来越多的大型互联网公司所采用。

《大数据时代的IDC网络结构和服务器常用接入技术(下篇)》我们将会带大家了解Close架构的核心思想及特性、服务器常用接入技术类型,希望能给大家带来更多启发。

下篇——后浪:移动互联网时代的数据中心设计

前言

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

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

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

03Clos架构为何选择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时代到移动互联网时代的演进过程进行了总结,希望能给大家的网络建设提供一定的思路。个推也将持续关注网络发展趋势,不断探索多种应用场景,与开发者一起分享最新实践。

上一篇下一篇

猜你喜欢

热点阅读