基于业务应用环境的存储系统性能评估(一)

日期: 2009-09-14 作者:周迪 来源:TechTarget中国

为什么性能数据漂亮的存储系统上线应用后却表现平平?是IT应用环境太过特殊,还是前期采购测试有所忽略?本文作者结合H3C测试中心的实践体会,介绍了SPC组织的一套模拟真实应用环境的存储性能测试理论和方法,以准确评估存储系统真实的性能表现。

不同的性能评估方法会导致存储系统产生迥然不同的性能表现。究其原因有三:一、不排除个别厂家测试作弊。他们优化在存储硬件上运行的软件,以便在特定的性能测试中获得超常的表现。例如数据放置在磁盘盘片的外圈区域来缩短磁头的搜寻时间,或者使用一个足够小的SQL数据库使其处理过程完全处在控制器的高速缓存中,从而省却真实环境中读写磁盘的消耗。二、测试负载不符合买主的应用环境特征。联机在线事务处理系统的大量随机读写需求与大规模文件处理系统的大量顺序读写需求对存储系统的性能要求则完全不同。由于磁头寻址要消耗时间,具体应用的数据访问行为的差别将导致存储系统实际性能表现的巨大差异。三、测试对象选择不合理。存储产品应用时需要配备一整套的部件,单个部件的性能数据不足以代表整个存储系统的性能数据。例如存储系统不只包含核心的存储控制器和磁盘柜,还包括适配器、网络设备、线缆等组成部分,这部分器件的数据处理消耗对存储系统的性能表现也会产生一定影响。

准确评估存储系统的性能应该具备以下条件:一、以存储系统为被测对象,这个系统包含了设备提供商提供或推荐给用户的一整套解决方案,这个方案的所有配置信息须完全公开;二、方案中各个组成部件的型号与价格信息(含优惠政策与维护费用)必须完全公开,即公开性价比;三、针对不同的应用需求选择相应的测试负载,这种测试负载应能准确体现用户实际的应用需求。

基于上述要求,SPC组织对业界典型的各类应用业务作了大量的调查分析工作,目前已针对在线类业务、大规模文件处理类业务、面向文件系统的备份和恢复类业务分别推出了SPC-1、SPC-2、SPC-3BR三种测试规范和相应的测试工具,为客户评估存储系统的性能和性价比提供了现实可行的理论依据和测试工具。目前,H3C、IBM、NetApp等主流存储厂商是该组织的成员。

要准确评估一套存储系统的性能是否满足用户的应用需求,就必须设计一套准确体现用户应用环境的测试负载。SPC最有价值的设计在于测试负载的设计和相应测试结果的度量。由于不可能一套测试负载涵盖所有的应用环境,所以SPC推出了针对不同应用环境的多个规范。其中,SPC-1用于测试存储系统在OLTP(联机事务处理)系统、数据库系统和邮件服务系统等在线应用环境中的性能表现;SPC-2用于测试存储系统在大规模文件处理,大规模数据库查询和视频点播(VOD)等大规模连续数据迁移应用环境中的性能表现;SPC-3BR用于测试面向文件的存储系统在备份和恢复时的性能表现。

我们以在线应用环境为例讨论基于业务应用环境的存储系统性能评估的方法。在线业务具有如下特征:对读写反应时间敏感;工作负载动态变化;存储空间可靠性要求高;用户访问行为多样化;要求数据持续保存而不损坏或丢失等。针对在线应用环境的特征,SPC设计了八种模拟用户数据访问行为的I/O流和两架构测试模型的角色——BSU(Business Scaling Units,事务扩展单元)和ASU(Applications Storage Units,应用存储单元),共同组成了SPC-1的基准测试模型。

1.1 I/O流、BSU、ASU

一个I/O流,即一系列I/O命令(即I/O请求)的组合,这一系列I/O命令模拟了一个特定应用的数据访问行为,例如在某一空间均匀的进行随机读写,或在某一空间步进方式的只读等等。SPC设计的这八种I/O流是SPC-1基准模拟在线应用环境的核心技术,I/O流的具体行为则是由若干个工作负载参数来控制的。

主要有:控制I/O流访问地址的“传输地址(Transfer Address)”;控制I/O流访问步长的“传输校准值(Transfer Alignment)”;控制I/O命令传输数据量的“传输尺寸(Transfer Size)”;控制I/O流中读写比例的“读比例(Read Fraction)”;控制I/O流的I/O命令数量在所有I/O命令中所占比例的“强度因子(Intensity Multiplier)”;控制I/O流并行运行实例数量的“实例数(Population)”。

还有一个比较有意思的参数“数据重参考(Data Re-reference)”。此参数使能,意味着允许那些具有从随机访问缓存中受益能力的I/O流通过执行特定访问行为来实现对于先前访问过的数据的重新参考。例如,先前的一些I/O命令已经从存储子系统的硬盘中读取了一些信息暂放在存储子系统的随机访问缓存中,而当前这个I/O命令要访问的地址刚好与先前某个命令相同,如此,这个I/O命令不用再访问硬盘而可以直接从缓存中读取相关数据,从而提高了访问效率。这些I/O流的访问地址由一个随机分布函数控制,它基于一定的分布算法根据最近一次数据访问的地址计算而得,从而存在一定的概率让一部分I/O命令受益。

此外还有一些为测试运行服务的参数,例如,内存字节对齐(Memory Alignment)、模型类型(Model Type)、流标志(Stream Identifier)、工作负载标识(Workload Identifier)等。

BSU用来控制模拟应用的I/O请求的规模,每个BSU最多提供每秒50个I/O请求的负载,因此,通过控制BSU的数量即可控制测试负载的压力。

ASU 用来描述响应I/O请求的存储配置——这个存储配置即为被测试的存储系统。ASU其实是一个关于存储介质的抽象概念,需要测试举办者为它分配具体的存储空间;这种存储空间可以是允许应用程序访问的任何形式的存储介质,可以是一个物理磁盘或其中的一个分区、也可以是一个RAID阵列或其中的一个逻辑分区等。一般在线业务的数据访问空间可分为三类:临时数据存放的空间、永久数据存放的空间、日志类维护数据存放的空间。这些临时数据将来会转存到永久数据存放的空间或被删除,永久数据可能来自临时数据或直接来自应用程序,日志类数据可以其他两类数据的完整性以及系统运行的维护。于是SPC-1相应的设计了三个 ASU:Data ASU、User ASU、Log ASU,其空间比例为45:45:10。

为更好的理解如何架构测试环境,我们以IPSAN为例作下说明:在被测试的存储系统上创建一个1000G的RAID5空间,划分成三个容量分别为450G、 450G和100G的SAN资源;在测试机上用initiator将三个资源加载到本地,并安装SPC-1测试工具,创建spc1.cfg文件,分别指定 3个ASU的所用盘符和容量大小,容量大小比例必须符合45:45:10的规则,例如,ASU1=450G,ASU2=450G,ASU3=100G。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

周迪
周迪

相关推荐