SPC-1:闪存 vs.磁盘新旧势力的战场

在不久前的《2011存储Benchmark盘点,意义何在?》一文中,我们总结并分析了2011年公布的用于评估网络文件系统IOPS性能的SPECsfs2008测试结果,并在结尾处写下了这样的观点:

“对于NAS存储设备而言,相对于块存储阵列增加了维护文件系统的开销,因此主要针对的是非结构化数据用途。通常很少有人将Oracle数据库等典型的OLTP交易型应用放在NAS上… 总之,恐怕有相当部分的企业级NAS(甚至集群NAS)用户不在乎IOPS…”

然而,在衡量SAN、DAS这些块存储设备时,除了高性能计算、视频采集/编辑等少部分应用比较在意带宽(MB/s)之外,绝大多数的企业数据中心环境里更看中的是随机访问IOPS性能。比如Oracle、DB2、SQL Server这些传统关系型数据库,Exchange Server、Lotus邮件服务器存储等。

在机械硬盘时代,存储的底层IOPS性能主要由HDD的平均访问时间(平均寻道+平均等待时间)来决定,不同转速(7,200/10,000/15,000rpm)硬盘的平均访问时间基本上保持在一定的范围内。这就导致为了提高企业级磁盘阵列的IOPS,主要依靠增加RAID/存储池中的HDD数量,通过将应用程序的数据请求转换为并发访问来提高性能,无论它们是否需要相应的容量。时至今日,看一款外部存储系统定位高低,支持的驱动器数量仍然是重要因素。还有些用户通过短击(short-stroking)——即限制访问硬盘靠近最外圈的磁道,减少寻道时间来增加IOPS,但如此则可能进一步造成容量的浪费。

面对上述问题,以闪存为存储介质的SSD(固态驱动器)可以说带来了一场革命。由于没有了HDD上读写磁头那样的活动机械部件,单个SSD就能够提供几千乃至数万的IOPS,轻易可达传统硬盘的10~100倍以上。而高写入耐久度的SLC、eMLC(企业级MLC)闪存的主要市场就是企业级存储。

在闪存驱动器普及的过程中,尽管越来越多的存储系统开始支持SSD,不过相当部分采用传统设计的磁盘阵列无法充分发挥出固态存储高IOPS性能和低延时特点。于是出现了两个新兴市场:安装在服务器中的PCIe闪存卡和全闪存阵列,前者的代表产品如Fusion-io,后者包括TMS(Texas Memory Systems)、Violin Memory,还有众多初创厂商想在其中分得一杯羹。当然,现在它们可能还面临着共享访问、高可用、可扩展性等方面的问题,另外闪存的单位容量价格还远高于硬盘,一定程度上限制了其发展。

面对SSD带来的威胁,传统企业存储厂商的产品也在积极地通过固态存储来提高效率。除了以EMC FAST、戴尔Compellent流动数据架构为代表的自动分层存储技术之外,各种各样以内存、闪存作为高速缓存的性能优化方式也层出不穷。比如NetApp阵列中将PCIe闪存卡用于读缓存的Flash Cache、Oracle Sun ZFS存储设备支持的SSD读/写缓存,还有EMC很快要推出的Project Lightning服务器高速缓存、IBM XIV Gen3中即将加入的分布式SSD缓存支持等。未来鹿死谁手,我们还很难说…

SPC测试结果还有多少参考意义?

在一些存储业内同行对基准测试结果嗤之以鼻的现状下,笔者专门拿出SPC-1的数据进行分析,是否有点“逆潮流而动”的感觉?

一方面,我们承认一款上千块硬盘的高端存储系统SPC-1 IOPS测试成绩,有可能和单个机箱的全闪存阵列相差无几;另一方面,我们也赞同单纯通过增加驱动器数量,甚至专门针对SPC-1进行优化来提高测试结 果,不如结合具体用户的应用特点来选择/评估存储设备。此外,除了可以完全自定义读写负载的存储测试软件Iometer,还有一些针对某款应用程序的 Benchmark,比如:Oracle推出的Orion存储测量工具、对存储性能敏感的Oracle Swingbench负载生成器、微软ESRP(Exchange Solution Reviewed Program)和JetStress Exchange存储测试等;也可以模拟用户生产环境的数据集访问特点,比如VDI(虚拟桌面基础架构)中的启动风暴来检验一款产品的实际性能。

