ARM架构服务器要点

227日在上一篇关于ARMx86在数据中心应用的较量,已经不是一个新话题了。我们经常看到功耗、性能数字,以及应用软件和生态系统丰富程度的讨 论。《华为UDS对象存储:ARM自组织硬盘满足CERN功耗》一文里面,笔者曾经提到功耗和成本正是UDS使用ARM而不是Intel Atom等处理器的原因,据了解华为此前在这一系列的产品中使用过Atom

现在我想以大型用户的实际研发和部署进度为切入点,继续谈谈ARMx86之间各自的优势,以及可能存在的不足。

本文的两个主要论点是:ARM在用于数据中心的SoC方面,目前相对于x86的功能和集成度有一定优势;另外百度与Facebook主导的Open Compute Project(开放计算项目),其存储(服务器)设计的密度和灵活性也有些差别。那为什么标题中还说两家异曲同工呢?先来看看百度的情况。

百度ARM云存储支持纯x86/ARM,或两者混布

ChinaByte比特网:关于百度的ARM云存储节点,是否方便透露使用了来自哪家的处理器?系统来自哪个ODM

以我的了解,华为UDS对象存储(云存储)也使用了ARM,在存储节点上每颗ARM(应该是单核)对应一个硬盘,而管理(元数据)节点仍然是x86

我看到百度也是每个ARM核心对应一个硬盘,因此想了解下整套系统的组成,是否也需要x86的管理节点搭配使用?ARM在这里是什么样的角色(承担着哪些处理工作)?

百度:我们与ARMMarvell 等业界领导者共同设计开发了这款ARM 云存储服务器,并拥有相关专利。完整的系统架构不方便透露。可以明确的是,我们的这套系统可以支持纯X86,或者纯ARM,或者两者混布。

点评:我想这个答复还算简单清楚,下面再看看实物照片:

百度的ARM云存储服务器,采用在2U机架中6个节点的机箱设计

上图下方为抽出的一个ARM节点,在外形尺寸上接近刀片服务器。我们可以看到4块希捷的3.5英寸硬盘,在右边红圈中的区域,2个带有散热片的芯片中应该有一个是来自Marvell4核心ARM,附近斜插着一条ECC内存。

而放在机箱上的那个模块则是从机箱后部抽出来,在它两边是一对冗余电源模块。除了风扇排之外,这里大一点红圈中的3颗芯片应该是用于计算节点与对外万兆以太网(10GbE)接口之间的交换单元,右下方那个小芯片看上去像是ASPEED的图形和远程管理(BMC)处理器。

可以看出,该2U系统有一块中板,负责内部通信和供电连接。

至本文截稿之时,笔者又看到了百度云首席架构师林仕鼎在HPCA大会上的演讲资料——Application-Driven Datacenter Computing》。上图中提到了12 HDD/U的密度,也就是2U 24块硬盘;另外内置网络交换模块也符合我们在上面的判断。

接下来讨论下Facebook的存储设计。

开放计算项目:3015(45)盘位2U SAS JBOD

上图来自Open Compute Project(开放计算项目)的Open Vault Storage Hardware v0.7规格文档,作者自然是Facebook的人了。

这里的Open Vault存储实际上不包含服务器(主机)部分,只是一个JBOD硬盘扩展柜。关于x86ARMFacebook的应用我们会在后面谈及。

