我们无论访问数据,数据的最终来源都是来源于数据中心,我们看了这么多的网络协议和网络相关的知识,那么数据中心内部是怎么构成的呢?

首先说,数据中心中有很多的服务器,服务器被放在了一个个机架上面

然后数据中心的入口和出口同样部署的很多路由器,因为身处数据中心的边缘,所以是边界路由器,为了提高可用性,边界路由器会有很多个

为了提高不同运营商的网络的访问速度,我们往往需要接入多家运营商的网络,然后由因为这些边路往往都是跑着BGP协议,所以就是常见的多路BGP的概念

如果数据中心的服务器很多,那么在机架内部,必然存在着交换机,将其连接起来,进行互相通信

这些交换机往往都是放在机架顶端的,经常被称为 TOR 交换机, Top Of Rack,这一层的交换机被称为接入层的交换机

图片

然后因为可能存在多个机架,每个机架内部有一个TOR,机架之间也需要交换机,这些交换机对于带宽的要求更高,被称为 汇聚层交换机

数据中心里面每一个连接需要考虑高可用的,

对于每一个服务器,都需要考虑如果服务器断开连接怎么办,为了避免服务器断开连接,我们要 保证服务器的连接稳定,如果一台机器只有一个网卡,上面连着一个网线,接入到了TOR交换机上了,如果网卡坏了,可能导致机器上不去了,所以,可能需要两台的网卡,两个网线插到TOR交换机上,两个网卡工作的要像是一张网卡,就是网卡绑定 bond

这就需要服务器和交换机支持一种协议 LACP (link aggregation Control Protocol)链路聚合协议,将多个网卡聚合成为一个网卡,多个网线聚合成为了一个网线,网线之间可以负载均衡,提高网络连线稳定性

图片

网卡有了高可用的保证,交换机还需要,如果一个机架只有一个交换机,挂了就完犊子了,因此TOR层的交换机也需要高可用,同理接入层和汇聚层的连接也需要高可用性,不能单线连接

于是,比较传统的,我们部署两个接入的交换机,两个汇聚的交换机,服务器和两个接入交换机都连接,接入交换机和两个汇聚交换都连接\

图片

但是需要使用STP去去除环,因此这样的线路只能变成一主一备,导致只有一条线路会产生作用

交换机后来推出了一个新的技术,叫做堆叠,就是将多个交换机形成一个逻辑的交换机,服务器通过多个线分配到多个接入层的交换机上,接入层的交换机分别连接到多个交换机上,通过堆叠的私有协议,形成了双活的连接方式

图片

对带宽的要求更大,挂了影响更大,所以需要更多的堆叠

汇聚层将大量的节点互相连接到一起,形成一个集群,在这个集群里面,服务器之间通过二层互联,这一个区域就是POD, 有时候也被称为一个可用区 Available Zone

每个可用区也需要连接在一起,连接多个可用区的交换机被称为核心交换机

图片

对于核心交换机,要求的带宽更高,稳定性也更高,所以必须要有堆叠,但是只是堆叠是不行的,要满足吞吐量,还要部署多组核心交换机,核心和汇聚交换机为了保证高可用,必然也是全互联的’

那么,就还有一个问题,出现了环路怎么办呢?

对于不同的可用区,在不同的二层网络,都分配不同的网段,汇聚和核心之间通过三层网络连接,二层不再一个广播域上,不会存在一个二层环路的问题,三层出现了环,没有问题的,只要能够通过路由协议选择最佳的路径就可以了

图片

核心层和汇聚层之间是利用的三层协议,其中涉及到了内部的路由协议OSPF,找到最佳的路径去访问,而且通过ECMP等价路由,在多个路径之间进行负载均衡和高可用

但是随着数据中心的机器越来越多,就会有了云计算,大数据,集群规模这些内部链接要求更高的资源,那么就将二层互联从汇聚层上升到核心层,也就是核心之下,都是二层互联,一个大二层的概念

图片

核心交换机的对于吞吐量要求更大,肯定需要堆叠,但是往往只是堆叠,不足以满足吞吐量,还是需要堆叠多组核心交换机,核心和汇聚交换机为了高可用,也是全互联

对于出现的环路,可以分配不同的Vlan来避免二层环路,汇聚和核心之间通过三层连接,而三层之所以可以,ip层可以通过路优协议选择最佳的路径,比如,核心层和汇聚层通过内部的路由协议OSPF,找到最佳的路径,而且多个相同路径还可以通过ECMP等价路由,来进行负载均衡

随着数据中心的机器数目的上升,有了云计算和大数据后,集群的规模很大,而且都要求在一个二层网络上,这就需要二层互联从汇聚层上到核心层,在核心之下,都是二层,

这就是大二层

图片

如果大二层的横向流量不大,核心交换机的数目不多,可以丛堆叠,但是横向流量很大,堆叠满足不了,就需要多组核心交换机而且全部互联,组和组之间全部互联,对于STP,部署多组核心无法扩大横向流量的能力,而且这是大二层,只能使用STP协议,在很久之前,大二层是使用TRILL协议的,多链接透明互联协议的,就是在二层模拟三层的路由能力

运行TRILL协议的交换机称为RBridge,根据路由转发特性的网桥设备,不过是根据MAC来的,不是根据IP来的

