狒话 · 2020年06月07日

数据中心开源:缘起Facebook,成于OCP

本文最初发表于 2015年6月10日最初分为七部分发表,2015年6月19日连载完成。

看了《数据中心即服务器:Google、微软、Amazon三巨头的言与行》《规模,决定制生态:定制新常态》,有没有一种(互联网)军备竞赛的即视感?那也难怪Google要严格保密了。

保密本就是数据中心行业的惯例。2014年11月,我独自去拉斯维加斯(Las Vegas)南部参观SuperNAP数据中心。下车后,几次试图用手机拍建筑外景,迅速被开着悍马出巡的警卫阻止。进门等候预约时段,虽说在美国警卫持枪是再平常不过的事,但警卫室里那几位严阵以待、随时准备应付劫匪的架势,仍令我印象深刻。参观数据中心内部不允许拍照是行规,不过之前我参观数据中心都有专人陪同,还没享受过这么戒备森严的待遇。

supernap-gallery03.jpg
SuperNAP 7数据中心的接待室,我在这里等了20多分钟,直到预约时间到。(来源:SuperNAP官网照片,下同)

这与托管(Co-location)数据中心的性质不无关系,必须为租户保密。自为客户的Google则将基础设施视为核心竞争力之一,这从该公司对基础设施一贯的重视程度也能感受到。因此,Google长期对其数据中心和定制硬件设计秘而不宣,员工入职时要签署保密协议,离开Google一两年内也不能透露。

supernap-gallery04.jpg
SuperNAP数据中心的警卫室

但是,那些Google自己公开的数据中心内外景照片,又是怎么回事?

2009年3月,Facebook从Google挖来工作近6年(之前在思科做过实习生)的硬件工程师Amir Michael,主管硬件设计。2010年4月1日,Facebook宣布任命Ken Patchett主管其位于俄勒冈(Oregon)州Prineville的第一个自建数据中心。Ken Patchett的职业生涯从康柏(Compaq)起步,在微软积累了近6年的数据中心和网络运营经验。到Google后负责过位于俄勒冈州Dalles的数据中心,去Facebook之前还在亚洲工作了一年多,管理Google自有和托管的数据中心。兜兜转转,又回到俄勒冈州。

Freedom peoples.jpg
2009年,Frank Frankovsky(左三,时任Facebook硬件设计及供应链总监)和Amir Michael(左四)、Pierluigi Sarti(右一,现任Facebook系统架构师)、Marco Baray(左一,时任Facebook技术运营经理/工程师,之前在McAfee服务器运营部门任职)、Ziad Abikaram(左二,时任Facebook技术项目经理,之前在微软Windows Live团队任高级项目经理)、Sandy Fortin(右二,2009年6月之后任Facebook技术运营部门供应商经理至今,之前在Google任技术项目经理)、Ali Heydari(右三,时任Facebook高级硬件工程师,然后在Twitter任同样职位,2014年11月起任百度高级技术总监/首席架构师)一行赴台湾启动定制服务器项目Freedom Project,在知名主板制造商华硕(Asus)公司总部大厅用废弃主板拼成的蒙娜丽莎像前合影(来源:Amir Michael的Facebook)

从服务器设计到数据中心运营,Facebook坚持挖Google墙角,后者又不好打官司——这意味着要公开更多细节。更绝的还在后面:2011年4月,乘Prineville数据中心投产之东风,Facebook宣布发起开放计算项目(Open Compute Project,OCP),开源了其包括数据中心、定制服务器在内的一系列硬件设计。

Facebook DC road.jpg
始于2009年推出留有Google印记的定制服务器,随着各种人才的陆续加入和经验积累,Facebook自主的范围扩大到整机柜和数据中心,还推出了RDDC(快速部署数据中心)的概念,本文陆续都会提及(图源:阿里技术保障部资深IDC专家陈炎昌&网络世界,2014年)

三年两大招,先挖人,再开放,Facebook在数据中心规模比Google差一个量级(几十万台对几百万台)的条件下,经常被与前三大(还有微软和亚马逊)相提并论,OCP居功至伟,甚至连“百万富嗡”(指服务器风扇的噪音,非贬义)微软和以自成体系闻名的苹果都来入伙。

supernap-gallery02.jpg
夜幕下的SuperNAP 7数据中心,兼具Google与Facebook数据中心的特点,最大的区别在于其托管属性

Facebook将数据中心宣传的公关战推高到一个崭新的水平。Google在2012年10月对外公开了一些数据中心技术的情况,包括请记者参观,和网站上近百张高清晰度的照片。但是,对于IT设备(服务器和网络)及相关技术,Google依然讳莫如深,至多提及其已废弃的服务器。Urs Hölzle参与的前后两版书里,也是以宏观理念和数据中心层面的建设原则为主。

DLS_008.jpg
Google位于俄勒冈州Dalles的数据中心依山傍水(哥伦比亚河),团队成员可以享受漂流、风力冲浪、钓鱼和徒步的乐趣。注意看左上角的山腰处(来源:Google官网)

有趣的是,AWS(Amazon Web Services,亚马逊网络服务)副总裁兼杰出工程师James Hamilton还对Google公开的这些信息分析点评了一番。曾被认为在技术中心实力和保密程度上与Google一时瑜亮的AWS,如今似乎是最神秘的了。

总体而言,在数据中心相关技术上,Google透露的是久远的历史和近期的状况,中间的壮大过程传世不多,Facebook的发展史或许可资借鉴。

从一台服务器到多个数据中心

2004年2月,Mark Zuckerberg(马克·扎克伯格)在哈佛大学宿舍内将Facebook上线,当时只有一台“服务器”。仅仅五年之后,这个中国以外最大的社交网站已拥有超过3亿活跃用户,每天处理3.9万亿feed,超过10亿聊天信息,1亿搜索请求,每月超过2000亿PV……

在只有一些校友使用,少量照片、没有视频的草创时期,全部服务运行在一台服务器上还是没问题的。2009年时的Facebook网站显然是另一个样子:载入用户主页这么一个看似简单的动作,就需要在不到一秒钟的时间里访问数以百计的服务器,处理上万片分散在各处的数据并提交所需的信息。

服务器的增长速度不难想象,有迹象表明,Facebook的服务器数量:

  • 2008年4月约1万台;
  • 2009年约3万台;
  • 2010年6月至少6万台……

即使放在2015年,这个数量也可以排在Tier 2互联网客户的前列(IDC的定义以10万台为界,超过即为Tier 1,Facebook是十几家之一),能效就是必须要考虑的问题了。以每台服务器200W(瓦)的保守计算,年耗电量已经超过1亿度。如果数据中心PUE(Power Usage Effectiveness,电源使用效率)能从1.5降到1.1,每年即可节省4200万度电。

Server Cluster.png
Facebook的数据中心集群(2014年公开资料),前端(FE)集群包括大量的Web服务器和一些广告服务器、相对少量的Multifeed服务器;服务集群(SVC)包括搜索、图片、消息等服务器,后端(BE)集群主要是数据库服务器。这一配置规模有可能随着后面提及“6-pack”核心交换机的应用而改变

