Facebook的服务器是如何对惠普思科造成威胁的
2013-07-29 腾讯科技 编辑:瑞雪
北京时间7月29日消息,美国科技网站ArcTechnica近日刊载文章,讲述了Facebook正如何利用自己“毫无浮夸的”服务器来对惠普、思科及其他企业IT领域中的大型厂商造成威胁的。文章指出,开源商品硬件之所以能迅速扩大自己的影响范围,从最初的受众转向更多的用户,其原因在于硬件厂商可以很自由地采用这种硬件,从而压低新服务器系统的价格。
以下是这篇文章的全文:
Facebook总部的17号楼坐落在Sun Microsystems原来的园区,因为形似加利福尼亚州昆廷监狱(San Quentin)而被戏称为“Sun Quentin”。现在,在这座大楼里办公的是Facebook电力实验室的一个Facebook工程师团队。在每一个工作日里,他们都在推进这家公司有关数据中心硬件应如何构建的想法。这些工程师会不断地对自主开发的服务器硬件的设计进行台架测试——基本上来说,Facebook自主设计的服务器硬件与我们平常所知的硬件大有不同。
ArcTechnica最近造访了Facebook的总部园区,在Facebook硬件工程高级经理、服务器硬件设计团队负责人马特·考德里(Matt Corddry)的引领下参观了这家公司的服务器实验室。Facebook实验室里正在发生的事情不仅仅是对这家公司的数据中心造成了影响,同时也是Facebook为开放计算项目(Open Compute Project)作出的贡献之一,这个项目的宗旨是希望将开源设计带给全球范围内的数据中心服务器和存储硬件、基础设施以及管理界面。
Facebook、亚马逊和谷歌都对各自的服务器硬件很是挑剔,这些科技巨头主要都是通过购买商品部件然后自主开发的方式来生产自己的硬件。Facebook硬件设计和供应链运营副总裁弗兰克·弗兰科夫斯基(Frank Frankovsky)曾为开放计算项目的发起出过一份力,原因是他认识到,在大型云计算公司对它们能共享的东西进行重新创造的过程中会产生浪费现象。弗兰科夫斯基感觉,将Facebook在软件领域中一直遵循的开源原则引入硬件领域,将可为这家公司及其他公司节省大量资金——这种节省体现在两个方面,一种是直接的硬件成本,另一种则是维护和电力成本。
正如Raspberry Pi单板电脑和Arduino开源微控制器已经激发了小型硬件黑客的想象力那样,开放计算项目的目标是在宏观层面上让DIY变得更加容易、更加有效和更加灵活。从最后可能造成的结果来看,Facebook和开放计算项目正在对数据中心硬件所做的事情可能不会令整个硬件行业面临消亡的危险,但肯定会对这个行业造成一定的影响。没错,开源的、商品化的主板及其他为Facebook所用的子系统最初是专门为“超大规模”的数据中心世界而设计的,比如说Facebook、Rackspace及其他云计算服务提供商的数据中心;但是,这些设计能轻松地找到通向其他DIY硬件环境的道路,或是通向“毫无浮夸的”(vanity free)服务器系统的道路,这种系统不仅会被卖给小型公司,也会卖给大型企业。
开源商品硬件之所以能迅速扩大自己的影响范围,从最初的受众转向更多的用户,其原因在于硬件厂商可以很自由地采用这种硬件,从而压低新服务器系统的价格。而对于惠普、思科及其他企业IT领域中的大型厂商来说,这可未必是个好消息。“毫无浮夸的”、开源设计的服务器系统很可能将会推动创新活动迅速发展,从而对惠普等公司一直以来都赖以生存发展的整个模式都造成破坏性的影响。
消除一切复杂的东西
确切地说,开放计算项目不能沿着开源的道路一路走向CPU,甚至就连Raspberry Pi也不是以开源硬件为基础的,原因是在开放式设计的芯片中,没有哪种芯片具有足够的能力(出于经济性的考虑,厂商也不会愿意批量生产这样的芯片)。开放计算项目的硬件设计是在更高层面上“开放”的,任何人都能利用基于标准的部件来创造主板、底座、机架、机架零件及其他服务器部件。
“我们把重点放在尽可能最简单的设计上。”考德里告诉我说。“我们关注的重点是非常高的可扩展性,消除一切复杂的东西,放弃任何美轮美奂的或是浮夸的设计。”这就意味着,通过这种方式创造出来的硬件易于维护,生产成本和价格都比较低,而且在出现问题的时候也能比较简单地进行处理。另外,基于这种设计来创造其他东西也比较简单,这对Facebook及其他认同开源计算项目哲学的公司来说都是有帮助的。这一点可以在Facebook于6月18日在总部园区举办的“开源计算项目硬件黑客马拉松”(OCP Hardware Hackathon)大赛中得到证明,此次大赛中涌现出了一些很棒的想法。
到目前为止,开源计算项目硬件的主要采用者只有Facebook和Rackspace,但这种情况在不久以后就会发生变化,原因是开源硬件的发展动量正开始起步。由于英特尔、AMD及其他一些公司都已经开始创造更多符合开源计算项目规格的部件,而且正在为这个项目贡献出更多的知识产权,因此有些相关人士认为,开源计算项目社区很快就会像滚雪球那样变得越来越大。
“我认为,我们的行业很可能在大约十年以前就已经认识到——当时Linux正在接管Unix的地盘——开放对于供应商乃至大规模计算领域中的消费者来说都是非常有利的一件事情。”考德里说道。“Linux并未打垮数据中心行业或操作系统行业。我认为,今天我们也正在看到同样的模式,看到开放式的硬件并不意味着硬件的死亡,而很可能是意味着硬件的重生。在这种重生的过程中,我们所看到的是创新的速度将会大大加快,因为我们不会总是白费力气去做一些重复的工作。”
Facebook硬件工程高级经理马特·考德里
解构服务器
Facebook数据中心设计哲学的核心是“解构”(disaggregation)——也就是把传统上构成一台“服务器”的东西拆解开来,使其变成特定目的的硬件群组,这些硬件群组在很大程度上靠网络硬件互相连通。从某种程度上来说,这样的事情发生在原属Sun的园区中带有那么点讽刺意味。在Sun的全盛期,这家公司的广告口号是“网络就是计算机”;而时至今日,计算机就是网络,无论是从概念上来说还是从物理上来说都是如此。
Facebook硬件背后的设计原则来自于直接的实践经验。考德里称,他手下的所有工程师都曾花时间在Facebook的数据中心里做过技术员的工作,“因此每个人都有过实践动手经验,了解硬件的具体运作”。
Facebook和开放计算项目所采用的方法是对数据中心进行一种“后现代解构”,也就是把通常情况下构成一台服务器的部件拆解开来,使其变成能各自发挥功能的部件,尽可能地降低其复杂性,同时尽可能地提高其工作效率。在Facebook的数据中心架构中,真正意义上的所谓“服务器”少之又少,取而代之的是众多填满了各种功能性“sled”的机架。“那将成为一种模式,未来两年时间里你们都会从我们这里看到这种模式。”考德里说道,他在硬件实验室里向我们展示了一些sled设计。“我们的许多硬件设计都将把重点放在一个类别的问题上。”
在Facebook最新的数据中心里,这家公司已经采取了这样的方法。在这些数据中心里,服务器机架中布满了各种使用多用途计算sled(配备CPU、内存和用于处理特定任务的PCI卡的主板)构成的系统、存储sled(高密度磁盘阵列)和“内存sled”(配备大量RAM和低能耗处理器的系统,这种处理器是为处理内存中索引和数据库而设计的)。
“我们不会把这些用在网站上。”考德里说道,他所指的网站是Facebook用来连接至大型互联网站点的托管站点。“但是我们会将其用在自己的所有数据中心设施里,包括位于弗吉尼亚州阿什本(Ashburn)的数据中心——那里的数据中心环境更倾向于经典模式。事实上,我们已经设计了一系列最初的开放式机架。”
所有这些分解开来的硬件模块都拥有一种共同的特征,那就是它们都是完全独立的,可以很方面地拆卸、修理或替换。考德里指着实验室工作台上的一个计算sled说道:“如果这个东西需要修理的话,那么你要做的事情就是抓住把手然后把它拉出来就行了,因为没有螺丝,不需要使用螺丝刀。”
基于“Windmill”的Facebook计算sled(腾讯科技配图)
考德里用“Windmill”计算sled对此进行了演示,其基础是第二代开源主板设计。“这是一种双插槽的英特尔主板。”考德里说道。“我们把它称作‘寿司船’形状系数。”这种计算sled拥有跟服务器主板一样的裸露“骨骼”:两个处理器、16 DIMM内存插槽以及一些PCI(外部控制器接口)插槽。Facebook使用PCI 10Gb以太网卡,而不是直接把以太网卡放在主板上。考德里称,这在很大程度上是因为这样一来公司就能从多家供应商那里获得这种产品。
计算sled上没有电源;为了节能,所有电力都来自于机架。“背面有12伏电源接头。”考德里解释道。“我们给主板提供12伏稳压电源,这样一来我们就能消除所有与功率变换和系统供电相关的复杂性,节能原则会告诉你说,尽可能减少功率变换的次数是最节能的,而每次变换功率都会让你损失五分之二的电力。因此我们直接为机架提供480伏非稳压三相电源,然后通过电源插框将其转换为12伏电源并向主板供电。也就是说,从发电厂到主板之间,我们仅仅进行了一次转换。而与此相比,许多数据中心都会转换三到四次:从480伏到208伏,进入UPS(不间断电源),从UPS出来,进入配电装置,然后进入服务器电源。”
在每个计算sled的冷却风扇设计中,这种节能性也同样存在。“这些东西的节能性好得令人难以置信。”考德里说道。“它们拥有很好的大扇叶,转动的速度较慢,只需要三到四伏就能保持冷却,而传统的1U服务器则需要80伏到100伏。”
Facebook自主开发的数据库发射器设计
在Facebook服务器中,有一种服务器不太符合Facebook的简约化和“解构化”的模式,那就是数据库服务器。“在通常情况下,数据库服务器是最难利用DIY硬件来组建的。”考德里说道。“但是,我们想要去除那些价格高昂的、难以维修的OEM(原始设备制造商)数据库服务器。那原本是一种有趣的迅速开发项目,而并非真正意义山的黑客马拉松,但我们说道:‘嘿,我们仍在购买这种OEM硬件;不但价格昂贵,而且难以维修——我们能做点更好的事情吗?’几个月以后,就有工程师跳出来说:‘让我们看看是否能去掉这最后一种OEM设备吧。’”
Facebook的硬件工程师团队利用Windmill主板推出了一种解决方案,加入了一个电源工具箱,从而“允许我们使用两套电源”。考德里说道。“在正常情况下,这种设计实际上会拥有一个电源和两个主板”。他指出,虽然Facebook的大多数服务器都使用单电源,但数据库服务器则需要额外的电源保护,从而防止断电带来破坏性的后果。因此,为Facebook用户数据库及其他大型数据库提供支持的服务器需要拥有额外的电源。
Facebook的Open Vault磁盘阵列
30TB的可拉出磁盘阵列
Facebook应用的磁盘存储需求——至少是那些相对较低的输入和输出需求,比如说Facebook的“Haystack”照片存储系统——是由Open Vault磁盘阵列负责满足的。在Facebook内部,Open Vault磁盘阵列的代号名为“Knox”。Open Vault是一种“布满硬盘驱动器的托盘格式”,考德里说道。“当你进行高密度存储时——正如你们所想象的那样,我们有很多东西需要存储——你会很想去做的事情就是填满整个封闭空间。”
而Open Vault就是这样做的,它的封闭空间中排满了30个硬盘驱动器,分成两个可拉出的单位,每个单位中各有15个硬盘驱动器。“硬盘驱动器的耗电量不大,散发的热量也不算多。”考德里解释道。“你不会觉得电不够用或是需要首先考虑冷却的问题,而是会面临空间不足的问题。因此我们设计了某种东西,尽可能地减少冗余结构,从而在最大程度上利用机架的容量。”
每个硬盘驱动器都可热插拔。此外,Open Vault磁盘阵列的硬盘托盘安装有铰链和摩擦弹簧。“如果你把这个Open Vault磁盘阵列放在机架顶上,那么在这种托盘配置下,想要拿到后面的硬盘驱动器就很难了。”考德里说道。但安装在硬盘托盘上的铰链和摩擦弹簧则能让整个托盘都被拉出来,而在拉出来的同时,硬盘仍旧还在运行。考德里称,这种铰链已经让Facebook存储设备的可维修性有了很大不同。
就目前而言,Facebook的存储托盘都通过Serial Attached SCSI界面与服务器连接到一起,这意味着它们需要通过一个PCI适配器与一个计算节点联系起来。但是,Facebook正致力于让所有存储设备都能通过网络存取,从而进一步降低布线的复杂性——而不是通过使用ISCSI等存储区域网络协议的方法来做到这一点。
“我们想要做的事情是把一个微型服务器放在存储节点上,并通过10Gb以太网连接起来,然后放弃复杂的节点到节点布线方法。”考德里说道。“这样一来,所有节点都拥有一个以太网连接单元接口,没有别的东西。”通过这种方法,计算节点就能被释放出来,而不必驱动磁盘I/O。
在推进闪存和大型内存中存储sled向前发展的问题上,Facebook也采取了类似的方法,也就是以计算节点为基础,通过网络为应用提供低延迟的访问路径。“我们的大多数固态存储都是以PCI为基础的,因此我们就将其放在计算节点上。”考德里说道。“计算sled中有一个PCI转接卡,因此你能在其中插入一些PCI Express卡。我们发现,在一个磁盘界面上放置闪存是一种技术上的错误搭配,无法充分利用其速度。”
Facebook的数据需求倾向于靠近输入输出范围的极端,Haystack(照片存储系统)等系统的数据要求十分庞大,但相对于所需要的存储总量而言,其输入和输出水平比较低。“这些东西在运转中的磁盘上也能运行得很好。”考德里说道。“有些东西在固态存储系统上也能很好的运行,每TB的I/O操作水平很高。”
完整配置的“开放式机架”
下一代技术
对于Facebook将其解构后的服务器重新装配起来的方法来说,以太网是基础,而网络则是一个很重要的组成部分,这正是Facebook想要利用开放计算项目去推进的发展方向。“这确实是构建开放的、非锁定式机架的基本要素。”考德里说道。“从主机接口出发,一路到机架顶部。对我们来说,同样的解构原则适用于所有层面。这是件大事——对我们而言,解构是件大事。我们认为,随着我们的解构,高速机架内构造的需求将以指数级的速度增长。”
开放计算项目的开放式网络相关计划以纳贾姆·艾哈迈德(Najam Ahmad)领导下的Facebook网络工程团队为主导,主要目标是为一个开源的、操作系统不可知的网络交换机创造一种规格。你可能会认为,想让网络公司放弃垂直锁定式机架的想法会遭遇一些阻力,但考德里表示,Facebook的想法很受这些公司的欢迎。到目前为止,博通、英特尔、虚拟化解决方案提供商VMware、虚拟企业网平台开发商Big Switch Networks、创业企业Cumulus Networks、可编程芯片供应商Netronome和开源“软件定义网络”(SDN)项目OpenDayLight都已经签约参加了开放计算项目。
在6月19日,艾哈迈德和Facebook基础设施工程副总裁杰·帕里克(Jay Parikh)宣布了Facebook准备如何使用来自开放计算项目的网络交换机的计划。Facebook的网络团队以每秒钟10Gb的以太网为基础创造了一个Fabric网络架构。来自开放计算项目的网络交换机的开放性将允许Facebook把交换机变成整体架构的部件。
“我们将有不同规格的交换机。”艾哈迈德在美国科技新闻网站GigaOm举办的结构大会上说道。“我们最开始开发的交换机适用于非常简单的、基本的、机架上方的环境,但随后会有Fabric交换机和骨干交换机。操作系统将允许我们拥有更好的可编程性和配置管理以及类似的东西,因此我们能利用来自Linux世界中软件方面的很多知识基础和专门技术。”
帕里克解释道,Facebook的网络需求超过了许多企业网络的要求。“我们从机器到机器的流量远远超过从机器到用户的流量。”他说道。“我认为,两者之间的比率大约为1000:1,也就是说,数据中心之间的流量要比从机器到用户的流量高1000倍。对于我们应用的实时性本质来说,这种庞大的流量是非常必要的。”
Facebook正在关注下一步的技术;对于这种技术来说,铜线电缆已经不再足够。“虽然10Gb对今天的我们来说已经相当足够,但我们认为在未来几年时间里,我们将需要40Gb或是100Gb的技术。”考德里说道。“就目前而言,铜线电缆还能够满足我们的需求;但我们认为,在未来几年时间里,铜线电缆就无法再满足我们的需求了。”
通向解构服务器的道路之一可能是硅光子学技术,这是一门研究光子的产生和运动特性、光子同物质的相互作用及其应用的前沿学科,允许每秒钟100Gb的传输速度,英特尔和IBM都在开发这种新技术。“我们正在关注很多光学互连技术。”考德里说道。“我们正在关注英特尔的硅光子学研发工作,这是开放计算项目的一部分内容。”
但是,Facebook也并未将其他选择都排除在外,这家公司正在寻找既能简单执行又具有开放性的方法,考德里说道,这种方法不会是“秘传的或是专有,以至于让我们不得不承担较高的成本”。他进一步指出:“因此,我们正在寻找那种商品化的高速互连产品,无论是光纤的还是铜线电缆的。”
病毒式传播
“开源计算项目硬件黑客马拉松”及其他赛事已经为Facebook的开放式硬件计划营造了DIY的氛围,这些赛事正在带来很多成果(例如能用于汽车的数据实时监控硬件),这些成果不一定都与数据中心有关。正如Raspberry Pi黑客和Arduino黑客正在向DIY硬件开发者工具提供出人意料的创新产品那样,出自开放计算项目的开放式设计和界面也能被用于各个领域,更不必说这些赛事经常都会带来商品化的硬件部件了。
当我问及考德里Facebook的硬件计划除了数据中心以外还将覆盖哪些领域时,他并未犹豫。“我们所遵循的原则——开发高效而毫无浮夸的硬件——将适用于任何地方。”
但考德里同时补充道,通过开放计算项目设计并由Facebook开发的硬件在生产时并未考虑到这一点。“目前而言,我们一直都把重点放在数据中心计算的问题上,我的团队还没有考虑到数据中心以外的应用问题。这种硬件是专门为数据中心环境而设计的,目的就是为了解决与数据中心有关的问题。开发一种适用于所有领域的硬件是要冒些风险的。如果你想要设计一种能在办公室、小型公共汽车和数据中心里都能运行的硬件,那么通常情况下都必须就很多事情作出妥协。”
这并不意味着为数据中心设计的产品不会被用于其他用途。举例来说,节能性、低成本以及开放式界面对于主板的其他应用来说也是很重要的。当然,你还没有办法从新蛋网(NewEgg)上随意购买到“Windmill”主板。但在不久以后,你或许就会发现,与Facebook数据中心相比,基于开放计算项目设计的产品离你更近一些。