21

狒话 · 2020年05月11日

Google@1999:定制机架奠基暴力美学

本文最初发表于 2015年5月25日和26日

硅谷新星的大合同

1999年6月7日,Google宣布获得KPCB和红杉资本的2500万美元投资。一个半月之后,临时CEO Larry Page就在截至当时公司最大的服务器订单上签字,同意拿出近10%的资金来购买1680台服务器。

当时Google总共只有112台服务器,这意味着规模将会暴涨15倍。1680台服务器分为21个机柜(Google称之为cabinet),每个机柜80台,连同机柜的价格为10.92万美元,定金1万美元,所以先付21万美元。8月20日之前,在已经交付前10个机柜的情况下,每多交付一个机柜,供货商King Star计算机公司(King Star Computer, Inc.,简称KSC)可以得到2千美元的奖金,也就是说Google最多要为整个订单支付超过230万美元。全部交付的最后期限是9月3日,如果不能完成,Google保留随时取消订单的权利。

Larry Page - Ray - cutted.jpg
1999年7月23日,Google CEO Larry Page与King Star CEO Ray签署的合同(来源:Urs Hölzle的Google+)

现在看来最后这条主要起“威慑”作用,因为Google自身更难以承受取消订单的损失。就在这个9月,Google搜索引擎结束beta阶段,正式转为商用,并已经为数以百万计的用户服务。如果只靠那112台服务器硬撑,显然会拖慢公司的发展速度。

当然,我们知道,拖后腿的事情没有发生,这批“价钱便宜量又足”的服务器为Google铺好了腾飞的跑道。15年后的2014年4月24日,Business Insider发表Nicholas Carlson的长文“The Untold Story Of Larry Page's Incredible Comeback”(不为人知的故事:拉里 ·佩奇的惊人归来),其中特别提及,(因为密度够高)Google托管(这约)1500台服务器与早期竞争对手Inktomi托管50台服务器的价格相同(Google would end up paying the same price to host 1,500 servers as early rival Inktomi paid to host 50.),并认为这帮助Google甩开了包括Inktomi在内的一众搜索竞争对手。

Google Rack - CHM2.jpg
陈列在硅谷计算机历史博物馆(Computer History Museum)里的1999年款Google整机柜服务器(来源:张广彬,2014年10月)

基础设施的奠基人

众所周知,1996年Larry Page(拉里·佩奇)和Sergey Brin(谢尔盖·布林)在斯坦福大学攻读博士学位时发明了PageRank算法,并利用系里计算中心的资源搭建Backrub搜索项目验证其实用性。抓取网络链接结构需要巨大的存储空间,即使是在整个互联网规模并不大的时候,也远远超出了当时典型学生项目所能提供的容量。所以,他们买了10个4GB硬盘(当时同类产品中的顶级容量),自己组装了40GB的存储。

拿到投资,开始创业,显然就不能再凡事都亲历亲为了。Page和Brin离开学校时,带出了博士生同学Craig Silverstein,成为他们聘用的第一位员工。按照Google早期员工吴军博士在《浪潮之巅》一书中的描述,Silverstein“堪称计算机奇才,几乎凭一己之力写出了Google搜索引擎的第一个商业版本……而且制定了Google至今仍被遵守的程序设计规范和流程。”

Urs-Holzle.jpg
2014年Web Summit上的Urs Hölzle(来源:Flickr)

在基础设施方面,起到类似作用的是Google第8位员工Urs Hölzle,也是Page和Brin在斯坦福的学长,博士研究方向是编程语言及其有效实现。当时Hölzle在UC Santa Barbara(加州大学圣巴巴拉分校)任计算机科学副教授,被挖到Google担任首位负责工程的副总裁。1999年2月1日,Larry Page就拉着尚未正式加入的Urs Hölzle到Google租用的数据中心空间转了一圈。这是Hölzle第一次进入数据中心,而仅仅几个月之后,他便接管起服务器采购的工作。

