群蜂王成巍:基于ARM微服务器架构的分布式存储系统

近年来,软件定义存储也成为企业级IT热议的话题之一,其中,基于ARM微服务器架构的分布式存储也备受关注, 那么集中式的服务器架构和基于ARM微服务器架构的存储到底有何差别?就在今年的中国存储与数据峰会软件定义存储论坛上,群蜂信息技术(上海)有限公司CEO王成巍,从存储硬件、系统的角度,分享对于分布式存储技术发展的深入思考。

如今,ARM服务器芯片受到资本的青睐,不断有新玩家加入,2017年1月群蜂成立,其创新性地实现了基于ARM微服务器架构的分布式存储服务器平台,虽是初创公司,但该团队成员大部分都在ARM SoC芯片领域摸爬滚打多年,可以说是积淀深厚的一家存储企业,其主打产品Apoidea Honeycomb ADS2242,一款基于ARM微服务器构架的企业级分布式存储服务器以其低功耗、高密度及高可靠等优势入选百易存储风云榜,并荣获2018年度软件定义存储产品创新金奖

以下为演讲实录:

关于ARM存储,或者基于ARM来做服务器,最近一两个月的消息很多,华芯通发布了新的服务器芯片,Ampere也发布了ARM服务器芯片产品,包括华为年底也会发布新的多核的ARM服务器芯片产品;AWS也宣布推基于ARM服务器芯片架构的云服务器,包括相应的计算服务。AWS他们做的ARM服务器是基于以前他们收购的一家叫Annapurna Labs的芯片公司,这家公司以前主要做ARM服务器芯片,后来被收购以后,为AWS生产一些自己用的服务器芯片。Annapurna Labs这个团队跟我们团队以前都在同一家芯片公司,我们都是比较早期做ARM服务器的团队。我们觉得目前这些公司做的这些ARM多核服务器其实更多是在跟Intel做完全的头对头的竞争,他们其实更看重的市场是计算服务器这个市场。而我们目前做的基于ARM微服务器架构的分布式存储系统更集中在存储这个领域。

看一下究竟什么是基于ARM微服务器架构的分布式存储;其实左边这个大家都已经很熟悉了,是一个典型的Intel架构的存储。右边是我们基于ARM微服务器分布式存储系统,ARM微服务器我们用的是两核/四核的ARM CPU,有内存有Flash,这就是一个准系统;原生出SATA接口,带一个盘、两个盘甚至四个盘,在整个服务器中有多个ARM微服务器准系统,12个或24个等,后面通过以太网的连接把所有的节点都连接起来。因为这个ARM微服务器的系统,不光会跑一些存储软件,另外也把硬盘的SATA接口变成了网络接口,每个ARM微服务器模块有两个以太网接口,整个服务器也有两个交换机模块, ARM微服务器的两个网口,其中一个连接到左边的交换机,另外一个连接到右边的交换机。这就是整个架构。

我们从这个架构来看,我们看这样的集中式的服务器架构和我们基于ARM微服务器架构的存储服务器的差别。第一点,相当于我们用多个小的ARM CPU跟一个或两个集中式的Intel CPU进行竞争;另外一点,集中式架构中,用到的是SAS Expander,而ARM微服务器架构中用到的是Ethernet Switch。其实,现在在数据中心的网络中,服务器与服务器的连接绝大多数都是通过TOR以太网交换机进行连接,所以我们通过内置以太网交换机,内部的以太网络和外部的以太网天然就可以组成了一个大的以太网交换网络。

那么我们为什么会考虑到用ARM微服务器架构来做存储应用呢,主要基于我们观察到的以下四点来考虑的。第一,目前在温数据/冷数据的存储领域里面,我们发现CPU的占用率比较低,带宽是一个瓶颈,也就是说,在这些场景下,CPU大家已经是完全能满足应用了,但是带宽是一个瓶颈。第二,我们看到了随着性能的发展,ARM CPU性能越来越强,因为我们已经看到ARM应用在Server、HPC等领域,所以应用在存储领域应该绰绰有余。第三,ARM CPU相对于x86架构CPU,具有更好的性价比和能耗比。最后一点,我们认为ARM架构做存储应用的软件生态比较完备,ARM以及ARM合作伙伴在存储的开源社区做了很多的贡献,在这些社区里面这些存储软件非常兼容ARM CPU。

两种架构具体是什么样的差别?从Apoidea Honeycomb ADS2242这款产品来看下,Apoidea是群蜂的英文名字,Honeycomb是商标名,ADS2242是具体的产品型号,我们这款2U24的产品,在2U的高度内,可以放24块3.5英寸的硬盘,看上去跟市面上比较常见的2U12的样子差不多,但是我们的每个托盘抽出来是一个刀片,里面会有一个ARM CPU的微服务器模块和两个3.5英寸硬盘的位置,另外整机会有两个以太网交换机模块,每个以太网交换模块可以提供四个万兆,就是四个10G,这两个交换模块可配置成Bonding模式,对外提供总共80Gb/s的上行带宽。当我们所有的模块都跑起来的时候,整机满负荷的功耗是低于120瓦的,120瓦这个值是不含硬盘的功耗在内,这个功耗相对于目前的Intel架构的存储服务器,是很有优势的。

产品总结下来有六大优势:首先是低功耗,低功耗又可以带来高密度,接着就是高可靠,这个后面会详细展开;第四个优势是高带宽,每一个交换模块提供的带宽都是比较高的。第五个优势就是单台设备可以组成集群,因为我们每一台机器就是12个节点,我们单台设备就可以组成一个分布式的存储集群。第六个优势就是自主可控,这款产品完全是我们自主研发的,当然现在这款产品还在使用国外的芯片,目前我们也在做国产化替代的工作。