2U的机箱里,上下容纳有2个像这样抽出硬盘托盘(tray,那一共就是303.5英寸驱动器。WD 4TB企业级黑盘(单节点裸容量可达120TB)在该文档的多个照片中出现(如果换作我是西部数据的市场人员,把这些盘白送给Facebook也蛮值得的)

从横向并排可以放5块硬盘这一点,可以确定Open Rack机柜不是标准的19英寸(682.5mm)宽度。如下图,它的宽度为538mm

这张图机架尺寸图来自Open Compute ProjectOpen Rack Hardware v1.0文档

至于硬盘与外界的I/O部分,主要是由前面那块绿色的SAS扩展板(SEB)来实现,上面关键的芯片和一般的JBOD都是用的SAS ExpanderFacebook关键不同的一点是:在机箱前后气流进出的位置,居然不像传统服务器/存储那样安装塑料防尘面板。正如我们的判断,有知 情者表示,他们是在整个数据中心机房的进风口来做防尘处理。

因此如果有人想直接完全照搬Open Compute Project的设计,需要考虑一下。拿来做参考,或者在其基础上改动当然是可以的。

Open Vault Storage单元后视图

从使用的台达风扇等情况来看,这款有可能来自广达的Facebook存储机箱,用料和做工还是不错的。

Open Vault系统结构图

这张图,有的读者可能在网上看到过。这里我们想简单交待一下逻辑关系。

2U机箱中的两个硬盘抽屉,各自通过Drive Plane Board来连接15块硬盘。这些SAS盘的双端口分别可以连接到AB两块SAS扩展板(以实现连接路径的高可用,默认是每个tray一个SEB)。对 LSI Expander SAS2x28扩展器芯片来说,除了15lane用于硬盘,还设计了一个外部mini-SAS x4连接器向上与主机端通信,以及两个内部mini-SAS x4连接器向下级联Open Vault(也可以是接下来要讲到的另一种JBOD?)。

定制系统的一大好处是,多余用不上的东西可以基本上去掉。没有前面板的开放机箱,自然也就可以在一个机柜的节点之间使用SFF-8087内部SAS线缆。 这时我又想起了一个问题:工作人员进出这样的Facebook机房,在着装上是否要放尘不好说,但没准要穿防辐射服。因为传统服务器/PC面板内侧的金 属片是起到EMC电磁保护作用的。

这张示意图来自Open Compute ProjectTorpedo Design Concept Storage Server for Open Rack Hardware v0.3文档,尽管叫做存储服务器,其实也是一种JBOD

Torpedo Design Concept(存储单元)的设计可以说比前面的Open Vault更加简单,空间效率更高。在2U的机架空间内应该可以容纳3个这样的单元,每个里面安装153.5英寸硬盘(一共就是45个驱动器)。作为 JBOD,它的核心也是SAS扩展器,这里使用了一块标准PCIe尺寸的Intel Expander RES2SV240

Intel Expander RES2SV240 24端口6Gb/s SAS扩展卡

RES2SV240使用的芯片是LSISAS2x24,我们道SAS扩展器芯片并不需要PCIe信号连接,因此下方的金手指只用于+12V供电,与上方的 4pin电源接头选择一个使用即可。6SFF-8087 mini-SAS x4连接器中有4个用于连接硬盘,另外2个作为上行或者下行连接(initiator or target)均可。

Torpedo Design Concept Storage Server for Open Rack除了比Open Vault单位空间内的存储密度更大之外,还有一个重要的不同——就是不具备控制单元(SAS扩展器)的冗余连接,由于这个单点故障,也不太适合通过它再 向下级联其它JBOD了。

为什么写到这里还没有涉及ARMx86?因为在Facebook冷数据存储Cold Storage)应用中,前面2JBOD存储扩展柜最初应该都是配合x86服务器节点来工作的,而ARM则是像百度那样的计算/存储一体化设计——这就 是后面一页要谈的内容。

ARM服务器板:将JBOD变为存储服务器

这张照片来自开放计算项目的ARM Server Motherboard Design for Open Vault Chassis Hardware v0.3文档,其实就是上文中的Open Vault Storage机箱,只不过SAS扩展板的PCB颜色由绿色变成了红色。这在广达的产品中有专门的含义,当然它不是我们要讨论的重点,基于ARM的服务器 主板在这里的作用是:替换机箱中的红色SAS扩展版,将Open Vault JBOD转变为一台存储服务器。

也就是说,上一页中的存储密度计算,是无法直接和百度比较的,因为只包含硬盘而没有CPU

基于Calxeda ECX-1000 SoCARM服务器板结构图

Facebook使用的ARM CPU是来自CalxedaECX-1000 SoC。它连接了4GB DDR3 ECC内存,提供4个以太网接口,和5SATA硬盘接口,后者通过Multiplier(倍增器)将每个SATA接口13,这样就满足了连接Open Vault机箱一个tray上硬盘的需求。

Calxeda EnergyCore ARM SoC结构图

上图供大家参考,其中除了4核心的ARM Cortex处理器之外,我们想重点说的是右边的EnergyCore Fabric Switch模块,它能够提供最多510GbE(万兆以太网)或者最多6个千兆接口。当然受限于处理能力和该芯片的定位,5个万兆可能达不到全线速,在 Calxeda推荐的针对均衡系统的优化I/O中,使用了3个带有DMA10Gbps XAUI以太网界面。