精打细算的设计者

从下单到交付前800台(10个机柜)服务器,留给KSC的时间不到一个月,Hölzle及其团队则更紧迫——只有两周进行设计。最关键的原因是钱要省着花,所以又要自己来(DIY),Page和另一名工程师也参与了设计。托管服务器的数据中心按面积收费,Page想在同样的空间内安装尽可能多的服务器,所以要去掉非必要的部件,减小服务器的体积。机箱首当其冲,然后是Power开关——"Why would you ever want to turn a server off?"(引自:Business Insider)

Google Server 1999 - Reset Switch.jpg
那个时代,DIY的服务器与PC的共同点是Reset键很重要,区别是不用关机!(来源:The National Museum of American History官网)

Reset开关保留,和其他主要部件一起装到软木板(corkboard)上,避免线缆缠绕在一起,Google历史上著名的“软木板服务器”(corkboard server)就此诞生。与追求精致耐用(所以很贵)的企业级产品迥异,它们外观丑陋,看似脆弱,但廉价而有效,开启了互联网基础设施“暴力美学”的篇章。

Google-contract.jpg
每台“服务器”的主要配置如下(括号内为合同上手写的补充注释):

  • Supermicro P6SBM主板
  • 256MB PC100内存(7ns)
  • Intel Pentium Ⅱ 400 CPU及风扇
  • 2个IBM Deskstar 22GXP硬盘(22GB/7200RPM)
  • Intel 10/100Mbps网卡
  • Reset开关
  • 硬盘LED
  • 2条IDE线缆
  • 7英尺五类线(插头不带保护套)

KSC按照Google要求设置BIOS参数,组装完成后测试。

Corkboard Server Rack describe.jpg
官方名称:Google软木板服务器机柜(来源:张广彬,2018年3月)

1998年问世的Pentium Ⅱ Xeon(至强)已将PC服务器推向正轨,严格说来Pentium Ⅱ + P6SBM的组合更像入门级工作站——或者,因为没有安装AGP显卡,所以勉强算入门级服务器?不过,即使以PC的角度来衡量,核心部件如CPU也不算新。

2012年《连线》(Wired)杂志主笔Steven Levy参观Google位于北卡Lenoir的数据中心后写了一篇传播甚广的文章,追溯历史时这么描述此次里程碑式的采购:In 1999, Hölzle bought parts for 2,000 stripped-down "breadboards" from "three guys who had an electronics shop." By going homebrew and eliminating unneeded components, Google built a batch of servers for about $1,500 apiece, instead of the then-standard $5,000.

Rack Overview-low res.jpg
1999年,Google第一批自产(ODM?)服务器(来源:维基百科)

看起来, Hölzle从大约2000个无包装主板中挑出能用的来组装服务器——homebrew(家酿)这个词很容易让人想起去世刚刚一年的乔布斯,苹果“家酿”计算机,Google家酿服务器(自用,不卖) ,与标准服务器的价格对比也很吸引人。P6SBM在当时肯定不能算新产品了,但 “breadboard”(试验电路板)是从何说起呢?如果这些简装的主板来自别处(“三个开电子商店的家伙”?),CPU和硬盘又来自哪里?King Star Computer, Inc.在1989年就已成立,为客户搭建服务器和工作站,与Larry Page签订合同的Ray(Liu)从1992年起担任CEO,且合同中已经注明:KSC提供一年质保,并特别承诺在10个工作日内替换有问题的硬件。如果因为硬件或可替代品退市等原因不能满足上述要求,KSC还要保证退款。

CPU-Board-HDD.jpg
每层的4个Pentium Ⅱ CPU、(软木板上的)4个主板和(塑料板上的)4个硬盘——还有4个硬盘哪儿去了?(来源:张广彬,2017年3月)

