转载

揭秘谷歌网络基础设施十年演变过程

揭秘谷歌网络基础设施十年演变过程

  英文原文:How Google’s Networking Infrastructure Has Evolved Over The Last 10 Years

  谷歌今天 宣布 ,它想要修复用户家中的 Wi-Fi 网络连接问题,但在公司内部,这家搜索巨头很早以前便在解决远比这 复杂 的网络问题了。为了将构成谷歌数据中心的数十万台机器连接起来,你不能仅仅使用路由器和交换机这些最基本的工具,还要管理在服务器之间流动的所有数据。为此,谷歌一直在开发自己的硬件和软件,今天该公司揭开了它们的神秘面纱,让我们得以一窥其网络基础设施的演变过程。

  谷歌当前网络基础设施即所谓的“木星”(Jupiter)网络,容量是第一代网络的 100 倍,能以每秒 1 Petabit 的惊人速度提供总对分带宽(total bisection bandwidth)数据。该公司表示,在这种速度下,10 万台服务器可以在不到十分之一秒的时间内,阅读完美国国会图书馆中所有已经扫描的数据。

  谷歌工程师艾明·瓦达特(Amin Vahdat)今天 写道 :“对于谷歌的服务来说,这种网络性能始终是巨大的益处。工程师们可以从给各种水平的带宽优化代码的繁杂工作中解脱出来。例如,一开始,在如何处理连接于相同的架顶式交换机(top of rack switch)的服务器的数据本地化和部署上,以及单个交换机故障引发的相关损失上,我们就面临着痛苦的抉择。”

揭秘谷歌网络基础设施十年演变过程

  但是,谷歌在 10 年前远未达到这种数据处理能力。之后,谷歌收购了视频网站 YouTube,不久后又推出了 Gmail、谷歌地球和谷歌地图之类的产品,所以该公司的需要也在发生着快速转变。

  以下即是早期服务器网络在 2005 年时的模样:

揭秘谷歌网络基础设施十年演变过程揭秘谷歌网络基础设施十年演变过程揭秘谷歌网络基础设施十年演变过程

  正如谷歌在今天的 文章 中所写,该公司基本上在 2004 年就部署了标准的服务器集群(server cluster),这些 2005 年产的机器也是谷歌在 Firehose 1.1 数据中心架构部署的网络设备的第一个例证。在 2005 年部署的机器的目标是,在 1 万台服务器之间实现 1 Gbps 的对分带宽。为了实现这个目标,谷歌曾试图将交换结构(switching fabric)整合到其自主开发的服务器中,但事实证明“服务器的正常运行时间不及理想状态。”

  有了 Firehose 1.1 数据中心架构以后,谷歌部署了其第一个定制数据中心集群结构(cluster fabric)。谷歌的工程师今天写道:“根据我们从 FH1.0 了解到的情况,我们不使用常规服务器来存放交换芯片。”相反,谷歌开发了定制式构架,并且转移到所谓的 Clos 数据中心网络构架。

  到 2008 年,Firehose 1.1 已演变为 WatchTower,后者转而使用 10G 光纤,而非传统的网线。谷歌面向全球的数据中心推出了这个版本的架构。

  下面即是那些架顶的模样:

揭秘谷歌网络基础设施十年演变过程

  一年后,WatchTower 又变成了“土星”(Saturn)。WatchTower 的架构可以扩大至 87 Tbps,而“土星”架构则可以在更稠密的架顶下扩大至 207 Tbps。

揭秘谷歌网络基础设施十年演变过程揭秘谷歌网络基础设施十年演变过程揭秘谷歌网络基础设施十年演变过程

  很显然,“土星”很好地满足了谷歌的需要,因为三年以后该公司才向好于“土星”能力的架构转变。

  谷歌工程师写道:“随着每台服务器的平均带宽要求持续提高,数据中心所有集群的相同带宽也具有了这种需要。随着 40G 标准的硅基结构的问世,我们可以考虑将我们的 Clos 架构扩大至整个数据中心(可归入内集群网络层)。”

  正是这类架构,现在让谷歌可以将一个数据中心看作是一台巨型计算机,用软件来分配整个网络中所有服务器的计算和存储资源。

  诚然,“木星”硬件看上去不同于谷歌在打造定制式网络设备上的最早努力,但从许多方面讲,它还证明谷歌迅速采用了 软件定义网络(Software Defined Networking),从而实现了快速创新能力。

  谷歌今天公布了 四篇论文 ,详细叙述了该公司网络构架的各个方面。由于谷歌往往先于其他公司触及传统硬件和软件构架的极限,所以类似论文常常在谷歌之外的公司引发新一轮创新活动。

  所有的创业公司都想要创建自己的数据中心,但这是不可能的,其他数据中心运营方肯定会详细研究这些论文,也许会随着时间的推移执行类似的解决方案。当然,他们的用户也会从这种转变中受益。

揭秘谷歌网络基础设施十年演变过程

  翻译:皓岳

正文到此结束
Loading...