不过,就像每次新一代服务器产品发布时,如同雪片般飞来的SPEC CPU2006、Linpack、TPC-E等基准测试新纪录那样(尽管x86平台已经高度标准化),企业存储领域还是需要一个(相对)被业内公认、公布 的参测产品成绩较多,有一定普遍意义的综合性基准测试,便于横向对比。前文中讨论过的SPECsfs2008只适合高性能(集群)NAS的竞赛,在这里显 然还是非SPC-1莫数。

SPC-1:闪存 vs.磁盘新旧势力的战场

SPC(storage performance council,存储性能理事会):定义、管理和推动行业标准的、供应商中立的benchmark来描述存储产品的性能

在这里,笔者先引用一段SNIA(存储网络工业协会)China教育委员会主席王纪奎先生主编的《成就存储专家之路–存储从入门到精通》一书中对SPC测试的介绍:

SPC的SPC-1和SPC-2

存储性能理事会(storage performance council,SPC)是一家非营利组织,主要使命是定义存储系统基准测试、实现其标准化并进行推广,为计算机行业及其客户提供客观、可验证的性能数 据。SPC成员对所有公司、学术机构和个人开放。根据存储行业的需要和行业所关心的问题,SPC在2001年创建了第一个行业标准性能基准测试,目标是推 动存储性能的提高。目前IBM,HP,Sun,HDS,Dell等存储业内的巨头都是SPC的重要会员,并且都视自身产品获得更高的SPC标准评分为荣 誉。由于某种原因,存储业内的另一个巨头EMC一直未能参加SPC,这不免让我们有些遗憾。

SPC最为著名的标准是SPC-1和SPC-2。几乎每个月都会有厂商将自己产品的SPC-1和SPC-2的测试结果公布,可以说这两个标准是目前存储业内公认的最为活跃的测试标准。

SPC-1基准测试体现了存储供应商衡量存储系统处理复杂请求和大量数据的基本性能,其主要衡量存储系统在随机I/O负荷下的吞吐量(IOPS)。而SPC-2则主要衡量在各种高负荷连续读写应用场合下存储系统的带宽(MB/s)。

SPC-1设计一个专门为测试存储系统在典型业务应用场合下的负载模型,这个负载模型连续不断地对业务系统并发的做查询和更新的工作,因此其主要由随机 I/O组成。这些随机I/O的操作涉及数据库型的OLTP应用以及E-mail系统应用,能够很好地衡量存储系统的吞吐量(IOPS)指标。

SPC-2与SPC-1测量的模式完全不同,它由3个不同负荷模型构成,主要衡量存储系统在连续大规模移动数据时的性能。这3种负荷模型包括:

(1) 大文件处理模型。该模型模拟同时读写多个大容量模型的应用场景,这些场景一般常用在科学计算和大规模金融计算领域中。

(2) 大数据量的数据库查询模型。该模型模拟数据之间的大量连接(join)和全表扫描应用场景,这些场景一般常用在数据挖掘和常务智能领域。

(3) VOD模型。该模型主要模拟非线性编辑应用场景,会同时读取多个大的影音文件并写入存储系统中。

可以看出SPC-2涵盖了目前大量连续I/O的所有典型测试场景,因此能够很好地测量出存储系统的带宽。

SPC-1和SPC-2在SPC组织的官方网站http://www.storageperformance.org/上,可以找到有关SPC-1和 SPC-2的最新数据。标准的测试结果能够很好地帮助数据中心用户明确各种存储在不同应用场合下的性能表现,用户可以根据这些标准得分判别存储系统是否能满足自己业务系统的性能需求。

上述的最后一句话,相信现在已经有许多人不再认同,其中原因我们在上文已经有所叙述。那么SPC-1在今天就完全没有意义了吗?撰写本文的目的又是什么呢?

SPC-1:闪存 vs.磁盘新旧势力的战场