2014年7月23日,已成为Google技术基础设施资深副总裁(SVP)和院士(Fellow)的Urs Hölzle,在Google+上简要回顾了15年前这笔有纪念意义的采购,并贴出了合同的全部3页。没有(亦无必要)提及部件的来源,主板简装几乎是肯定的,但没有任何有助于明确是否二手的依据(Steven Levy并没说是二手,然措辞有误导性)。Deskstar 22GXP从1999年3月底开始广泛进入零售市场,硬盘用二手货的可能性也最小。

Corkboard server in Google.jpg
放置在Google Visitor Center(beta)中的一套软木板服务器,注意机柜后门上的风扇墙(来源:张广彬,2018年3月)

总的观感是,不盲目追新,既省钱,又保证产品经过了足够的检验。从CPU、主板和硬盘这三个占地最大的核心部件上,可以看出Hölzle团队选择的用心之处:

这1680台服务器以"corkboard" racks(“软木板”机柜)的安装方式而闻名,即每个机柜分为20层,每层是一个软木板(Corkboard)承载4个主板,以达到高密度。单路设计的P6SBM还有3款姊妹产品,但它一则不带SCSI(用不着),二则扩展槽最少(够用就行),功能最简(能不要的全不要),所以价格最低,尺寸最小——说句促狭的话:连木板都可以省一些!

P6SBM.png
P6SBM主板长9.6英寸宽8.05英寸,比家族中最接近的P6SBA(12英寸×7英寸)还略小一号(来源:Supermicro产品手册)

1999年2月底Intel发布了Pentium Ⅲ CPU,最低的450MHz报价近500美元,虽然P6SBM主板亦支持,但要记住分摊到每台服务器上的成本才1365美元……第二代Pentium Ⅱ已采用0.25微米工艺,400MHz型号在家族中排名第二,性价比通常更好,而且功耗略低于25W,这对后面的系统供电设计也很重要(每台服务器功耗小于100W)。

Reset Buttons.jpg
注意每层主板前端显眼的4个Reset按钮;可以看到承载主板的软木板跨度大,已经弯曲甚至朽坏;塑料板强度高但只负责承载4个硬盘(来源:张广彬,2018年3月)

主板两两相对纵向放置,保证扩展槽上的网卡接口向外,内存插槽上方则架起塑料板(Hölzle说来不及设计一个适用的支架),以安装硬盘。那时候典型的服务器要配SCSI硬盘,通常具有更高的性能,价格也明显更贵,经济性无法与面向PC的IDE硬盘相比。7200RPM是IDE(学名PATA)硬盘的最高转速,Hölzle团队选择的Deskstar 22GXP则是当时能买到的同类产品中容量最大的——新一代的Deskstar 34GXP等刚刚发布,大规模上市还需一段时间,正是22GXP便宜的时候。一言以蔽之,在省钱的前提下追求性能和容量。

backdoor-HDD.jpg
早前我一直疑惑,正面的每层塑料板上只能放下4个硬盘,另外4个肯定在机柜后部,如何固定呢?原来,是传统的金属制硬盘托架。这显然没有“软木板”那般传奇,所以少有人提吧(来源:张广彬,2018年3月)

IDE的连接能力亦比SCSI要差,优点是芯片组集成两个通道,每个通道理论上可以有两个设备,但会影响性能(分主从),所以通常每个主板只配到2个硬盘。以内存插槽和IDE接口延长线上方那点空间,再多怕是也没地方放了。

Rack Server - HDD.jpg
主板、CPU和硬盘的相对位置,注意右侧还有节点编号(来源:网络和Google院士Jeff Dean的演讲材料)

远见卓识的架构师

如果仅止于此,那么当年的我也可以做到——很多(硬件)DIYer都是这样:不要机箱,元件裸露,便于更换。但是,上千台的大规模就不一样了。

4个主板的Reset开关固定在塑料板的前方,便于随时复位系统,可见早为硬件故障频发做足了心理准备。Google著名的分布式软件系统承担有效容错的重任,而不是把希望寄托在高可靠性的硬件上。个别服务器宕机或重启不会影响搜索引擎等业务的正常运行,出问题的部件两周内更换就可以。