直到2009年,Facebook仍然依靠租用的数据中心空间,没有自建的数据中心。租用数据中心空间(自己部署服务器、网络等IT设施)的优点是交付速度较快,可以在5个月内搞定;建设一个数据中心则需要大约一年的时间和更多的前期投资,但是在供电和散热等方面可以根据自身需求定制,对超大规模用户更划算,Google、微软和亚马逊早就自建数据中心了。

Infrastructure Redundancy.png
Facebook区域数据中心之间的基础设施冗余。FE(前端集群)、SVC(服务集群)、BE(后端集群)组成一个整体,与另一个区域的数据中心互为冗余(来源:Facebook)

2010年1月,Facebook宣布在俄勒冈州的Prineville建设属于自己的第一个数据中心,规划面积约1.4万平方米,目标PUE为1.15。同年7月,社交巨头决定将Prineville数据中心的规模倍增至约3万平方米。2010年12月完工,得益于100%使用外部空气冷却、无需空调的一系列高能效设计,PUE可低至1.073。与1.51的“业界平均值”相比,节能幅度还略好于我们刚才的假设。

Prineville-2014.jpg
Prineville的两座数据中心建筑(来源:Facebook)

从自建数据中心尝到甜头的Facebook再接再厉,先后在北卡罗来纳(North Carolina)州的Forest City(2010年11月宣布)、瑞典的Luleå(2011年10月宣布)和衣阿华(Iowa)州的Altoona(2013年4月宣布)建设数据中心。每个数据中心建成后都有扩建,像Prineville和Forest City还各增加了一个用于冷存储的数据中心(建筑),Luleå和Altoona的二期工程也在2014年启动。

Altoona-20140312.jpg
2014年3月,建设中的Altoona数据中心(来源:Facebook)

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)。

OCP-Logo.jpg
Facebook园区内开放计算项目(Open Compute Project)的Logo,左侧是用服务器主板拼成的“f”(来源:张广彬,2013年)

作为一个开源的硬件项目,OCP不仅是公布Facebook“白手起家”定制数据中心和服务器的细节,直到机架和主板的CAD图纸,更邀请开源社区及其他合作伙伴使用并改进。也就是分成两个步骤:先放出规范和机械设计图纸,再与社区共同改进它们。

如果我们考虑Facebook和Google身上类似硬件厂商的成分,可以看到,即便是生态系统的核心厂商如英特尔,也很难有如此社区化的思维。没错,上一个这样做的是Google,为了对抗苹果iOS而开源Android,成功的建设起巨大的生态系统,以群狼围攻猛虎。

在这个资金和人才密集型行业,开源是争夺人才的好办法,还具有显著的广告效应。有更多的客户使用基于OCP规范的硬件,也可以增大采购量,帮助Facebook降低成本,起到类似团购的效果。

facebook infrastructure.jpg
Facebook的基础架构部门(来源:张广彬,2013年)

当时OpenStack刚刚兴起,OCP采用了一些类似的做法,譬如上下半年各一次峰会(Summit),并在2011年10月27日召开的第二届OCP Summit上,宣布成立OCP基金会(Open Compute Project Foundation)。不过,硬件设计的周期较长,于是,从2012年开始改为每年一次(其实OpenStack半年一个版本的做法也有争议),2015年3月9~11日召开了第六届峰会。

在2014年1月底召开的第五届OCP峰会上,Mark Zuckerberg和Facebook工程副总裁Jay Parikh宣布,OCP成立三年来,开源硬件方案帮助Facebook节约了12亿美元。13个月之后的第六届峰会上,Jay Parikh宣布的数字增长为20亿美元,每年通过OCP节省的能源可供8万家庭使用,减少的碳排放等量于9.5万辆汽车。

OCP Odyssey.jpg
OCP成立四年来的主要硬件成果(来源:第六届OCP峰会上Facebook工程副总裁Jay Parikh的演讲材料)

2013年EMC、2014年微软、IBM、VMware等重量级传统企业厂商先后加入,到苹果在2015年低调加入,OCP的成员总数约有200家(不过,已破产的Calxeda还留在名单上),以广达(Quanta)、惠普(HP,2015年加入)为代表的7家解决方案提供商,大量经过验证的设计,Facebook和Rackspace的采用……

OCP Membership.jpg
接下来,就从董事会到典型项目的发展,大致介绍一下OCP这个开源硬件组织的组织架构及主要成果。

董事会:经验的传承

成立基金会,而不是在Facebook一家控制之下,对OCP发展的重要性不言而喻。OCP基金会在董事会的管理下运作,最初有5位董事,分别来自5家公司。

OCP Board Members.png
2015年3月初的OCP董事会成员,增加的2人后面会提及(来源:第六届OCP峰会演讲材料)

Frank Frankovsky代表Facebook,担任OCP基金会董事会主席兼总裁。2009年10月加入Facebook,担任硬件设计及供应链总监,2012年2月起任硬件设计及供应链运营副总裁。此前,在戴尔负责服务器定制业务的数据中心解决方案(Data Center Solutions,DCS)部门担任总监近四年,上世纪90年代曾任康柏(Compaq)计算机公司的产品经理。

Facebook Lab.jpg
Facebook硬件实验室一角。在硬件实验室里,这已经算相当整洁的了(来源:张广彬,2013年)

Mark Roenigk是Rackspace Hosting的COO,在微软工作过9年,大部分时间负责OEM和供应链运营,此前7年是康柏(又是Compaq)的工程师。Rackspace是著名的服务器托管商,有丰富的数据中心建设、运营和硬件经验,还与NASA共同催生了OpenStack——是惟一在一软一硬这两大开源组织中都有肇始之功的公司。

Jason Waxman时任英特尔(Intel)数据中心事业部高密度计算业务总经理,主要负责的领域包括互联网数据中心、刀片服务器以及与未来密集型数据中心架构相关的技术。他还负责领导英特尔在云计算方面的工作(现任云平台部门总经理),并在Blade.org和服务器系统架构组织(Server System Infrastructure Forum,SSI Forum)的董事会兼任管理职位。此前曾担任负责英特尔至强(Xeon)处理器、相关芯片组和平台产品及其客户关系的总监。

Sun Badge.jpg
Facebook在硅谷的园区以前属于Sun——一家值得缅怀的伟大公司,顺道缅怀拍下这张照片的手机(来源:张广彬,2013年)

Andy Bechtolshiem来自Arista Networks,更响亮的名头是“Sun Microsystems共同创办人”。Andy Bechtolshiem担任过Sun的首席系统架构师,第一个投资Google,还担任闪存初创企业DSSD的董事长——后者2014年5月被EMC高调收购。

除高盛(Goldman Sachs)的Don Duet职业生涯主要履历为CIO之外,以上四人均有深厚的硬件行业背景和影响力,从产品、技术到供应链都有涉猎,见多识广,经验丰富,对把控开源硬件项目的发展方向至关重要。另外不可忽视的一点是,在各自公司里的职位足够高,方便调动资源支持。

Goldman Sachs - OCP.png
作为OCP的创始核心成员之一,金融行业的著名企业高盛自认为是一家技术公司(6组彩色数字以兹证明),2015年的服务器采购目标是以OCP产品为主,节能5%(来源:根据第六届OCP峰会上高盛常务董事、技术部门联席主管Don Duet主题演讲材料组合)

