日前,存储网络行业协会(Storage Networking Industry Association,SNIA)发布了可用于测试固态硬盘(SSD)性能的规范。
SNIA是一个由厂商和大学成立的行业组织,致力于开发和推广存储系统标准。SSD性能测试规范由SNIA旗下的固态存储倡议小组(Solid State Storage Initiative,SSSI)所提出,目的是为基准测试提供公平的竞争环境。
一个巨大的进步
SSSI将发布两个测试规范:一个就是已经发布的企业级SSD测试规范,另一个是服务器或客户端SSD测试规范,后者将于今年第三季度发布。
企业级SSD性能测试规范定义了一套设备级测试方法,用于企业系统(如一个存储阵列)中SSD的对比测试。
在此之前,业界没有一套广泛可接受的测试方法用于测量SSD设备的性能,每个SSD制造商都使用不同的测量方法来获得它们产品的性能指数。
“你没法通过比较各个SSD的性能指数表,来了解谁家SSD的性能最好,因为各制造商使用的标准不同。现在的SSD市场就和上世纪70年代的HDD市场一样,有很多不同的供应商提供不能功能的产品,产品之间的差异特别大。”SSSI理事会主席Paul Wassenberg说。
据透露,大约有40多家公司花了两年时间来参与SSD性能测试规范的制定。这些公司都是主流SSD和存储系统制造商,包括三星、英特尔、Marvell、东芝、IBM、希捷、戴尔、EMC、日立数据系统和西部数据。
市场研究公司Objective Analysis的分析师Jim Handy曾在制定规范的技术工作组呆过,他说:“SNIA SSD测试规范不是最完美的,不过,对比SSD厂商以前遵循的那些规范,它是一个巨大的进步。”
Handy表示,该SSD测试规范最重要的方面是,确保SSD在测试前经过了预调,意味着数据先写入硬盘,然后再擦除。
所有SSD在使用一段时间后都会变慢,因为大量数据写入SSD后,驱动器中的处理器移动数据都需要经历一个众所周知的“读-修改-擦除-写”周期。
当SSD很新时,写入数据不需要管理软件的干涉。但如果已经有大量数据写入后,用于制造SSD的NAND闪存要求在记忆新数据前先标注要删除的旧数据,然后,当新数据写入后,标记为可删除的旧数据块才真正被删除,这个过程被称为“垃圾回收”。
规范测试流程
SNIA创建了一套术语用于描述一个SSD的生命周期。
例如,一块新的SSD被称为FOB,即为“Fresh Out of The Box(新鲜出炉)”的缩写。
SSD初次使用后,进入到下一个阶段,SNIA称之为“Steady State(稳态)”。此时,SSD性能水平相对稳定,可以准确测量。Wassenberg说:“在性能方面,读是最快的,写要慢一些,擦除更慢。”
Handy和Tom Coughlin(咨询公司Coughlin Associates创始人)联同基准公司Calypso Systems编写了一份SSD性能研究报告,这份报告涉及18个不同的SSD。
Handy和Coughlin使用SINA的SSD测试规范测试了18块SSD硬盘。“我们发现没有两块SSD的性能是完全相同的。它们实际的表现各不相同,某些SLC SSD比某些便宜的MLC SSD表现还糟糕,某些MLC SSD一旦进入稳态比企业级HDD硬盘还慢。”Handy说。
SSD进入稳态花的时间根据产品的不同呈现巨大的差异,但新的规范要求,在执行基准测试前,先要执行5个独立的性能测试。
Wassenberg说:“SSD性能测试规范的关键是要告诉你做什么,以及如何准备驱动器。那么这是测试性能的唯一办法吗?当然不是,但随着时间的推移,我们发现它是最有效率,最可靠的方法,你可以多次运行这个测试获得相同的结果。”
SSD性能测试顺序如下:
1.净化:通过擦除数据,将SSD置于接近FOB状态。
2.事先准备工作负载:写入规定的数据到整个SSD,帮助其达到稳态。
3.正式测试之前的准备工作:循环运行测试,直到SSD进入稳态。
4.测试:当SSD进入稳态时开始测试。
SSD测试规范设计了一个用于验证规范本身的参考测试硬件和软件平台,该平台由Calypso开发,Calypso也是SSSI成员。
Calypso构建了一个包含多个硬盘插槽的硬件平台,可并行执行硬盘测试,还开发了与规范配套的软件。
“你插入硬盘后就可以开始测试了,” Wassenberg说,“如果你想测试一块硬盘,这个参考测试平台就是黄金标准。”
不过,Wassenberg说用户在他们自己的测试平台上使用这个测试规范,以及其它开源基准测试工具,如DBench和Iometer。
他说:“你只需要确保你使用的是没有SSD瓶颈的硬件平台,我们建议使用服务器主板,当然,你也必须有丰富的专业知识,才能为它编写脚本。”
SNIA目前也正在制定特定应用程序的规范,它将允许SSD在特定任务负载下进行测试。例如,在运行Windows 7的PC环境中或在Oracle软件的服务器环境中来测试SSD的性能。