上图为SPC网站上公布的SPC-1测试结果对应的存储厂商,其中包括我们熟悉的戴尔、富士通、惠普、日立数据系统(HDS)、IBM、 NetApp、甲骨文(Sun)、SGI;现在已经被HP收购的3PAR、被Oracle收购的Pillar、被NetApp收购的LSI Engenio存储部门(以OEM业务为主);推出SANmelody存储虚拟化软件的厂商DataCore、为众多国内渠道存储品牌OEM供货的台湾厂 商Infortrend;还有固态存储的先行者Texas Memory Systems(TMS)、主张精简控制器架构的Xiotech、以及唯一参与SPC组织的国内存储厂商华为赛门铁克(现已被华为收购全部股份)。

SPC-1成绩汇总分析、引发的疑问

回顾2011年,仍然有众多存储厂商公布了他们新产品的SPC-1测试成绩。从入门级、中端一直到高端存储系统,乃至全闪存阵列;包括传统双控制器架构,也有比较热门的Scale-out横向扩展设计。另外,SPC-1结果中除了IOPS性能之外,还有$/SPC-1 IOPS(性价比)以及参测产品的详细配置以及分项报价。由此我们还能计算出更多数字,比如平均每驱动器提供的IOPS、每GB容量的价格等。

当然,不同厂商、不同档次的存储设备在实际销售时的list折扣也不相同,国内外执行的价格政策通常也会有所差异。因此本文中所引用和计算出的价格、性价比等数字,不代表用户实际成交的水平,仅供对比参考。

SPC-1:闪存 vs.磁盘新旧势力的战场

SPC-1结果概要样本:测试存储型号为NetApp FAS3270A,报告总结中包括IOPS、性价比、总ASU容量、数据保护级别,以及总TSC价格(含3年维护)。

SPC-1:闪存 vs.磁盘新旧势力的战场

2011年公布的SPC-1测试成绩汇总(按照时间先后从上到下排序),其中Huawei Symantec的两款中端产品Oceanspace S5600T和S6800T只列出前者作为代表。

在分析以上数字之前,我们有必要对表格中的存储系统简单做一个分类。入门级:IBM System Storage DS3524 Express(有/无Turbo选项)、SGI InfiniteStorage 5000-SP 和 Fujitsu ETERNUS DX80 S2;中端:NetApp FAS3270A、IBM Storwize V7000、Pillar Axiom 600 Series 3、华为赛门铁克Oceanspace S5600T,以及Oracle Sun ZFS Storage 7420c Appliance;高端:HP P10000 3PAR V800 Storage System 和 HDS Virtual Storage Platform (VSP);全闪存:Texas Memory Systems RamSan-630、华为赛门铁克Oceanspace Dorado2100。

对于分类的依据,相信稍微资深一点的同行都清楚,笔者也会在后面做进一步的解释。

首先看IOPS,这也是各厂商多年来一直比拼的。3PAR在被惠普收购不到一年时推出的HP P10000 3PAR V800目前保持SPC-1测试的冠军(450,212 IOPS),它配置了1,920个15,000转FC驱动器;在其之前创造纪录的是全闪存的TMS RamSan-630(400,503 IOPS),只使用了20个大容量闪存模块(在这里也统称为SSD),单位IOPS所占用的空间和消耗的电能确实不可同日而语。日立数据系统随后公布的VSP测试成绩没有3PAR V800高(269,506 IOPS),它的驱动器数量也不是满配(1,152个2.5英寸SAS硬盘),不过这两款产品平均每驱动器提供的IOPS却基本一致(233~234)。另外作为传统高端存储系统的VSP在性价比上也是相对最差的,达到了$8.18/SPC-1 IOPS,估计这个数字在满配的情况下可能会有所下降。

问题1:如今将惠普3PAR归类为高端SAN阵列估计不会再有人表示异议,尽管它还是不具备大型机(IBM z/OS)环境的支持,P10000 3PAR V800和HDS VSP的IOPS效率如此接近,它们在延时等其它方面的性能指标会有哪些差异?