2015年3月19日,LGE Execs开始管理OCP基金会的财务,相当于“虚拟”CFO,其主理合伙人(Managing Partner)Rocky Bullock成为董事会的第8位成员,担任书记/司库(Secretary/Treasurer)。

OCP Foundation-2015-05-05.png
2015年5月的OCP组织架构(来源:OCP官网)

正如前面所说,OCP下辖的项目很多,从服务器到数据中心,还包括机柜(Rack)、存储、网络、硬件管理,并于2014年启动了HPC(High Performance Computing,高性能计算)项目,电信工作组(Telco Working Group)也在积极活动中……

服务器:始于Google,终成一派

Facebook开始定制硬件不算早,前期的服务器也来自OEM厂商。Facebook基础设施工程负责人Jay Parikh在2012年10月中旬的GigaOm Structure欧洲会议上表示,在瑞典Luleå的数据中心将是Facebook首次完全没有OEM服务器硬件。

这显然与本文开头提到的Amir Michael有直接关系,他比Frank Frankovsky还早半年加入Facebook,也是OCP的共同创始人之一,2013年1月起担任OCP孵化委员会(Incubation Committee,IC)副主席,4月出任Coolan CEO——该公司与Facebook及OCP颇有渊源,Amir Michael又是共同创始人。

Servers - back.jpg
Google俄克拉荷马州梅斯郡(Mayes County, Oklahoma)数据中心的服务器机柜热通道,服务器前端的状态LED反射出绿光。一个机柜有近百个风扇,但不是第二章提及的那种集中的风扇墙,而是分属各台服务器的常规风格,这种服务器的总体设计也为Facebook前两个版本的定制服务器所借鉴(来源:Google官网)

超越往往从学习和模仿开始,虽然牛顿所谓“站在巨人的肩上”原非此意。OCP成立时,Facebook数据中心团队贡献的第一代OCP服务器,代号“Freedom”(反抗Google强权?),实则借鉴了Google的设计,最明显的标志就是1.5U(66mm)的服务器机箱。这样做的好处是可以使用直径更大的60mm低转速风扇,与1U服务器的40mm风扇相比,节能效果显著。450W供电模块(Power Supply Unit,PSU)支持277V交流和48V直流输入,前者比208V减少不必要的电压转换,后者由备份电池提供短时电力供应,都是为了尽可能的避免能源损耗。散热与供电双管齐下,控制电费(省OPEX)。

Power Convert.png
Prineville数据中心的供电转换环节(来源:Facebook)

另一点是去掉(前)面板和BMC,没有VGA接口,以贯彻Facebook的“Vanity-free”(无浪费)精神。目标是尽可能降低购置成本(省CAPEX),尽管做工看起来有点糙。正如Jay Parikh所言,OCP服务器比标准服务器少很多功能,所需部件也大为精简。

DC UPS Backup.png
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)都遵守既有工业标准的“老规矩”,但取消了两侧的机架导轨(Rack Rails)。后端有3个硬盘托架,与主板均为免工具拆装。

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规格,但主板宽度只有第一代的一半,因而能容纳两个计算节点,在同样的机箱内将密度翻番。

OCP V1-V2.jpg
OCP服务器V1(左)和V2(右)采用同样的1.5U机箱,4个60mm风扇位于主板后方,右侧的硬盘托架由供电模块提供冷却气流。V2的改进包括:硬盘前置便于维护;2个主板提升计算密度,但牺牲了可能的硬盘数量;CPU性能提升(来源:Facebook)

为了支持两个主板,V2服务器的供电模块提升为700W,并与硬盘互换位置,这样可以从前面直接维护硬盘。

经过两代服务器的摸索,相继暴露出一些问题:

  1. 供电模块的冗余度差。相比于工业标准服务器的1+1冗余电源,这两代服务器均只有一个供电模块。OCP V1服务器尚可用“牲口模式”来解释(关键组件出问题即替换整个服务器),而OCP V2服务器的供电模块故障会导致两个计算节点失效,就有点矫“枉”过正。为此Facebook还设计了高可用(High Availability,HA)服务器的方案,即增加一个PSU,替换下来一个主板,等于把计算密度又降回去了。
  2. 可以用前一篇文章所述把PSU集中到机柜层面的方案(此时中国同行们的天蝎整机柜已经这么做了),但是以19英寸机箱的宽度,拿走PSU剩下的空间,又不足以放下第三个主板(6.5×3=19.5英寸)。
  3. 计算与存储没有解耦合。这在OCP V1服务器中尤为明显,3个驱动器托架可以放6个硬盘,计算节点只用一个启动盘的话,为保留本就不够用的灵活性(常见的2U服务器可以在前面板容纳12个3.5英寸硬盘)而造成大量的空间浪费;OCP V2还好,因为增加的主板挤占了2个驱动器托架的位置——计算占的比重变大了,存储去哪儿?
  4. 60mm风扇还不够大
  5. 不同程度的保留了USB接口,却没有BMC(Baseboard Management Controller,基板管理控制器)。在大规模应用环境中哪个对管理更有价值,不言而喻。

除了最后一点,其他几点都需要机箱、乃至机柜(Rack)设计的改变。

Open Rack:重新定义数据中心机柜

Facebook最初采用19英寸三联柜设计,名为Freedom Triplet,看名字便可知是配合第一代OCP服务器使用。宽度比三个并排的EIA 310-D规格机柜(600mm×3)略窄,为1713mm,节省重合部分的材料,可谓“斤金计较”。外侧的两个机柜上各有一个架顶式(Top of Rack,ToR)交换机,每一列30个Open Compute服务器,共90个。一组三联柜装满90个服务器后总重2600磅(约1179公斤),两组三联柜共享一个备份电池柜。

2 Triplet - 1 Cabinet.jpg
一个直流UPS电池柜支持两组三联柜共180台服务器的完整单元(来源:Facebook,2010年)

Facebook很快认识到,形成于1950年代的EIA 310-D标准不能满足他们的要求。EIA 310-D标准化了机柜内轨之间的宽度(19英寸),但把高度、深度、安装和布线方案以及连接器的规范留给制造商去定义。Facebook认为,这导致服务器和机柜设计不必要的分化,把客户锁定于特定的供应商及其实现——天蝎整机柜1.0的实践证明了Facebook的观点。

Full Rack Delivery.jpg
Freedom三联柜交付现场(来源:第六届OCP峰会,Frank Frankovsky的演讲材料)

更关键的问题在于,传统的19英寸机柜,考虑到侧边和滑轨(Sliding Rails),留给IT设备(服务器、存储)的可用宽度只有17.5英寸(444.5mm,相当于10U,当然U是个高度单位),不能并排放置3个(6.5英寸宽)主板或5个3.5英寸硬盘。嫌窄者早已有之,如IBM大机和EMC的高端存储,都有宽度在60cm以上的机柜,EMC Symmetrix VMAX的系统和存储机柜宽度均超过75cm(30.2英寸,合76.7cm),为的也是容纳更大的服务器(存储控制器)或更多的硬盘。

Freedom Triplet.png
配合前两代服务器的Freedom三联柜,因并联而略省材料且更稳固,高度也略超出常见19英寸机架,可容纳30个1.5U服务器(45U)以及交换机(来源:OCP规范)

