存储 频道

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

  【IT168 评论】在不久前的《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莫数。

闪存 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在今天就完全没有意义了吗?撰写本文的目的又是什么呢?

闪存 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组织的国内存储厂商华为赛门铁克(现已被华为收购全部股份)。

0
相关文章