高性能存储革命――华为RamBox产品评测报告

时间:2022-08-05 09:48:34

高性能存储革命――华为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是一款设计思路与性能表现都极其鲜明的产品,完全可以满足特定用户群体的需求。

02

上一篇:如何成为客户导向型企业 下一篇:加速Web浏览