不过,一则拓展外宽未必提高空间利用率,二则大机和高端存储利润高得多,量上不去也没太大关系。Facebook的办法是保持外宽600mm(近24英寸)不变,把内部横向间距从483mm(19英寸)扩大到538mm(约21英寸),增加55mm(近2.2英寸),取消占地费钱的(机箱两侧)滑轨,空间利用率从73%(17.5英寸时)跃升为87.5%,可谓大胆挖潜。

Open Rack - Top View.png
Open Rack俯视图(下前上后),可以看清内宽扩大,前端维护&后端供电等要素(来源:OCP规范)

既然重要的内宽已经改变,索性把每个Unit的高度也重新定义,从传统Rack U(RU)的44.45mm,略微放大至48mm,名为OpenU,简称OU,形成的新标准名为Open Rack(开放机柜)。为与之前的设备兼容,保留0.5 OU为最小单位,不过Facebook似乎没有推出过非整数OU的产品。

然后是整合供电模块,分为3个供电区(Power Zone),每个供电区有3 OU供电框安置7个700W的PSU(来自OCP V2服务器),N+1配置,共4.2kW,整个机柜的供电能力可达12.6kW。每机柜两个PDU(Power Distribution Unit,配电单元),200~277V交流在左后方,48V直流在右后方。服务器从机柜正后方等距分布的3根铜排(Bus Bar,母线)上取电,PSU输出电压12.5V,正好满足服务器对12V输入的要求。

Altoona Battery Cabinet.jpg
2014年11月中正式上线的Altoona数据中心,采用了最新的OCP硬件,包括Open Rack——注意左侧机柜的供电区和供电框内的PSU,但仍为6个机柜配1个电池柜的固定组合(来源:Facebook)

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 - Front Side.png
Open Rack V1前视图和侧视图(左前右后),可以看到纵向空间的分配(来源:OCP规范)

综合起来,Open Rack的特点主要是:

  1. 拓展空间。开创性的提高了内部利用率,特别是留给IT设备的宽度大为增加,单位高度也略有提升,同时尽可能的保持了与原有机柜标准的兼容性(外宽一致,高度相近);
  2. 集中供电。提供机柜范围内的共享与冗余,服务器等IT设备直接插拔取电,免去上架时的手动连线工作;
  3. 前端维护。后端用于供电和散热,维护人员在冷通道一侧即可完成日常工作,不用进入(容易令人感到不适的)热通道。两边跑不仅增加了工作量,且有后端识别设备困难,容易导致误操作等弊端。

当然副作用也是有的,即两侧起支撑作用的部分(如立柱)受到削弱,同时内部可承载的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千克)——要怎么装出这个密度来,也是门学问。

OR2 - Triplet.jpg
仍然以三联柜的方式交付,机柜后端整体加固(来源:OCP Engineering Workshop)

Open Rack V2还有重组供电布局、去掉独立电池柜等重要改进,将在后续的文章中介绍。

Open Vault:存储从服务器分离

得益于Open Rack,第四届OCP峰会上亮相的第三代OCP服务器(代号Winterfell)在设计上有质的飞跃:

  • 主板仍然是v2.0,但服务器高度增至2 OU,并特意强调不是1.5 OU,80mm风扇效率进一步提高;
  • 更大的纵向空间(高度)有利于容纳全尺寸GPGPU,支持两个全高的PCIe卡,一个3.5英寸驱动器槽位,均从前端维护;
  • 服务器机箱里没有PSU,正好并排摆放三台(每台2个80mm风扇),分别从后部的铜排取电,密度进一步提高(2 OU3)且相互独立;
  • 观感上,做工精细了很多,裸露部分的处理也较好,总体上不输一般商用服务器的水准。

Winterfell-x3_MB.jpg
用于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长)SSD——以前只支持mSATA,且需要通过适配器。

硬盘先是被边缘化,接着连装操作系统的工作也被SSD抢走了。那么,大容量存储怎么办?

Server Type - 6.png
没有定制服务器和存储项目时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厂商推出的服务器,2.5英寸规格于互联网用户更像是为SSD而非硬盘准备的。在Open Rack实用后,这个项目愈发没有下文,AMD也(暂时)挂靠了ARM阵营,在OCP的项目中主要以微服务器卡(Micro-Server Card)刷存在感。

Open Vault.jpg

总的来说,还是Amir那个计算与存储分离(解耦,disaggregation)的思路靠谱。Facebook在存储架构师Per Brashers(已离职创业)和中国籍工程师晏勇等工作人员的努力下,于同一届峰会上公开的Open Vault(代号Knox)取得了成功。这是一个宽度和高度(2 OU)都适配Open Rack的JBOD(Just a Bunch of Disks,一堆硬盘的简单集合,无处理能力,需配合计算节点使用),共30个3.5英寸硬盘,分为上下两层,每层(tray)有15个硬盘和一对冗余的连接电路板(Knox Board)。电路逻辑比服务器主板简单许多,基本上是Facebook独力设计完成,先交由纬颖(Wiwynn)生产,贡献给OCP之后,与OCP服务器一样有其他提供商(如Hyve Solutions和广达)生产的版本。

Open Vault - JBR.jpg
抽出一层共15个硬盘的Open Vault,背景机架供电框上方的2 OU设备为广达的JBR,是另一种符合OCP规范的JBOD(来源:张广彬,2013年)

Open Vault是个非常经典的设计,我曾经在多个场合分析过,可惜还差一篇专门的文章……

Server Type  - 7.png
除了CPU、内存和硬盘配置的自然更新,2013年Facebook 的Hadoop(类型4)和Haystack(类型5)服务器都用上了Open Vault,冷存储机柜更成为一种新的服务器类型(7),从硬件架构上也可以理解为一台单控制器(Winterfell服务器)带8个JBOD(Knox)组成的半机柜低性能存储系统(来源:根据Facebook数据制表)

现在,需要大容量存储的Facebook服务器,如Type Ⅳ(用于Hadoop)和Type Ⅴ(用于Haystack,Facebook的图片应用)都由Open Vault提供存储,还增加了一个Type Ⅶ:1台OCP服务器带8个Open Vault(240个硬盘)的冷存储(Cold Storage)类型,共18 OU,占据半个Open Rack的空间。

数据中心:RDDC与Open DCRE

如本文开头所言,OCP从孕育便与数据中心建设有着密不可分的关系,Facebook贡献的基于Prineville数据中心实践的数据中心电气和机械设计规范,是OCP最早的文档之一;Facebook向OCP贡献的冷存储硬件设计规范包括了冷存储数据中心地面布局的建议——冷存储服务器就是刚介绍的Type Ⅶ机型。

opencompute-datacenter.jpg
Prineville数据中心采用两层阁楼式设计,无冷机(no chiller)。地面层放置服务器等IT设备,上层阁楼为冷却系统空间,对外部冷空气和回流热空气进行处理,按一定比例混合(来源:Data Center Knowledge)

Google在数据中心建设上起步早,发展水平高,但也不可避免的形成了历史路径依赖(阿里巴巴技术保障部资深IDC专家陈炎昌语,本节多有借鉴)。这个“遗产”主要体现在水循环系统制冷设计,所以我们总能看到Google的数据中心逐水而居。虽然Google在水的利用上玩出了很多花样,譬如海上数据中心,还有上一篇文章提到的芬兰Hamina数据中心,都是利用海水散热,但是各种供回水管道始终是个麻烦事,PUE则很难降到1.1以下(即使通过神经网络等技术进一步优化)。

