保密本就是数据中心行业的惯例。2014年11月,我独自去拉斯维加斯(Las Vegas)南部参观SuperNAP数据中心。下车后,几次试图用手机拍建筑外景,迅速被开着悍马巡逻的警卫阻止。进门等候预约时段,虽说在美国警卫持枪是再平常不过的事,但警卫室里那几位严阵以待、随时准备应付劫匪的架势,仍令我印象深刻。参观数据中心内部不允许拍照是行规,不过之前我参观数据中心都有专人陪同,还没享受过这么戒备森严的待遇。
图注:SuperNAP 7数据中心的接待室,我在这里等了20多分钟,得以观察小窗子里面的警卫室。图片来自SuperNAP官网,下同
这与托管数据中心的性质不无关系,必须为租户保密。自为客户的Google则将基础设施视为核心竞争力之一,这从该公司对基础设施一贯的重视程度也能感受到。因此,Google长期对其数据中心和定制硬件设计秘而不宣,员工入职时要签署保密协议,离开Google一两年内也不能透露。
图注:夜幕下的SuperNAP 7数据中心,典型的美式大平层结构
但是,那些Google自己公开的数据中心内外景照片,又是怎么回事?
2009年3月,Facebook从Google挖来工作近6年(更早在思科做过实习生)的硬件工程师Amir Michael,主管硬件设计。2010年4月1日,Facebook宣布任命Ken Patchett主管其位于俄勒冈(Oregon)州Prineville的第一个自建数据中心。Ken Patchett的职业生涯从康柏(Compaq)起步,在微软积累了近6年的数据中心和网络运营经验。到Google后指导过位于俄勒冈州Dalles的数据中心,去Facebook之前又在亚洲工作了一年多,管理Google自有和托管的数据中心。转了一圈,又回到俄勒冈州。
图注:SuperNAP数据中心的警卫室
从服务器设计到数据中心运营,Facebook坚持挖Google墙角,后者又不好打官司——这意味着要公开更多细节。更绝的还在后面:2011年4月,乘Prineville数据中心投产之东风,Facebook宣布发起开放计算项目(Open Compute Project,OCP),开源了其包括数据中心、定制服务器在内的一系列硬件设计。
三年两大招,先挖人,再开放,Facebook在数据中心规模比Google差一个量级的条件下,经常被与前三大(还有微软和亚马逊)相提并论,OCP居功至伟,甚至连“百万富嗡”(指服务器风扇的噪音,非贬义)微软都来入伙。
Facebook将数据中心宣传的公关战提高到一个崭新的水平。Google在2012年10月对外公开了一些数据中心技术的情况,包括请记者参观,和网站上近百张高清晰度的照片。但是,对于IT设备(服务器和网络)及相关技术,Google依然讳莫如深,至多提及其已废弃的服务器。Urs参与的前后两版书里,也是以宏观理念和数据中心层面的建设原则为主。
图注:Google位于俄勒冈州Dalles的数据中心依山傍水(哥伦比亚河),团队成员可以享受漂流、风力冲浪、钓鱼和徒步的乐趣。注意看左上角的山腰处(来源:Google官网)
有趣的是,James Hamilton还对Google公开的这些信息分析点评了一番。曾被认为在技术中心实力和保密程度上与Google一时瑜亮的AWS,如今似乎是最神秘的了。
总体而言,Google透露的是久远的历史和近期的状况,中间的壮大过程中传世不多,Facebook的发展史或许可资借鉴。#p#
从一台服务器到多个数据中心
2004年2月,Mark Zuckerberg(马克·扎克伯格)在哈佛大学宿舍内将Facebook上线,当时只有一台服务器。仅仅五年之后,这个世界最大的社交网站已拥有超过3亿活跃用户,每天处理3.9万亿feed,超过10亿聊天信息,1亿搜索请求,每月超过2000亿PV……
在只有一小撮人使用,少量照片、没有视频的草创时期,全部服务运行在一台服务器上还是没问题的。2009年时的Facebook网站显然是另一个样子:载入用户主页这么一个看似简单的动作,就需要在不到一秒钟的时间里访问数以百计的服务器,处理上万片分散在各处的数据并提交所需的信息。
服务器的增长速度不难想象,有迹象表明,Facebook的服务器数量:
2008年4月约1万台;
2009年约3万台;
2010年6月至少6万台……
即使放在今天,这个数量也可以排在Tier 2互联网客户的前列(以10万台为界,超过即为Tier 1,Facebook是十几家之一),能效就是必须要考虑的问题了。以每台服务器200W的保守计算,年耗电量已经超过1亿度。如果数据中心PUE(Power Usage Effectiveness,电源使用效率)能从1.5降到1.1,每年即可节省4200万度电。
直到2009年,Facebook仍然依靠租用的数据中心空间,没有自建的数据中心。租用数据中心空间(自己部署服务器、网络等IT设施)的优点是交付速度较快,可以在5个月内搞定;建设一个数据中心则需要大约一年的时间和更多的前期投资,但是在供电和散热等方面可以根据自身需求定制,对超大规模用户更划算,Google、、微软和亚马逊早就自建数据中心了。
图注:Prineville的两座数据中心建筑(来源:Facebook官网,2014年)
2010年1月,Facebook宣布在俄勒冈州的Prineville建设属于自己的第一个数据中心,规划面积约1.4万平米,目标PUE为1.15。同年7月,社交巨头决定将Prineville数据中心的规模倍增至约3万平米。2010年12月完工,得益于100%使用外部空气冷却、无需空调的一系列高能效设计,PUE可低至1.073。与1.51的“业界平均值”相比,节能幅度还略好于我们刚才的假设。
图注:2013年8月底,夕阳下的Altoona数据中心建设工地,占地约194英亩。到2013年11月中旬,每天有超过200人工作,累计工时近10万小时(来源:Facebook官网)
从自建数据中心尝到甜头的Facebook再接再厉,先后在北卡罗来纳州(North Carolina)的Forest City(2010年11月宣布)、瑞典的Luleå(2011年10月宣布)和衣阿华(Iowa)州的Altoona(2013年4月宣布)建设数据中心。每个数据中心建成后都有扩建,像Prineville和Forest City还各增加了一个用于冷存储的数据中心(建筑),Luleå和Altoona的二期工程也在2014年启动。
OCP缘起:青出于蓝以胜蓝?
没有开源就没有今天的互联网行业,但这主要是从软件的角度来说。Google在软件开源方面还是做了不少工作,著名的Hadoop便可以视为Google无意间“开源”了思路的结果。就在2015年2月,Google宣布将其2014年6月收购获得的MapReduce for C(MR4C)开源,这是用C++开发的MapReduce框架,此举让用户可以在自己的Hadoop环境中运行原生的C及C++代码,是Hadoop社区的福音。
支撑互联网基础设施的是开放硬件技术,这与开源不太一样。英特尔通过开放硬件技术营造的生态环境,击败了IBM及其他RISC厂商(ARM另当别论),但至少在OCP出现之前,无法想象戴尔和惠普会公开其服务器的详细设计材料。而且,“开源+开放”也不意味着结果一定是透明的,Google就在开源软件和开放硬件技术的基础上打造了专有的数据中心。
应该说,扎克伯格很早就意识到,Facebook与Google必有一战,而且这一天远比国人听着耳熟的某同样句式表达来得快。Google在整个Web上开展广告业务,Facebook在自己的社交网络里开展广告业务,就像腾讯不让百度搜索进入微信一样,Facebook也要发展自己的搜索引擎。2013年Facebook上线了Graph Search,2014年12月初又更新为Facebook Search,随即在Facebook的搜索中去掉来自微软Bing的Web搜索结果。
很重要的一个区别是,腾讯并不比百度小,而Facebook自身尚不能与Google抗衡。从服务器到数据中心,Google起步早,规模大,自成体系。为了迅速缩小基础设施领域与Google的差距,Facebook想出了通过开源壮大生态系统的妙招,即成立开放计算项目(OCP)。
图注:开放计算项目(Open Compute Project)的Logo,左侧是用服务器主板拼成的“f”(来源:张广彬,2013年)
作为一个开源的硬件项目,OCP不仅是公布Facebook“白手起家”定制数据中心和服务器的细节,直到机架和主板的CAD图纸,更邀请开源社区及其他合作伙伴使用并改进。也就是分成两个步骤:先放出规范和机械图纸,再与社区共同改进它们。
如果我们考虑Facebook和Google身上类似硬件厂商的成分,可以看到,即便是生态系统的核心厂商如英特尔,也很难有如此社区化的思维。没错,上一个这样做的是Google,为了对抗苹果iOS而开源Android,成功的建设起巨大的生态系统,以群狼围攻猛虎。
在这个资金和人才密集型行业,开源是争夺人才的好办法,还具有显著的广告效应。有更多的客户使用基于OCP规范的硬件,也可以增大采购量,帮助Facebook降低成本,起到类似团购的效果。
当时OpenStack刚刚兴起,OCP也采用了一些类似的做法,譬如上下半年各一次峰会(Summit),并在2011年10月27日召开的第二届OCP Summit上,宣布成立OCP基金会(Open Compute Project Foundation)。不过,硬件设计的周期较长,于是,从2012年开始改为每年一次,2015年3月9至11日召开了第六届峰会。
图注:Facebook的基础架构部门(来源:张广彬,2013年)
在2014年1月底召开的第五届OCP峰会上,Mark Zuckerberg和Facebook工程副总裁Jay Parikh宣布,OCP成立三年来,开源硬件方案帮助Facebook节约了12亿美元。
此时,OCP的成员总数已接近200家(不乏2014年加入的微软、VMware等重量级传统企业厂商),以广达(Quanta)为代表的7家解决方案提供商,大量经过验证的设计,Facebook和Rackspace的采用……接下来,就从董事会和典型项目两个方面,大致介绍一下OCP这个开源硬件组织的组织架构及主要成果。#p#
董事会:经验的传承
成立基金会,而不是在Facebook一家控制之下,对OCP发展的重要性不言而喻。OCP基金会在董事会的管理下运作,最初有5位董事,分别来自5家公司。
Frank Frankovsky代表Facebook,担任OCP基金会主席兼总裁。2009年10月加入Facebook,先后担任硬件设计与供应链运营总监和副总裁。此前,在戴尔负责服务器定制业务的数据中心解决方案(Data Center Solutions,DCS)部门担任总监近四年,上世纪90年代曾任康柏(Compaq)计算机公司的产品经理。
图注:Facebook硬件实验室一角。在硬件实验室里,这已经算相当整洁的了(来源:张广彬,2013年)
Mark Roenigk是Rackspace Hosting的COO,在微软工作过9年,大部分时间负责OEM和供应链运营,此前7年是康柏的工程师。Rackspace是著名的服务器托管商,有丰富的数据中心建设、运营和硬件经验,还与NASA共同催生了OpenStack——是惟一在一软一硬这两大开源组织中都有肇始之功的公司。
Jason Waxman现任英特尔(Intel)数据中心事业部高密度计算业务总经理,主要负责的领域包括互联网数据中心、刀片服务器以及与未来密集型数据中心架构相关的技术。他还负责领导英特尔在云计算方面的工作,并在Blade.org和服务器系统架构组织(Server System Infrastructure Forum,SSI Forum)的董事会兼任管理职位。此前曾担任负责英特尔至强(Xeon)处理器、相关芯片组和平台产品及其客户关系的总监。
图注:Facebook在硅谷的园区以前属于Sun——一家值得缅怀的伟大公司,顺道缅怀拍下这张照片的手机(来源:张广彬,2013年)
Andy Bechtolshiem来自Arista Networks,更响亮的名头是“Sun Microsystems共同创办人”。Andy Bechtolshiem担任过Sun的首席系统架构师,第一个投资Google,还担任闪存初创企业DSSD的董事长——后者2014年5月被EMC高调收购。
除高盛(Goldman Sachs)的Don Duet职业生涯主要履历为CIO之外,以上四人均有深厚的硬件行业背景,从产品、技术到供应链都有涉猎,见多识广,经验丰富,对把控开源硬件项目的发展方向至关重要。
正如前面所说,OCP下辖的项目很多,从服务器到数据中心,还包括机架(Rack)、存储、网络、硬件管理,并于2014年启动了HPC(High Performance Computing,高性能计算)项目。
服务器:始于Google,终成一派
Facebook开始定制硬件不算早,前期的服务器也来自OEM。Facebook基础设施工程负责人Jay Parikh在2012年10月中旬的GigaOm Structure欧洲会议上表示,在瑞典Luleå的数据中心将是Facebook首次完全没有采用OEM服务器硬件。
图注:Facebook的数据中心集群(2014年公开资料),前端(FE)集群包括大量的Web服务器和一些广告服务器、相对少量的Multifeed服务器;服务集群(SVC)包括搜索、图片、消息等服务器,后端(BE)集群主要是数据库服务器。这一配置规模有可能随着后面提及“6-pack”核心交换机的应用而改变。
这显然与本章一开始提到的Amir Michael有直接关系,他比Frank Frankovsky还早半年加入Facebook,也是OCP的共同创办人之一,2013年1月起担任OCP孵化委员会(Incubation Committee,IC)副主席,4月出任Coolan CEO——该公司与Facebook及OCP颇有渊源,Amir Michael又是共同创办人。
图注:区域数据中心之间的基础设施冗余。FE(前端集群)、SVC(服务集群)、BE(后端集群)组成一个整体,与另一个区域的数据中心互为冗余(来源:Facebook)#p#
超越往往从学习和模仿开始,虽然牛顿所谓“站在巨人的肩上”并非此意。OCP成立时,Facebook数据中心团队贡献的第一代OCP服务器,很大程度借鉴了Google的设计,最明显的标志就是1.5U(66mm)的服务器机箱。这样做的好处是可以使用直径更大的60mm低转速风扇,与1U服务器的40mm风扇相比,节能效果显著。450W供电模块(PSU)支持277V交流和48V直流输入,前者比208V减少不必要的电压转换,后者由备份电池提供短时电力供应,都是为了尽可能的避免能源损耗。散热与供电双管齐下,控制电费(省OPEX)。
图注:Prinevill数据中心的供电转换环节与损耗状况对比(来源:Facebook)
另一点是去掉(前)面板和BMC,没有VGA接口,以贯彻Facebook的“Vanity-free”(无浪费)精神。目标是尽可能降低购置成本(省CAPEX),尽管做工看起来有点糙。正如Jay Parikh所言,OCP服务器比标准服务器少很多功能,也尽可能需要更少的部件。
图注:48伏电池柜的输电路径(来源:Facebook)
OCP V1服务器有AMD(12核Opteron 6100)和Intel(6核Xeon 5600)两种双路方案,主板尺寸为13×13英寸,由广达(Quanta)制造。机箱宽度(480mm,略小于19英寸)和高度单位(Rack U,即RU,1RU为1.75英寸,即44.45mm)都遵守工业标准的“老规矩”,后端有3个硬盘托架,与主板均为免工具拆装。
图注:OCP服务器V1(左)和V2(右)采用同样的1.5U机箱,4个60mm风扇位于主板后方,右侧的硬盘托架由供电模块提供冷却气流。V2的改进包括:硬盘前置便于维护;2个主板提升计算密度,但牺牲了可能的硬盘数量;CPU性能提升(来源:Facebook)
2012年5月初在圣安东尼奥召开的第三届OCP峰会之前,AMD和Intel贡献了第二代OCP主板的设计,得益于至强(Xeon)E5-2600,Intel开始占据压倒性的优势。代号“Windmill”的Intel OCP v2.0主板采用双路Intel Xeon E5-2600,外形长而窄(6.5×20英寸,约165×508mm)。OCP V2服务器仍为1.5U规格,但主板宽度只有第一代的一半,因而能容纳两个计算节点,在同样的机箱内将密度翻番。
为了支持两个主板,V2服务器的供电模块提升为700W,并与硬盘互换位置,这样从前面可以直接维护硬盘。
经过两代服务器的摸索,相继暴露出一些问题:
供电模块的冗余度差。相比于工业标准服务器的1+1冗余电源,这两代服务器只有一个供电模块。OCP V1服务器尚可用“牲口模式”来解释(关键组件出问题即替换整个服务器),OCP V2服务器的供电模块故障会导致两个计算节点失效,有点矫“枉”过正。为此Facebook还设计了高可用(High Availability,HA)服务器的方案,即增加一个PSU,替换下来一个主板,等于把计算密度又降回去了。
可以用前一章所述把PSU集中到机架层面的方案(此时中国的天蝎整机柜已经这么做了),但是以19英寸机箱的宽度,拿走PSU剩下的空间,又不足以放下第三个主板(6.5×3=19.5英寸)。
计算与存储没有解耦合。这在OCP V1服务器中尤为明显,3个驱动器托架可以放6个硬盘,计算节点只用一个启动盘的话,为保留不够用的灵活性而造成大量的空间浪费;OCP V2还好,因为增加的主板挤占了2个驱动器托架的位置。
60mm风扇还不够大。
不同程度的保留了USB接口,却没有BMC(Baseboard Management Controller,基板管理控制器)。哪个对管理更有价值,不言而喻。
除了最后一点,其他几点都需要机箱、乃至机架设计的改变。
Open Rack:重新定义数据中心机架
Facebook最初采用19英寸三联柜设计,名为Freedom Triplet,宽度为1713mm,比三个并排的EIA 310-D机架(600mm×3)略窄。外侧的两个机架(机柜,Rack)上各有一个架顶式(Top of Rack,ToR)交换机,每一列30个Open Compute服务器,共90个。一组三联柜装满90个服务器后总重2600磅(约1179公斤),两组三联柜共享一个备份电池柜。
图注:配合前两代服务器的Freedom三联柜,因并联而略省材料且更稳固,高度也略高于常见19英寸机架,可容纳30个1.5U服务器(45U)以及交换机(来源:OCP规范)
Facebook很快认识到,形成于1950年代的EIA 310-D标准不能满足他们的要求。EIA 310-D标准化了机架内轨之间的宽度(19英寸),但把高度、深度、安装和布线方案以及连接器的规范留给制造商去定义。Facebook认为,这导致服务器和机架设计不必要的分化,把客户锁定于特定的供应商及其实现。
图注:一个直流UPS电池柜支持两组三联柜共180台服务器的全系统(来源:Facebook,2010年)#p#
更关键的问题在于,传统的19英寸机架,考虑到侧边和滑轨,留给IT设备(服务器、存储)的可用宽度只有17.5英寸,不能并排放置3个(6.5英寸宽)主板或5个3.5英寸硬盘。嫌窄者早已有之,如IBM大机和EMC的高端存储,都有宽度在60cm以上的机架,譬如EMC Symmetrix VMAX,系统和存储机架宽度均超过75cm(30.2英寸,合76.7cm),为的也是容纳更大的服务器(存储控制器)或更多的硬盘。
不过,一则拓展外宽未必提高效率,二则大机和高端存储从量上来说,还是小众产品,很少有人几千个机架的买。Facebook的办法是保持外宽600mm(近24英寸)不变,把内部横向间距从483mm扩大到538mm(21英寸),提高55mm(约2.2英寸),取消占地费钱的滑轨,空间利用率从73%(17.5英寸时)跃升为87.5%,可谓创举。
图注:Open Rack俯视图(下前上后),可以看清内宽扩大,前端维护&后端供电等要素(来源:OCP规范)
既然重要的内宽已经改变,索性把每个Unit也重新定义,高度从传统Rack U(RU)的44.5mm,略微放大至48mm,名为OpenU,简称OU,机架也起名为Open Rack(开放机架)。为与之前的设备兼容,保留0.5 OU为最小单位,不过后来似乎没有推出过非整数OU的产品。
然后是整合供电模块,分为3个供电区(Power Zone),每个供电区有3 OU供电框安置7个700W的PSU(来自OCP V2服务器),N+1配置,共4.2kW,整个机架的供电能力达12.6kW。每机架两个PDU,200-277V交流在左后方,48V直流在右后方。服务器从机架正后方等距分布的3根铜排(Bus bar,母线)上取电,PSU输出电压12.5V,正好满足服务器对12V输入的要求。
Open Rack v0.5版规范于2011年12月15日释出,在第三届OCP峰会上隆重介绍。该版本建议每个供电区为15 OU,12 OU用于IT设备;然后再留2 OU放置ToR交换机,总高度至少47 OU(不低于2300mm,似可见之前Triplet纵向空间分配思路的遗存)。2012年9月18日,Open Rack 1.0规范公布,主要明确了以下几点:
专注于单列机架设计(非三联柜);
入口(inlet)温度提高到35摄氏度,反映其他Open Compute设计和真实数据中心的温度;
交换机布置更灵活,不仅限于供电区的顶端;
计算设备(服务器/存储)机箱为1-10 OpenU高,支持L形支架直接承载。L形支架明显比传统服务器的测滑轨节省空间和成本,免工具安装,可以0.5 OpenU(24mm)为增量固定;
最大高度取决于供电区,但建议不要超过2100mm,以保持稳定。常见的做法是每个供电区13 OU,IT设备10 OU,再加2 OU交换机,共41 OU;
新设计的簧片(clip),使机箱电源连接器易与铜排配合。
图注:Open Rack V1前视图和侧视图(左前右后),可以看到纵向空间的分配(来源:OCP规范)
综合起来,Open Rack的特点主要是:
拓展空间。 开创性的提高了内部利用率,特别是留给IT设备的宽度大为增加,单位高度也略有提升,同时尽可能的保持了与原有机架标准的兼容性(外宽一致,高度接近);
集中供电。 提供机架范围内的共享与冗余,服务器等IT设备直接插拔取电,免去上架时的手动连线工作;
前端维护。 后端用于供电和散热,维护人员在冷通道一侧即可完成日常工作,不用进入热通道。两边跑不仅增加了工作量,在后端识别设备困难,容易导致误操作。
当然副作用也是有的,即两侧起支撑作用的部分变薄,同时内部IT设备可能的重量还会增加(Open Rack V1.1规范已达950千克,接近本节开头提到的三联柜),对机架强度提出挑战。在整机柜交付等运输途中尤其如此,早期的Open Rack要在后端加斜梁辅助,防止变形。
不过,在目前的Open Rack V2规范里,基本机架配置在动态环境下支持500千克的IT设备,通过增加紧固螺栓等手段,重载机架配置(Heavy Rack Config)可以支持1400千克的IT设备——作为对比,James Hamilton在re:Invent 2014大会上透露,AWS的存储优化机架可容纳864个(3.5英寸)硬盘,重达2350英镑(约1066千克)——要怎么装出这个密度来,也是门学问。
还是类似三联柜的方式稳固(来源:OCP Engineering Workshop)
图注:Open Rack V2还有重组供电布局、去掉单独电池柜等重要改进,将在后面的章节介绍。#p#
Open Vault:存储从服务器分离
得益于Open Rack,第四届OCP峰会上亮相的第三代OCP服务器(代号Winterfell)在设计上有质的飞跃:
主板仍然是v2.0,但服务器高度增至2 OU,并特意强调不是1.5 OU,80mm风扇效率进一步提高;
更大的纵向空间有利于容纳全尺寸GPGPU,支持两个全高的PCIe卡,一个3.5英寸驱动器槽位,均从前端维护;
服务器机箱里没有PSU,正好并排摆放三台(2个80mm风扇),分别从后部的铜排取电,密度进一步提高(2 OU3)且相互独立;
观感上,做工精细了很多,裸露部分的处理也较好,总体上不输一般商用服务器的水准。
图注:用于Open Rack V1的OCP服务器(Winterfell)俯视图及三联装(共占用2 OU机架空间)(来源:网络图片组合)
现在的OCP服务器主板已发展到V3.1,尺寸不变,支持Intel Xeon E5-2600 V3,16个DIMM/NVDIMM,加上了BMC,支持Open Rack V1和V2。3个75W PCIe x8插槽,挤占了硬盘的位置,代之以板载mSATA/M.2(2260,60mm长),以前只支持mSATA,且需要通过适配器。
硬盘先是被边缘化,接着连装操作系统的工作也被SSD抢走了。那么,大容量存储怎么办?
图注:没有存储项目时Facebook的6种服务器类型,Type Ⅱ因与Type Ⅵ配置而被并入(弱势的AMD啊),多数公开资料里都没有;Type Ⅳ和Ⅴ的存储配置看着很像2U的所谓“存储服务器”(来源:Facebook)
我们常说,互联网公司是不买存储(设备)的,这里指的是SAN、NAS等传统的企业级阵列,而不是没有对大容量存储的需求。像前面刚提到的AWS存储优化机架,即为一例。
OCP V1服务器支持最多6个3.5英寸硬盘,都放满,不算多;只放一两个,剩下的空间又派不上别的用场。保持灵活性,就得付出浪费空间的代价,问题是也没多灵活。
其时Amir宣布了一个面向存储密集型应用的项目设计,看起来像是个4U设备,支持50个硬盘,分配到两个控制器,可以连接到多台服务器,提供可变的计算与存储配比。
第三届OCP峰会上,失势的AMD基于其双插槽Opteron 6200主板建立了一个代号Roadrunner的项目,包括1U(HPC选项)、1.5U(通用)、2U(云选项)、3U(存储计算选项)共四个规格。2U支持8个3.5英寸或25个2.5英寸驱动器,3U支持12个3.5英寸或35个2.5英寸驱动器,仅以3.5英寸硬盘的密度而言,还不如OEM厂商推出的服务器。在Open Rack实用后,这个项目愈发没有下文,AMD也投靠了ARM阵营,在OCP的项目里主要以微服务器卡(Micro-Server Card)刷存在感。
总的来说,还是Amir那个计算与存储分离(解耦,disaggregation)的思路靠谱。Facebook在时任硬件工程经理Per Brashers和中国籍工程师晏勇等工作人员的努力下,于同一届峰会上公开的Open Vault(代号Knox)取得了成功。这是一个宽度和高度(2 OU)都适配Open Rack的JBOD(Just a Bunch of Disks,一堆硬盘的简单集合,无处理能力,需配合计算节点使用),共30个3.5英寸硬盘,分为上下两层,每层有15个硬盘和一对冗余的“控制器”。电路逻辑比服务器主板简单许多,基本上是Facebook独力设计完成,先交由广达生产,贡献给OCP之后,与OCP服务器一样有其他提供商(如Hyve Solutions和Wiwynn)生产的版本。
图注:抽出一层(tray)共15个硬盘的Open Vault,背景机架供电区上方的2 OU设备为广达的JBR,也是JBOD(来源:张广彬,2013年)
Open Vault是个非常经典的设计,后面会有专门的章节展开分析。
图注:除了CPU、内存和硬盘配置的自然更新,2013年Facebook 的Hadoop(类型4)和Haystack(类型5)服务器都用上了Open Vault,冷存储机架更成为一种新的服务器类型(7),从硬件架构上也可以理解为一台单控制器带8个JBOD组成的低性能存储系统(来源:根据Facebook数据制表)
现在,需要大容量存储的Facebook服务器,如Type Ⅳ(用于Hadoop)和Type Ⅴ(用于Haystack,Facebook的图片应用)都由Open Vault提供存储,还增加了一个OCP服务器带8个Open Vault(240个硬盘)的冷存储(Cold Storage)类型——共18U,占据半个机架。#p#
数据中心:RDDC与水……
如前面介绍,OCP的孕育便与数据中心建设有着密不可分的关系,Facebook贡献的基于Prineville数据中心实践的数据中心电气和机械设计规范,是OCP最早的文档之一;Facebook向OCP贡献的冷存储硬件设计规范包括了冷存储数据中心地面布局的建议,冷存储服务器就是前述的配置。
图注:位于北极圈边缘的Facebook Luleå数据中心,景象是不是有点像前一章介绍的Google芬兰Hamina数据中心?为Hamina数据中心提供电能的Maevaara风力发电厂就在Luleå北边不远……(图片来源:Facebook)
2014年3月初,Facebook数据中心设计团队的设计工程师Marco Magarelli在OCP官网上撰文表示,瑞典Luleå园区的第二座数据中心建筑(Luleå 2)将采用“快速部署数据中心”(Rapid Deployment Data Center,RDDC)的概念模块化构建。RDDC包括两种方法,第二种“flat pack”(组合件)方式自称效仿宜家(Ikea),不过,真正“因地制宜”的是为了适应瑞典寒冷的气候(Luleå离北极圈不到100公里)——Facebook机械和散热工程师Veerendra Mulay在与我的交流中表示,用传统的方法建设数据中心需要11~12个月(参见Prineville),RDDC可以缩短为3~8个月,从而尽量避开Luleå下雪的季节(腾讯天津数据中心建设过程中也曾被暴雪所阻)。
图注:chassis方式的不同类型模块(来源:Facebook)
第一种“chassis”(底盘)方式来源于12英尺宽、40英尺长的预组装钢框架,是类似组装汽车底盘的理念:构建框架,然后在组装线上附件部件。电缆槽、输电排、控制面板乃至照明都在工厂预安装好。对应的,这种模块化方法就像搭建乐高积木。
图注:flat pack方式的分段组装(来源:Facebook)
顾名思义,这两种方法的精髓都体现了由传统的工程项目到工厂预制产品、现场模块化组装的转变。通过部署预安装的总成和预制单元模块、交付可预测和可重用的产品,RDDC能够实现站点无关设计、减少现场影响、改善执行和工艺的目标,加快数据中心建设的速度,提高利用率且易于复制到其他地区。提高效率,终归是要服务业务需求。
图注:Prineville第一座数据中心的散热设计,上层顶棚(对照前面Altoona数据中心的框架结构照片)对外部冷空气和回流热空气进行处理,按一定比例混合
RDDC很大程度上得益于Facebook着力推行的新风供冷(fresh air cooling),没有空调(Chiller-less)和冷却水管道,便于实现数据中心的模块化,另一好处是很低的PUE(约1.07)。相比之下,Google的数据中心模块化程度虽然高,但冷却水管道多少是个阻碍,PUE也略吃亏(约1.12)。不过,因为要靠喷水雾调节温度和湿度,Facebook的数据中心安全性略逊一筹。
图注:Google俄勒冈州Dalles数据中心内景,蓝色的是冷水供应管道,红色的把温水送回致冷。铺设水管典型的工程项目,费时费力,难以模块化(来源:Google官网)
2011年夏天,Prineville的数据中心投入使用不久,建筑控制系统错误的输送了富含水分(湿度95%)的冷空气(80华氏度),“机房里就像飘着一朵雨云”,很多服务器遇湿重启,或者因电线短路而自动关机。那年6月下旬,Facebook曾计划将Prineville数据中心二期像北卡Forest城数据中心一样,把服务器进风温度从80华氏度(26.7摄氏度)提高到85华氏度(约29度),相对湿度从65%提高到90%,温升(ΔT)从25华氏度提高到35华氏度,旨在减少环境的影响,并允许减少45%的空气处理硬件。现在看来其后两个指标只到80%和22华氏度,且只有Forest城数据中心相对湿度为90%,不知是否与这次事故有直接关联。
图注:Facebook三大数据中心(Prineville、Forest City、Luleå)基本设计指标对比(来源:Facebook)#p#
网络:从边缘走向核心
Intel在至强E5-2600的参考平台中力推夹层卡(Mezzanine Card)设计,特别是网卡,让高密度的机器获得和标准(PCIe)插卡接近的灵活性。这一思想在同样基于至强E5-2600的OCP Intel V2.0主板上得到了很好的体现,按照OCP Mezzanine Card 1.0规范设计的夹层卡,安装位置在主板前端(冷通道侧),便于维护。
就标准机架服务器而言,网卡采用夹层卡设计的紧迫性不高,还会提高成本,所以OEM大厂的响应不是很热烈。支持者如戴尔等将灵活性作为主要卖点,以Broadcom或Intel的网卡模块为主,希望能推动传统企业用户加速向万兆网卡升级。OCP服务器则大量采用Mellanox的万兆夹层卡,丰富的特性如能降低传输延迟的RoCE(RDMA over Ethernet,以太网远程内存直接访问)和硬件虚拟化技术SR-IOV(Single Root I/O Virtualization,单根虚拟化)也是其卖点。甚至国内OEM服务器大厂如联想,亦在其天蝎2.0服务器节点中采用这种夹层网卡,如此“拿来主义”精神对扩大OCP的覆盖有一定积极作用。
图注:联想天蝎2.0整机柜服务器节点用的就是万兆OCP夹层卡CX341A,Mellanox ConnectX-3 EN家族的单端口10GbE网卡,以色列原厂生产(来源:张广彬)
OCP Intel V3.0主板加入了对 OCP Mezzanine Card 2.0的支持。2.0版夹层卡新增了可选的第二连接器,以满足未来高速网络(如100GbE)的需求,目前来看更主要的变化是扩大了板上空间,支持的接口模块也从1.0的2个SFP+升至2个QSFP、4个SFP+或4个RJ45/10GBASE-T的多种选择。
图注:OCP夹层卡V2主要有三大改进:增加连接器B、扩大板上空间、可选I/O区域(来源:OCP Engineering Workshop)
说到这里有必要指出,夹层卡属于服务器项目。OCP在网络项目上的起步相对较晚,从2013年才开始有规范产生,2014年逐渐壮大。
按照OCP官网上的说法,网络项目最初的目标是开发边缘(leaf,指ToR)交换机,然后是骨干(spine,相当于Aggregation)交换机和其他硬件及软件方案。
图注:三层网络的Aggregation(会聚)/Access(访问,如ToR)与二层网络的Spine(枝干)/leaf(叶子)存在一定的对应关系(来源:Cumulus Networks)
网络设备与服务器的同源性还没有存储设备那么高,以交换机与服务器的配比,密度早不是一个级别,扩充空间不是优先考虑的事情。已有的几款OCP定制交换机在外形尺寸上很常规,标准RU、能装在19英寸机架里即可,电源和风扇的布置方式也很传统,有助于被企业市场接受。目前,OCP网络硬件追求的是类似服务器的使用体验乃至生命周期,包括控制平面与数据平面的高度模块化、软件与硬件解耦合,以实现定制的灵活性(DIY),避免被供应商锁定。
图注:OCP网络项目的阶段性目标,先从传统单片式(Monolithic)交换机到软硬件解耦,再进一步模块化(来源:Facebook)
数据平面的核心是ASIC(如Broadcom)或FPGA,不乏支持40GbE的方案;控制平面的CPU可以是x86(如AMD的嵌入式SoC,或Intel Atom)、PowerPC(如Freescale多核PPC)、MIPS(如Broadcom多核MIPS)或ARM。截至2015年2月底,OCP已经公开了6款交换机(Accton、Broadcom/Interface Masters、Mellanox和Intel各1款,Alpha Networks有2款)的设计,其中的半数方案可以根据需要配置为ToR或会聚(aggregation)交换机。
软件与硬件解耦,ONIE是关键,也是OCP网络项目早期的重点工作。ONIE即Open Network Install Environment(开放网络安装环境),是一个定义用于裸金属(bare metal)网络交换机的开放“安装环境”的开源项目。传统的以太网交换机有预安装的操作系统,拿来就用,直接管理,但会锁定用户;所谓的白盒(white-box)网络交换机提供了选择硬件的自由,但不同的CPU架构等导致异构的管理子系统,又给上面的网络操作系统制造了困难。#p#
ONIE定义了一个开源的“安装环境”,将boot loader(引导装载程序)与现代的Linux内核及BusyBox相结合,提供了一个可以安装任何网络操作系统的环境,有助于自动化大型数据中心的交换机(上千台)配给,让用户像管理Linux服务器一样管理交换机。
上述成果的直观体现就是Juniper Networks(瞻博网络)2014年12月初发布的OCX1100交换机,在Alpha Networks SNX-60×0-486F的硬件上运行基于Linux的Junos操作系统,预计于2015年第一季度上市。SNX-60×0-486F是Alpha Networks公司设计的OCP交换机,由一个BCM56854(Broadcom Trident Ⅱ)芯片提供48端口10G SFP+和6端口40G QSFP,CPU子系统为Freescale(飞思卡尔)P2020或Intel C2558,可作为ToR或会聚交换机使用。Dell(提供如Z9500-ON数据中心核心及会聚交换机)与Cumulus Networks(提供CLOS)的合作也是类似的情况。
图注:2014年6月公开的Wedge交换机硬件设计,双冗余供电单元,4个风扇(来源:Facebook)
没错,Facebook正在向核心交换机挺进。2014年6月,Facebook展示了其设计的新款ToR交换机(代号Wedge),有多达16个40GbE端口,支持Intel、AMD和ARM的CPU,配以基于Linux的操作系统(代号FBOSS)。
图注:6-pack硬件平台外观,由于集中了PSU,Wedge交换机宽度更紧凑,两两并行放置(来源:Facebook)
2015年2月11日,Facebook宣布推出第一款开放硬件模块化交换机“6-pack”,7RU的机箱,装有8个基于Wedge的交换机和2个fabric卡,共6层,底下还有一层电源和风扇。作为Facebook data center fabric的核心,6-pack将使Facebook可以组建更大规模的集群,而不是将集群分为多个,并因集群间的网络链路而限制集群的规模。
图注:6-pack内部网络数据路径拓扑(来源:Facebook)
Wedge和6-pack都将通过OCP公开设计规范。
反哺与变局:来自传统厂商的支持
2014年是OCP变动很大的一年,尽管也遇到了一些困惑,但生态系统明显壮大了起来,特别是体现出对传统软硬件厂商的吸引力。
1月底召开的第五届OCP峰会上,微软高调宣布加入OCP,风头明显盖过一同亮相的IBM、Yandex、Cumulus Networks、Box、松下、Bloomberg、IO、LSI(已被Avago收购)。相比看起来像是打入内部探听消息的IBM,微软可谓诚意十足——贡献了用于全球云服务(如Windows Azure、Office 365和Bing)的开放云服务器(Open CloudServer,OCS)设计作为“投名状”。
单论数据中心的规模,微软应该比Facebook和还在疯狂赶进度的IBM/SoftLayer(也是10万+服务器的Tier 2互联网客户)加在一起都大,把新硬件的采购换成OCP就已经是天大的喜讯了,再贡献一组硬件设计规范及管理软件源码,Staya Nedella还没上任就大赦天下?
显然没那么简单,微软也有与Facebook类似的想法。
现在OCP的服务器规范与设计页面中,开放云服务器的资料列在最上面,在2014年的Engineering Workshop里也是服务器部分的宣讲重头。OCS的12U机箱为EIA 310-D 19英寸机架而设计,半宽的计算和存储刀片,每U两节点(1U2),集中风扇、PSU和管理单元(Chassis Manager),很不Open Rack,更像12U的天蝎1.0整机柜(下一章介绍)。如此看来,要把天蝎项目纳入OCP,确实不是技术上的问题——只要BAT愿意……当然是在开放数据中心委员会成立之前。
2014年10月底在巴黎召开的欧洲峰会上,公布了OCS V2规范。V2的计算刀片将CPU从V1的双路Intel Xeon E5-2400 v2(10核/CPU)升级为最新的双路Intel Xeon E5-2600 v3(14核/CPU,v3没有2400),内存随之由12个DDR3-1333升级为16个DDR4-2133,支持的容量范围也从64-192GB扩至128-512GB。计算能力大为增强,但CPU的TDP也从95W(应为E5-2470 v2)提高到120W(应为E5-2683 v3),因而每个刀片的能耗从不到250W增至300W或以上。#p#
图注:开放云服务器的机箱组件,机箱管理卡类似于天蝎整机柜的RMC,特点是运行Windows Server 2012 R2,微软已开源机箱管理软件的代码(来源:OCP Engineering Workshop)
所以,OCS V2的机箱也进行了升级,首先是6个PSU从1400W换成1600W,N+1配置时总容量8kW,支持24个计算刀片,N+N配置时为4.8kW。付出的代价是供电的停顿时间(hold-up time)从10毫秒倍增为20毫秒,并以新的风扇匹配刀片的能耗。
刀片性能的提高,对I/O带宽也提出了更高的要求,OCS V2每层托盘(Tray)的I/O从V1的双10GbE和双6Gb SAS(x4)升级为10/40GbE和双12Gb SAS(x4),并增加了PCI Express 3.0 x16的夹层卡。
图注:2011年微软IT-PAC(IT Pre-Assembled Components,IT预组装部件)中的服务器机架,看似是开放云服务器的前身,目测机架高度应该在50U以上
存储刀片为可容纳10个3.5英寸硬盘驱动器的JBOD,V2也是从V1的6Gb SAS升级为12Gb SAS,单就硬盘密度而言,每机架可达800个硬盘。V1 JBOD仍可用于V2机箱,每个计算刀片自带4个3.5英寸硬盘(V1还支持2个2.5英寸SSD,V2增至4个,以及8个110mm M.2 PCIe NVMe模块)。每个计算刀片可连接1-8个JBOD,即支持14-84个硬盘。
图注:Facebook的PB级蓝光归档存储系统(来源:The Register,2014年)
第五届OCP峰会上还展示了Facebook的蓝光光盘归档存储系统,42U的空间内可以容纳1万个三层100GB光盘,容量达1PB,据称可以保存信息50年。Facebook的前辈Google使用单盘容量更大的磁带,也有历史因素,Facebook则认为光盘代表着未来。
图注:Google南卡Berkeley County数据中心的磁带备份系统,这张照片以前曾被误传为Google的服务器(来源:Google官网)
从离线存储的角度来看,磁带与光盘各有千秋,短期内难分胜负。很快见效的是,2014年3月下旬,Frank Frankovsky宣布离开Facebook,去做一个基于光盘的冷存储初创公司,但以独立身份保留在OCP基金会董事会的位置,并继续担任基金会主席兼总裁。董事会里必须有Facebook的代言人,于是增补了Facebook基础设施总监Jason Taylor,以及微软负责云和企业业务的副总裁Bill Laing,规模扩大到7人。
图注:调整后的OCP组织架构(来源:OCP官网)
老牌存储厂商EMC在2013年1月举办的第四届OCP峰会上就宣布入伙,只是风头被一起加入OCP的ARM压过。因此,EMC World 2014上发布基于x86商用服务器硬件的ECS(Elastic Cloud Storage,弹性云存储)设备时,就被问到是否与OCP有关。相比之下,EMC的子公司VMware就爽快得多,在2014年8月底举办的VMworld 2015上宣布加入OCP,尚处于技术预览阶段的EVO: RACK则明确表示基于OCP硬件——毕竟,VMware自身没有硬件包袱。