数据中心网络实现梳理
文章目录
- 前言
- 相关名词
- SDN
- 传统网络架构
- CLOS架构
- Spine-Leaf 架构
- Facebook 数据中心的网络部署
- 服务器 Pod
- 数据中心拓扑
- 更进一步
- Google 数据中心的网络部署
- 概览
- traditional 2Tbps four-post cluster (2004)
- Firehose 1.0(2005)
- Firehose 1.1(2006)
- Watchtower(2008)
- Saturn(2009)
- Jupiter(2012)
- 外部连接
- 参考文章
前言
前面分析了Kubernetes基本概念,Kubernetes网络等内容,其可能主要属于paas层,而对于其实际依赖的物理上的基础设施的拓扑结构,并没有进行讨论,因此本文将针对参考文章中的相关内容进行阅读学习,对数据中心网络相关内容进行简单梳理。
相关名词
堆叠 (Stacking):将多台交换机逻辑上组合成一台设备的技术
CLOS 网络:一种无阻塞的多级交换网络拓扑
Spine-Leaf 架构:现代数据中心的标准网络架构
Border Leaf:边界叶子节点,负责数据中心间互连
TOR (Top of Rack):机架顶部交换机,直接连接服务器
城域网 POP:Point of Presence,网络接入点
可用区 (Availability Zone):独立的数据中心区域
SDN
在数据中心网络领域,斯坦福大学的博士生 Martin Casado 敏锐地发现了问题:网络设备中多平面的紧耦合导致的互相依赖,将会制约系统技术革新、稳定性、规模性,而规模问题可能带来性能问题。Martin 领导了一个网络安全与管理的科研课题,实现一个灵活的、能够像计算机一样可编程的网络系统。2006 年,名为 Ethane 的网络模型作为项目成果发表,Ethane 包括了 SDN 架构中的两个重要内容:基于流表的转发和中央控制器。它不仅是 SDN 架构的雏形,也是 OpenFlow 的前身。
《OpenFlow : Enabling Innovation in Campus Networks》,这篇于 2008 年发表在通信网络领域顶尖会议(ACM SIGCOMM)的文章,由 Martin 的导师 Nick 教授的团队提出,被引用 6000 多次。OpenFlow 浮出水面,软件定义网络(SDN)被首次提出,为网络领域开辟了一个全新视野,也酝酿着一场网络产业的蝴蝶效应。1
传统网络架构
传统的网络架构是三层架构,即核心层,汇聚层及接入层,但是随着数据中心整合、虚拟化、云计算等新技术的出现,其已无法满足网络要求。
传统的三层网络架构:
传统的三层网络架构是为南北向流量占主导地位的传统数据中心设计的,不适合东西向流量较大的云数据中心。7
CLOS架构
Clos网络模型
图中的矩形,都是低成本的转发单元。当输入和输出增加时,中间的交叉点并不需要增加很多。11
一个简单的两层Clos网络
Spine-Leaf 架构
叶脊网络架构,和胖树结构一样,同属于CLOS网络模型。
叶交换机,相当于传统三层架构中的接入交换机,作为 TOR(Top Of Rack)直接连接物理服务器。叶交换机之上是三层网络,之下都是个独立的 L2 广播域。如果说两个叶交换机下的服务器需要通信,需要经由脊交换机进行转发。
脊交换机,相当于核心交换机。叶和脊交换机之间通过ECMP(Equal Cost Multi Path)动态选择多条路径。脊交换机下行端口数量,决定了叶交换机的数量。而叶交换机上行端口数量,决定了脊交换机的数量。它们共同决定了叶脊网络的规模。11
实际部署示意图
城域网 POP 机房│┌────────┴────────┐│ Border Leaf │ ──┐└─────────────────┘ ││ │┌────────┴────────┐ │ 40G 互连│ Spine │ ◄─┤│ (核心层) │ │└─────────────────┘ ││ │ │ │┌────┴───┴───┴────┐ ││ TOR Leaf │ ──┘│ (接入层) │└─────────────────┘│ │ │┌────┴───┴───┴────┐ 10G 接入│ 服务器机架 │└─────────────────┘
流量路径:
南北向流量 (进出数据中心):
Internet → Border Leaf → Spine → TOR Leaf → Server东西向流量 (服务器间通信):
Server A → TOR Leaf → Spine → TOR Leaf → Server B
CLOS与Spine-Leaf 的关系
┌─────────────────────────────────────┐
│ CLOS 网络 │ ← 理论基础/设计原理
│ ┌─────────────────────────────┐ │
│ │ Spine-Leaf │ │ ← 具体实现方式
│ │ (CLOS 的数据中心实现) │ │
│ └─────────────────────────────┘ │
└─────────────────────────────────────┘
Facebook 数据中心的网络部署
服务器 Pod
这里说的Pod和k8s中的Pod没有任何关系,来看下概念:
我们以前的数据中心网络,是使用集群 Cluster 构建的。集群是一个大型部署单元,涉及数百个服务器机柜,这些机柜的顶部(TOR)交换机,聚集在一组大型的交换机上。但是这种以集群为中心的体系结构有很大的局限性。
所以我们的新一代数据中心网络设计,就不是基于集群的,也就是说,不是按层次分配的集群系统。我们将网络分解为多个小的相同单元,也就是服务器 Pod,而不是大型集群,并在数据中心的所有 Pod 之间,创建了统一的高性能网络连接。
pod 并没有什么特别之处,它就像第 3 层的微型群集。pod 没有任何硬性的物理属性;它只是我们新架构上的一个标准 “网络单元”。每个 pod 由一组我们称为 Fabric 交换机的四台设备提供服务,保持了我们当前 3+1 四柱架构在服务器机架 TOR 上行链路方面的优势,并可根据需要进行扩展。每个 TOR 目前有 4 x 40G 上行链路,可为一个连接 10G 的服务器机架提供 160G 的总带宽容量。3
由上面的描述可知,在Facebook数据中心网络中,一个Pod是由48个TOR以及4个Fabric交换机组成。
数据中心拓扑
为了实现大楼范围的连通性,我们数据中心内部,创建了四个独立的脊交换机“平面”,每个平面,可以最多扩展 48 个独立设备。每个 pod 的每个 Fabric 交换机都连接到其本地平面内的每个脊交换机。pod 和平面共同构成了一个模块化网络拓扑结构,能够容纳成千上万台 10G 连接的服务器,扩展到多比特分段带宽,并以无超额订阅的机架到机架性能覆盖我们的数据中心大楼。
对于外部连接,我们用光纤网络配备了数量灵活的边缘 Pod。每个边缘 Pod,能够为骨干网和数据中心站点上的后端提供很多 Tbps 的带宽,并且可扩展到 100G 和更高的端口速度。这种高度模块化的设计,使我们能够在一个简单统一的框架内,快速扩展任何维度的容量。当我们需要更多计算能力时,就简单地添加服务器 Pod。当我们需要更多的内部网络容量时,就可以在所有平面上添加脊交换机。当我们需要更多的连接时,我们可以在现有边缘交换机上添加边缘 Pod,或扩展上行链路。3
上图中每个平面支持连接48个Fabric交换机,其连接由4个脊交换机完成,也就是Pod与Planes间完成了一种交叉,都由4+48的方式提供服务,也相当于两个维度,多级扩展的脊叶架构。
再看下实际的物理拓扑
尽管光纤链的规模高达数十万条,但 Fabric 的物理和布线基础设施远没有逻辑网络拓扑图看起来那么复杂。我们与 Facebook 的多个基础架构团队通力合作,针对 Fabric 网络优化了我们的第三代数据中心建筑设计,缩短了布线长度,并实现了快速部署。我们的Altoona数据中心是这种新建筑布局的首个实施案例。
更进一步
上面的网络架构称为F4架构,而关于Facebook更新的网络架构F16,可以阅读其博客Reinventing Facebook’s data center network,感觉比上面的网络架构更进了一步
Facebook F16 数据中心网络拓扑结构:
数据中心区域有六座配备 F16 Fabric 的建筑,与 HGRID 相连:
Google 数据中心的网络部署
概览
Google的数据中心经历了多代演进:
traditional 2Tbps four-post cluster (2004)
Firehose 1.0(2005)
Firehose 1.1(2006)
Watchtower(2008)
Saturn(2009)
Jupiter(2012)
可以看到每几年就有一次演进
traditional 2Tbps four-post cluster (2004)
顶 部 机 架(ToR)交换机通过1G链路连接到四个512个1G端口的集群路由器(CR),这些路由器通过10G侧链路相互连接,为40台1G连接的服务器提供服务。
这个图片里面的 CR/Cluster Router 就是当时市面上最贵最好的 swtich,512 ports of 1GE。每个 rack 里面的机器都是连到 Top of the rack,然后 ToR 再跟 CR 沟通。这种网络架构最大的问题就是如果某一种服务需要很多的网络用量,那么必须确保绝大部分的网络都是在一个 rack 里面进行的,不然每个 CR 中间只有 2*10G,是不够所有人一起用的。10
Google意识到现有的商用解决方案无法满足他们的规模、管理及成本要求。因此,他们决定自主研发定制化数据中心网络软硬件,并运用CLOS拓扑结构及当时新兴的商用交换芯片。
一个通用的三层Clos架构,包含边缘交换机(ToR)、聚合块(aggregation blocks)和脊块(spine blocks)。我们数据中心部署的所有Clos结构版本都遵循该架构的变体。
Firehose 1.0(2005)
Firehose 1.0拓扑。右上角显示的是Firehose 1.0中的一个8x10G端口结构板的示例。
Firehose 1.1(2006)
Firehose 1.1的包装和拓扑。左上图为上面Firehose 1.0 中一块板卡的线路卡版本。右上图为Firehose 1.1机箱,其中装有6个这样的线路卡。底部的图显示了Firehose 1.1中的聚合块,这与Firehose 1.0不同。
Watchtower(2008)
128x10G端口watchover机箱(左上)。内部采用非阻塞拓扑结构的八个线路卡(左下)。四个机箱安装在两个机架
中,通过光纤连接(右)。
通过捆绑电缆降低部署复杂性。
Saturn(2009)
Saturn结构组件。由同一交换芯片构建的24x10G Pluto ToR交换机和12线卡288x10G Saturn机箱(包含逻辑
拓扑)。四个Saturn机箱安装在两个用光纤连接的机架中(右)。
Jupiter(2012)
Jupiter拓扑中使用的构建块。
外部连接
连接到外部网络层的四个选项
用于群组间和校园内连接的两阶段结构
参考文章
- [1] SDN,新十年,再反思:变革已露锋芒,智能初现曙光
- [2] UCloud 可支撑单可用区 320,000 服务器的数据中心网络系统设计
- [3] 规划部署数据中心要考虑哪些重要因素?
- [4]Introducing data center fabric, the next-generation Facebook data center network
- [5]Reinventing Facebook’s data center network
- [6]H3C-VCF Fabric
- [7]数据中心网络:什么是Spine-Leaf架构?
- [8]Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google’s Datacenter Network
- [9]Jupiter Evolving: Transforming Google’s Datacenter Network via Optical Circuit Switches and Software-Defined Networking
- [10] 论文导读 | Google过去十年发展数据中心网络的经验
- [11] 到底什么是叶脊网络(Spine-Leaf)?