Google 数据中心探秘
虽然是推崇开放文化的公司,Google 其实有些许多秘密,这有时是为了产品开放需要,有时是出于商业机密的要求,比如 Google 神秘的 X 部门,就在默默酝酿着许多改变世界的想法(自动汽车、Google Glass)。不过,对于 Google 来说,最保密的部门还有自己的数据中心。
作为一个互联网公司,Google 对数据的收集是永无休止的,可以说,数据中心就是这个巨人的心脏。因此,Google 对数据中心采取了严格保密的措施,不但外人难以进入,就连公司内部员工,也只有少数人才能进入。Google 曾经分享过数据中心的设计和运作经验,而且从 2008 年起开始发布效能数据。在 Google 官方博客中,Google 说保密的原因是为了用户数据的私密和安全。
但是,从现在开始,Google 采取了更加开放的做法。在公司的“Where the Internet lives”网页,展示了由 Connie Zhou 拍摄的许多照片,这是 Google 第一次向外界展示数据中心的内部情况。另外 ,在街景视图中,Google 还添加了 Lenoir NC 数据中心的场景,这意味着用户可通过网络其进行一场虚拟的访问。
当然,所有这些只是一些视觉上的展示。Google 邀请了 Wired 的编辑 Steven Levy,向其展示数据中心的基础结构,并且对其内在运作方式进行了描述。关于数据中心,Steve Levy 曾在《In the Plex》一书中进行过粗略的描绘,当时 Google 的数据中心使用的都是便宜、现成的服务器。从那个时候以来,数据中心已经经过了许多变化。
在 Wired 网站,Steven Levy 则讲述了自己对 Google 数据中心的了解。
Urs Hozle 曾参与了 Google 数据中心的早期建设。1999 年,Urs Holzle 加入了 Google,他被带到 Santa Clara 的 Exodus 服务器聚集区。在 Exodus,许多公司都租用了楼层用于摆放服务器。Google 的服务器群和其他互联网公司的摆放在一起。看起来 Google 的服务器是最密集,而且最混乱的。Brin 和 Page 想要升级这个系统,因为它速度缓慢,容易崩溃。
当时 Goolge 正在快速发展,它需要处理大量搜索请求,为网络做索引,提供 AdWords 服务,并且添加其他服务(邮件服务)。Page 对于速度非常迷恋,他希望搜索结果显示如此之快,看起来就像是能够读懂人脑。所有这些都需要更好的服务中心。同时 ,各个公司对数据中心的需求也在增加,Google 未来的租金将会更多。但在 Exodus,Google 的服务器却是一团乱麻。
解决方法指向一个,Google 需要构建自己的数据中心,成本更低,效能更强。这个任务被称为 Willpower。然后,Google 在 Dalles 建设了的第一个数据中心。该中心由 Hozle 和他的团队设计,一共花费 6 亿美元。他们的做法,即使到现在看来也是很特别的:服务器房间不用保持很低的温度。一般来说,数据中心都配有机房空调(CRACS),这会耗费大量能源,还有电费。
Google 意识到,在服务器正面的“冷过道”那里,温度可以保持 80 华氏度(约为 27 摄氏度),员工可以穿短袖或 T 恤衫工作;而在服务器侧面的“热过道”(机器集中散热的过道)那里,温度可以达到 120 华氏度(约为 49 摄氏度)。这些热量可以被管子里的水吸收,然后排出屋外降温,循环回来使用。在降低水温上,Google 也找到了省钱的方法,数据中心使用了巨大的塔,当热水从上面流下来的时候,会经过散热器一样的装置,有些水会蒸发,剩下来的水到达底层的时候,温度将达到普通的室温。若在芬兰,Google 数据中心用则是海水。
通过各种创新,Google 在节能上取得了从未有过的成就。对数据中心的耗能有一个标准检测数值,叫做 PUE(电源使用效率)。最完美的数值是 1.0。专家们将 2.0(一半的耗能)视为一个合理的数值,而 Google 达到的数值是 1.2。多年来,Google 一直没有说自己是如何做到的。
这是公司的核心优势,分享给竞争对手对自己是不利的。不过在 2009 年的 Efficient data center 大会上,Google 宣布了最新的 PUE 结果,也暗示了自己的一些技术。现在 Facebook 和 Yahoo 也开始报告同样的 PUE 值。
对于 Google 来说,节能是提供免费服务的一个重要基础。Holzle 用 Gmail 举例说,如果公司以传统的方式来管理数据中心,公司会损失大量的金钱,由于节能措施,公司能够使得花费变得很小,并且能否免费提供邮件服务。
Google 的突破不仅是耗能上的。尽管仍被视为互联网公司,Google 已经成为世界上最大的硬件制造商, 因为它的设备多数是自己制造的。1999 年的时候,Hozle 从“三个开电子商店的家伙”那里买了 2000 个剥离下来的电路板。通过改造,去除不必要的部件,Google 构建了一排服务器(单个价格是1500 美元 ,当时的标准是 5000 美元)。
如今,Google 采用了更加成熟的方法。它确切地知道自己需要什么,这可以节省许多钱,那些不必须的部件不再购买,比如显卡和机箱。
为了统一管理自己的服务器,Google 开发了一个软件系统,开发者能够通过这个系统指挥数千个电脑, 如同一个计算机一样。在 2002 年的时候,它创造了 Google File System,可以在不同的机器上顺利地传送文件。MapReduce 是 Google 为编写云端服务而开发的系统,它的开源版本 Hadoop 已经成为业界标 准。另外,Google 还开发了一个自动化的决策系统 Borg,用于决定那条机器最适合某项任务。
这对服务器集群的稳定性提出了更高的要求。为此,Google 内部有一个团队,叫做 SRE(网站可靠性工程团队),他们的任务就是使用各种方法,对服务器进行破坏,以检测公司进行危机处理的能力。每年,SRE 都会进行一次虚拟的战争,叫做 DiRT(disaster recovery test)。攻击是虚假的,但是几乎和现实一样,危机管理 人员必须按照处理程序来做,如果他们不能找出处理方式,攻击就必须停止,以免影响到真正的用户。
在今年的年度训练中,主管工程师 Kripa Krishnan 向 20 多个 SRE 解释规则。“不要试图去修补任何东西”,她说,“对于那些工作中的人来说,我们是不存在的。如果我们真正幸运的话,我们不会破坏任何东西。”Kripa Krishna 说她的任务就是想出重大的测试,以暴露系统真正的弱点。
SRE 项目开始于 Hozle 给工程师 Ben Treynor 下达的一个任务,如何使 Google 的网络避免失败。 Treynor 最终对可靠性的概念进行了再思考,他给予每个服务一个预算,即允许停机的时间,并确保 Google 的工程师们有效利用这个时间。“举例说,我们希望 Google+ 在 99.95% 的时间里运行”, Hozle 说,“我们需要确保的是,停机时间不是因为一些愚蠢的原因,比如没有足够的关注。我们希望的停机时间是因为在推动某些新东西”。
Google 的服务器数量有多少?这对外人来说是一个迷。当 Steven Levy 访问 Lenoir 数据中心的时候,了解到那里的服务器数量是 49923 个。不过,在冷过道行走的时候,他意识到,这个数据基本是没有意义的,今天的机器与昨天的已经完全不同,2012 年的一个服务器可能超过上一代的 20 个服务器,而且对于 Google 来说,是以群组来思考的,一大群的机器一起工作,提供一个服务或运行一个应用。“单一的服务器是没有意义的”,Hozle 说,“我们将计算机能力视为抽象的数据”。这是他们三年前就已经意识到的概念:数据中心就是一个计算机。
当问到那些地方需要改进的时候,Hozle 提到了数据中心和服务器群的设计, 的速度和灵活性,然后他停了下来,“因为我们付出了鲜血、汗水和眼泪。我们希望别人也付出自己的鲜血、汗水和眼泪,来做出同样的发现。”
显然,有些事情是不能和外人分享的。如果你对 Google 数据中心感兴趣,不妨去“Where the internet lives”看一下吧。