Memblaze PBlaze3L(1.2TB版本)企业级PCIe SSD测试
[导读]企业级PCIe SSD市场呈现出稳定发展的态势,厂商方面也有几个比较主要的玩家。有几家PCIe闪存先行者已经被其他大公司收购,这样初创公司的制造成本得以降低,而生产量也得以保证。

【本文编译自TweakTown对Memblaze PBlaze3L的测试文章】企业级PCIe SSD市场呈现出稳定发展的态势,厂商方面也有几个比较主要的玩家。有几家PCIe闪存先行者已经被其他大公司收购,这样初创公司的制造成本得以降低,而生产量也得以保证。另一方面,不同区域中也会有些本土的厂商进入这个市场,而且他们往往拥有更大的成本优势,其闪存产品也有很强的竞争力,当然当下 PCIe闪存市场的进入壁垒已经很高,这对于初创厂商有些挑战。
Memblaze在数款自主创新的产品的牵引下得到了快速的发展,他们的PCIe 2.0 x8 PBlaze3L和PBlaze3H产品能够提供的性能令人难忘,而且独特的架构可以根据客户需求来做定制化容量的产品。Memblaze 当下有半高半长的PBlaze3L和全高半长的PBlaze3H(这个版本主要优势是高性能)两个版本。两个系列的产品都有25种不同的容量选择,而且 NAND颗粒也有SLC或者MLC两个选项。(本测试主要选用PBlaze3L)

PBlaze3L的随机IOPS可以达到61.5万(读)和13万(写),顺序读和写的带宽分别可以达到2.4GB/s和1.1GB/s。需要指出的是这些性能参数是在容量利用率在80%的状态测得。通过管理程序可以设置容量的利用率,以实现提高性能和产品寿命,并降低性能的不稳定性。此次我们选择了 100%的容量利用模式对PBlaze3L进行测试,在实际应用中我们建议将这一指标调为80%以获得更高的性能。
PCIe SSD很难做到灵活的容量使用比例配置,空闲容量往往成为一个使用不当的单独的存储资源池,这会使得产品成本有所上上。Memblaze允许用户对容量利用率进行设置以实现最大的ROI,并可以根据具体需求为客户定制SSD。
实现多种容量版本的技术被Memblaze称为琴键技术(Pianokey ),这种独一无二的设计使得在一个架构中实现了多种不同的NAND模块,按照客户需求,Memblaze可以做出多种容量的PCIe SSD(这种选项多达25种,每50GB就可以生成一个新的版本,而且客户可以选择MLC或SLC两种颗粒)。琴键技术可以在实现不同的容量的前提下保障性能的稳定性,这是在小容量板卡上一个非常大的优势。
Memblaze两个系列的板卡容量最高分别可以做到2.4TB(PBlaze3L)和4.8TB(PBlaze3H)。PBlaze3L有一颗FPGA控制器,PBlaze3H则是双FPGA解决方案,两个系列的板卡都有DRAM作为缓存以及主机断电保护设计。
Memblaze另一个优势是 device-based,Virident和 Fusion-io的host-based架构都需要主机完成协议转换、耗损均衡以及资源回收和闪存管理等工作,这就很容易造成主机的计算和内存资源的开销过大,功能的增加也是基于软件的。 device-based和host-based都有自己的支持者,Memblaze更喜欢通过 device-based释放主机资源,其占用RAM的资源仅为1MB。
Memblaze还可以一个用专有的功能增强套件用于提升产品性能和寿命。MemWA可以通过资源回收技术以及静态/动态数据循环技术消除写放大的问题。MemSmooth通过超低延时的磨损均衡技术和延时平滑技术,延迟延时降低到14 μs,同时获得极低的延时抖动。MemSecure能够提供端到端的数据路径保护,设备层面的RAID、断电保护以及其他的数据保护功能。MemCare 则可以降低NAND的磨损,提高产品寿命。所有这些功能都是的Memblaze闪存卡能够提供一个超200万MTBF的PCIe闪存产品,PBlaze3L可以享受三年质保。
Memblaze PBlaze3L针对企业级应用环境做了很多设计并有着非常吸引人的功能,让我们接着进一步介绍。

