6-pack: facebook首款硬件开源的模块化交换机
2017-11-22 本文已影响141人
半天妖
随着Facebook基础设施的扩大,我们经常遇到传统网络技术的局限性,传统网络技术往往过于封闭,太单一,对于我们运营的规模和发展步伐来说太过迭代。在过去几年中,我们一直在建立自己的网络,打破传统的网络组件,并将其重构为模块化系统,为我们提供所需的灵活性,效率和规模。
我们首先设计了一个新的ToR网络交换机(代号为“Wedge”)和一个基于Linux的操作系统(代号为“FBOSS”)。接下来,我们构建了一个数据中心Fabric,这是一个模块化的网络架构,可以让我们的更快更简便地扩展规模。对于这两个项目,我们都分解了硬件和软件层,并在网络运行中开辟了更大的可视化,自动化和自动控制。
但即使取得了这些进展,我们还有一步要走。我们有一个TOR,一个Fabric以及运行这些设备的软件,但是我们仍然缺乏针对我们Fabric中所有模块化交换机的可扩展解决方案。所以我们建立了第一个开放的模块化交换平台,我们称之为“6-pack”。 6-pack平台
“6-pack”平台是我们新Fabric的核心,它以“Wedge”为基础模块。这是一个全网状无阻塞两阶段交换机,包括12个独立的交换元件。每个独立的元件可以交换1.28Tbps。我们有两种配置:一种配置将16x40GE端口暴露在前面,640G(16x40GE)暴露在后面;另一种配置用于聚合功能,所有1.28T放于后面。每个原件在本地服务器上运行自己的操作系统,并且从交换层面到底层板控制和冷却系统都是完全独立的。这意味着我们可以修改系统的任何部分,不受系统级影响,包括软件或硬件。我们创建了一个独特的双背板解决方案,使我们能够创建一个无阻塞的拓扑结构。 image.png我们在拆分过控制配置中运行我们的网络。每个交换元件都包含与集中控制器通信的微服务器上的完整本地控制平面。这种配置通常被称为混合SDN,为我们提供了一种简单而灵活的方式来管理和运行网络,从而实现了极高的稳定性和高可用性。系统中唯一的共同元素是钣金外壳,背板和电源,这使得我们很容易地改变外壳来创建具有相同构件的任何基数的系统。您可以在下面看到我们为“6-pack”设计的方框图和内部网络数据路径拓扑。 fabric-inner-path
线卡
如果您熟悉“Wedge”,您可能认识到该平台上使用的中央交换元件是独立系统,仅使用640G的交换容量。在“6-pack”线卡上,我们利用了所有的“Wedge”开发工作(硬件和软件),并简单地添加了背面640Gbps以太网互连。线卡具有集成交换ASIC,微服务器和服务器支持逻辑,使其完全独立,并使我们能够像服务器一样管理它。 line-card-block line-card-phy板卡
板卡组合两张线卡,面向系统后面。Fabric上创建了本地全网格,从而实现非常简单的背板设计。为方便起见,Fabric卡还汇总带外管理网络,为所有线卡和Fabric提供外部接口。 Fabric-card-block Fabric-card-phy连在一起
通过“6-pack”,我们创建了一个架构,使我们能够使用一套简单的通用模板模块块来构建任何尺寸的交换机。而且由于设计是如此开放,模块化,我们希望这是一个整个行业可以建立的平台。以下是我们认为传统方法与模块化交换机“6-pack”的区别: different与“Wedge”和“FBOSS”,“6-pack”已经在生产测试。我们计划将“6-pack”设计发布到ocp项目上,我们将继续与OCP社区合作,开发更灵活,更可扩展,更高效的开放式网络技术。
感谢所有为“6-pack”,“Wedge”,“FBOSS”和“Fabric”发展做出贡献的整个Facebook团队。