DLS_013.jpg
Google俄勒冈州Dalles数据中心内景,蓝色的是冷水供应管道,红色的把温水送回致冷。铺设水管是典型的工程项目,费时费力,难以模块化(来源:Google官网)

本着“后发优势”,Facebook着力推行新风供冷(fresh air cooling),没有空调(Chiller-less)和冷却水管道,冷却系统都布置在上层阁楼内,PUE也低至约1.07。不过,因为要靠喷水雾调节温度和湿度,Facebook的数据中心早期有过教训。

Prineville Cooling.png
Prineville数据中心的冷却气流示意。热通道封闭,也是从一层的顶棚回风(来源:Facebook演示材料)

2011年夏天,Prineville的数据中心投入使用不久,建筑控制系统错误的输送了富含水分(湿度95%)的冷空气(80华氏度),“机房里就像飘着一朵雨云”,很多服务器遇湿重启,或者因电线短路而自动关机。那年6月下旬,Facebook曾计划将Prineville数据中心二期像北卡Forest城数据中心一样,把服务器进风温度从80华氏度(26.7摄氏度)提高到85华氏度(约29度),相对湿度从65%提高到90%,温升(ΔT)从25华氏度提高到35华氏度,旨在控制环境的影响,并允许减少45%的空气处理硬件。现在看来其后两个指标只到80%和22华氏度,且仅Forest城数据中心相对湿度达90%,不知是否与这次事故有直接关联。

4DC Compare.png
Facebook三大区域数据中心(Prineville、Forest City、Luleå)基本设计指标对比,当时Altoona数据中心尚未完全建成(来源:Facebook,2014年)

总的来说,始于Prineville的成功经验被复制到包括瑞典Luleå数据中心的一期工程。随着Open Rack规范的成熟和相关产品的广泛应用,服务器、存储等IT设备及配电已经基本实现了标准化和模块化,可以在工厂内组装好整机柜(如Open Rack),以三联柜等方式整体交付,而机电系统仍采用工程化设计,需要配合建筑施工,电气系统也是工程实施,导致数据中心整体交付速度滞后。Facebook希望对IT模块以外的机电、数据中心建筑进行产品化、标准化预制、预构件等改进,配合并行作业,达到业务、ICT设备(服务器、存储和网络)、机电、建筑各部分的部署速度几乎同时匹配,实现快速交付。

Lulea DC.jpg
位于北极圈边缘的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和Altoona一期),RDDC可以缩短为3~8个月,从而尽量避开Luleå下雪的季节(腾讯天津数据中心建设过程中也曾被暴雪所阻)。

Chassis DC.png
RDDC的整体布局,A和B是放置服务器、存储、网络等ICT设备的区域(data hall),中间的Elec Skids为电气模块,边上的Mech Units为机械制冷模块(来源:Facebook)

为了达到RDDC的目标,首先,Luleå二期的数据中心建筑取消了上层的阁楼,采用大平面一层的的设计方式,所有主要设备都置于地面,架高的顶棚为布线和热通道回风留下足够的空间。陈炎昌认为:建筑顶部倾斜使得热气流更容易上升,最高处带有风机的热气流排出口调节废热排出的设计,很像雅虎2007年公布的“鸡舍”(chicken coop)式数据中心;而地面的整体布局又类似两边为精密空调、一侧为UPS等配电系统的传统数据中心。可谓兼收互联网与传统企业数据中心之长。

Yahoo - RDDC.jpg
右下小图为“Chassis”的预构件摆放示意,注意建筑中间向上凸起的部分,与Yahoo!设于纽约州北部Lockport的“鸡舍”式数据中心的相似性(来源:OCP官网与NBC Bay Area)

建筑构造上,采用了钢结构预构件,吊装部署。模块化的方法不仅便于复制,还可以根据地区等变化灵活更换为不同的模块,譬如60Hz的美国电源标准和50Hz的世界标准,就分别有对应的供电模块。至于两种工厂预制、现场组装的模块化方法——第一种“chassis”(底盘)和第二种“flat pack”(组合件),公开的资料非常有限,主要来源是Marco Magarelli的那篇博客,某些第三方的解读有所不同,但都有令人困惑之处。

RDDC-Airflow.png
一个典型的数据中心区域(data hall,前面整体布局图中的A或B)由52个chassis构成,4×13网格配置,13个冷通道(封闭热通道,2列机柜共用),如图中上半部分;下半部分是2个40英尺chassis(两个蓝色方框覆盖范围,Unit IT)及制冷模块(a/b/c)的剖面图,冷气流从右至左经过IT模块(服务器或网络机柜),热气流上升,沿顶棚回流(上方橙色区域)至右侧制冷模块(三个粉色方框覆盖范围),部分高温空气从左上方(墨绿色区域)经风机排出,形似鸡舍(来源:根据Facebook演讲资料加工)

按照OCP官网博客中的说法,“chassis”类似组装汽车底盘的理念:使用12英尺(约3.6米)宽、40英尺(约12米)长的预组装钢框架,然后在组装线上附加部件,电缆槽、输电排、控制面板乃至照明设备都在工厂预安装好。在现场组装时,两个chassis的钢框架相连,在机柜上方构成60英尺(约18米)长的冷通道,两端各留10英尺(约3米)的空间给过道,热通道的宽度则减小到3英尺(约0.9米)。把这种方法比作搭建乐高积木(源自丹麦,也是北欧国家)形成很好的对应关系,但没有“宜家”贴切。

“Flat pack”使用14英尺(约4.2米)高的墙板,也有金属面板构造、跨越机柜和冷通道的12英尺(约3.6米)宽天花板组件,可以使用特制的挂架承载电缆槽、输电排和照明,感觉这部分与chassis方法是存在重合或替代关系的。有一点是相通的,即flat pack方法同样经过预先工程化后做成预构件,将原有工程化(现场施工)为主的框架转变为产品化(现场组装)的框架。

flat pack DC.jpg
Flat pack方法拼装示意,注意左上角的截面图,实线部分肯定是flat pack,虚线方框似与chassis方法相重合,约3.6米的宽度扣除2个机架的深度,冷通道宽度约1.5米左右(来源:Facebook)

顾名思义,这两种方法的精髓都体现了由传统的工程项目到工厂预制产品、现场模块化组装的转变。通过部署预安装的总成和预制单元模块、交付可预测和可重用的产品,RDDC能够实现站点无关设计、减少现场影响、改善执行和工艺的目标,加快数据中心建设的速度,提高利用率且易于复制到其他地区。提高效率,终归是要服务业务需求。

(作者注:本文发表当年,RDDC就卷入了法律纠纷。回溯到2011年,Facebook开始与英国预制构件制造商BladeRoom讨论,有意愿委托后者使用其专利的flatpack设计来建造Lulea数据中心。继而,Emerson、Facebook与BladeRoom开过几次会,签订了NDA,听取了对flatpack技术的介绍。后来,合同落到了Emerson手上,并把这个设计用于建设Luleå数据中心。BladeRoom认为Facebook把这个技术通过OCP公开,违反了NDA和OCP的规定。于是在2015年,BladeRoom对Facebook和Emerson发起诉讼。2018年4月初,Facebook同意以3.65亿美元与BladeRoom达成和解。)