PCIe 2.0x8接口的Memblaze PBlaze3L外形规格为半高半长,SSD背面是DRAM模块。

SSD支架上有三个监控产品状态的指示灯。

最上面的板子下面是数个设计比较独特的NAND单元,这也是实现琴键技术的关键。这个部分还有用于NAND模块散热的垫子,还有两个金属支架用于支撑NAND模块。

我们看到有四个相互独立的PCB,上面装有NAND颗粒,通过线缆和连接器连到主PCB板上,这些NAND子卡是可以按照客户需求定制的。本次用于测试的卡采用了东芝的NAND颗粒,但是Memblaze可以在其产品中对NAND进行改造。

散热片和断电保护电容下面是一颗比较大的芯片是XILINX Kintex-7 XC7K325T FPGA芯片,FPGA周围是DRAM。Memblaze将根据用户需求做固件。

Memblaze提供一个GUI、CLI管理工具,并且支持远程登录。Memblaze MemSphere管理工具可以通过GUI界面实现所有管理功能,而且操作十分简单,功能非常丰富。

基本信息标签列举了最小和最大的可用地址信息,还有其他的一些现有的容量配置信息。一个实时的细粒度的NAND磨损监控的功能。这个工具还显示了SSD的读取和写入的数据量,一些延迟和吞吐量的指标也包含其中。温度监控功能可以显示当下设备是否在一个良好的运行状态。

性能标签则提供了一些简单的带宽和IOPS性能,这个界面包括一些实时的IO响应延迟信息(I/O Delay Behaviors)。

耐久性标签包括更多耐久性信息,包括还可以擦写多少数据以及已经擦写的数据量等。

逻辑数据标签提供一个深度的温度监控数据,包括最大和最小的值。

控制标签允许用户进行包括更新固件、擦除SSD数据、开启/关闭信号监控指示灯等操作。


我们的测试旨在测试该产品长时间内的一个性能表现。很多测试模型会标识测试项的峰值和平均值。这些平均值给了一个基本的性能指标(只是这个指标不能特别精确的描述SSD的性能)。
当产品负载较低时,所有存储方案的性能表现也各有不同,平均值结果也不能很好的描述SSD在实际应用中能够达到的性能(因为产品始终能够及时的响应IO 请求,所以性能指标不会有太多波动),所以控制负载量非常重要,当负载过高时,则会造成大量应用被挂起。而应用负载的高低可以区分该应用是否属于企业级。
测试将提供正在进行的测试数据(时间间隔为1秒)并通过图形的方式展现测试结果。散点表格可以帮助读者理解IO延迟水平(单纯的数据表很难做到这点)。除了延迟,测试结果还会包括IOPS和带宽等。
本测试符合SNIA 的测试标准,测试环境为基于主流应用环境的多线程负载。我们测试了1.2TB Memblaze PBlaze3L(可用空间为80%,高性能模式),并选用了全盘编址的方法。一块参与测试的还有1.6TB的英特尔DC P3700和1.4TB的美光P420m以及2.2TB的HGST FlashMAX II。

我们首先对1.2TB的PBlaze3L做了预处理(时间为15000秒,约为四小时),并获得以秒为单位的性能报告。我们将结果绘制成了表格,如上图。
这个二维的坐标系包含了30000个数据点,IOPS数据刻度在左侧,延迟数据刻度在右侧。红色的点代表了IOPS,灰色的点代表延迟数据。从这张图中,我们还可以大致的看到测试中最大/最小的IOPS值。
值得注意的是IOPS和延迟的两条线几乎是对称的,这样讲IOPS和延迟放到一个表格中可以帮助读者更好的理解两者之间的关系,后文中我们还会说到。预处理的主要作用是使得SSD的性能趋于稳定,以免在之后的测试中出现过大的波动(由于SSD中有缓存,所以开始的测试结果有一个陡坡,这是正常的表现,在缓存被充满之后性能趋于稳定)。

