数据中心

数据中心的架构庞大而复杂,本篇文章只是管中窥豹,介绍基本的概念,从而对数据中心有个基本的认知。如有不对之处,请多多指教。

概念

Rack,机架。数据中心里面是服务器。服务器被放在一个个叫作机架(Rack)的架子上面。

Border Router,边界路由器。数据中心的入口和出口也是路由器,由于在数据中心的边界,就像在一个国家的边境。为了高可用,边界路由器会有多个。

运营商网络,一般家里只会连接一个运营商的网络,而为了高可用,,为了当一个运营商出问题的时候,还可以通过另外一个运营商来提供服务,所以数据中心的边界路由器会连接多个运营商网络。

多线 BGP。既然是路由器,就需要跑路由协议,数据中心往往就是路由协议中的自治区域(AS)。数据中心里面的机器要想访问外面的网站,数据中心里面也是有对外提供服务的机器,都可以通过 BGP 协议,获取内外互通的路由信息。

TOR(Top Of Rack)交换机。这一层的交换机常常称为接入层(Access Layer)。

汇聚层交换机(Aggregation Layer)。当一个机架放不下的时候,就需要多个机架,还需要有交换机将多个机架连接在一起。这些交换机对性能的要求更高,带宽也更大。

网卡绑定(bond)。数据中心里面的每一个连接都是需要考虑高可用的。这里首先要考虑的是,如果一台机器只有一个网卡,上面连着一个网线,接入到TOR 交换机上。如果网卡坏了,或者不小心网线掉了,机器就上不去了。所以,需要至少两个网卡、两个网线插到 TOR 交换机上,但是两个网卡要工作得像一张网卡一样。 这就需要服务器和交换机都支持一种协议 LACP(Link Aggregation Control Protocol)。它们互相通信,将多个网卡聚合称为一个网卡,多个网线聚合成一个网线,在网线之间可以进行负载均衡,也可以为了高可用作准备。

为了方便大家理解,下面一张是 Rack 机架的图,一张是 LACP 协议图。

机架图 Rack

LACP 图

有了上面的基本概念之后,我们再进一步深入了解,数据中心的架构。

高可用

高可用问题,是数据中心必须面对的问题。如何解决?

传统的方法是,部署两个接入交换机、两个汇聚交换机。服务器和两个接入交换机都连接,接入交换机和两个汇聚都连接,当然这样会形成环,所以需要启用 STP 协议来去除环,但是这样有一个缺点,两个汇聚就只能一主一备,不能同时工作。因为 STP 协议里之前介绍过,只有一条路会起作用。

交换机有一种技术叫作堆叠,所以另一种方法是,将多个交换机形成一个逻辑的交换机,服务器通过多根线分配连到多个接入层交换机上,而接入层交换机多根线分别连接到多个交换机上,并且通过堆叠的私有协议,形成双活的连接方式。

由于对带宽要求更大,而且挂了影响也更大,所以两个堆叠可能就不够了,可以就会有更多的,比如四个堆叠为一个逻辑的交换机。

汇聚层将大量的计算节点相互连接在一起,形成一个集群。在这个集群里面,服务器之间通过二层互通,这个区域常称为一个 POD(Point Of Delivery),有时候也称为一个可用区(Available Zone)。

当节点数目再多的时候,一个可用区放不下,需要将多个可用区连在一起,连接多个可用区的交换机称为核心交换机。

核心交换机吞吐量更大,高可用要求更高,肯定需要堆叠,但是往往仅仅堆叠,不足以满足吞吐量,因而还是需要部署多组核心交换机。核心和汇聚交换机之间为了高可用,也是全互连模式的。

这个时候还存在那个问题,出现环路怎么办?

一种方式是,不同的可用区在不同的二层网络,需要分配不同的网段。汇聚和核心之间通过三层网络互通的,二层都不在一个广播域里面,不会存在二层环路的问题。三层有环是没有问题的,只要通过路由协议选择最佳的路径就可以了。

如上图,核心层和汇聚层之间通过内部的路由协议 OSPF,找到最佳的路径进行访问,而且还可以通过 ECMP 等价路由,在多个路径之间进行负载均衡和高可用。

小结

上面就是传统数据中心一直采用三层网络架构进行网络部署。

真复杂啊,未完待续。