Introducing data center fabric, the next-generation Facebook data center network

介绍数据中心Fabric:下一代Facebook数据中心网络

作者/机构: Alexey Andreyev (Facebook)

A1 主要贡献

本文介绍了Facebook为其新一代数据中心(从Altoona设施开始)设计并成功部署的全新网络架构——数据中心Fabric。

核心问题:
随着Facebook用户和服务的指数级增长,其内部“机器到机器”的流量每不到一年就翻一番。原有的基于“集群(cluster)”的网络架构遇到了瓶颈:
1. 规模限制:集群的规模受限于大型、高端口密度核心交换机的物理端口数,而这类设备仅由少数供应商提供,且升级到更高带宽时端口密度往往不足。
2. 运维复杂性:大型核心交换机是专有设备,其内部架构复杂,需要专门的软硬件知识进行运维和故障排查,且单点故障影响范围巨大。
3. 带宽平衡难题:在集群规模、机架带宽和跨集群带宽之间维持长期平衡非常困难。传统设计中,跨集群带宽远小于集群内带宽,这限制了需要跨集群通信的分布式应用的扩展。

研究目标:
为了解决上述问题,Facebook的目标是设计一种全新的数据中心网络架构,该架构应能:
1. 打破集群边界:将整个数据中心大楼构建成一个统一的、高性能的网络,而不是一个由多个分层超售的集群组成的系统。
2. 实现快速扩展:提供清晰、简便的路径来快速部署网络和扩展性能,避免每次扩容都对现有基础设施进行大规模的定制化改造。
3. 简化运维:尽管规模和增长速度惊人,但仍要保持网络基础设施的简单性,以便小型高效的工程师团队能够进行管理。

创新点(核心贡献):
本文提出的数据中心Fabric架构是其核心创新。其主要思想是采用解耦(disaggregated)的方法,将网络分解为小型、标准化的构建单元,并在此基础上构建大规模、高性能、易于扩展的网络。具体创新点如下:
1. 模块化设计:引入了“Pod”作为网络的基本单元。一个Pod是一个小型的三层微集群(仅包含48个服务器机架),由四个Fabric交换机提供服务。这种标准化的“网络乐高”易于在数据中心内灵活部署。
2. 统一的高性能互联:通过创建四个独立的“Spine平面(spine planes)”,将数据中心内所有的Pod均匀地连接起来。每个Pod的Fabric交换机都会连接到其本地平面内的每一个Spine交换机。这种设计为整个数据中心的任意机架之间提供了统一的、高带宽、统计上无阻塞的连接能力。
3. 可扩展性和灵活性:Fabric架构可以在多个维度上独立、平滑地扩展。需要更多计算资源时,增加服务器Pod;需要更多内部网络带宽时,在所有平面上增加Spine交换机;需要更多外部连接时,增加Edge Pod。
4. 软硬件解耦与自动化:网络采用全三层(Layer 3)设计,并仅使用标准的BGP4协议,同时开发了集中式控制器进行路由覆盖。这种设计简化了对交换机的要求,使其可以使用来自多个供应商的商用芯片和中型交换机。同时,配套的“自顶向下”的自动化工具链实现了网络的快速部署、配置和运维,大大降低了运维复杂性。
5. 平滑过渡:为了与现有系统兼容,Fabric在物理上打破了集群,但在逻辑上保留了“虚拟集群”的概念,使得上层应用和管理系统无需改造即可无缝迁移到新架构上。

图1:一个Pod示例——我们新的网络单元
图1:一个Pod示例——我们新的网络单元

图2:Facebook数据中心Fabric网络拓扑示意图
图2:Facebook数据中心Fabric网络拓扑示意图

A3 背景知识与设计原则

集群的局限性

A2 方法细节

介绍Fabric

我们是如何做到的

当我们最初考虑构建fabric时,由于设备和链路的数量,它看起来复杂且令人生畏。然而,我们最终实现的设计比我们惯常的集群设计更简单、更优雅,并且在运维上更高效。以下是我们实现这一目标的过程。

网络技术

渐进式可扩展性

物理基础设施

自动化

透明过渡

A4 实验环境与结果

部署环境

实验结果

该文描述的是生产环境的部署成果,而非传统的受控实验。其主要成果如下:
1. 网络容量大幅提升:与等效的集群设计相比,在Altoona数据中心部署的第一代Fabric架构实现了楼内网络容量10倍的增长。并且,在不改变端口速率的情况下,通过增加Spine交换机,未来容量可以轻松增长到超过50倍
2. 部署效率显著提高:尽管设备和链路数量大幅增加,但由于模块化设计、标准化的物理布线和高度自动化,Fabric网络的部署速度比同等规模的集群网络更快、更容易。Altoona站点的网络启用时间(从水泥地到网络通畅)被大大缩短
3. 卓越的可扩展性
* 按需扩展:架构允许按需、独立地扩展计算(增加Pod)、网络(增加Spine交换机)和外部连接(增加Edge Pod)。
* 平滑升级:初始部署为4:1的机架间超售比,但已预留了所有物理和逻辑资源,可以快速、平滑地升级到2:1乃至1:1无超售。
4. 高容错性与运维简化
* 高容错:网络中存在大量等价路径,使得单个链路或设备的故障变得不再重要,网络能够承受多个组件同时失效而对业务无影响。
* 运维简化:更小、更简单的设备降低了故障排查的难度。自动化系统处理了大部分监控、警报和修复工作,运维范式从“盯着图表”转变为关注“基线和异常”,实现了运维效率的提升。
5. 打破厂商锁定:模块化设计使得Fabric交换机、Spine交换机和Edge交换机可以使用相同的中型交换机硬件平台。这使得Facebook可以从多个供应商采购设备,避免了对单一供应商大型专有设备的依赖。
6. 面向未来:当前的全40G网络设计,可以利用相同的基础设施和光纤网络,在不远的将来快速升级到100G及以上。

A5 结论

Facebook网络工程团队在处理全球最大规模的网络之一时,信奉“保持简单(keep it simple, stupid)”的原则。尽管他们处理的系统本质上可能庞大而复杂,但团队努力使其组件尽可能基础和坚固,并通过设计和自动化来降低运维复杂性。

本文介绍的新Fabric架构也不例外。尽管其规模庞大且拓扑看似复杂,但它是一个高度模块化的系统,拥有大量重复的元素。它易于自动化和部署,并且比一个由多个定制化集群组成的小型集合更容易操作。

Fabric在网络中的任意两点之间提供了大量的等价路径,使得单个线路和设备变得不重要——这样的网络能够在多个组件同时发生故障时幸免于难,且不产生任何影响。更小、更简单的设备意味着更容易进行故障排查。Fabric要求我们创建和改进的自动化工具,使得其部署速度比我们之前的数据中心网络更快,尽管设备和链路的数量有所增加。

我们的模块化设计和组件选型使我们能够将相同的中型交换机硬件平台用于网络中的所有角色——fabric交换机、spine交换机和边缘交换机——使它们成为可以从多个来源采购的简单的“乐高式”构建块。

由于设备端口密度较小,以及对FIB和控制平面需求的最小化,今天作为我们第一个全方位40G网络的起点,将在不远的将来能够快速升级到100G及以上,同时利用相同的基础设施和光纤设备。通过我们Altoona数据中心的第一代Fabric,我们已经实现了与同等集群设计相比10倍的楼内网络容量增长,并且在相同的端口速率下可以轻松增长到50倍以上。