上图展示的4k随机读测试每段有300个数据点(5分钟为一个阶段),采用不同的队列深度,队列深度参数在图表的上方标出。4k随机读是小文件测试中非常重要的一个测试项目,也是对存储解决方案随机小文件处理能力的主要衡量指标。
Memblaze Blaze3L(80%设备利用率)平均IOPS为579,522(队列深度为256),在100%设备利用率状态下,PBlaze3L的性能并没有发生多大的变化,IOPS为578,387。英特尔DC P3700平均IOPS为467,055HGST的FlashMAX II平均IOPS为350,532 IOPS,最后美光P420m平均IOPS为724,958。一个比较关键的信息是队列深度在32~128之间闪存性能比较具有参考意义,因为大部分工作负载适合这个区间,另外低队列深度下的性能总是给人很深的印象。


我们的延迟和IOPS做到了一个表格里面,因为很多应用对延迟是有要求的,所以这个表格也特意显示出了每个延迟下产品IOPS的值。这更利于读者理解。PBlaze3L 在延迟为0.2ms的前提下IOPS性能为559,623,位于几款参与测试的SSD当中第一位,第二位为P3700(IOPS为462,000)。而且我们看到PBlaze3L 的红线一直处于最右的位置,线的倾斜度非常小,此外100%设备利用率下PBlaze3L的性能曲线与80%利用率下的曲线差别非常小,几乎是重合的。

Memblaze PBlaze3L(80%设备利用率,4k随机写,队列深度为256)的IOPS为148,593,而设备利用率为100%时,PBlaze3L平均IOPS为70,358。英特尔DC P3700 平均IOPS性能为147,84,FlashMAX II平均IOPS性能为119,66,最后是P420m 平均IOPS性能为98,304。


从延迟/IOPS的二维表的数据中可以看出,PBlaze3L的4k随机写性能是非常好的。

这里使用的写测试中展示了不同工作负载下的产品的性能,坐标系上方100%意味着纯4k随机写负载,0%意味着纯4k读负载。混合IO在VDI应用场景中较多。可以看到PBlaze3L的数据点都集中在下方,这意味着同样延迟下,PBlaze3L具有较高的IOPS性能。当然,这里说的是在80%设备使用率的前提下(红色的数据点)。

很多服务器负载有很多8k的IO,在本测试中也是使用了这样一个负载环境,许多我们服务器负载也测试了8k混合读/写的性能。
PBlaze3L平均IOPS为285,564(80%设备利用率,队列深度为256,负载为8k随机读),结果比100设备使用率时的288,563略低。英特尔DC P3700的IOPS为275,367,FlashMAX II平均IOPS为207,859 ,美光的P420mIOPS测试结果为387,785 IOPS(这款产品在这项测试中是几个产品中性能最高的)。Memblaze PBlaze3L和P3700排在中间。
P420m在工作负载较高时表现非常高,而PBlaze3L则在延迟/IOPS表格中的前半段表现非常好,这意味着在延迟处于0.2左右时,PBlaze3L表现非常好。
PBlaze3L平均IOPS为62,023(80%设备利用率,队列深度为256,负载为8k随机写),结果比100设备使用率时的32,717高很多。英特尔DC P3700的IOPS为66,082,FlashMAX II平均IOPS为59,279,美光的P420mIOPS测试结果为79,633 IOPS(这款产品在这项测试中是几个产品中性能最高的)。
PBlaze3L在这一轮的测试中表现比较稳定。
PBlaze3L在混合8k随机工作负载中有较大的领先。
总的来说PBlaze3L在8k混合随机读写测试中延迟和性能都表现的比较好。

















文件服务器
文件服务器的工作负荷要测试多种大小的文件,分布着80%的读取和20%的写入分配比。各种各样大小的文件对于存储子系统来说是非常繁重的处理任务。
在80%容量利用率和256队列深度的前提下,PBLaze3L的平均IOPS 为140,420 ,在100%容量利用率下平均IOPS为91,648。英特尔DC P3700为109,585 IOPS,HGST 的FlashMAX II平均IOPS为91,820,P420m平均为70,574。PBlaze3L在80%容量利用率下轻松占据领先位置。
80%容量利用率下,PBlaze3L遥遥领先。