Fan-Wall.jpg
大概是互联网服务器中最早的风扇墙了吧?Made in China倒是没啥好惊讶的(来源:张广彬,2018年3月)

具有开创意义的是将整个机柜作为一个整体来设计,共享供电和散热:

  • 每层的4台服务器通过电源连接器共享一个400W电源;
  • 每个机柜的后门上安装60个风扇,它们再共用2个电源。

今天我们在天蝎项目(Project Scorpio)中津津乐道的共享供电、散热,这些符合Rack as a Computer(机柜级计算机)理念的设计,甚至前端维护,Google在十多年前就已经实践了。在那个时代,同样共享供电、散热(还包括管理)的刀片式服务器还没真正成形,而且刀片机箱(blade enclosure/chassis)的尺度通常也没有机柜(Rack)那么大;IBM的S/390(当时是G5和G6)倒是称得上Rack as a Computer,但人家贵为大型机,用的是高大上的循环液冷技术,不具可比性。

值得注意的细节还有打印的合同上关于网线的手写修改及注释:长度由6英尺改为7英尺,并括号注明不要网线插头的保护套——(without protective collars on the ends) ,再一次体现了能省就省的精神。

Corkboard Server Rack.jpg

现在回顾当年的故事,给我印象最深的,是几个刚刚拿到大笔风投的互联网创业明星,在服务器硬件采购上的亲力亲为、锱铢必较。以传统企业用户的眼光来看,在那个x86服务器都没有得到广泛认可的年代,大量使用几乎可以算是二手PC的廉价“裸机”作为公司业务的平台,无疑是很不严肃的。然而,几个从大学校园里走出来的年轻人,敏锐的意识到分布式软件架构才是大规模系统可靠性和可用性的保障,反而独辟蹊径,开了先河。

既然已经这么正能量了,顺势简单总结几点:

  1. 基础设施处于公司核心战略的高度。Larry Page和Urs Hölzle 都是软件出身,以他们的智商、勤奋和热情,要熟悉硬件当然不难。但是,在公司几百人规模的时候,CEO和VP还在一些程序员觉得低等的硬件上倾注很大精力。这固然体现了硅谷的homebrew精神,更重要的是他们真正认识到:软件,从来都不仅仅是软件那么简单。
  2. 规模上的远见与自信。一方面认为不能寄希望于硬件的可靠性和可用性,一方面又为硬件的具体实现精打细算。因为规模大到一定程度,硬件故障无法避免,所以没必要在所谓的高端硬件上虚掷金钱,而每一个微小的节省,都意味着巨大的节约。
  3. 设计理念上的前瞻性与开创精神。马云在阿里巴巴上市前后说过:“Google是一家技术公司,是拓展技术边界的,我们是用技术拓展商业边界的……”简单、高效,能做减法,不做加法,从搜索引擎到基础设施建设,Google的理念和行动力对后来者启发良多。

1000th rack on loading bay.jpg
Google的第1000个机柜, 延续了整机柜交付的做法,外观明显比四年前的软木板机柜整洁,被称为“冰箱”(fridge)——Urs Hölzle也不知此名由来(来源: Urs Hölzle的Google+)

四年后的2003年8月13日,Google自己设计并生产的第1000个机柜(机架)安装到位,稍后公开了GFS(Google File System,谷歌文件系统),继续相辅相成。当然,正在使用的机柜总数没有这么多(上万台服务器应该是有的),老的已经退役。1999年的那一批进了博物馆,包括The National Museum of American History和Computer History Museum。据Urs Hölzle估计,2014年3~4台服务器就可以服务1999年时(需要约1700台服务器处理)的流量了。

推荐阅读
关注数
2834
内容数
57
云计算、基础设施、大数据领域的技术话题
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息