中端存储系统里面,Oracle Sun ZFS Storage 7420c在上表中的IOPS是最高的(137,066.20,华赛S6800T其实超过了它,只是我们此次没有列出),其每驱动器IOPS也高达489.52。不过除了闪存产品之外,在这一项上最为领先的却是NetApp FAS3270A(566.96),而该产品、IBM Storwize V7000、Pillar Axiom 600 Series 3的性价比却稍现差了些,每IOPS成本都超过了7美金。这一级别产品性价比最高的还是华为赛门铁克Oceanspace S5600T($2.73/SPC-1 IOPS),紧随其后的是Sun ZFS 7420c($2.99/SPC-1 IOPS),它们的表现甚至超过了大部分入门级存储系统。Storwize V7000和Pillar Axiom 600的每驱动器IOPS都在220~230范围内,相比之下华赛S5600T的406.63也超过它们不少。

问题2:同样是中端SAN阵列,NetApp FAS3270A是如何在驱动器数量较少的情况下实现较高的效率?IBM V7000和Pillar Axiom 600在这里看似亮点不多,它们“贵”在哪里?也就是说哪些方面为用户提供了更多的附加价值?华赛S5600T和Sun ZFS 7420c是怎样在价格极具竞争力的情况下,性能效率又在传统磁盘阵列中领先?

本次对比的入门级存储系统有些特点,因为除了富士通ETERNUS DX80 S2之外的三款都OEM自NetApp E2600(即原LSI Engenio 2600),这个从IBM System Storage DS3524 Express Turbo和SGI InfiniteStorage 5000-SP相差无几的IOPS(24,500左右)、都是96个10,000转SAS驱动器上就可以看出(每驱动器IOPS自然也十分接近)。当然二者使用的硬盘容量不同,因此SGI 5000-SP显得性价比略高?

这里有必要专门提一下来自NetApp E2600原型系统的High Performance Tier,戴尔PowerVault MD3200/3600系列产品和SGI称其为高性能层级,在IBM DS3500上则叫做Turbo Performance。它是一个可以在控制器Firmware层级激活的选项,需要单独购买。根据笔者的经验,High Performance Tier应该是允许将不同LUN选择分配给A/B控制器(注意:不是同一个LUN在2个控制器间自动负载均衡),以实现Active/Active(双活动)配置最大发挥性能。而默认情况下只能分配给第一个控制器,在它出现故障时才能由另一个接管上面的LUN。

那么,IBM System Storage DS3524 Express(不带Turbo)就是没有激活Turbo Performance进行的测试,并且驱动器数量只有一半——48个10,000转SAS驱动器。其实根据这一点还可以从侧面看出,该产品家族(包括DS3500、MD3200/3600和SGI 5000-SP)单个控制器的IOPS处理能力在 48个高转速SAS硬盘的情况下还不会成为瓶颈;对于曾经的满配——96个驱动器(目前增加到支持192个),加上High Performance Tier才能比较充分地发挥其性能。由于48驱动器DS3524的SPC-1 IOPS(14,797.26)比它“两位师兄”的一半还要高一些,因此其性价比和每驱动器IOPS在三者中相对最好。

再来看看Fujitsu ETERNUS DX80 S2。该产品使用117个10,000转2.5英寸SAS驱动器取得了34,995.02 IOPS的成绩,平均每驱动器贡献299.10。另外,它的$2.25/SPC-1 IOPS性价比在所有参与对比的硬盘介质存储系统中排名第一。看来,我们以前有些忽视了富士通的实力。

问题3:对于NetApp E2600及其OEM产品的控制器设计,笔者已经相当熟悉,使用LSI SAS2116 RoC(RAID on Chip)为核心的PowerPC架构在入门级存储系统中有一定的代表性,能够比较好地平衡性能、成本和设计复杂度。那么富士通DX80 S2是通过什么样的方法,来实现满配的情况下仍然保持良好性能效率,同时还兼具成本优势的呢?

还有一款全闪存阵列华为赛门铁克Oceanspace Dorado2100,使用24个100GB SSD驱动器达到了100,051.99 SPC-1 IOPS(中端存储系统的水平),应该是创造了迄今为止最优的$0.90/SPC-1 IOPS。Texas Memory Systems RamSan-630的$1.05/SPC-1 IOPS也相差不远,性价比都超出富士通DX80 S2一倍以上,固态存储在这方面的优势明显。另外RamSan-630每驱动器IOPS高达20,025,Dorado2100也有4168.8,远超任何的传统磁盘阵列。

