在不久前的《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平台已经高度标准化),企业存储领域还是需要一个(相对)被业内公认、公布的参测产品成绩较多,有一定普遍意义的综合性基准测试,便于横向对比