数据中心建设走向模块化之后,下一步是从里(ICT设备)到外(风火水电)作为一个整体来统一管理。2015年3月10日召开的第六届OCP(美国)峰会上,数据中心项目组介绍了开放数据中心运行时环境(Data Center Runtime Environment,DCRE),这是基于社区的用户数据中心运行时环境,包括可以与任何单板式计算机对话的控制板、到OCP铜排(Bus Bar)的电力线通讯(PLC)接口、固定在铜排上的PLC传感器hub及固件等,能够:

  • 允许完整的解耦带外(OOB)管理网络;
  • 从机架、交换机和服务器上去掉所有外部的物理RJ-45/串行集线器/BMC;
  • 提供机柜级管理的标准接口;
  • 促成定制一个包括北向和南向接口的健壮的Linux操作系统。

Open DCRE支持标准BMC功能,包括IPMI的远程开闭电源、重启、通过串口控制和OCP的远程硬重置、串口(本地,非LAN)控制、POST错误代码、缓冲引导代码。

国内的腾讯也在致力于数据中心模块化进程和南北向接口的标准化等工作,下一篇文章会有简要介绍。

网络:从边缘走向核心

英特尔(Intel)在至强E5-2600的参考平台中力推夹层卡(Mezzanine Card)设计,特别是网卡,让高密度的机器获得和标准(PCIe)插卡接近的灵活性。这一思想在同样基于至强E5-2600的OCP Intel V2.0主板上得到了很好的体现,按照OCP Mezzanine Card 1.0规范设计的夹层卡,安装位置在主板前端(冷通道侧),便于维护。

Mellanox-CX341A.jpg
联想天蝎2.0整机柜服务器节点用的就是万兆OCP夹层卡CX341A,Mellanox ConnectX-3 EN家族的单端口10GbE网卡,以色列原厂生产(来源:张广彬拍摄,2015年1月)

就标准机架服务器而言,网卡采用夹层卡设计的紧迫性不高,还会提高成本,所以OEM大厂的响应不是很热烈。支持者如戴尔等将灵活性作为主要卖点,以Broadcom或Intel的网卡模块为主,希望能推动传统企业用户加速向万兆(10GbE)网卡升级。强调密度的OCP服务器则大量采用Mellanox的万兆夹层卡,丰富的特性如能降低传输延迟的RoCE(RDMA over Ethernet,以太网远程内存直接访问)和硬件虚拟化技术SR-IOV(Single Root I/O Virtualization,单根虚拟化)则是其附加值。甚至国内OEM服务器大厂如联想,亦在其天蝎2.0服务器节点中采用这种夹层网卡,如此“拿来主义”精神对扩大OCP的覆盖有一定积极作用。

Mezzanine Card - V2.png
OCP夹层卡V2主要有三大改进:增加连接器B、扩大板上空间、可选I/O区域(来源:OCP Engineering Workshop)

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 Mezz Card V1-2.jpg
符合OCP夹层卡V2规范的Mellanox CX443M(下,40GbE)与V1的前辈CX341A(上,10GbE)对比,左侧是外观上的变化,右侧则可以看到,由于支持Multi-Host技术,CX443M有多达4个MAC地址,可以支持最多4个独立的主机(服务器),即以一当四(4×10GbE)(来源:张广彬拍摄,2015年3月)

介绍到这里有必要指出,夹层卡属于服务器项目。OCP在网络项目上的起步相对较晚,从2013年才开始有规范产生,2014年逐渐壮大。这个发展过程,与Altoona数据中心的建设轨迹高度重合——2013年4月宣布建设,2014年4月底第一栋建筑完工,2014年11月中正式上线。

Networking 2015.jpg
网络项目是Facebook在2015年重点开花的领域,Accton(硬件)、Cumulus Network(ONIE)、Big Switch Networks(OpenNetworkLinux)、Broadcom(OpenNSL)及Facebook(FBOSS agent和OpenBMC)各显其能(来源:第六届OCP峰会Jay Parikh的演讲材料)

在Altoona数据中心之前,Facebook采用名为“4-post”的汇聚集群架构,优点是冗余性和超额配置很好,拓扑结构扁平,没有路由器互连集群。问题在于,CSW和FC需要非常大的交换机,不仅限制了供应商的选择范围(每端口TCO很高),专有内部构件不允许定制化、管理复杂、修复漏洞等待时间长,超额交换结构不能同时使用所有端口,端口密度限制拓扑结构的规模和带宽……而且,集群内和集群间的流量都只有4个交换机处理,一个交换机故障就会造成严重影响——损失25%的集群内流量(CSW)或集群间流量(FC)。

4-post topology.png
Facebook的“4-post”集群架构因立体来看,保护环上的4个交换机形成4个“post”而得名。多达225个服务器机柜通过ToR交换机(RSW)连接到高密度集群交换机(CSW),RSW有多达44个10G下行链路和4或8个上行链路,4个CSW机器连接的RSW组成一个集群,RSW和CSW之间的超额配置通常为10:1;4个“FatCat”(FC)汇聚交换机互连集群,每个CSW有4个40G(10G×4)上连到每个FC,超额配置通常为4:1。一个80G保护环连接每个集群内的CSW,FC连接到160G保护环(来源:Facebook数据中心网络架构论文)

据Network World介绍,为了从根本上解决集群架构的问题,Altoona的下一代架构采用了如下的做法:

  • 使用大量小型交换机,交换机故障只对整体容量带来较小的影响;
  • 端口密度分布在多台交换机,易于过渡到更高密度端口并减少内部超额配置;
  • 交换机内部架构应该是开放、无阻塞的,并基于商用芯片,鼓励定制化、简化管理和故障排除,及缩短漏洞修复的等待时间;
  • 寻找比集群更小的模块化单元,可以复制用于广泛的用途,并能经济地部署到各地的数据中心……
  • 降低资本和运营支出(CAPEX和OPEX,即总体TCO);
  • 快速、简单和便宜地适应任何速度的增长。

Altoona-pod.jpg
Facebook提出解耦核心与pod的设计,作为基本网元的pod(下部特写)包含48个ToR,通过4个40G上连到4个Fabric交换机,形成一个折叠的3级Clos结构,或所谓的分支和主干(leaf-and-spine)拓扑。每个pod只包含48个服务器机柜,不到原来的五分之一,规模明显减小。按照每个ToR交换机48个10G下连计算,pod的超额配置为3:1(160G上连),也比10:1有明显的改进(来源:Network World)

这显然需要网络硬件的大力支持。按照OCP官网上的说法,网络项目最初的目标是开发分支(leaf,指ToR)交换机(前述“使用大量小型交换机”),然后是主干(spine,相当于Aggregation)交换机和其他硬件及软件方案。

3Layers - 2Layers.png
三层网络的Aggregation(汇聚)/Access(接入,如ToR)与二层网络的Spine(主干)/leaf(分支)存在一定的对应关系,后者更适应东西向(服务器间)流量为主的大趋势(来源:Cumulus Networks)

