高性能存储革命——华为Rambox产品评测报告





此文发于2009年1月。据悉,此类高性能存储产品尚属某些国家对中国禁售范畴,所以笔者对华为能自主研发Rambox深表钦佩。需要说明的是,由于华为方面不希望公布太多细节,文中公开的测试数据与技术分析只是笔者原稿的一部分。华为目前要做的,是尽快挖掘Rambox的应用领域,打开这个市场。

原文发布于《计算机世界》

近年来,存储技术的发展十分迅速,优秀产品不断涌现。但无论是FC SAN、IP SAN还是NAS,其性能的增长却总没有容量提升或价格下降的幅度那样令人欣慰。在某些对性能要求极高的应用环境中,现有产品仍然无法很好地满足需求,用户不得不为高性能存储子系统做大量投资。市场规律告诉我们,如果需求得不到满足,必将会有一种革命性的产品出现。本次华为技术有限公司送测的Rambox,就是这样一款高性能低成本的存储产品。

 

创新无处不在

华为Rambox上没有任何盘位,它的最大特点就是采用了内存作为存储介质。该产品提供了32个内存插槽,支持DDR2 ECC规格的内存,分由两个控制器进行管理。系统加载驱动程序后可以看到多个驱动器,每个控制器都与一个单独的驱动器相对应;其他的驱动器则代表单个设备或多个设备的集合,工作模式类似于JBOD。与大多数存储产品复杂的安装过程不同,部署Rambox只需要加载内核模块(驱动程序)一个步骤,显得十分简便。事实上,我们让两台设备正常工作只用了5分钟左右的时间。

以目前单条最大容量4GB计算,单台Rambox满配时可以提供128GB存储空间。这个数字相比采用磁盘介质的存储设备来说显然不值一提,但在大多数对存储性能要求较高的应用模型中,却并不算少。例如数据库缓存、数据索引或图像渲染,这些应用对存储设备的IOps与延迟要求极高,对容量与吞吐量通常没有那么敏感,因为这些数据本身就处于不断刷新中,只是暂存在存储设备中而已。

高性能使外部链路成为新的瓶颈,目前常见的光纤、铜缆或SAS接口都难以满足Rambox与主机间的传输需求,该产品直接采用了带宽更高的PCI-E总线连接主机。主机端的适配卡采用了PCI-E 8x接口,可以兼容多数服务器。值得一提的是,除具备一个上联接口外,Rambox还提供了两个下联接口,可以树状级联多台设备。虽然级联只能共享PCI-E总线的带宽,却可以有效提升存储子系统的整体I/O性能,这一点在后面的测试中有比较明显的体现。

Rambox的可靠性是我们重点关心的问题。由于内存采用的是易失性存储技术,掉电后数据会全部丢失,保持不间断供电是重中之重。Rambox使用两个互为冗余的电源进行供电,设备层面做到万无一失。该产品还提供了连接UPS的串口,如果收到供电模式切换的告警,会自动将内存中的数据转存到内置硬盘。内存本身的可靠性到不必特别担心,由于自身特性方面的原因,内存的可靠性远高于磁盘。加之Rambox采用了带有ECC特性的内存,也可以有效防止数据错误产生。此外,针对可能发生的单点故障,还可以借用RAID的概念,在系统层面基于多个控制器或设备构建阵列,最大程度地保证数据的安全性。

性能前所未有

我们依照计算机世界实验室存储产品测试规范,为华为Rambox定制了比较详细的测试方案。用于连接Rambox的服务器采用了目前性能较高的Intel双路至强平台,处理器为两颗主频3GHz的E5450(单颗4核),配有8GB FB-DIMM。操作系统采用了行业用户应用较多的Redhat Enterprise Linux 5,为保证测试结果的有效性,系统在测试时关闭了不必要的服务。测试软件使用业界公认的Iometer(ver.2006-07-27),这也是许多用户进行存储设备选型测试时的首选。

需要说明的是,由于该产品的工作机制与磁盘类存储设备有较大差异,一些传统的测试项目并不能很好地体现出产品特性。为此,我们进行了大量的预测试工作,根据实际情况对测试方案进行了多次修正,力图准确地反映出Rambox的综合特性。例如,Iometer的测试模型无法准确取得文件系统下的性能结果,所以我们将测试对象定位为裸设备。