Facebook也提供了4种不同的网络选项:双1GbE4CX44QSFP4SFP+CPU当中集成的只有MAC而没有PHY(物理 层),其中双1GbE选项是ECX1000提供SGMII界面到21Gbps PHY;而每个QSFP在这里只提供一个10GbE连接(通过QSFP+提供的40GbE在这个接口中不被支持)。

带有4CX4接口的ARM服务器板,提供最低成本的10GbE网络接口,只是在线缆和连接距离上比较受限。

带有4SFP+接口的ARM服务器板,提高成本来增加在物理介质类型和线缆方面更多的灵活性,需要10GbE PHY芯片转换XAUIXFI界面来驱动插入的SFP+模块。上图所示的主板上使用了2Vitesse VSC8488双端口以太网收发器。

SFP+接口可以支持DAC直连铜缆,或者通过安装光纤模块来连接光纤线缆。百度宣称自主研发的万兆交换机,与服务器的连接采用的就是DAC线缆,这是目 前在短距离内(不超过10米)比较成熟且相对廉价的一种万兆连接方式。至于RJ-45接口的10GBase-T,主流网络厂商的交换机最近这段时间才纷纷 推出,再加上功耗方面的问题,尽管被许多人看好但普及尚需时日。

如果说百度和Facebook是在(存储)服务器中使用ARM的话,华为UDS也是将ARM用于存储系统,只是后者的硬件定制化程度更高。最后一页我们再对它们进行一下总结比较。

对比华为UDS对象存储、百度云存储,以及FacebookOpen Vault中使用ARM服务器板,从宏观上看都是将硬盘转接到以太网。这样说可能有些不够严谨,因为每家的产品都有自己的特点:

三种不同的系统,百度目前只是用于自己的数据中心;Facebook通过开放计算项目共享了他们的硬件设计;而华为UDS则是一款相对通用的对象存储系统。

华为UDS每台2U高度的存储节点机箱包含上、下2个刀片,每个1U刀片里有8块硬盘,它们分别对应8ARM芯片。也就是说一个刀片实际上就是8 所谓的SoD(自组织硬盘)。刀片对外通过万兆以太网交换机与接入节点相连,内部估计也有个交换单元将带宽分配到自组织硬盘。

华为UDS对象存储系统在1U刀片内,使用了8个单核ARM分别驱动”8块硬盘,对外提供以太网接口。单台2U机箱中有16块硬盘

每个ARM芯片只负责一块硬盘的数据接口以及元数据处理,而UDS的接入节点(网关)使用了华为的Intel x86 CPU服务器。

华为UDS存储节点的密度为2U 16盘位。(以下都是我们当前了解到的信息,本文中提到的均为3.5英寸硬盘驱动器)

百度云存储:根据百度的说法,这套系统可以支持纯X86,或者纯ARM,或者两者混布,那么在纯ARM的配置下,假设是完全对等的节点,每个CPU核心应该要承担比华为UDS更多的任务,包括维护(对象)文件系统之类的。

百度云存储的密度为2U 24盘位。

Facebook开放计算项目:按照本文中谈到的设计,Open Vault冷存储可以用4ARM驱动”15块硬盘,并可选实现4个万兆网口的豪华配置。当然此时的CPU处理能力和4GB内存容量是根据应用特 量力而行的,因此Facebook并没有说这种ARM服务器板,能够完全替代在JBOD外面连接(x86)服务器?

开放计算项目Open Vault的密度为2U 30盘位,Torpedo Design Concept JBOD应该可达2U 45盘位(3个并排放置的话)。

最后,我再简单总结一下:本文从存储、服务器一直谈到网络,如果说x86胜在软件生态系统的话,ARM则有着丰富的硬件生态环境。比如说像Calxeda ECX-1000这样的SoC,其提供的4-5个万兆以太网MAC,就是目前包括Xeon在内的x86处理器所不具备的,而不仅仅是Atom。不同特点的 ARM定制方案,能够有针对性地在一些应用中发挥最大的效率。

笔者班门弄斧地写了这些,难免可能会有疏漏之处,欢迎大家提出意见和建议,并希望能够抛砖引玉。其实在我们的采访中,还有关于百度万兆以太网交换机的话题,不过与本文主题相距较远,有兴趣的读者可以再找机会交流。

《ARM架构服务器要点.doc》
将本文的Word文档下载,方便收藏和打印
推荐:
下载文档
热门推荐
相关推荐