网络设备与服务器的同源性还没有存储设备那么高,以交换机与服务器的配比,密度早不是一个级别,扩充空间不是优先考虑的事情。已有的几款OCP定制交换机在外形尺寸上很常规,标准RU、能装在19英寸机架里即可,电源和风扇的布置方式也很传统,有助于被企业市场接受。目前,OCP网络硬件追求的是类似服务器的使用体验乃至生命周期,包括控制平面与数据平面的高度模块化、软件与硬件解耦合,以实现定制的灵活性(DIY),避免被供应商锁定——那意味着丧失议价权,降低CAPEX和OPEX自然无从谈起。

OCP Switch 3Stage.png
OCP网络项目的阶段性目标,先从传统单体式(Monolithic)交换机到软硬件解耦,再进一步模块化。硬件部分包括模块化机箱、交换机模块和“Group Hug”微服务器(来源:Facebook)

数据平面的核心是ASIC(如Broadcom)或FPGA,不乏支持40GbE的方案;控制平面的CPU可以是x86(如AMD的嵌入式SoC,或Intel Atom/Xeon D-1500系列)、PowerPC(如Freescale多核PPC)、MIPS(如Broadcom多核MIPS)以及ARM。截至2015年2月底,OCP已经公开了6款交换机(Accton、Broadcom/Interface Masters、Mellanox和Intel各1款,Alpha Networks有2款)的设计,其中的半数方案可以根据需要配置为ToR或汇聚(aggregation)交换机。

Facebook Fabric.png
Facebook主干与分支网络的立体拓扑,高度模块化的设计使Facebook可以在任何层面快速扩展容量:需要更多计算容量,添加服务器pod;需要更多fabric内网络容量,在所有平面添加主干交换机;需要更多fabric外连接,增加边缘pod或扩展现有边缘交换机的上行链路(来源:Facebook网络工程师Alexey Andreyev)

软件与硬件解耦,ONIE是关键,也是OCP网络项目早期的重点工作。ONIE即Open Network Install Environment(开放网络安装环境),是一个定义用于裸金属(bare metal)网络交换机的开放“安装环境”的开源项目。传统的以太网交换机有预安装的操作系统,拿来就用,直接管理,但会锁定用户;所谓的白盒(white-box)网络交换机提供了选择硬件的自由,但不同的CPU架构等导致异构的管理子系统,又给上面的网络操作系统制造了困难。

Schematic fabric-optimized Facebook datacenter physical topology.jpg
Fabric优化的Facebook数据中心网络物理拓扑(来源:Facebook)

ONIE定义了一个开源的“安装环境”,将boot loader(引导装载程序)与现代的Linux内核及BusyBox相结合,提供了一个可以安装任何网络操作系统的环境,有助于自动化大型数据中心的(上千台)交换机配给,让用户像管理Linux服务器一样管理交换机。

ocx1100-left-high.png
Juniper OCX1100交换机效果图(来源:Juniper官网)

上述成果的直观体现就是Juniper Networks(瞻博网络)2014年12月初发布的OCX1100交换机,在Alpha Networks SNX-60x0-486F的硬件上运行前者基于Linux的Junos操作系统,预计于2015年第一季度上市。SNX-60x0-486F是Alpha Networks公司设计的OCP交换机,由一个BCM56854(Broadcom Trident Ⅱ)芯片提供48端口10G SFP+和6端口40G QSFP,CPU子系统为Freescale(飞思卡尔)P2020或Intel C2558,可作为ToR或汇聚交换机使用。Dell(提供如Z9500-ON数据中心核心及汇聚交换机)与Cumulus Networks的合作也属于类似的情况。

Wedge-architecture.png
2014年6月公开的Wedge交换机硬件设计,1U规格,适用于标准19英寸机柜,可以通过Open Rack Switch Adapter(ORSA)安装在(21英寸内宽的)Open Rack上。控制平面采用OCP微服务器(Group Hug),数据平面基于Broadcom Trident Ⅱ 40Gb ASIC(商用芯片),双冗余供电单元,4个风扇(来源:Facebook)

就像上一篇文章说过的,Scale-out(横向扩展)不代表单点不需要Scale-up(纵向扩展),只要掌握了主导权,Facebook不会拒绝核心交换机。2014年6月,Facebook展示了其设计的新款ToR交换机(代号Wedge),基于Accton的硬件,有多达16个40GbE端口,支持Intel、AMD和ARM的CPU,配以基于Linux的操作系统(代号FBOSS)。

FBOSS.jpg
FBOSS Agent(到交换机ASIC的核心库)、OpenNSL(Open Network Switch Library,Broadcom提供的开放网络交换机库)、Open BMC(板上低级系统管理)与Wedge交换机硬件的关系(来源:第六届OCP峰会网络项目主题演讲材料)

2015年2月11日,Facebook宣布推出第一款开放硬件模块化交换机“6-pack”:7RU的机箱,装有8个基于Wedge的交换机和2个fabric卡,共6层,底下还有一层供电模块,风扇集中在机箱后面。

6-pack.jpg
6-pack硬件平台,交换机模块两两并列放置。PSU集中于底部,总数只有8个Wedge的四分之一;风扇模块集中于后部,总数减少有限,还有进一步优化的空间(来源:Facebook)

作为Facebook数据中心Fabric(紧耦合网络)的核心,6-pack将使Facebook可以组建更大规模的集群,而不是将集群分为多个,并因集群间的网络链路而限制集群的规模。

6-pack topology.jpg
6-pack拓扑图,可以看到8个Wedge与2个fabric卡之间的关系

Wedge已通过OCP公开设计规范,6-pack暂时(2015年初)还没有。

6Pack-Wedge.jpg
摆在6-pack上的交换机模块(左),去掉了PSU,宽度较Wedge(右)大为减少,所以能在同样的宽度内并排容纳2个(来源:张广彬,拍摄于第六届OCP峰会)

反哺与变局:来自传统巨头的支持

2014年是OCP变动很大的一年,尽管也遇到了一些困惑,但生态系统明显壮大了起来,特别是体现出对传统软硬件厂商的吸引力。

1月底召开的第五届OCP峰会上,微软高调宣布加入OCP,风头明显盖过一同亮相的IBM、Yandex、Cumulus Networks、Box、松下、Bloomberg、IO、LSI(已被Avago收购)。相比行动迟缓的IBM,微软可谓诚意十足——贡献了用于全球云服务(如Windows Azure、Office 365和Bing)的开放云服务器(Open Cloud Server,OCS)设计作为“投名状”。

OCS - Front.jpg
第六届OCP峰会上展出的微软开放云服务器(来源:张广彬拍摄)

单论数据中心的规模,微软应该比Facebook和还在疯狂赶进度的IBM/SoftLayer(也是10万+台服务器的Tier 2互联网客户)加在一起都大,把新硬件的采购换成OCP就已经是天大的喜讯了,再贡献一组硬件设计规范及管理软件源码,Staya Nedella还没上任就大赦天下?

OCS-Side.jpg
微软开放云服务器的侧面,互联网巨头们的服务器如此能装,加大深度是一大法宝(来源:张广彬拍摄)

显然没那么简单,微软似有与Facebook“共分天下”之意。

OCS-Back.jpg
微软开放云服务器集中风扇的设计颇似天蝎整机柜,后端走线则与天蝎和Open Rack都不同(来源:张广彬拍摄)