最后,我们还列出了“数据保护”一栏,绝大多数产品都采用了Mirror(镜像)的RAID级别,也就是RAID 10,只有NetApp FAS3270A配置为RAID DP(双校验盘,类似于RAID 6),TMS RamSan-630设计了芯片级的RAID 5保护。RAID 10的好处是理论上最好的随机读性能(n * 单盘IOPS,n为硬盘数)和相对较好的随机写性能(n/2 * 单盘IOPS),缺点是硬盘空间利用率只有50%;而RAID 5、RAID 6(DP)的写算法通常要复杂一些,但容量利用率比RAID 10高。

除了上述这些,在SPC-1测试报告中还有更多有价值的信息。下面我们就再列出一些,按照存储系统的定位分3(4)个大类进行对比。

容量/成本对比、固态存储的优势和不足

SPC-1:闪存 vs.磁盘新旧势力的战场

上表中就是我们在前面提到过的四款入门级存储系统,它们都属于双控制器模块化阵列,支持的驱动器数量少于200,SPC-1 IOPS性能不超过40,000。尽管上面3款NetApp E2600系产品支持的硬盘数都在去年翻倍达到192个,但其性能未必也随之同比例提高。笔者在《戴尔MD32/36更新:120、192驱动器可选》一文中曾经介绍过:“戴尔PowerVault MD3200/3600新版Firmware的基本型号只支持到120个驱动器,要想进一步提升至192个需要购买额外的硬盘驱动器PFK。”因此,富士通ETERNUS DX80 S2支持120块盘也是基本够用的。“总ASU(Application Storage Unit)容量”指的是执行SPC-1 Benchmark过程中读、写测试的全部逻辑容量范围,也就是性能结果对应的可用容量。“空间利用率”即总ASU(Application Storage Unit)容量在总体物理容量之中所占的比例,在RAID 10模式下这个数字比较理想的情况是接近50%,而RAID 5、RAID 6(DP)则能达到更高的利用率。

SPC-1:闪存 vs.磁盘新旧势力的战场

以参与测试的IBM System Storage DS3524 Express Turbo为例,全部物理存储容量中除了ASU空间之外,还有未用存储、用于数据保护的镜像存储(RAID 10)、过量分配/元数据,以及(热)备用盘等。

配置48个硬盘驱动器(本次对比中最少,闪存系统除外)的IBM DS3524参考价格也是最低——48,310美元。我们计算出的“每GB价格”一项,SGI InfiniteStorage 5000-SP的13.5美金远超过另外三款产品,一方面它使用了小容量的146GB驱动器,而在此基础上的价格已经与相同数量/类型300GB硬盘的 IBM DS3524相差不多。可见在这里的“同质化”竞争中,SGI 5000-SP没有价格优势。

我们还发现一个问题,配置117个300GB驱动器的Fujitsu DX80 S2,其ASU容量为什么低于96个相同容量驱动器的IBM DS3524呢?原因只有一个——并没有将全部容量用于测试,实现类似短击硬盘的效果(靠近盘片内圈的部分磁道不用,以此人为?提高单个驱动器的IOPS)。还记得上文中我们提出的问题3吗,SPC-1测试也是“有空子可钻”的?

当然这样做也有负面效果,那就是提高了每GB价格(空间利用率只有27.79%)——尽管ETERNUS DX80 S2的总价格低于DS3524 Express Turbo,但每GB价格却超过后者。其实这也为传统磁盘存储系统的用户提供了一种参考,究竟是要容量,还是要IOPS呢?

SPC-1:闪存 vs.磁盘新旧势力的战场

上面5款中端存储系统支持的驱动器数量在200~1000之间,SPC-1 IOPS测试成绩位于50,000~150,000的范围内,除了Pillar Axiom 600 Series 3被认为是Scale-out横向扩展设计之外,其余仍然属于双控制器模块化阵列。在这里NetApp FAS3270A的960个硬盘数处于领先;IBM Storwize V7000目前只支持240个驱动器并不是技术问题,要知道IBM的高端存储系统DS8800已经支持1,536块盘,Storwize V7000是IBM在中端市场上第一款完全采用自主技术的产品(之前依靠与LSI Engenio合作的DS4000/5000系列),它还会在不久的将来随着硬件配置升级而增加更多功能。

