Moonshot System的这次尝试无疑带给了我们某些新的启发,其中最重要的就是由应用的视角选择为之优化的服务器,打破了对通用、标准化服务器的传统认知,同时应用也将针对新的服务器形态产生可能的变化……
ZDNet至顶网服务器频道 05月06日 评论分析(文/赵效民): 1961年5月,美国正式启动了历史上著名的登月计划——Apollo Project。1969年7月20日,“阿波罗11”号宇宙飞船登陆月球,7月21日,宇航员Neil Armstrong(阿姆斯特朗)踏上了月球,成为了第一个在另外一颗星球上留下足迹的人。当时他说了一句经典名言:“这是个人迈出的一小步,但却是人类 迈出的一大步”(That's one small step for [a] man, one giant leap for mankind)。如今,这句话也演变为惠普推出新一代服务器的宣言。
2007年,惠普试验室着手研发具有更高能效比的高可扩展计算系统,并开始了广泛的尝试,2011年 11月,惠普首次对外正式公布了登月计划——Project Moonshot,同期发布了其第一代,不过实验意味更为浓重的解决方案RedStone。2013年4月9日,第二代Moonshot产品,以更加成熟的商品化姿态亮相,正式命名为Moonshot System。在中国举行的发布会上,惠普高层表示,“这是惠普迈出的一小步,但却是服务器行业迈出的一大步”。
阿姆斯特朗在月球上留下的脚印,惠普希望Moonshot System在服务器的发展史上,留下有着同等意义的足迹
显然,惠普高层的表态,已经向世人揭示了惠普对于“登月计划”的定义——开拓全新的服务器领地,就像人类踏上地球以外的星球一样,预示着一个崭新服务器时代的开启。在接受专访时,惠普高层多次将Moonshot System与当初的刀片服务器相提并论,后者在12年前开创了一种新的服务器形态,并逐步发扬光大,如今已经成为数据中心计算系统的重要架构。而惠普对于Moonshot System的期望也是如此,那么它的前景又将如何呢?——这将是本文着重探讨的话题。
Moonshot System的设计与沿革——脱胎于ProLiant SL4500
有关Moonshot服务器的开发源由,在本人早前的一篇文章《AMD的ARM之路 前景几何?》中有详细的分析,在此不再赘述,而是直接从第一代Moonshot服务器说起。
利用现有的ProLiant SL6500机箱,Redstone可装入4个服务器集群框架,每个框架有72个计算节点(微服务器,4个一组),总共可以在一个4U的机箱内放入288个节点,机架密度达到了72/U,远远高于现有的刀片服务器
第一代Moonshot服务器RedStone,基于ProLiant SL6500机箱开发,每个节点(微服务器)1颗EnergyCore ECX-1000处理器,4个服务器节点组成一个服务器模组(HP称之为“Server Cartridge”),一台SL6500可装载72个服务器模组,总共有288个计算节点。每个EnergyCore ECX-1000处理器有4个Cortex-A9核心,所以一台服务器就有1152个核心,这种密度在当前的数据中心里是不可想象的。为此惠普也专门将其 与传统的x86服务器解决方案做了综合比较,在满足应用需求的情况下,能耗降低89%,机架占用空间减少94%,成本降低63%,而复杂度也降低了 97%。
那么到了第二代Moonshot呢?惠普似乎有了更大的野心,目光已经不再 仅仅局限于能耗、空间、成本、复杂度等指标,而提出了“软件定义服务器”的理念。有关这一理念,将在下文具体分析,现在还先看看商品化后正式发布的第二代 Moonshot服务器(下文统称Moonshot System)的具体设计。
Moonshot System并没有沿用SL6500的机箱,这是因为SL6500本身是大节点设计,根据原本的规格,可容纳8台半宽的1U服务器。RedStone时代 将其进行了改良,一个框架为2U半宽的规格,其内容纳了18个服务器模组(每个模组4个节点),显然,这种大机箱里带小机箱的设计无法满足超大密度可扩展 设计,从而需要一个从机箱设计开始就为高密度节点集成的新型服务器。因此,Moonshot System全面借鉴了ProLiant SL4500服务器的设计。
ProLiant SL4500是2012年第三季度HP推出的新型高可扩展服务器,由于Moonshot System的设计肯定在RedStone发布之后就开始了,所以不能排除SL4500在设计之初就已经将Moonshot System考虑在内的可能。将两者的设计相比较,可谓异曲同工。
SL4500的初衷是高密度存储设计,只配以1至3个计算节点。以单个3.5英寸SATA硬盘最高容量4TB计算,不同数量的计算节点配置,可获得240TB、200TB和180TB的容量,而如果把硬盘替换成一个计算节点呢?像不像Moonshot System?
Moonshot System服务器外观与内部总局,从机箱(Moonshot 1500)尺寸上看,与SL4500基本一致,其内部的设计和SL4500也非常相象。这里需要指出的是,Moonshot 1500与SL4500机箱的高度均为4.3U,并不是一个标准的高度,对此HP并没有给出明确的原因,但应该是散热方面的考虑(想想45个微服务器模组 或60块3.5英寸硬盘的发热量),HP为此还准备了一个0.66U高的机架挡板(HP 0.66U Spacer Blank Kit),并强调了基于散热考虑推荐使用,另外还准备了一个13U的机架适配器(HP 13U FIO Rack Adapter Kit),可将3台Moonshot 1500机箱打包一组上架,当使用47U机柜时,可装载10台Moonshot System服务器
Moonshot System所采用的Moonshot 1500机箱,根据不同应用而设计的各类微服务器模组是其最大的亮点,在服务器模组互联方面,Moonshot沿用了RedStone的2D- Torus(二维环路)Fabric的网格拓扑架构,其中一个环路连接是“南-北”纵向的3个服务器模组,另一个环路连接“东-西”横向的15个服务器模 组,每个方向有4个高速互联通道,提供最高可达7.2Tb/s的服务器模组之间的互联带宽,不过互联的协议取决于服务器模组的供应商,可在PCI-e、以 太网、SAS等协议中选择
Moonshot System内部集成的交换机模组,目前提供45x1G的接口速度。理论上一个45G模组即可支持所有的45个服务器模组,但HP提供了双交换机模组设 计,以保证高可用性或满足特殊的隔离需求,以及更高的互联带宽。未来,为应对180个服务器节点(45x4)的配置,交换机模组也将升级至180G(意味 着双模组聚合总带宽将达到3.6Tb/s)。与之对应,Moonshot 1500机箱背板的网络上行模组目前为6x10G配置,未来将达到4x40G
Moonshot System第一代“Gemini”(双子星)服务器模组采用英特尔Atom处理器,大小和一个标准的女士手袋差不多,配备1颗Atom S1260处理器(双核、主频2GHz)、1 条8GB DDR3-1333 SO-DIMM(在PCB的另一侧)、1个Broadcom 5270 双1Gb端口以太网控制器,以及1 个Marvell 9125存储控制器,总功耗不超过15W。在操作系统方面,目前支持三款:Ubuntu 12.04、Red Hat Enterprise Linux 6.4与SLES 11 SP2,不过据称Windows Server 2012可以在当前平台上启动,所以理论上也是可以使用的,但最好咨询一下HP与微软方面的技术人员。HP方面给出的说法是,未来几个月将会正式支持 Windows Server 2012
有关Moonshot System的具体硬件规格,在4月初其正式发布后,已经有不少文章予以报道,在此就不多说了。总结一下,我认为最新的Moonshot System可以说是脱胎于ProLiant SL4500系列,原来多达60块3.5英寸硬盘的装载设计,为Moonshot System提供了很好的模块化设计基础——通过专用的总线架构,Moonshot System将60块3.5英寸硬盘变成了45个服务器模组,将计算节点的空间变成了交换机模组。由此可以想像一下,它是不是一种新的服务器?就像当初的 刀片服务器一样,各刀片服务器通过相关的总线插在机箱的中板上,再通过刀片机箱背板的交换机与外界沟通。与之对照,Moonshot System中,根据不同应用而设计的服务器模组就相当于新的“刀片”,对于HP来说,无疑开创了一种新的服务器形态,那么它对于服务器产业本身又带来了 怎样的启示呢?
Moonshot System的理念与启示——让服务器为应用而生
事 实上,类似于Moonshot System这种模组化的微服务器设计,业界已经并不新鲜,长期专注于微服务器设计的SeaMicro就是典型一例,其主打的SM15000系列服务器就 提供了4种服务器模组的选择,CPU涵盖了AMD、英特尔两大x86处理器厂商。不过论业界的地位,SeaMicro显然不能与HP相提并论,而HP在自 己商业服务器产品家族中推出Moonshot System,也就表明了这种模组化微服务器,在HP的未来市场预期中的前景将更为确定。
SeaMicro的SM15000系列微服务器,可在10U的机箱内,装载64个服务器模组
HP之所以对这种新的模组化服务器有更强烈的信心,我认为其根本在于HP通 过这种新的服务器形态,找到了一种更有效的与当前企业应用需求之间互动的方式。它以一种将应用需求到具体设备变更最小化的方式,来引出一种新的理念—— HP称之为“软件定义服务器”(Software Defined Server ),我更愿意理解为“让你的应用选择服务器”,而这也是Moonshot System与SeaMicro系统的一个关键区别,HP对于Moonshot System的野心从微服务器开始,但远不止如此。
在此,有必要先阐述一下“应用需求到具体设备变更最小化”,它也是实现应用 选择的一个关键。我们可以这样来理解,传统的一台机架服务器,至少是1U的大小,有完整的机箱、电源、主板、存储等标准组件,当这台服务器不能更好的满足 当前应用的标准,需要换另一种不同厂商的CPU时,此时应用需求到具体设备变更量就是一台完整的服务器,因为你无法在保留原有的标准组件的前提下,只更换 CPU。到了刀片服务器,好一些了,需要不同类型的刀片时,变更量只限定在刀片一级,而不用换整个机箱,比如你完全可以在一台刀片机箱里混插多种类型处理 器的刀片,AMD、英特尔又或是RISC/EPIC刀片。不过,刀片与Moonshot System的服务器模组相比,仍然巨大,即使是最高密度的刀片服务器,也只能在10U的空间内提供32台服务器,但Moonshot System则在4.3U的空间内提供45至180个服务器。这种颗粒度的细致性,两者是不可比拟的。而且,Moonshot System的服务器模组相较传统刀片也更为简单,基本就是处理器模块,也就是说将计算属性的资源更为集中。因此用户在根据应用需求而挑选、替换服务器 时,所变更的量是最小化的,只是模组本身而已,Moonshot System机箱与其他组件都不用变,所以用户在变更起来,速度更快且成本更低。从这个意义上讲,Moonshot System本身其实是一个应对不同应用需求的,服务器模组插座。与之相呼应的,HP也在全力拓展Moonshot System的服务器模组类别,其中,服务器模组就涵盖了从x86至ARM的多个主流厂商。
Moonshot System的存储模组,两块SFF硬盘或SSD(硬盘最大容量为1TB,SSD为200GB),通过存储总线架构与服务器模组互联,预计2013年下半年发布
Moonshot System的4节点Atom版微服务器模组,集成4颗Atom S系列处理器(相当于4个服务器节点),预计下半年发布,由于一模组上有4个服务器节点,所以一台Moonshot System的总服务器节点数量也将达到180个(45 x 4),一个47U机柜也因此将有创纪录的1800台微服务器
Moonshot System的单路Applied Micro(APM)版本ARM服务器模组,采用APM的64位(ARMv8)X-Gene处理器平台,预计下半年或2014年上半年发布
Moonshot System的4节点设Calxeda版ARM微服务器模组,集成4颗EnergyCore ECX-1000处理器(Cortex-A9架构),总节点数量与4节点Atom版本相当,预计下半年发布
Moonshot System目前所涵盖的处理器厂商,为Moonshot System创造了一个丰富的应用生态环境,现在除了AMD和德州仪器外,其他厂商的服务器模组均已亮相
Moonshot System目前虽然只正式推出了基于Atom S系列的服务器模组,但在计划中,已经有多款模组整装待发。不过,HP的愿景并不仅限于当前的规模,在未来,服务器模组还将根据应用的属性进一步丰富,包 括GPU、DSP,以及现场可编程阵列(FPGA)等专用处理芯片(ASIC)。而在HP的规划中,Moonshot System的目标行业领域包括了高性能计算(HPC,High Performance Computing)、游戏、通信、金融、基因研究等,若从工作负载类型来分,则包括了内容缓存、Web主机、Web前端加速、大数据分析、VDI(虚拟 桌面基础架构)、面部识别、视频处理等等,而每种负载也将有最适合、最优化的服务器模组与之对应。
Moonshot System的发展规划重点就是针对不同应用定制的服务器模组(Cartridge), 今天我们看到的率先发布的就是单Atom S1260处理器的服务器模组,接下来我们将会看到4xAtom节点、4xARM A9节点以及4xARM A15+DSP节点,虽然现在还没有看到AMD的样品,但HP方面表示,AMD的处理器(包括APU)一定会出现在Moonshot System中
以目前的Moonshot System的服务器模组规划,我们似乎没有看到英特尔至强(Xeon)系列的产品,x86领域目前只有英特尔的Atom系列,包括下半年上市的 Avoton(22nm,乱序执行),但是是在HP负责超大规模服务器硬件研发的 Gerald Kleyn在接受采访中表示,从技术基础上看,Moonshot System可以支持2x或3x槽位规格的服务器模组(现有的都是1x槽位),也就是说它在技术上是可以做到支持更大体积的服务器模组。就好比当前HP C7000刀片机箱内可以有半高(BL460c)、全高(BL685c)、双宽(BL680c)刀片的差别,从而在理论上也就为采用英特尔至强E3、E5 处理器提供了可能。对此,Gerald Kleyn强调最终还要看用户的具体需求。如果这一理论上的设想真能实现,那么一台Moonshot可以搭载最多15台更高性能的单/双路至强服务器模 组。
综上所述,我们可以清晰看到由Moonshot System所体现出来的新服务器设计理念。HP称之为“软件定义服务器”,在我眼中则“应用定义服务器”,即以应用的需求选择适配的服务器。毕竟现在用 软件定义为开头的新理念与新技术越来越多,如SDDC(软件定义数据中心)、SDN(软件精义网络)等,但这里的软件定义其实是从一个更高级的软件逻辑层 来替代原有的硬件层的功能,从而能更灵活、更有效率的规划与利用硬件资源。然而,软件定义服务器从理念上讲,并非是通过软件将下层的服务器透明化,实际上 它的主旨就是为不同的应用进行定制的优化,所以我认为“应用定义服务器”更能符合Moonshot System的根本用意。但不管怎样,Moonshot System的出现都带给了我们一种启示——传统的通用服务器的通用化设计,是否对于某些特殊的应用仍然适用?我们是否有必要将这些应用对于IT资源的需 求定制化,并配以相应优化的硬件?Moonshot System通过最小化的服务器模组设计,让厂商从产品设计伊始就可以灵活的为各种应用准备相应的模组,而从用户角度来看,这种微服务器模组设计,也使得 为不同的应用选择相应的处理平台,较以往更为便利,从而让“应用定义服务器”成为可能。因此,无论Moonshot System最终是否在市场上取得成功,我认为都是对这种理念有益的实践。
Moonshot System的未来猜想——OS与软件是否随之改变?
在HP于北京发布Moonshot System当天,我曾经发表过这样一条微博——我认为Moonshot的最大意义,并不是让Atom与ARM登上大雅之堂,而在于对应用负载平台的一种 全新认识,不管是应用优化也好,还是软件定义服务器也罢,都在于一个新思路——定制轻核心+精细物理颗粒+高密度分布式处理,但这需要时间的检验。在本 文,我认为这段话可以算是对Moonshot System未来带给业界影响的进一步猜想。
在传统的信息封闭时代,应用软件大多基于单机环境来运行,强调的是 Scale-Up纵向扩展的能力,CPU的核心数量越多、内存容量越大越好。然而,互联网的不断普及,引发了一系列的IT应用与技术变革,当人们越来越追 求便利、灵活、动态的IT环境时,Scale-Out横向扩展的能力也就愈加重要了,因为它在理论上可以带来无穷无尽的IT资源,以满足全球信息互联大环 境下的信息收集、处理与分发的需求。因此,如果说用户的需求引发了云计算、大数据等浪潮,那么从另一方面讲,Scale-Out也就是这一潮流的基础。在 这一环境下,更多的强调的是多机协同、集群分布式处理。俗话说“猛虎架不住群狼”,以数量众多的小机器,借助于横向扩展的能力,也可以与一台强调纵向扩展 的高性能大机器相抗衡。而在这种潮流下,应用自身也在转变,从单机环境向集群环境迁移,这就如同高性能计算领域的变迁——越来越多的HPC应用会构建于 MPI而不是OpenMP之上,因为后者是在单机环境下,再怎么Scale-Up又如何能与成千上万台服务器相比呢?虽然并不是所有的应用都适用于分布式 处理,但大部分应用均可以有效迁移至分布式环境已经是不争的事实。
现在,我们能在操作系统与越来越多的应用软件上看到了Scale-Out的 倾向,不过这仍然是一种通用层面上的调整。而Moonshot System的出现,则带给了我们另一种猜想——当硬件厂商以定制化的微服务器来应对指定的应用时,相关的操作系统与应用是否也将为这种新的轻核心、高密 度、分布式架构做出调整呢?
以当前第一代Moonshot System的设计,在4.3U的空间内,提供了45个微服务器,以Atom S1260的设计来看,则相当于90个核心、180个线程。这一密度在当前业界虽不算最高(DELL的PowerEdge C6145可以在2U空间里提供128个核心),但也相当引人瞩目,如果换成4x的版本,则将无人能及(Atom版本可达360核心、Calxeda版本 可达720核心)。而这种新的服务器形态,从资源管理、应用开发或部署理念上看,将可能带来一种新的思路。
以DELL的PowerEdge C6145为例,在2U的机箱内集成了两个4插槽计算节点,也就是说在4U空间(相当于Moonshot 1500机箱)里提供了16个处理器,它虽然有256个核心,可就节点与处理器数量来讲,颗粒度还是非常大的,如果想最大限度的利用资源,虚拟化是必需 的。而这就需要一个中间层(虚拟化层),在这层之上部署应用,并为应用分配相应的虚拟CPU、虚拟内存与虚拟I/O资源,可以说这是一个当前非常典型的应 用方式。而Moonshot System出现后,则提供了45个单独的计算节点与45个处理器,此时如果基于硬件分区的技术,即可以对这45个节点与处理器进行分割,颗粒度可以到2 个核心为一组(以Atom S1260为例)。到了今年下半年,一台Moonshot System即可达到180个处理器(4x节点的版本)与360核心(Atom)或720核心(ARM/Avoton)的规模,所以就整体的可管理性和硬 件资源的利用方面,无疑提供了一种新的理念——不借助软件层面的虚拟化,直接以硬件分区取可实现资源的快速调配,并且不影响硬件的性能。其实,硬件分区早 已在UNIX小型机上应用多年,但在x86领域还非常罕见,而Moonshot System这样的产品,可能会像开放式计算项目(OCP)那样,引发更多用户对软件虚拟化之外的资源利用方式的关注。
而在应用开发方面,由传统的通用核心向轻量级、定制、优化的核心迁移,也将会是一种可行的趋势。它将带来更低的复杂度、更小的能耗与空间占用,以及更少的成 本。根据HP的测试,采用Atom S1260的Moonshot System,在其专注的Web前端应用领域,相比传统服务器复杂度降低97%,节约能耗89%,节省空间80%,成本减少78%。相类似的,我们可以想 像在未来Moonshot System不同类别的服务器模组之上,与之对应的应用又会有怎样的表现呢?另一方面,如果我们将Moonshot System中的计算节点(现在是45个,未来可达180个),更为细化的对应应用的线程,就会发现每个线程所拥有的独立内存与I/O资源,与传统的服务 器架构就有了很大的不同,假如分布式编程得当,相信每个线程的执行效率也将有显著的提升。相对于传统的通用设计的服务器,它将让应用开发者更好地有的放 矢。
这种应用定义化的微服务器集群,虽然每个核心的处理效能不可与当前主流的通用服务器的CPU相比,但借助于这种高密度的分布式处理架构,配合相应的应用优 化,也将起到意想不到的效果。因此,从某种角度上讲,Moonshot System可以认为是一组服务器集群,也可以认为是一台特殊的应用服务器,就看应用如何针对其优化和使用了。
也许有人会说,分布式处理、高密度集群早已经不是新鲜东西,但关键在于以往 的这些平台大都采用的是主流通用处理器平台,比如至强、皓龙等,而Moonshot System的创新在于引入了更丰富的处理器类型,从x86到ARM,再到GPU、DSP、FPGA等ASIC,以应对更多特定属性的应用,在当前还没有 哪个主流服务器厂商这么做,因此其对于整个业界的影响不能忽视。这就好像GPU进入HPC领域一样,当越来越多的定制化微服务器出现,并以高密度集群、分 布式的形态呈现在用户眼前时,也就为我们打开了更多的想像空间。那时,也许Moonshot System这类的服务器,也不再会是被大型、巨型企业所独享,而会像刀片服务器那样,在更多的市场与领域展露拳脚。
一个好的硬件平台,离不开丰富的硬件与软件合作伙伴支持,惠普也希望借助自身的影响力,带动越来越多的伙伴投入到Moonshot System的市场开拓中,而这对于Moonshot System也至关重要。在这一合作过程中,也许就会引发新的应用开发思路甚至应用平台的变革
当然,我们也必须承认,就如某些应用并不适用分布式处理一样,肯定不是所有 的应用都适用于Moonshot System这样的产品,至少以现在的处理平台规划而言不会,传统的主流通用处理器仍然有强大的生命力(如果Moonshot System未来真有E3、E5的服务器模组则会大大扩展其应用范围),毕竟还有很多传统的应用在服役。而且就算是分布式处理环境,不同的应用对于每个核 心的性能要求也各不相同,这就需要用户进行具体的权衡,就好比一个由新兵组成的连队,和一个由老兵组成的连队,战斗力肯定不可相比一样。如果只是日常的巡 逻,新兵连队就能胜任,但如果是抢滩登陆,恐怕就非老兵连队莫属了。
因此,我认为Moonshot System可能会开启一种新的服务器潮流,并会引发软件产业相应的变化,但绝不会一手遮天。HP的发言人,曾经将Moonshot System比作十几年前的刀片服务器诞生(2001年5月由康柏投资的子公司RXL发布了业界第一款刀片服务器,一年后康柏被HP收购,因此HP认为自 己是刀片服务器的创始者),认为它会引领一个新的计算形态,不过时至今日,刀片并没有成为绝对主流,传统的机架服务器仍有旺盛的生命力。所以在我看 来,Moonshot System是针对当前超大规模、超高密度、定制化应用的一次尝试,就如同当初刀片服务器应对的高密度数据中心需求一样,而并非服务器的统一形态。
展望未来,Moonshot System是否会像刀片服务器那样,最后得以发扬光大,我不好判断。但是,Moonshot System的这次尝试无疑带给了我们某些新的启发,其中最重要的就是由应用的视角选择为之优化的服务器,打破了对通用、标准化服务器的传统认知,同时应 用也将针对新的服务器形态产生可能的变化。而这种启发与认知一旦形成规模,将会带来更为重大的变革,我想这才是HP发布Moonshot System的最大意义之所在——阿姆斯特朗在登上月球时留下了人类的足迹,标志了人类对外太空认识有了重大进步,40多年来,通过不断的积累,如今人类 已经开始向更遥远的火星进发……IT产业何尝不是在永无止境地前进呢?我认为,这应该就是HP用Moonshot来命名该服务器研发计划的原因吧……