现在OCP的服务器规范与设计页面中,开放云服务器的资料列在最上面,在2014年的Engineering Workshop里也是服务器部分的宣讲重头。OCS的12U机箱为EIA 310-D 19英寸机架而设计,半宽的计算和存储刀片,每U两节点(1U2),集中风扇、PSU和管理单元(Chassis Manager),很不Open Rack,更像做成12U的天蝎1.0整机柜(下一篇文章介绍)。如此看来,要把天蝎项目纳入OCP,确实不是技术上的问题——只要BAT愿意……当然是在开放数据中心委员会(Open Data Center Committee,ODCC)成立之前。

MS OCS.jpg
安装在19英寸机柜上的微软开放云服务器,上面左右分别为计算节点(4个3.5英寸硬盘)和JBOD(10个硬盘)(来源:OCP Engineering Workshop)

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或以上。

OCS - Components.png
开放云服务器的机箱组件,机箱管理卡类似于天蝎整机柜的RMC,特点是运行Windows Server 2012 R2,微软已通过OCP开源机箱管理软件的代码(来源:OCP Engineering Workshop)

所以,OCS V2的机箱也进行了升级,首先是6个PSU从1400W换成1600W,N+1配置时总容量8kW,支持24个计算刀片,N+N配置时为4.8kW。付出的代价是供电的停顿时间(hold-up time)从10毫秒倍增为20毫秒,并以新的风扇匹配刀片的能耗。

OCS HP-Dell.jpg
OCS计算节点,左二是惠普在第六届OCP峰会上发布的HP Cloudline CL7300 for Open Cloud Server(同时还有HP Cloudline CL7100 for Open Rack,见前一篇文章图),其右侧为戴尔的产品(来源:张广彬拍摄)

刀片性能的提高,对I/O带宽也提出了更高的要求,OCS V2每层托盘(Tray)的I/O从V1的双10GbE和双6Gb SAS(x4)升级为10/40GbE和双12Gb SAS(x4),并增加了PCI Express 3.0 x16的夹层卡。

ITPAC-Servers-800.jpg
2011年微软IT-PAC(IT Pre-Assembled Components,IT预组装部件)中的服务器机架,看起来是开放云服务器的风格,目测机架高度应该在52U以上(来源:Data Center Knowledge)

存储刀片为可容纳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个硬盘。

fbbluray-regmedia.jpg
Facebook的PB级蓝光归档存储系统(来源:The Register,2014年)

第五届OCP峰会上还展示了Facebook的蓝光光盘归档存储系统,42U的空间内可以容纳1万张三层100GB光盘,容量达1PB,据称可以保存信息50年。Facebook的前辈Google使用单盘容量更大的磁带,也有历史因素,Facebook则认为光盘代表着未来。

33.jpg
Google南卡Berkeley County数据中心的磁带备份系统,这张照片在国内曾被误传为Google的服务器(来源:Google官网)

从离线存储的角度来看,磁带与光盘各有千秋,短期内难分胜负。很快见效的是,2014年3月下旬,Frank Frankovsky宣布离开Facebook,去一家基于蓝光(Blu-Ray)光盘的冷存储初创公司(Optical Archive Inc.,简称OAI,2015年5月被Sony收购)担任CEO,但以独立身份保留在OCP基金会董事会的位置,并继续担任基金会主席兼总裁。董事会里必须有Facebook的代言人,于是增补了Facebook基础设施总监Jason Taylor,以及微软负责云和企业业务的副总裁Bill Laing,规模扩大到7人,如本文前面的董事会成员图所示。

Sony Optical Library.jpg
第六届OCP峰会上展出的Sony光盘库原型,可容纳约1.5万张光盘,配备8个驱动器(来源:张广彬拍摄)

2012年的EMC World期间,仍任COO的Pat Gelsinger接受TechWeekEurope采访时表示“No one is running mission critical infrastructure on Open Compute today......And even some of those who initiated those projects have backed away from them.”(今天没有人把关键业务基础设施放在Open Compute上……甚至一些发起那些项目的人已经放弃了它们。)但这并不妨碍老牌存储厂商EMC在2013年1月举办的第四届OCP峰会上宣布入伙,只是风头被一起加入OCP的ARM压过。因此,EMC World 2014上发布基于x86商用服务器硬件的ECS(Elastic Cloud Storage,弹性云存储)设备时,就被国外媒体问到是否与OCP有关。

EVO Rack.png
VMware院士兼超融合基础设施(Hyper-Converged Infrastructure,HCI)首席架构师Raj Yavatkar描绘的EVO: RACK概念图,据称EVO:RACK Manager将贡献给OCP(来源:VMware官网博客)

这时Pat Gelsinger已担任EMC子公司VMware的CEO,2014年8月底,该公司在自己的主场VMworld 2014上宣布加入OCP,尚处于技术预览阶段的EVO: RACK则明确表示基于OCP硬件(广达的Rackgo X平台)——毕竟,VMware自身没有硬件包袱,更没必要亲自制造硬件。

11.jpg
IBM与Rackspace合作设计的Barreleye服务器支持2个POWER8处理器(8~12核),32个DDR3 DIMM。展示用的散热片可能过高,但从规格来看确实不像1U高度(来源:张广彬拍摄)

第六届OCP峰会上,已入伙一年多的IBM终于展出了与Rackspace一起设计的OpenPOWER服务器,代号Barreleye——这是一种脑门透明的鱼(学名:大鳍后肛鱼),可以直接透过脑门看到它的大脑,IBM认为很符合开放计算的精神——看来,尽管加入OpenPOWER基金会的中国公司很多,至少该产品起名时并没有征求他们的意见。会上只展出了支持2个POWER8处理器的主板而非整个系统,从散热片高度、支持3个15mm厚2.5英寸硬盘堆叠等信息来看,Barreleye很有可能是1.5U规格(宽度符合Open Rack)。考虑到OpenPOWER联盟的发起者之一Google很爱玩1.5U,若果如此还真是有点意思。

22.jpg
OCP解决方案提供商StackVelocity在第六届OCP峰会上展出采用单路(1S)POWER8处理器的OpenPOWER服务器(来源:张广彬拍摄)

小结:模式、传承与融合

OCP下属项目越来越多,短短一章实在难以尽述,单独写一本书都是可以的。本章走马观花的概览了一些关键项目,有主要感受如下:

  1. 模式。OCP最成功之处无疑是创造了开源硬件的模式,虽然源于Facebook自家的定制需求,却在社区的协助下,进一步推动硬件的标准化与商品(commodity)化;
  2. 传承。开源软件的模式可以学,没有精通硬件的人才也搞不好。众多在硬件厂商乃至Google有多年数据中心相关技术积累的专业人才,为OCP的后发优势提供了可能;
  3. 融合。OCP已经体现出了来自互联网的第三平台对传统企业市场的第二平台的影响,微软和VMware、Juniper等在传统企业市场积累有软件资产,要颠覆现有硬件秩序或顺应潮流的,都来加盟。开源社区的特性和这些加盟者所做的工作,也会影响到OCP的发展方向。
推荐阅读
关注数
2835
内容数
57
云计算、基础设施、大数据领域的技术话题
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息