这一档次的设备,每GB价格大多集中在15~25美金的范围,华为赛门铁克Oceanspace S5600T的性价比突出,每GB 7.8美元使它能够与入门级存储系统相媲美。NetApp FAS3270A高容量利用率的RAID DP,并没有阻止其每GB价格高达23.5美金,它是否以某些方面成本为代价来提高性能效率?这个我们将在后文中再做分析。

这里四款采用RAID 10配置的阵列,平均空间利用率没有入门级存储系统高。前面我们认为性价比出色的2个产品中,华赛S5600T还是比较厚道(45.38%),而Oracle Sun ZFS Storage 7420c Appliance的容量利用率只有28.22%,不排除以此来增加每驱动器IOPS的嫌疑。

SPC-1:闪存 vs.磁盘新旧势力的战场

我们将高端存储系统和全闪存阵列放在一个表格中,尽管二者支持的驱动器数量相差天壤之别,但它们都是在通过各自的方式(前者是盘数、后者使用闪存介 质)来满足不断增长的数据中心应用服务器对存储IOPS的极致需求。惠普3PAR的控制器单元通过背板以Scale-out的方式扩展;日立数据系统 VSP则显得保守一些,他们提出了3D扩展——即Scale-up + Scale-out + Scale-deep(继承原来USP V/VM的存储虚拟化功能)的概念。

HP P10000 3PAR V800 和 HDS VSP支持的驱动器数量都在2,000个左右,与EMC Symmetrix VMAX的2,400个处于同一水平,它们的SPC-1 实测IOPS也都超过了200,000。3PAR V800由于满配300GB 15,000转光纤通道驱动器,因此总ASU容量和总价格在本次对比中最高,然而其12.9美金的每GB价格却低于除华赛S5600T之外的四款中端存储 系统,可见3PAR一直以来宣传的高性价比并不是空话。相比之下VSP却由于空间利用率低等原因,每GB价格(44.6美金)已经接近Texas Memory Systems RamSan-630固态存储系统(51.7美金)。Scale-out架构看似完胜,那么传统的大型框架式(Monolithic Frame-Based)高端磁盘阵列在今天就没有优势了吗?

TMS RamSan-630可以说是本次对比的一个亮点,在传统中端存储系统的价格水平上提供了高端阵列的性能,另外华为赛门铁克Oceanspace Dorado2100也是以传统入门级存储系统的价格提供了中端阵列的性能。可能是由于驱动器RAID 10和芯片级RAID 5的空间利用率、以及架构设计方面的不同,华赛Dorado2100每GB价格还比较高,并且ASU容量在这些系统中最低(可以换用大容量驱动器来提高)。当然全闪存阵列目前还无法与传统磁盘阵列拼容量,它们暂时只适合存储“少量”需要高IOPS的数据。

总结与展望

笔者认为,企业级固态存储市场距离成熟还有比较长的一段路要走,相关产品或多或少地还存在一些不足、有待完善的地方,比如在本文开头提到的可扩展性、高可用性等方面的能力。至本文截稿之时,我们得知EMC Project Lighting(闪电计划)将于2月初发布,简单说这是一款将PCIe SSD安装在服务器上作为共享存储系统缓存加速的产品,当然还包括FAST缓存(分层)等高级软件功能。正如EMC在上一次利用FAST(全自动存储分层)功能带动SSD驱动器的出货那样,Lighting的发布也将引发PCIe闪存卡在企业存储领域的另一个拐点?

回到SPC-1这个话题上,尽管对它的争议不会就此停止,但我们觉得上述分析、评论还是能够给人以收获,比如说空间利用率与每驱动器IOPS、每 GB价格之间的微妙关系等。文中陆续提出的一些问题,有的找到了答案而还有些尚未了结,这就是我们要留到下一篇讨论的内容。在涉及的产品里面,笔者曾经分 析过NetApp E2600系(对应IBM DS3524和SGI 5000-SP)、IBM Storwize V7000和3PAR V800的架构设计,那么下一步应该进行更全面的比较。SPC-1报告中还有响应时间曲线、结构示意图、详细的配置信息和分项成本等待我们去挖掘,当然不 仅限于SPC-1…