低功耗方面,ADS2242的整机功耗低于120W(不含硬盘),市面上常见的Intel架构的2U12存储服务器的功耗是300W左右,我们的产品可以节省功耗60%。 如果考虑同等容量的话,两台x86方案的2U12存储服务器的功耗是600W,这样ARM方案能省电80% 。这里我们做了个计算,1PB的数据存储5年能节省电费17.5万元人民币(使用4TB硬盘,电费按0.8元/度)。这个只是纯粹从设备的功耗来计算,如果考虑对机房动力系统的功耗消耗的减少,节省的费用会更多。

再来说高密度,2U24的存储服务器方案是目前市面上2U空间内最高密度的方案。在这里我们针对5000W的机柜来做个计算。在5000W的机柜中,我们可以放置14台ADS2242(考虑使用8T磁盘),也可以放置12台x86架构的2U12存储服务器。这样的话14台ADS2242对应的就是336块磁盘,12台x86架构的2U12存储服务器是144块磁盘。ADS2242的密度是x86架构2U12存储服务器的2.33倍,所以对密度的提升是比较高的。

下面说一下ARM微服务器架构系统的高可靠,通过以下三个方面来进行说明。第一,这种架构下我们CPU模块只带两个硬盘,CPU导致的故障域很小,只会影响这两块硬盘上的数据。第二,其实在我们CPU模块的设计中使用了这种以太网的双上联,每个CPU模块上联到两个交换板,这样的话有一个交换机宕掉了仍然能保证系统的正常运行。另外,我们认为这种架构会有更长的平均无故障时间,因为现在所有的Intel架构的存储服务器都是一块主板,BMC也在上面,CPU的主板也在上面,这样的话一块主板集成的功能越复杂,故障率会更高一些。

关于高带宽,其实刚才也说了每一个ARM微服务器提供两个2.5Gb/s,因为我们目前接的是HDD, HDD本身现在一个盘的读写极限就是1Gb/s多一些,所以2.5Gb/s与2块盘的读写速率是完全是匹配在一起的。我们内部的交换可以提供4个10Gb/s的上联,也是完全没有阻塞的以太网交换架构的设计。

提到刚才说的单台设备可以组成一个集群,我们也叫分布式一体机。对于有些起始容量不高的场景,还希望用到分布式存储集群的场景,在这种情况下,目前一般的做法就是用三台x86存储服务器来做一个集群,存储容量存在一定的浪费。,对于我们这种架构,我们并不需要使用至少三台设备来组成集群,因为本身一台机器就是12个节点。完全可以按需部署相应的节点,可以部署一台机器,部署12个节点,当然你也可以布10个节点、8个节点,对初始容量比较少的情况很有帮助。后续存储容量有增加时,可以增加单独ARM微服务器节点,也可以增加一台机器,完全可以做到横向扩展。

像开发手机一样开发存储系统,我们看看安卓手机的情况,其实你拿到安卓手机以后本身已经装上系统了,你可以在上面增加不同的app来满足不同的一些应用的需求。同样的对于我们这样的一个架构来说,我们是提供一个ARM微服务器,我们同时在上面部署了Yocto Linux操作系统,Yotco Linux是一种定制化的Linux操作系统,在Yotco Linux操作系统上面,我们可以部署Ceph、Swift、GlusterFS等存储软件,然后再把其他的上层软件应用部署在上面,这种软件开发方式,与x86架构的存储服务器相比,实际业务的部署方式/安装方式会有差异。因为我们也有一些客户会问道,你们这样的架构,我以前管理一个服务器,现在要管理12个服务器,我安装的过程会不会很复杂。其实我们可以做到比现有的这种安装部署的方式会更方便。这种情况下我可以把软件版本定型以后可以直接把软件烧录在ARM微服务器的Flash里面,你交付出去的机器都是带软件的,到现场后,你只要开机,并做一些简单的集群设置就可以了。同时我们也提供了软件升级的方法,因为我们装上去以后有一些版本可能不是最新的版本,或者后续版本升级了,通过我们提供的软件升级的方法就可以将最新的软件升级上去,然后再重新启动就可以了。

同时,我们在上面这款ARM微服务器上也支持一些客户做了Ceph、Swift软件的移植,我们也做了一些Ceph性能的测试,就像图中所示,我们看到性能还是基本上是线性增长的。前段时间我们看到网上有测试ARM微服务器的存储服务器和Intel架构存储服务器的性能对比测试,当时写的ARM微服务器架构的测的很差,我们测了一下其实并没有那么差。分析下来,我们认为主要有几个差异,首先我们内部的网络是2.5Gb/s的bonding,并不是通过1Gb/s的网络进行进行互联,其实带宽对这个影响还是很大的;另外,我们对外是四个万兆的接口,一个万兆、两个万兆都可以用。测下来,确实像刚才说的这种存储服务器比较适合带宽要求比较高的业务场景。

这是我们定位的一些应用场景,因为毕竟是一套基于ARM微服务器的存储服务器方案,所以我们定位的还是温数据或者冷数据系统里,像公有云、私有云,边缘计算,媒资系统,基因测序,视频监控等领域,插卡式比较适合一些边缘计算分布计算的要求,在边缘计算场景下,我们可以替换不同的板卡,像分布式计算板卡或者分布式的边缘AI板卡,一台设备可以满足多种应用的需求。