首先进行的是单台设备的基准性能测试。虽然1个Manager/1个Worker的测试模型负载较低,却已经可以表现出Rambox许多与众不同的性能特点。微秒级的、对数据块大小不敏感的平均延迟,基本处于同一水平的读、写性能,这都是我们测试内存时常见的景象,从未在采用磁盘介质的存储设备中出现过。可以说,Rambox很好地发挥出了内存介质的特性,其自主研发的内存控制器功不可没。

 

 

  经过不断尝试,Rambox在8个Manager/各2个Worker的负载下表现出比较理想的性能,其顺序读写时的IOps超过10万,随机读写时更超过30万。随机读写性能高过顺序读写,这在使用磁盘介质的存储产品中是绝不可能发生的。即便这样,也不能认为目前小数据块随机读写的测试结果就是Rambox的极限性能,因为此时前端服务器的CPU占用率接近100%,意外地成为性能瓶颈。我们首次在存储产品的测试中遇到这种情况,看来强大的前端服务器是用户部署Rambox的先决条件。

  前面提到,系统加载驱动程序后会直接将控制器映射为驱动器,那么理论上用一台Rambox也可以在软件层面建立RAID,从而提升性能或可靠性。我们尝试着基于两个控制器建立了RAID0驱动器,测试了8个Manager/各2个Worker时的性能。此时的顺序读写性能大幅提高,与随机读写同为30万出头,相信换用更高性能的服务器后还会有不小的增幅。

我们还使用相同的配置与测试用例对工作在级联状态下的两台Rambox进行了测试,发现顺序读写性能与单台设备相同,随机读写性能略有提高;而当两台设备运行在由4个控制器组成的RAID0模式时,小数据块顺序与随机读写的IOps都超过了36万。此时前端服务器的CPU占用率已达100%,甚至连处于wait状态的资源都没有。两种工作模式下,较大数据块的吞吐量与单台设备相仿,基本都保持在1500 MBps左右,对PCI-E 8x总线的利用率已经达到非常理想的水平。

  测试是一种非常好的手段,可以令人更加深入地了解产品。但此次IOps测试中前端服务器成为瓶颈,吞吐量测试中PCI-E总线又限制了传输带宽,我们始终都没能找到Rambox自身的性能极限。不过从实际应用角度出发,该产品本身就定位于小数据块存取频繁、对IOps要求极高的环境,目前测得的性能结果是相当理想的,绝非传统的磁盘介质存储设备可比。所以我们认为,华为Rambox是一款设计思路与性能表现都极其鲜明的产品,完全可以满足特定用户群体的需求。

(4个打分, 平均:4.75 / 5)

雁过留声