Rbridge之间通过链路状态协议在运行,这个协议学习整个二层的拓补,知道访问哪个MAC该从哪个网桥走,计算最短的路径,也可以等价的路由进行负载均衡和高可用

图片

TRILL协议在原本的MAC头外面加上自己的头,以及外部的MAC头,TRILL头里面是Ingress RBridge,好比就是原地址和目标地址(Egress RBridge),内部的目标和源MAC不会变,但是外部的会发生改变,

如果有一个包从主机A发送到主机B,中间经过了RBridge 1,RBridge2,RBridge X等,直到RBridge3

在这个过程中,外层首先加上了一个TRILL头,里面描述了这个包从RBridge 1进来的,从RBridge3出去,并且还有一个跳数,目的MAC是RBridge2,源MAC是RBridge1,以及外面的VLAN

然后RBridge2收到了包之后,首先看MAC是否是自己的MAC,如果是,看自己是不是Egress RBridge,是不是最后一跳,如果不是,那就要看跳数是否大于0,然后通过路由查找,找到下一跳,发送出去

RBridge2发出的包,内部信息不变,但是外层的TRILL头里面,将目标Mac编程RBridge X,源MAC编程RBridge2

知道转发到RBridge3,进行解析包,这个过程中和IP路由很相似

对于大二层的广播包,通过分发树来实现,我们知道STP是一个有环的图,可以去掉边形成一棵树,而分发树是一个有环的图形成了多个树,每个数都有自己的VLAN,有的包从VLAN A广播,有的从VLAN B广播,实现了负载均衡和高可用

图片

在核心交换机之外,就是边界路由器,这样从服务器到数据中心边界的层次已经清楚了

在核心交换机之上,还会有些诸如防火墙的防御设备,是整个数据中心的屏障,防止外来攻击

而且对于数据存储,一般来说,还有一个存储网络,用来连接SAN和NAS,对于新型云计算来说,往往不用传统的SAN和NAS,而是使用x86极其的软件来定义,这样可以和计算节点融合在一个机架上面,更有效率

图片

这就是一个典型的三层网络结构,整体分为了接入层 汇聚层 核心层三层,这种模式非常有利于外部流量请求到内部请求到内部应用,从外到内从上到下,上北下南,称为南北流量

但是伴随着云计算和大数据的发展,节点之间的交互越来越多,例如大数据计算要把数据从节点之间考来考去,这样的流量就从左到右,称为东西流量

为了解决东西流量问题,发展出了叶脊网络 Spine/Leaf

叶子交换机 leaf,直接连接物理服务器, L2/L3网络的分界点在叶子交换机上,叶子交换机之上就是三层网络

脊交换机 spine switch 相当于核心交换机,叶脊之间通过ECMP动态选择多个路径,脊交换机为叶子交换机提供一个弹性的L3路由网络,南北流量不从脊交换机从,而是通过和Leaf交换机并行的交换机,接到边界路由器出去

图片

传统的三层网络架构是垂直结构,叶脊网络架构是扁平的结构,横向更快

本章小结:

数据中心分为三层,服务器连接到接入层,然后是汇聚层,最后是核心层,最外面是边界路由器和安全设备

数据中心的所有链路都需要高可用性 ,所以服务器多层网卡做bond,服务器做链路汇聚,交换机做堆叠,三层设备通过等价路由 OSPF等,二层设备通过TRILL协议

随着大数据和云计算的出现,原本的三层设计,南北流量越来越不如东西流量重要了,于是演化出了叶脊网络

课后思考

1.数据中心中,高可用很重要,那么跨机房的高可用,怎么办呢?

2.对于前面之前说的,都是公网访问数据中心,IT管理员怎么访问呢?

1.利用专线互联,设置多活,例如两地三中心,异地双活,服务器部署在多个机房里面,机房之间完全对等,一个机房出现了问题,立刻切换

2.利用相对应的堡垒机和VPN进行接入吧

1.对于跨机房的高可用,基本分为了两个等级

同城双活,异地灾备

图片

同城双活

就是在同一个城市,距离大概在30km到100km的两个数据中心之间,通过专线互联的方式,让两个数据中心形成一个大二层的网络

同城双活的时候,在高速的单独光纤的情况下,可以做到在一定的距离内的两台设备的实时同步,数据双活

基于数据中心的数据同步,可以形成一个统一的存储池,从而数据库层在共享存储池的情况下进行实时切换

虚拟机在统一的存储池的情况下,可以实现跨机房的HA,在一个机房切换到另一个机房

SLB负载均衡实现了同一个机房的各个虚拟机之间的负载均衡,GSLB实现了跨机房的负载均衡,实现了外部访问的切换

如果两个数据中心距离很近,并且大二层可以互通的情况下,使用VRRP协议,进行外部访问的切换

异地灾备

图片

异地灾备的第一大的问题,是数据的问题,生产的数据中心的数据如何备份到容灾的数据中心,由于异地的距离比较远,不可能双活一样近同步,只能异步同步,所以,可能会比较慢

而且由于成本高,不会所有的业务都进行容灾,否则成本太高

容灾数据中心平常并不使用,一般对于数据的备份,还是考虑从业务层面进行了容灾,由于数据同步比较缓慢,所以根据业务需求先备份优先级高的同步重要数据,容灾的层级也需要考虑

对于优先级高的数据,先进行同步,对于不重要的数据,比如日志,不优先进行同步

发表评论

邮箱地址不会被公开。 必填项已用*标注