Fusion-io ioDrive 2Duo是一款整高半长应用加速器,如果与SLC NAND配套使用,它可以为目前需求最高的应用提供1.2TB的低延迟、高耐久存储。虽然该产品是第二代产品,但其产品名称却很容易让人误解,因为Fusion-io一直是存储型内存领域的先行者。 Fusion-io的经验不仅体现在产品开发和配置表上,它在产品管理上也有很强的实力。Fusion-io的ioSphere号称是目前市面上最实用的驱动管理软件。漂亮的产品设计和驱动设计也为其产品增色不少。 企业用户部署这些产品只有一个目的:通过缩短存储系统延迟来减少应用响应时间。SLC版本的ioDrive 2就是专门针对这个问题而开发的,它可以提供47µs的读访问延迟时间和15µs的写访问延迟时间。 相比之下,MLC版本的ioDrive 2的读访问延迟时间为68µs,写访问延迟时间也是15µs。虽然20µs看起来似乎不多,但是对于使用闪存的应用来说,两者的差距还是非常大的。
除了在延迟时间和数据处理能力上的性能改善之外,Fusion-io一直在为产品生产材料上的改进而努力。前一代ioDrive设备有一项名为FlashBack的功能,该功能允许磁盘在出现NAND故障时仍然保持运转,ioDrive 2应用加速器进一步完善了这项功能,升级后的功能被称作Adaptive FlashBack。 Adaptive FlashBack提高了NAND故障容差,即便是在多块NAND闪盘同时出现故障这种非常罕见的情况下,也能确保磁盘在线和数据安全性。在这种情况下,ioDrive 2可以重新映射驱动,不用下线就可完成恢复。
Fusion-io还推出了一款全新的NAND控制器设备和与ioDrive 2系列产品配套的固件。 新产品极大地提高了数据处理能力,改善了系统延迟,进而提高了设备性能,此外新一代设备在NAND兼容性上也有所改善。Fusion-io还升级了它们的VSL软件,升级后的版本为3.2版,而新的NAND控制器也可以提升ioDrive 2的性能。 虽然从NAND上来说,Fusion-io改变了产品的硬件架构,将NAND放到了它自己的固有模块之中,从而与NAND控制器分开,这样就简化了产品设计。最大的好处是Fusion-io可以在进程控制模块布局不发生改变的情况下更快地支持新的NAND或NAND包装技术了。
虽然我们在本文中介绍硬件配置时更多地集中在对设计的深层次分析上,但是对Fusion-io的架构作一个简要的综述还是很有用的。与我们之前评测过的Virident FlashMAX II一样,ioDrive 2的设计利用了FPGA(现场可编程门阵列)技术,这项技术可以将管理NAND的工作移交给主机CPU来完成。 虽然其他的设计比如镁光科技的P320h使用板上控制器来完成大多数此类工作,但是Fusion-io则希望借助于主机系统中功能强大而且经常处于未充分利用状态的CPU来完成这些工作。这样的设计会给存储预留一条更直接的通道,从而减少存储延迟时间。
与FlashMAX II 一样,Duo的设计使用了双控制器,但是两者也不是完全一样,最大的区别在于它使用了6个子插件电路板,那些子插件电路板上只有NAND闪存,而不是象独立的进程控制模块那样同时配备了NAND闪存和控制器。与Virident的解决方案不同的是,配备VSL 3.2.2的Fusion-io解决方案为系统提供了4个容量为300GB的驱动盘,而不是象Virident解决方案那样只提供了一个驱动盘。 用户们可以选择为每一个存储卷设置自己的地址,但是要想只设置一个存储卷,就必须将它们都放在一个软件RAID中。值得一提的是,Fusion-io Duo闪存卡是全高半长的设计,这样它就比通用的半高半长闪存卡更大一些。也就是说,目前市面上的大多数一级1U和2U服务器都可以轻松兼容FHHL闪存卡。
Fusion-io同时在销售MLC版和SLC版的ioDrive 2 Duo。MLC版ioDrive 2 Duo的容量为2.4TB,SLC版ioDrive 2 Duo的容量为1.2TB。 这些闪盘的保修期为5年。
Fusion ioDrive 2 Duo的性能规格
IoDrive 2 Duo(SLC版)的容量为1.2TB
读带宽(1MB)3.0GB/s
写带宽(1MB)2.5GB/s
随机读数据IOPS(512B)700000
随机写数据IOPS(512B)1100000
随机读数据IOPS(4K)580000
随机写数据IOPS(4K)535000
读访问延迟时间47µs
写访问延迟时间15µs
2x纳米NAND闪存 单级单元(SLC)
总线接口PCI-Express 2.0×8电子x8物理
重量:小于11盎司
外形尺寸:全高半长(FHHL)
保修期:5年或最长可用寿命
耐久性:190PBW(每控制器95PBW)
支持的操作系统
微软Windows:64位Windows Server 2012,Windows Server 2008 R2,Windows Server 2008,Windows Server 2003
Linux RHEL 5/6;SLES 10/11;OEL 5/6;CentOS 5/;Debian Squeeze;Fedora 16/17;openSUSE 12;Ubuntu 10/11/12
UNIX Solaris 10/11×64;OpenSolaris 2009.06×64;OSX 10.6/10.7/10.8
Hypervisors VMware ESX 4.0/4.1/ESXi 4.1/5.0/5.1,Windows 2008R2配Hyper-V,Hyper-V Server 2008R2
设计和工艺
Fusion ioDrive 2Duo 1.2TB SLC是一款全高半长(FHHL)x8PCI-Express 2.0闪存卡,主电路板上配有两个控制器和一个PCIe开关。NAND闪存通过两个子插件电路板配备,这样Fusion就在产品生产上获得了较大的灵活性,因为它可以轻松换用新的NAND配置。 光刻技术升级的时候,Fusion-io不用重新设计闪存卡,只要在现场可编程门阵列上换一个新的子插件电路板和闪存固件就行了。我们的SLC版ioDrive 2Duo由两块600GB的ioMemory设备组成,每个ioMemory设备使用4条PCIe线路。 进程控制模块的布局也非常高效,闪存卡右侧配备了一个庞大的被动降温模块来给两个控制器降温。
每个控制器代表一块ioDrive 2,它自己配备了40纳米Xilinx Virtex-6现场可编程门阵列和768GB的SLC NAND闪存池。我们测试的这款ioDrive 2 Duo使用的是美光科技的NAND,但是Fusion-io的产品是兼容所有厂商的NAND产品的。 NAND闪存被分割成最多24个32GB的芯片,在备用格式下的可用容量为600GB。据此计算,备用预备水平为22%,与大多数企业闪存设备的备用预备水平差不多。
Fusion ioMemory与NAND闪存的对接就象处理器与系统内存之间的对接一样,它使用了Fusion-io的NAND控制器(现场可编程门阵列),后者可直接通过PCIe通讯,Fusion-io的驱动器或虚拟存储器层(VSL)软件安装在主系统上,它可以将Fusion-io的闪存卡当做传统的存储块设备来对待。通过Fusion-io的VSL软件,它可以模拟存储块设备来实现兼容性,同时Fusion-io还提供了一款SDK(软件开发工具包),以便第三方软件厂商绕过模拟技术实现与NAND闪存的本地互联。 从消耗的系统资源的角度来看,IoMemory也跟传统的解决方案很不一样。它使用了主机CPU,同时还在系统内存中创建了一个足迹。从产品支持的角度来说,由于Fusion-io使用现场可编程门阵列而非ASIC作为NAND控制器,它们只需部署极低水平的软件升级就能解决漏洞修复和提升性能的问题。 相比之下,标准的固态存储控制器只能通过开发新的控制器来实现根本性的升级,但是这两种设计都能通过固件升级来实现高级调整。
VSL 3.2.2带来的其中一项升级是增加了一项新的控制器功能。以前,每一个IoMemory设备在主系统中都被当作一个单一的设备来对待。 在Fusion最新版的VSL中,控制器被分成了两个设备,以双管道的方式来运行。因此并不是一个LUN对应ioDrive 2而两个LUN对应ioDrive 2Duo,它们分别对应的是2个和4个LUN。 在对新旧两种布局进行测试时,我们发现,尽管我们所有的正式标准测试只在VSL 3.2.2中进行过测试,但新布局极大地提高了小I/O性能。
在将Fusion ioMemory设备与其他的PCIe产品进行对比时,耗电量是另一个经常被关注的话题,因为它是少数几个配备外接电源的设备之一。这同样适用于Duo系列产品,因为它们实际上就是由两个IoMemory设备和1个PCIe卡组合而成。 在这些情况下,满负荷运行这些设备,它们的功率就会达到25瓦以上,而那正是x8PCIe的最小额定功率。Fusion-io考虑从两个方面解决功率的问题,即外接电源线或功率超负荷,那会通过一个x8PCIe插槽将耗电量提高25%。 我们测试的是安装在联想ThinkServer RD 630中的一款ioDrive 2 Duo SLC,我们在电源超负荷状态下执行了所有的标准测试,全程没有使用外接电源。Fusion-io在硬件安装说明书中指出,如果主服务器的额定功率为55瓦,则软件超负荷就能安全地启动。
管理软件
Fusion-io一直是业内的标杆,它的ioSphere ioMemory数据中心管理软件就是其他厂商追逐的目标。正如我们在测试其他的应用加速器时所看到的那样,即便是Windows系统中最基本的图形用户界面也很难看到,很多厂商只提供了有限的CLI支持。 这对于长期管理特定闪存设备来说非常重要。因为保修期和设备使用寿命在很大程度上取决于特定环境下的使用方式。
Fusion的ioSphere为IT管理员解决了不少关键性难题,这一切都是通过一个网络接口来实现的。这个网络接口中包括实时和历史性能、健康状态监视器和保修期预测。ioSphere既可以监视本地安装的IoMemory设备,也可以监视安装在一个巨大的网络中的ioMemory设备,它还可以通过远程访问来配置,这样管理员就能在数据中心外面监视数据了。 这些功能是相当实用的。
毫无例外的是,最有趣的一项功能是实时性能监视。ioSphere允许用户连接到某台具体的IoMemory设备,只要有牵涉到该设备的活动发生,它就能进行监视。 我们在测试中大范围地使用了这项功能。比如上面所显示的在MarkLogic NoSQL Database Benchmark测试过程中。 由于ioSphere会将来自所有连网的ioMemory设备的数据都记录下来,因此它也可以生成报告来显示过去的性能信息,这样你就可以更准确地估计出特定的ioMemory设备在特定生产环境下能够坚持使用多长的时间。
对有兴趣看到先进情报的用户们来说,ioSphere还可以跟踪电源使用情况,闪存卡的温度,读和写的数据总量,它还可以提供在调试产品时的一些重要的细节。这些数据可以通过ioSphere和默认与设备驱动程序一起安装的Fusion-io CLI来访问。 这些先进的功能能够发挥作用的另外一个领域是驱动器的超量准备或减量准备,这关系到驱动器的性能。我们在评测期间测试了ioDrive 2Duo SLC分别在备用模式和高性能模式下的表现。 高性能模式指的是20%的超量准备,对高级用户来说,Fusion-io提供的容量足以满足他们根据实际需求去选择使用超量准备还是减量准备。在减量准备模式下,用户们也可以将ioDrive 2的容量增加到广告所说的容量之上,但是必须以牺牲一定的性能和耐久性为代价。
测试背景和可比较的解决方案
这份评测报告中所列出的所有应用加速器都在我们的第二代企业测试平台上进行过测试,我们的第二代企业测试平台是由基于英特尔Romley的联想ThinkServer RD 630组成的。 这个新平台配置了Windows Server 2008R2 SP1和Linux CentOS 6.3,这样我们就能在驱动器支持的各种环境中测试不同的应用加速器的性能。每一个操作系统都针对最高性能进行了优化,包括将Windows功率分布设为高性能模式,在CentOS 6.3中禁用CPU速度以便将处理器锁定在最高时钟速度状态。 对于综合性标准检查程序来说,我们使用2.0.10版本的FIO与Linux配套,使用2.0.12.2版本的FIO与Windows搭配,在准许的每一种操作系统中使用的测试参数是一样的。
存储评测:联想ThinkServer RD 630的配置:
2x 英特尔Xeon E5-2620(2.0GHz,15MB超高速缓存,6核心)
英特尔C602芯片组
内存16GB(2x8GB)1333MHz DDR3已注册RDIMM
64位Windows Server 2008R2 SP1,标准版Windows Server 2012,64位CentOS 6.3
容量为100GB的美光科技RealSSD P400e Boot SSD
LSI 9211-4iSAS/SATA 6.0Gb/sHBA
LSI 9207-8iSAS/SATA 6.0Gb /sHBA
在为本次评测选择可比较的解决方案时,我们选择了最新版的高性能SLC和MLC应用加速器。这些应用加速器主要是根据每一款产品的性能特征和价格区间来挑选的。我们将ioDrive 2 Duo SLC的备用和高性能标准测试的结果都包含了进来,并将它与美光科技的RealSSD P320h和Virident FlashMAX II在高性能模式下的测试结果进行了对比。
1.2TB Fusion ioDrive 2 Duo SLC
发布时间:2011年下半年
NAND类型:SLC
控制器:2x现场可编程门阵列,带专利固件
设备可见性:4JBOD设备
Fusion-io VSL Windows版本:3.2.2
Fusion-io VSL Linux版本:3.2.2
准备时间:12小时
700GB Micron RealSSD P320h
发布时间:2011年下半年
NAND类型:SLC
控制器:1x专利ASIC
设备可见性:单一设备
美光Windows:8.01.4471.00
美光Linux:2.4.2-1
准备时间:6小时
2.2TB Virident FlashMAX II
发布时间:2012年下半年
NAND类型:MLC
控制器:2x现场可编程门阵列,带专利固件
设备可见性:单一设备或双设备,具体由格式而定
Virident Windows:3.0版本
Virident Linux:3.0版本
准备时间:12小时
企业综合负载分析
我们在测试PCIe存储解决方案的性能时并不是只看传统的最大性能或稳定状态的性能。在测试长期平均性能时,你会忽略掉设备在整个时期内的运行情况背后的细节。 由于闪存的性能会随着时间的推移而发生较大的变化,我们的标准测试分析了包括总处理能力、平均延迟时间、最大延迟时间和跨越每台设备的整个预准备阶段的标准偏差等在内的各项性能。对于高端企业级产品来说,延迟时间通常比处理能力更重要。 因此,我们会尽量多地列出在我们的企业测试实验室中测试的每一款设备的全部性能参数。
我们还加入了性能对比以展示出每一款设备在Windows和Linux操作系统环境中的不同驱动器配置下的性能表现。对于Windows系统,我们在第一次测试时使用的是最新的驱动程序,让每一款设备都在64位Windows Server 2008 R2环境中进行测试。 对于Linux系统,我们使用的是64位CentOS 6.3环境,每一款企业PCIe应用加速器都支持这个环境。我们的这项测试的主要目的是体现出不同操作系统在性能上的差异,因为产品的兼容列表中可能会包括好几款操作系统,但那并不意味着产品在每一种操作系统环境下的性能表现是一样的。
在每一款存储设备的预准备阶段,闪存性能也会发生变化。存储设备的设计和容量各不相同,预准备过程持续的时间在6个小时到12个小时不等,具体取决于每一款存储设备达到稳定状态性能所需的时长。 我们的主要目的是保证每一个驱动器都能在我们开始第一项测试时完全进入稳定状态模式。总的来说,每一款可比较的设备都利用厂商提供的工具进行了安全清除,利用相同的工作负载预设到稳定状态,然后在16线程的高负载状态下进行测试,每条线程的等候队列都有16项工作负载在等候,然后在多线程/队列深度剖面中设置的间隔期中进行测试,以便对比最低使用率和最高使用率条件下的性能。
准备阶段和初级稳定状态测试中监控的属性:
处理能力(读+写IOPS总和)
平均延迟时间(读+写平均延长时间总和)
最大延迟时间(最大读延长时间或最大写延迟时间)
延迟时间标准偏差(读+写平均标准偏差总和)
我们的企业综合工作负载分析包括基于现实任务的4个剖面。定制这些剖面的目的是简化标准测试结果和公开发表的价值比如最大4K读和写速度以及8K 70/30之间的对比。 我们还加入了两种延迟时间混合工作负载,即传统的文件服务器和网络服务器,这两种负载涵盖了各种大小的数据传输需求。
4K
100%读或100%写
100%4K
8K 70/30
70%读,30%写
100%8K
文件服务器
80%读,20%写
10%512b,5%1k,5%2k,60%4k,2%8k,4%16k,4%32k,10%64k
网络服务器
100%读
22%512b,15%1K,8%2k,23%4k,15%8k,2%16k,6%32k,7%64k,1%128k,1%512k
在我们的第一项工作负载中,我们测试的是完全随机的4K写准备情况,附带16T/16Q的工作负载。在这项测试中,Fusion ioDrive 2 Duo SLC的最高性能得分最高,在与Linux驱动器搭配时它的最高性能几乎达到了550000IOPS。 在Windows环境中,最高速度稍微低一些,只有360000到420000IOPS。在接近稳定状态时,ioDrive 2 Duo在HP模式下在Linux和Windows系统中的性能得分分别为230000IOPS和200000IOPS。 在预备容量模式下,它在Linux和Windows系统下的性能大概分别为140000IOPS和115000IOPS。
在16T/16Q的重负载和准备容量模式下,Fusion ioDrive 2 Duo在Linux系统和Windows系统中的平均延迟时间分别为1.85毫秒到2.20毫秒。 在高性能配置下,它在Linux系统和Windows系统中的平均延迟时间分别下降到1.10毫秒和1.25毫秒。
利用我们的4k随机写方案比较ioDrive 2Duo在Windows系统和Linux系统中的最大延迟时间,很容易发现它在Linux系统中在最大响应时间上面表现得更优秀一些。在整个预准备期间,它在Windows系统中在库存容量模式下的最大延迟时间在40-360毫秒之间,在高性能模式下的最大延迟时间在100-250毫秒之间。 这与它在Linux系统中的表现形成了鲜明对比。因为不管是在库存容量模式还是高性能模式,它在Linux系统中的最大响应时间都在20-50毫秒之间。
再来看看延迟时间标准偏差,不管是在库存容量模式还是高性能模式,Fusion ioDrive 2 Duo SLC在Windows系统中的延迟时间一致性都比它在Linux系统中的延迟时间一致性要低一些。在高性能模式下将它与Micron P320h和Virident FlashMAX II进行对比,那些产品在Windows系统和Linux系统中的延迟时间一致性差不多都是一样的。
经过12小时的预准备期,ioDrive 2 Duo SLC在高性能模式和Linux系统中的稳定状态随机4k性能测试的最高性能为231456IOPS。这个测试结果也是所有的可比较产品在相同测试条件下得到的测试结果中最高的,它在Windows系统中的性能与Micron P320h在相同测试条件下的性能差不多。 在库存容量模式下,随机4k写速度在Windows系统和Linux系统中分别下降到114917IOPS和139421IOPS。这与FlashMAX II在高性能模式下得到的测试结果大体相同。 再来看群组4k随机读速度,Micron P320h的得分最高,它在Linux系统中的最高性能达到637000IOPS,而ioDrive 2 Duo SLC在Linux系统和Windows系统中的得分分别在460000-463000IOPS和384000-392000IOPS之间。
对比16T/16Q重负载、100%4k随机写情况下的平均延迟时间,ioDrive 2 Duo SLC在Windows系统下的测试结果在0.550-0.552毫秒之间,在Linux系统下的测试结果在0.649-0.663毫秒之间。在写性能方面,它在Linux系统中的高性能模式下的延迟时间在1.102-1.255毫秒之间,在Linux系统中的库存容量模式下的延迟时间在1.832-2.223毫秒之间。
在对比最大延迟时间时,Fusion ioDrive 2 Duo在群组最高最大响应时间上在Windows系统中表现得更优秀一些,在4k随机写操作条件下的测试结果在373000-1018000IOPS之间。 它在Linux系统中的性能测试结果相对要好一些,最高响应时间在43-51毫秒之间。在最高写延迟时间上面,ioDrive 2 Duo在Windows系统中的测试结果最好,测试所得的最大延迟时间在3.32-3.76毫秒之间。
对比在随机4k方案中的每一个PCIe AA的延迟时间标准偏差,ioDrive 2 Duo SLC在Windows系统中表现出极佳的读延迟时间一致性,但在群组中的延迟时间一致性相对要差一些。在Linux系统中,测试的结果相对要好一些,但也比其他设备在相同测试条件下的结果要差一些。 群组测试结果最好的是Micron RealSSD P320h,它可以在读和写活动中提供平衡延迟时间标准偏差。
随后测试的项目转向了8k 70/30混合工作负载测试,ioDrive 2 Duo SLC的最高性能最高,结果在424000-443000IOPS之间,它在Windows系统中的测试结果相对要高一些。在接近稳定状态时,ioDrive 2 Duo SLC在库存容量模式下的测试结果在140000-148000IOPS之间,在高性能模式下的测试结果在195000-200000IOPS之间。
对比在我们的8k 70/30工作负载下的平均延迟时间,Fusion ioDrive 2 Duo SLC在爆发情况下的延迟时间在0.57-0.59毫秒之间(略优于Windows系统环境下的表现);在库存容量模式下和高性能模式下的测试结果均有改观在库存容量和高性能模式下的测试结果分别为1.70-1.80毫秒和1.28-1.33毫秒。
当ioDrive 2 Duo SLC从脉冲状态转向稳定状态时,它在Windows系统和Linux系统中以及在库存容量模式和高性能模式下的最大延迟时间都在50-250毫秒之间。相比之下,Micron P320h在相同的条件下的最大延迟时间在10-30毫秒之间,Virident FlashMAX II在相同条件下的最大延迟时间在30-50毫秒之间。
虽然ioDrive 2 Duo的最大延迟时间在我们的8k 70/30预准备测试中的结果比较高,但我们注意到它在高性能模式下的延迟时间一致性仅次于Micron P320h。在库存容量模式下,它的表现比Virident FlashMAX II更好。
对比固定16线程、16队列最大工作负载时,我们进行了100%4k写数据测试,我们的混合工作负载测试方案可以随意调整使用各种线程/队列的组合。在这些测试中,我们的工作负载强度从2线程和2队列一直增加到16线程和16队列。 在扩展8k 70/30测试中,Fusion ioDrive 2 Duo SLC在高性能模式下的最高性能上的得分是这些产品之中最高的。将它与Micron P320h进行直接对比,它可以在2线程、4线程、8线程和16线程条件下提供相对更高的低队列深度性能,但是随着队列长度的增加,它又落到了其他产品的后面。 在库存准备模式下,它在高性能模式下的性能几乎与Virident FlashMAX II的性能差不多。
在8k 70/30测试的调整平均延迟时间测试项目中,我们发现Fusion ioDrive 2 Duo SLC的平均延迟时间是所有的产品中最低的,这与它在短队列情况下的强劲性能有一定的关系。随着队列长度的增加,Micron P320h成为领先的产品,而到了16T/16Q的测试里,ioDrive 2 Duo SLC会再次领先。
我们在调整8k 70/30测试中对比最大延迟时间时,我们记录了ioDrive 2 Duo SLC的一些最大的数据,它的最大延迟时间似乎会随着有效队列长度的增加而增加。在库存容量模式和Windows系统中,这一点表现得最为明显。 在高性能模式下,不管是Linux系统还是Windows系统,它在有效负载小于或等于QD64的情况下的最大延迟时间都保持在70毫秒以内,而当有效负载增加到QD128和QD256时,最大延迟时间会分别增加到160毫秒和220毫秒。
在我们的调整8k 70/30测试中,Micron P320h在任何工作负载下的延迟时间最稳定,Virident FlashMAX II排在第二位,ioDrive 2 Duo SLC在高性能模式下的延迟时间一致性紧随在它们的后面。
文件服务器工作负载代表着每一台设备上传输的数据量都会更大,因此这款驱动器需要处理的是从512b到64k的数据,而不是静态4k或8k工作负载。在这样的工作负载下,由于Fusion ioDrive 2 Duo SLC必须开始处理更大数量的数据,它在某些方面会比其他设备表现得更好,而且在高性能模式下的性能是最强的。 在爆发时,ioDrive 2 Duo SLC的处理能力几乎达到了Micron P320h和Virident FlashMAX II的两倍,检测到的结果为305000IOPS。在高性能模式下接近稳定状态时,它在Windows系统和Linux系统中的检测结果都在136000IOPS附近,而P320h的检测结果为125000IOPS。 在库存容量模式下,它的处理能力在110000IOPS左右,而Virident FlashMAX II在高性能模式下的处理能力在70000IOPS左右。
借助于其强大的爆发性能,ioDrive 2 Duo SLC在预准备阶段刚开始的时候的平均延迟时间大约为0.83毫秒,之后再慢慢变好,在高性能模式下会稳定在1.87毫秒,在库存容量模式下会稳定在2.25毫秒。
当ioDrive 2 Duo SLC从爆发状态转为可持续和稳定状态时,最大延迟时间会象它在我们的8k 70/30测试中表现得那样一开始很高,但没有8k 70/30测试中那么高。通程检测下来,我们得到ioDrive 2 Duo在各种模式下的最大延迟时间在20毫秒到200毫秒之间,其中在Linux系统和高性能模式下的表现最好。 我们注意到,ioDrive 2 Duo在Windows系统和高性能模式下的最大延迟时间超过了1000毫秒。相反,Micron P320h不管是在Windows系统还是在Linux系统中,它的最大延迟时间一直保持在20毫秒以内。
虽然我们注意到ioDrive 2 Duo在我们之前的测试中的最大延迟时间比另外两款产品都要长,但在延迟时间标准偏差上,它的表现介于Micron P320h和Virident FlashMAX II之间。总的来说,不管是在库存容量模式还是高性能模式下,这些设备在Linux系统中运行时的延迟时间一致性要好一些,其中在高性能模式下它们的延迟时间相对更稳定。
文件服务器准备阶段完成了常规16T/16Q负载之后,我们进行了最主要的测试,即在2T/2Q和16T/16Q之间的各个负载水平上测试它们的性能。在我们的主要文件服务器工作负载中,ioDrive 2 Duo SLC的最大性能最高,在16T/16Q负载下的性能在132000-135000IOPS之间,而P320h在相同负载条件下的性能在125500IOPS左右。 在队列长度较短的情况下,ioDrive 2 Duo也表现出了它相对于Micron P320h的优势,在2、4、8线程工作负载条件下,它在高性能模式下的表现略微胜过了P320h。随着队列长度增加,Micron P320h在各个工作负载级上都处于领先。
对比每一款最顶级PCIe应用加速器在我们的文件服务器工作负载下的平均延迟时间时,ioDrive 2 Duo SLC在群组中的延迟时间最短,在2T/2Q负载、高性能模式条件下,不管是Linux系统还是Windows系统中,检测到的结果都是0.14毫秒。随着工作负载增加,Micron P320h一路保持领先,直到在16T/16Q的最大负载条件下,ioDrive 2 Duo SLC才重新在平均延迟时间上胜过了它。
在文件服务器测试中对比最大响应时间时,Fusion ioDrive 2 Duo SLC在最大延迟时间相对更高一些,在这个测试条件下,工作负载的有效队列长度一开始就处于或超过了128个。ioDrive 2 Duo的最大延迟时间在11-100毫秒之间,其中在高性能模式下的表现更优一些。
随后我们在文件服务器测试中将目光从最大响应时间转向延迟时间一致性,ioDrive 2 Duo SLC在这个测试项目上落在了Micron P320h的后面,仅仅在库存容量模式下在延迟时间标准偏差上面略微胜过了Virident FlashMAX II。
在最后的综合负载测试中,包括了一项网络服务器测试项目,也就是100%读数据测试,我们在进行主要测试前对每台设备进行了100%写入操作以实现预准备。在这个受压预准备测试中,ioDrive 2 Duo SLC给我们留下了深刻的印象,不管是在库存容量模式还是高性能模式下,它的表现都远远超过了Micron P320h和Virident FlashMAX II。 在这项测试中,在高性能模式下,ioDrive 2 Duo SLC的最高速度超过了145000IOPS,而Micron P320h的最高速度只有67000IOPS,Virident FlashMAX II的最高速度只有32000IOPS。
在我们的网络服务器预准备阶段测试中,在16T/16Q的重度100%写工作负载情况下,ioDrive 2在高性能模式下的平均响应时间保持在3.5-3.8毫秒左右,在库存容量模式下的平均响应时间保持在6.4-7.2毫秒之间。
在我们的网络服务器预准备阶段测试中,在最大延迟时间项目的对比上,ioDrive 2 Duo SLC在Linux系统中不管是库存容量模式还是高性能模式,它的结果都在25-70毫秒之间,在Windows系统中,它的最大延迟时间在25-380毫秒之间,其中有两个数值超过了1000毫秒。
在我们的压力网络服务器预准备测试中,对比延迟时间一致性这一项目,Micron P320h处于领先的位置,ioDrive 2 Duo SLC排在第二位。在高性能模式下,它在Windows系统和Linux系统中的表现都比库存容量模式下的表现更强一些。
下面转到100%读数据的网络服务器测试的最主要的项目,ioDrive 2 Duo SLC在2T/2Q负载下的性能在23000-25500IOPS之间,在16T/16Q负载下的性能在141000-147000IOPS之间。与Micron P320h相比,ioDrive 2 Duo不管在短队列还是长队列情况下都无法在性能上与它相比,在有效队列长度低于QD32时,它还比不上Virident FlashMAX II,但是超过那个队列长度后,它的性能就超过了Virident FlashMAX II。
在2T/2Q负载下,Fusion ioDrive 2 Duo SLC的平均延迟时间在0.153-0.163毫秒之间,在16T/16Q负载下,它的平均延迟时间上升到1.737-1.803毫秒之间。在整个测试中,Micron P320h的平均延迟时间都是3款产品中最低的,而Virident FlashMAX II只有在队列长度低于QD32的时候才能略胜ioDrive 2 Duo SLC,队列长度超过QD32,它就只能垫底了。
在我们的100%读数据网络服务器测试中,我们注意到虽然ioDrive 2 Duo SLC在有效队列长度不超过256时的最大延迟时间大多数在20毫秒以内,但是少数一些最高的数值却达到了130毫秒。在16T/16Q的最大负载测试条件下,ioDrive 2 Duo SLC的最大延迟时间在164-320毫秒之间,其中在Windows系统中和库存容量模式下测试所得的结果最高。
在100%读数据网络服务器测试中对比这3款设备的延迟时间标准偏差时,Micron P320h仍然处于遥遥领先的地位,ioDrive 2 Duo SLC紧随其后,只有在有效队列长度比较短的时候才跟Virident FlashMAX II相当。
结论
Fusion-io已经通过ioDrive 2 Duo SLC应用加速器展示出它拥有的开发能力不只是增量升级那么简单。从内部工艺比如Adaptive FlashBack NAND故障保护功能到提高整体设计比如将NAND转移到子插件电路板,Fusion-io通过硬件上的一些调整改善了ioDrive 2的性能,让它比前一代产品更加优秀。 Fusion-io的开发团队一直在积极努力去降低驱动器的延迟时间,他们的工作已经取得了一定的成效。我们注意到,在4k100%和8k 70/30测试中,ioDrive 2 SLC在最大负载下的延迟时间和处理能力都是这3款设备中表现最佳的。它在队列相对较短时的表现也很突出,在8k 70/30测试的QD2负载条件下,在2、4、8线程工作负载时的表现远远超过了Micron P320h和FlashMAX II。 这就提供了另一个最低平均延迟时间上的优势,因为它不用占用太多I/O资源就能大幅提高性能。在管理上,ioDrive 2配备了ioSphere,后者是目前功能最全面的驱动器管理软件。 将它跟市场上的任何一款捆绑软件的应用加速器相比,它都能在功能和接口设计上超过对手。
我们已经看到的大多数应用加速器产品一般只能在某一种操作系统中表现得非常好,而在其他的操作系统中的表现就会比较差。当然,这也是为什么我们要在Windows系统和Linux系统中分别测试这项驱动器的原因,那样我们才能弄清楚一款驱动器的优势和弱点。 正如我们评测过的Fusion-io其他的驱动器产品一样,ioDrive 2 Duo在Linux系统中的表现非常棒,但在Windows系统中的表现就不太稳定了。从我们给出的图标中可以更加清楚地看到,它在Windows系统中的总体性能并不比它在Linux系统中的总体性能差多少,但是肯定还有改进的空间。 在16T/16Q最大负载条件下,我们注意到ioDrive 2 Duo的最大延迟时间是最长的。但在对比延迟时间一致性的时候,它的表现并不是最差的。 虽然有些测试数据看起来不应该发生在Fusion-io的设备上,但是它们的设计灵活,以后应该能够通过产品升级解决延迟时间上的那些问题。另一个值得一提的是,Fusion-io在兼容性上面支持的操作系统很多,这样它就能够轻松地应用到各种应用方案中。
Fusion-io的插卡式设计通常会遭到竞争对手的攻击,因为它利用主机CPU和RAM来完成大多数NAND管理工作。但是正如我们所看到的,这其实是一项高效率的设计,Virident也采用了这种设计,这种设计借助于更加强大的CPU极大地提高了产品的性能和缩短了延迟时间。 Micron的P320h则采用了另一种解决方案,即使用性能优异的板载控制器,但是它们的设备在700GB的SLC存储容量上的优异表现必须以存储厂商做出妥协为代价才能获得。现在业界又对Fusion-io提出了一个新的批评意见,这个意见看起来有些有趣,与产品的外观有关系。 IoDrive 2 Duo使用的是FHHL设计,而其他厂商的大多数产品使用的是HHHL设计,从与服务器配套的角度来说,后者要更加普遍一些。我们实验室使用的所有服务器都支持FHHL和HHHL设计,但是值得一提的是,Fusion-io的设计在这一点上要更先进一些。 从设计的角度来说,使用更多的空间来容纳模块NAND似乎要更好一些。这可以从产品生命周期的角度来长期控制设计成本,但是从竞争的角度很快就能看出它在特殊的使用方案中是会受限的。
优点
在100%4k,8k 70/30和文件服务器工作负载测试中,它的最大性能是3款产品中最高的。
IoSphere软件套装软件可以提供最好的功能
在8k 70/30和文件服务器工作负载测试中,在队列长度相对较短时它的处理能力是最高的,延迟时间是最短的。
已经得到验证的体系结构配备着很多功能比如Adaptive Flashback,这有助于提高产品的可靠性。
弱点
不管是在Windows系统还是Linux系统中,它在最大延迟时间上都还存在着一些问题。
在最低和最高有效队列长度之间,它的表现都不如Micron P320h。
结论
Fusion-io ioDrive 2 Duo SLC应用加速器提供了1.2TB的最快有效存储容量,与前一代产品相比在设计和功能上都有所升级。其中一项升级是Adaptive FlashBack,它可以保存数据,即便在多个NAND出现故障时也能保证驱动器的运转。 加上业内最好的管理软件和不用设计新的控制器就能持续改进产品的能力,ioDrive 2 Duo SLC肯定能在关键应用领域找到自己的市场空间。