“高性能存储革命——华为Rambox产品评测报告”有32个回复

  1. IP+Optical 于 2009-04-20 6:54 下午

    是不是前段时间百度提到的用闪存替代硬盘也是类似的技术?

  2. 过客 于 2009-04-20 7:34 下午

    不懂,但是支持华为!

  3. 帅云霓 于 2009-04-20 7:37 下午

    闪存替代硬盘和这个还不一样。这个是用RAM替代硬盘。
    但是我有一点疑问,RAM断电以后会丢失内容的,不知道这个方案如何解决?

  4. 硅谷老人 于 2009-04-20 9:57 下午

    这个 box 在技术上讲是非常简单的,也没有什么新意,就是基于 PCIE 的 Memory Controller 加上内存而已。

    容量没有做上去, 性能指标也不行。 300 K 的 IOPs 对于这种 RAM box 来讲太差了。 参考下面 LSI 的 1M IOPs 的 SAS 6G 设计, 3 张卡, 12 颗 6G 的 SAS drive。 这可是 hard drive 上跑出来的。

    http://www.byteandswitch.com/document.asp?doc_id=174876&f_src=byteandswitch_sitedefault

  5. 访客 于 2009-04-21 12:39 上午

    闪存替代硬盘和这个还不一样。这个是用RAM替代硬盘。
    但是我有一点疑问,RAM断电以后会丢失内容的,不知道这个方案如何解决?
    ——————-
    Rambox使用两个互为冗余的电源进行供电,设备层面做到万无一失。该产品还提供了连接UPS的串口,如果收到供电模式切换的告警,会自动将内存中的数据转存到内置硬盘。内存本身的可靠性到不必特别担心,由于自身特性方面的原因,内存的可靠性远高于磁盘。

  6. 老韩 于 2009-04-21 12:58 上午

    Ram当然得靠UPS了,不过这东西本来也不是用来保存数据的,就是一个特别高速的缓存而已。大型网站、数据库服务器集群、高性能计算、3D渲染,这些应用都能从中受益。并且他们也可以容忍设备暂时性的掉电,缓存中的数据是不断刷新的。

  7. 老韩 于 2009-04-21 1:08 上午

    主要靠UPS了。不过这东西本来就不是用来保存数据的,还是起一个高速缓存的作用。数据本来就处于高速刷新中,就算临时性掉电,也可以在恢复之后快速重建缓存。

  8. sync 于 2009-04-21 1:08 上午

    给帅云霓:
    企业级的环境里都是有UPS的。保险的是双电源接到不同的UPS上,然后UPS的input也是不同的供电线路。

  9. 向老韩学习严谨的做事方法! 于 2009-04-21 2:28 上午

    做评测的做事就是不一样,非常严谨!

    学习

  10. KISS 于 2009-04-21 3:44 上午

    IMHO,这应该是针对web应用的一个产品. 但这完全算不上高性能存储的革命, 只能说用IO总线上的DRAM堆来做一层缓存是个大胆的主意-Rambox的功耗和容量或许是个问题。

    如果要比较的话,跟Disk,SAN/NAS比没有意义,不是一个存储层次的东西。跟Fusion-IO用SSD做的比较会更有意思。或许是Rambox开发时,SSD技术还不成熟,这个我觉得可能是一个过渡性质的产品,或是一个高度专用的产品。

  11. KISS 于 2009-04-21 3:49 上午

    BTW: 弯曲上有人在Huawei Analyst Day吗?

  12. 陈怀临 于 2009-04-21 6:11 上午

    这个东西能叫做高性能存储革命?:–)。小韩一定是在故意搞笑华为吧?

  13. 老韩 于 2009-04-21 6:30 上午

    嘿嘿,我没见过什么高端的存储产品,有点标题党。当时想得是,既然对我们禁运,自己搞出来的,自然就是革命了。

  14. digiwolf 于 2009-04-21 8:52 上午

    提个性能之外的问题:从我的硬件设计经验来看,我觉得内存条插座的可靠性比较差。我们的设备通常有2条内存,但是发货到客户后也偶尔出现内存松动的情况。华为的这套系统有32个内存条,任意一个插槽的松动都可能带来严重故障。单个DDR2内存条插座共240pin,32×240=7680个插座中的小弹簧片组成并联系统,影响整个系统的可靠性。所以我觉得这个方案不是很好。

  15. 老韩 于 2009-04-21 10:37 上午

    这个 box 在技术上讲是非常简单的,也没有什么新意,就是基于 PCIE 的 Memory Controller 加上内存而已。

    容量没有做上去, 性能指标也不行。 300 K 的 IOPs 对于这种 RAM box 来讲太差了。 参考下面 LSI 的 1M IOPs 的 SAS 6G 设计, 3 张卡, 12 颗 6G 的 SAS drive。 这可是 hard drive 上跑出来的。

    http://www.byteandswitch.com/document.asp?doc_id=174876&f_src=byteandswitch_sitedefault
    —————————————
    1 评测中已经写明,iops的瓶颈在前端服务器。我也尝试用单路i7(8 SMTs)、双路Xeon5472(8 cores)和4路AMD上海(16 cores)去替代,但在兼容性方面总有问题。个人感觉问题出在RHEL上,但在没有任何支持的情况下无法解决。

    2 我觉得rambox最有价值的就是Memory Controller,华为能自主研发IP并且将其产品化就是个很大突破(作为媒体评测我们无法去证实这一点)。其实送测产品在配置上有所保留,相信经过不断优化可以实现更高性能。有些技术细节不便透露,但我想100M iops绝不是问题。

    个人认为,华为做这种产品绝不是一时头脑发热,否则也不会在把存储剥离到华赛后还保留了这样一个团队。

    至于LSI的方案,还真不太了解,也学习一下。很希望能够测试优秀的产品,有意向可以联系我。

  16. cosmo 于 2009-04-23 6:17 上午

    评测中写到IOPs的瓶颈在服务器,可以用chelsio的带ToE功能的万兆网卡减轻CPU的负担,ToE可以有效地降低CPU的负担

  17. 某某 于 2009-04-23 7:24 上午

    RAM SSD 应该不属于对国内禁售的产品…至少我知道好几个公司比如韩国大金和美国curtis都在国内销售此类产品,比华为的这个小盒子要强得多…curtis甚至有中文网站 http://www.curtisssd.com.cn

  18. 老韩 于 2009-04-23 7:33 上午

    多谢楼上,回头和他们联系下看看。
    楼上的楼上,这东西好像和TCP/IP没什么关系。

  19. zjluo 于 2009-04-23 6:01 下午

    问一下您测试时iometer所使用的是不是单线程的?

  20. cosmo 于 2009-04-28 1:22 上午

    测试中碰到CPU的瓶颈,是因为CPU需要花费很多的资源来处理TCP的连接,所以CPU会成为处理的瓶颈,使用Chelsio的卡可以将这些处理在网卡接口上完成,两个服务器用Chelsio的卡互联,利用iperf来测试带宽,256K的数据块,给个我测试的的数据做参考,不使用TOE功能,带宽在5-6Gbit/s,CPU负荷100%;适用TOE功能,带宽最高测试达到9.49Gbit/s,CPU负荷在20%左右。使用IOmeter测试,windows 2003作为initiator端,linux作为target端,没有老韩这么详细的数据,只有一个大概的数据,8个硬盘,Areca1680的Raid卡,读速度在800多Mbyte/s,写速度在500多M/s。

  21. 不知道 于 2009-04-28 5:07 上午

    任何事情都不是一步登天的, 要知道华为06年底才开始策划搞存储产品, 这个退出速度已经很惊人了。

    你让一个公司第一款产品在世界上是革命性、超一流的? 恐怕产品还没出来公司就没了。。

  22. 老韩 于 2009-04-28 10:11 上午

    To 19:测试配置都写在表头了
    To 20:恕我驽钝,还是没看出这个设备和ToE有什么联系。这设备与前端服务器间是通过PCI-E连接的,部署模式类似传统的DAS,没有TCP/IP啥事
    此外,21楼已经把我想说的说了。对于新进入一个领域的企业,尤其是国内企业,只要它踏踏实实做事情,我们就要给予足够的支持,这是我工作的一条“潜规则”。

  23. cosmo 于 2009-04-28 5:36 下午

    To 22:我是看到您报告中说服务器那边是瓶颈,所以提出一个解决服务器瓶颈的思路而已,您说没有TCP/IP啥事,我不知道这些设备的应用,难道底层会不用TCP/IP来进行通讯吗?Rambox主机端的适配卡采用了PCI-E 8x接口,不知道Rambox和适配卡是适用什么接口,10GE吗?如果这样,完全可以用chelsio的卡代替他们的主机适配卡来做个测试,chelsio的卡也是PCI-E 8X接口

  24. 老韩 于 2009-05-04 9:03 上午

    To 23:插服务器的Adapter作用就是把主板上PCI-E转成线缆形态,不做任何协议转换。理论上,Rambox对于系统来说就是一个PCI设备。

  25. 好开心 于 2009-07-22 12:43 上午

    个人认为,华为做这种产品绝不是一时头脑发热,否则也不会在把存储剥离到华赛后还保留了这样一个团队。

    请问下老韩,华为在剥离存储之后留下的这个团队是属于哪个部门。属于中研底下的业务软件部门吗?请问是不是在深圳呢

  26. 好开心 于 2009-08-11 6:06 下午

    陈首席您好!

    都过去了半年。不知道现在rambox的项目进行得怎么样了?

  27. 学习测试 于 2010-03-08 11:54 下午

    您好,我想请问一些关于NAS系统性能测试的问题。
    您在做测试的时候,单manager单worker测试结束后写道“经过不断尝试,Rambox在8个Manager/各2个Worker的负载下表现出比较理想的性能”这里是靠逐一增加manager数量来看什么时候到达IOPS峰值吗?这样做之前有没有理论值可以推算一下?我想知道具体的测试方法,比如您的测试时间,分区大小,测试过程,这些在表头没有体现。不知道您在用8个manager测试的时候是分别测试不同的LUN分区,还是测试一个LUN。另外据我的了解,若2个worker的话,读的时候,很可能后一个worker会读到前一个worker刚读过的内容,这样对测试结果会有影响。方便的话,您可以把详细的如何测试一台NAS的测试用例发给我吗?

  28. 黄岩 于 2010-03-09 3:02 上午

    支持memcached不?
    跟普通PC服务器比,那个性价比更高?

  29. 冬瓜头 于 2011-01-02 3:03 上午

    To 27楼:

    这种测试都是需要测裸盘的,在Unix下就是字符设备,在Windows下就是不初始化磁盘时测试。对于Rambox来讲,就是一个大缓存,所以前一个worker读到后一个worker的数据是没有问题的,但是如果是传统存储,而且要测试cache miss的性能,那么此时worker之间在连续地址IO的时候就有牵连了,不可避免,但是在随机地址IO的时候,牵连性可以忽略不计。

  30. 冬瓜头 于 2011-01-02 3:05 上午

    LSI用6G SAS支持了1M的IOPS,那个测试都是cache hit的,仅仅是为了证明LSI这款卡的处理芯片是没有瓶颈的。就像Intel用windows自带的软iscsi initiator加上intel万兆以太网卡也跑出1M的IOPS一样,不过没说CPU利用率,呵呵,估计很高的。一个10G口一般会耗费30%的CPU。

  31. system 于 2011-01-04 6:21 下午

    TILERA新推出的GX系列,单CPU通过4个控制器可以支持16个DDR3 DIMM。如果使用8G的条子,单CPU可以就可以做到128G,接口可以是XAUI或者PCIE. 就不用购买这么昂贵的“高性能存储革命”设备了

  32. 冬瓜头 于 2011-01-04 6:30 下午

    我最近也一直在思考,传统存储应该如何应对现今周边硬件的发展以及云的发展?越来越感觉传统存储真的可以退役了,在云面前,折腾不起来了,在高速存储介质和高速链路面前,传统存储越来越吃力!

发表评论