服务器之战:ARM vs.x86刀片服务器
自2010年开始,关于移动芯片巨头ARM公司要进军服务器领域的消息就逐渐多了起来,其中有捕风捉影、绘声绘色的传闻,也有正儿八经的新闻发布。但是在2010到2014的今天,这三年多的时间里ARM并没有在服务器领域有决定性的市场发展,有的只是零星的产品发布和评测。即使是Google这类有着大规模服务器需求的互联网运营商,要运用一种未经历史证明的新技术和产品,下决心也并不容易。
ARM能否胜任企业级市场?
从ARM与x86发展的历史来看,ARM一直更接近用户端,被普遍用作个人数据处理、瘦客户机终端,以及个人级别的NAS服务器处理器核心。在应付个人的计算需求方面,ARM显然已经非常完善,而且已经超越也大部分普通用户的需求。
但是,被大量安装在个人消费设备上,能胜任单个用户计算需求的ARM处理器,是否也适合为许多用户提供计算处理资源的服务器呢?
笔者认为,这种角色的转换肯定不可能立即完成,这是由ARM生态圈面向个人计算的历史状态决定的。要从个人计算核心转变为服务器核心,需要改变和提升的也并不仅仅是ARM核心,还有大量的周边配合,从处理器核心设计、服务器系统设计、服务器集群通讯设计、操作系统底层设计,直到外围的软件应用集成和服务,每一项都是巨大的挑战,甚至缺乏案例参考。服务器系统的需求并非只有性能和能耗,稳定性和可用性也是必不可少的条件。请回忆一下您和您朋友们自己正在用的手持设备,基本上可以肯定它使用的是ARM的核心,但是您的设备没有死机或者出错吗?肯定有!使用ARM核心的个人设备的使用稳定性尚且如此,又怎样能保证ARM服务器系统的稳定性呢?至少,个人设备的技术架构不适宜直接用于服务器系统,必须投入全新的和完善的设计。
通常情况下,ARM处理器更适合处理个人的计算需求——不多也不少。性能过高则能耗也会上升,影响设备待机时间,性能下降则不足以及时完成计算任务,两者都会影响用户体验。
而以ARM的这种计算性能特点,如果应用到服务器端,原则上在同一时刻也只够满足个人级别的应用服务需求。云计算时代的“云”通常指的是服务器群组成的云,可以为用户提供无限量的计算资源,但同时巨量的用户同样也是“云”,会给服务器带来同样无限量的服务压力。如果单个ARM平台服务器的处理能力非常有限只能处理少量的用户需求,那么面对“用户云”汹涌而来的请求,只有增加ARM服务器的数量,维持服务器和客户数量的比例,才能确保服务能够正常进行,整套系统的资源供求关系健康平衡。所以,这里可以通过逻辑推理得出,在这个云计算的时代,单个处理器的ARM服务器基本上是没什么意义的,ARM服务器商业应用的起点必然是从集群开始。
ARM的应用领域
事实已经证明了这种推论。无论是HP推出的Moonshot微服务器还是其它厂商已经投放市场(实际上在市场上几乎见不到)的ARM服务器产品,都是以通常机架式服务器的外壳为基础,容纳非常多的ARM处理器核心,同时加上配套的数据交换和存储支持电路,形成一套对完整的集群系统。例如网络上有评测文章的某ARM服务器平台“一台迄今为止堪称最为成熟的ARM服务器Viridis”就允许在单个机箱内安装最多12块服务器卡,而每块服务器卡包括了4个完全独立的服务器(含处理器、内存、磁盘、网络界面等),如此单个机箱就成为了拥有48个服务器节点的ARM服务器集群。机箱底板上集成了网络交换机和存储系统,即使不依赖外部的交换机和存储设备,整套集群系统也能独立运行。最后——也是ARM的强项——平均每服务器的功耗水平仅6W,实测也证实了整机功耗不到300W,分摊到每个ARM服务器的能耗为8W。
让我们从大规模的数据中心走出来,看看消费领域的情况。在我们身边其实早就有了基于ARM的服务器产品,那就是正在逐步被用户接受的个人NAS服务器,其中大部分面向家庭和中小企业的低端NAS服务器都会选用ARM系列的处理器产品。
ARM的优势除了省电,还有廉价的优势,附带的缺点就是同样低下的性能。低端的NAS服务器产品刚好不太注重性能,因此在这个领域ARM才会有一席之地。如果对性能和功能稍微要求高一点点,那就是Intel处理器的天下了。
ARM处理器在NAS中的普及,也是因为NAS产品基本上不需要多少复杂的计算,只是“数据搬运工”的工作,将用户的数据上传保存,或者将服务器端的数据转交给用户。这种计算类型被称为“冷数据处理”,NAS应用、视频点播、静态网站等等文件传递型的应用莫不如此。
如果能够确定服务器的应用需求就是冷数据处理,那么ARM的应用是可行的——实际上不少专业的存储设备里面也会用到ARM处理器,如果性能要求不高,那么一切功能就都由ARM处理,如果性能要求非常高,那么ARM就只负责控制界面的人机交互,而数据的处理则交给更职业化的ASIC专用芯片来进行。大部分网络交换机和路由器也是这种结构,只是,我们通常不认为它们是服务器,它们被定义为专用设备。
ARM如果要进军我们通常所定义的服务器市场,有两种可能的策略:要么让应用适应ARM的专用芯片特点、针对非常狭窄的应用领域,要么让ARM去适应应用变得通用化、计算性能更强大。通常的结果都是比较中庸的,应用会尽量优化变得简单,以适合ARM进行处理,ARM平台的服务器也会不断升级,单个芯片会变得更加复杂,服务器集群的规模也会越来越大。
从前面的分析和当前的市场现状来看,ARM服务器还远未普及,几乎在任何数据中心都能见到功能极端专业的、使用ARM核心的交换机和工业设备,但几乎从没有人见过运行中的ARM服务器。即使是有着巨量服务器需求的Google、Apple等企业,在ARM服务器的应用方面也仅有少数传闻。从用户云进入服务器云,从专用设备变成通用服务器,这种改变非一朝一夕能够完成。
最后,即使刚好有适合ARM处理器的应用,用户也同时希望能降低能耗成本,用户同样也会有ARM之外的选择,那就是intel的Atom处理器。ARM可以变得复杂和通用,同样x86也可以变得简洁和专用化。intel近期发布的一系列Atom处理器和SOC解决方案不仅性能比前代产品大幅提升,而且功耗也降低到可以与ARM方案接近的水平。在这种情况下,ARM服务器的能耗优势已经不存在了,剩下的就是成本和其它考虑——虽然intel的方案可能比较贵,但是应用向ARM迁移同样也存在风险。更何况,新出现在市场上的ARM解决方案都非常专用化,一点都算不上便宜。
ARM的未来
在最近国内举办的某次云计算展会上,HP工作人员介绍了他们的Moonshot微服务器的价钱——45个节点的Moonshot微服务器硬件售价大约25-50万元人民币,根据配置而有所变化。对于常规的企业应用,这个价格完全可以通过x86服务器获得更好的性能,而较高的价格完全可以抵消其节省的电费成本——更何况x86服务器的能耗一直在降低,对于通常的企业电费也从来都不是什么问题。
另外,ARM处理器的服务器模块HP的Moonshot微服务器的一个选项——HP同样也在销售基于Atom处理器的服务器模块。脚踩两只船的Moonshot,这真是个有象征意义的战场啊!
就目前甚至未来几年的情况来看,ARM架构还只适用于特定的服务器领域,尤其是那些服务器用量较大,对成本和功耗非常在意,应用相对简单,不需要密集计算或大内存的大型数据中心,如某些Web 2.0企业。这类企业大多预算充足,而且有较强的技术积累和服务器定制经验,而且由于服务器用量大,比较容易得到ARM公司及其他芯片厂商的支持。
在厂商的立场上,每厂商个都希望在维持生存的同时开拓新的市场。作为x86处理器的最大厂商,占据了90%以上服务器市场份额的intel正在向移动嵌入式领域拓展,同样,占据了90%以上手机市场份额的ARM也一定会眼红服务器市场——对二者而言,这都是未开发的市场,充满着无穷的潜力和诱惑。或许双方短期之内都难以撼动对方在自己领域的霸主地位,但是,进攻也是最好的防守,双方都从对方学到了不少东西,不断改进自己的产品和技术,即使未能成功侵占别人的市场,至少也更好地巩固了自己当前的地盘。
最后,而对普通企业用户而言,他们只会选择市场上成熟的产品和解决方案,ARM服务器不仅不成熟,甚至市场上还很罕见。所以,笔者的看法是,在普通消费和企业领域,x86仍将是主流甚至唯一的选择。ARM要成为企业市场服务器的采购选择,还早得很。