基于云服务提供商的云存储系统性能评测方法

2015-11-26 09:06齐婵颖李育超吴海东
中国科技信息 2015年22期
关键词:存储设备服务提供商存储系统

齐婵颖 李育超 房 谨 吴海东

基于云服务提供商的云存储系统性能评测方法

齐婵颖 李育超 房 谨 吴海东

云存储系统目前应用广泛,但性能直接影响着云存储服务的质量,成为云用户的一个瓶颈。而提供云存储服务的两个角色云存储设备提供商和云存储服务提供商都迫切希望通过改进自己的设备和服务,进而提供给云存储用户更高的性能。针对目前云服务提供商难以较好的定位云存储系统性能瓶颈的问题,本文提出了基于云服务提供商的云存储系统性能评测方法。该方法针对云存储系统的四个层次,从数据中心边缘分别对其进行评测,逐层确定性能瓶颈,为云服务提供商提供了改进参考依据,且为云用户选用云存储系统提供了可靠指导。

云服务提供商关注的不仅是用户对云存储系统的满意度,还关注云存储系统设备的性能,追求云存储系统服务的利益最大化。因此,云存储服务提供商关注云存储系统的各个层次。通过OpenStack Swift集群搭建了一个本地私有云存储系统,从云服务商角度出发,针对该系统从各个层次进行测试。通过对测试结果进行分析,找到影响云存储系统性能的重要因素,探索基于云存储服务提供商的性能瓶颈,同时给存储设备提供商和云存储服务提供商提供了改进方向,并为用户选择云存储系统提供了参考。

云服务提供商概述

与云存储系统密切相关的角色有3个:云存储设备提供商、云存储服务提供商和最终用户。云存储设备提供商和云存储服务提供商统称为云服务提供商。

设备提供商是指为云存储系统提供磁盘阵列、服务器等存储设备的厂商,关注的云存储系统性能层次为存储层和基础管理层。

云存储服务提供商购买服务器及存储设备,搭建云存储系统,给终端提供云存储服务,关注系统每一部分的性能。测试位置位于数据中心内部或者边缘,性能数据更稳定可信。此外,服务提供商还关注云存储系统的实时性能。通过分别测试CPU性能、IO性能以及网络性能与用户数量的关系,分别得出CPU、IO和网络与用户数的关系,从而依次估测在CPU性能最佳、IO性能最佳及网络性能最佳时的极限负载。

设备提供商和最终用户对云存储系统的评测是通过网络进行的,而云存储服务提供商是在数据中心边缘直接对云存储系统性能进行评测,评测结果也更接近真实性能。

研究现状

云存储系统评测是云存储系统研究的一个重要方面,是云存储系统研究与应用的重要理论基础和支撑技术。伴随着云存储系统的发展,对云存储性能的研究,已经成为学术界对云存储和云计算研究的一个热点。

云存储系统由存储设备层、基础管理层、云存储服务接口层和应用访问层四个层次组成。目前,对云存储系统存储设备层和基础管理层的性能研究比较成熟,业界有通用的性能评测基准,而对云存储服务接口层和用户访问层的研究不是很多,尚未有统一的评测标准,不同云服务提供商提供的云存储系统很难进行横向对比,用户也很难分辨选择适合自己的云存储系统。下面我们分别从云存储系统的层次结构对云存储系统基准测试研究现状进行分析。

(1)存储设备层测试研究

存储设备层可以用现有的云存储系统基准测试工具进行评测。最常用的的测试云存储系统I/O操作性能的最常用基准工具是IOMeter、IOZone。IOMeter通过模拟各种常用的负载情况对云存储系统进行性能测量和评估,模拟种类包括文件服务器、工作站、在线事务处理、WEB服务器等。它是一个单一或集群系统的I/O子系统的测量及特征描述工具。IOZone主要特点是定义和实现了各种文件I/O操作,其最大的缺点是无法模拟Internet模式下的Web、Email和其他应用程序的工作负载特征。

存储设备层的性能评测相对成熟,可用现有工具进行评测。

(2)基础管理层测试研究

基础管理层目前最常用的基准测试工具是FSPoly和LZPack。

FSPoly通过测试存储系统中文件系统的聚合带宽及并发连接数两项性能指标,为整个系统的评测提供强有力的建议。

LZPack是我们在海量存储性能测试中根据POSIX的文件接口改造IOZone开发的使其能适用于POSIX接口的测试工具,支持并行测试。通过反复执行少数几种系统操作来获取目标系统在特定操作方面的性能差异。该项评测主要测试的是应用程序可见的元数据和数据API的效率,可为评价使用该文件操作API集合的应用程序设计者提供性能评价的依据。

(3)云存储服务接口层和用户访问层测试研究

云存储服务接口层和用户访问层的性能评测业界也有一些研究。YCSB(Yahoo Cloud Serving Benchmark)是Yahoo开发的面向key/value的云存储系统评估。Postmark是一种基于特定操作的基准测试工具,该工具根据Email和Netnews服务器的访问特性定制了特殊的处理方式来模拟实际的IO操作。

目前,业界对云存储系统各个层次的性能均有研究,但尚未有从云服务提供商角度出发的完整的性能测试,用户很难在单一选择云服务提供商的情况下保证性能的最优化。由于云存储系统需要使用计费模式,用户需要根据自己的使用量进行付费,用户的体验满意度对云存储系统的发展尤为重要,而性能直接影响着用户的感受。因此,研究如何帮助用户快速的从众多的云服务提供商中做出选择,具有很高的研究价值。

云存储系统性能评测架构

评测需求分析

云存储系统的存储设备层和基础管理层可以用成熟的基准性能评测工具进行测试,然而,目前尚未有统一衡量云存储系统云存储服务接口层和用户访问层性能的评测工具,且不同厂商提供的云存储系统不具有可比性,用户很难选择对自己性价比最高的云存储系统,对于一部分云存储厂商,由于无法说服用户自己提供的云存储服务质量最优而失去了一部分客户,对厂商也是一种损失。因此,如何评测云存储系统的性能,用户和云服务提供商都特别关心。而不同云存储系统的性能只能通过统一的指标去衡量。因此,如何针对云存储系统确定通用的评测指标,以及研究如何进行不同云存储系统的横向指标对比具有重要意义。

评测指标体系研究

云存储系统有四个层次,使用对象对性能的要求也不一样,因此,需要探索统一的涵盖云存储系统特点的通用评测体系,针对该评测体系,明确具体的评测指标,并给出评测标准,才可以使云存储系统性能评测有章可循。

云存储系统评测指标体系涵盖了各个层次,图1给出了性能评测指标体系的构成图。

从图可以看出,指标体系分为三个层次。

第一层,目标层。该层在本图中即为性能指标体系,表明本评测体系是针对云存储系统的性能进行评测的。

第二层,系统层。该层根据云存储系统从上到下的层次关系,将性能指标体系按层次进行了分类。

第三层,指标层。该层给出了各子系统层面需要完成的测试和得到的评测指标,可用于对云存储系统进行多个层次的性能测试。

本评测体系各层的评测既可单独实施,也可结合起来作为一个整体来评测。例如,既可以单独评测存储设备的IOPS,也可以把IOPS和数据传输率结合起来评测存储设备的性能,进而判断存储设备是否使当前云存储系统性能发挥最优。

图1 性能评测指标

性能指标说明

根据性能指标体系,可以看出,云存储系统不同的层次有不同的指标,各个层次主要的指标说明如表1所示。

实验分析

评测环境

基于云服务提供商的云存储系统性能需要对云存储系统进行整体的评测,即从存储设备层、基础管理层、服务接口层和用户访问层分别进行评测。评测目标如图2所示。

针对云存储系统的四个层次,逐层提出性能评测指标,明确每个指标的评测对象和评测标准,并给出确定可行的评测思路参考。通过逐层评测可以及时发现性能瓶颈,有效的给各个角色及时反馈评测效果,帮助提升性能。

我们的云存储系统是通过在本地搭建OpenStack Swift集群来实现,评测环境如图3所示。

本系统由三台PC机搭建,其中PC1安装Keystone,作为OpenStack Swift认证服务器,PC2 和PC3并列作为代理服务器和存储服务器,且可以并行扩展,详细配置信息如表2所示。

表2 OpenStack Swift集群详细配置信息

表1 云存储系统各层次性能指标说明

图2 评测方案

图3 OpenStack Swift集群部署

存储设备层用IOmeter测试,为了对比分析,存储设备分别用A和B进行对比测试。其中,A设备是本机自带的,B设备是8块大小2T的希捷硬盘组成的RAID60组成的浪潮磁盘阵列。

存储设备层测试

云存储系统的存储设备层主要是由磁盘阵列、服务器硬盘等物理设备组成,测试的主要性能指标为IOPS和数据传输率。

IOPS测试

IOPS是指裸盘或者磁盘阵列提供给云存储系统的逻辑盘在单位时间内能够处理的IO请求数,分为读和写两个指标,它反映了存储设备控制器的性能。存储设备IOPS的大小在最底层决定了系统整体的IOPS能力。实验中数据块大小设置为512B。

在100% Read时,IOPS测试结果如图4所示。

单独观察设备A或设备B的IOPS,会发现在实验配置完全相同的连续测试的9组数据中,最大峰值和最小峰值差异较大,例如设备A的第2组数据和第7组数据,相差2000多,占到了平均值的50%。出现这种状况,主要与存储设备使用的IO调度策略、cache命中率,以及IOmeter具体实现相关,而IOmeter具体实现模拟了用户操作,故用多次平均值来抵消这种影响。对比设备A与设备B的IOPS平均值,显然单就此测试项目来看,设备B优于设备A。

在100% Write时,IOPS测试结果如图5所示。

由上图知,在顺序写数据方面,设备A的IOPS明显优于设备B,这与设备B使用RAID60有关,RAID60的缺点就是写入速度很慢。因此,当系统事务类型与此测试项目相似时,设备A明显优于设备B。

综上所述,在数据块大小恒定512B,全部顺序读与全部顺序写时,设备A与设备B各有所长,这就需要根据系统的事务类型更倾向于读操作还是写操作来进行判断。

图4 100%Read时IOPS测试

图5 100%Write时IOPS测试结果

数据传输率测试

存储设备数据传输率是指裸盘或者磁盘阵列提供给云存储系统的逻辑盘在单位时间内能够传输的数据量,分为读和写两个指标。存储设备数据传输率在最底层限制了系统整体的数据传输率。

实验中数据块大小设置为256KB。在100% Read时,数据传输率测试结果如图6所示。

由上图可见,相同环境下,对于数据块为256KB的顺序读,不同存储设备数据传输率不同。单就此测试项目来看,设备A略优于设备B。

在100% Write时,测试结果如图7所示。

由上图可知,相同环境下,对于数据块为256KB的顺序写,不同存储设备读数据传输率不同。单就此测试项目来看,设备A优于设备B。

综上所述,本机存储设备在读写数据传输率方面都优于外接磁盘阵列。

基础管理层测试

云存储系统的数据管理层即狭义的文件系统层,主要测试元数据吞吐率。

测试环境

基础管理层测试环境如图8所示。

测试中,主节点负责发送测试命令到各测试节点,并收集结果;各个测试节点分别负责通过网络在NFS服务器提供的挂载点上生成负载;而NFS服务器负责给测试节点提供共用的NFS挂载点。

元数据吞吐率测试

基础管理层元数据吞吐量主要是指云存储系统所使用的文件系统在单位时间内能够操作的元数据量。通过测试存储系统对元数据的处理速率,进而衡量网络存储系统对文件或目录操作的支持能力。测试结果如表3所示。

图6 100%Read时数据传输率测试

图7 100%Write时数据传输率测试

表3 元数据吞吐率测试

从表3可见,当数据块大小不同时,相同元数据操作每秒执行次数相差不大。一般来说,元数据结构体大小随数据大小变化不大,这也决定了元数据每秒操作数随数据块大小变化不大。

云存储服务接口层测试

云存储系统服务接口层把各种操作封装成API接口,由服务接口层统一对外提供,该层主要测试数据传输率。

云存储服务接口层数据传输率通过调用上传下载API计算出数据传输率,进而推导出文件的读写性能。

本测试旨在测试Swift数据传输率。我们针对特定文件,分别测试不同文件大小时,调用Swift的上传下载API,通过运行时间计算出数据传输率,分析网络对读写性能的影响。测试中,文件格式为.doc。测试结果如图9所示。

图8 实验拓扑图

图9 数据传输率测试

从图可以看出,Swift的上传速率与文件大小正相关。同样的网络环境下,文件越大,上传速率越大。下载速率与文件大小关系不大,同样的网络环境,下载速率变化不大,浮动在1M左右。可见,网络对下载有一定的影响。

用户访问层测试

云存储系统的用户访问层对外提供典型应用服务,其性能通过测试不同文件类型、不同文件大小、不同时间点下目标云存储系统的典型应用的性能来测试。

典型应用性能测试通过控制变量法测试,通过设计不同的变量变化来测试不同文件类型、不同文件大小以及不同时间点对目标云存储系统的性能影响,从而寻找性能瓶颈。

不同文件类型测试

固定文件大小,变化文件类型,测试文件类型对云存储系统性能的影响。实验中,文件大小设定为1286KB,针对不同文件类型,分别调用上传下载API,运行200次,用分段统计的方式,分别对比前25次、前50次等的平均值,测试结果如图10和图11所示。

从图中可以看出,文件格式对读写性能有一定影响,其中写性能高于读性能。对于写性能,文本文档的速率小于图形图像和压缩文本的速率。其中文本文件和视频文件的上传速率低于1M,而图形图像和压缩包的上传速率大于1M。对于读性能,整个读过程比较稳定,文本文档及图形图像的速率都远低于视频文件的速率,且所有的下载速率都低于1M。

不同文件大小测试

固定文件类型,变化文件大小,测试文件大小对云存储系统性能的影响。实验中,文件类型选用doc,文件大小依次增大,分别调用上传下载API,运行200次,用分段统计的方式,分别对比前25次、前50次等的平均值,

测试结果如图上12和图13所示。

图10 文件类型VS上传速率

图11 文件类型VS下载速率

图12 文件大小VS上传速率

图13 文件类型VS下载速率

从图可以看出,文件大小对写性能有较大影响。文件越大,写性能越高,文件大小与写速率成正比。文件大小对读性能影响不大,小文件读性能也可以很高,大文件读性能也可以不高,一般读性能在一个范围浮动。

不同时间点测试

图14 不同时间VS上传速率

图15 不同时间VS下载速率

固定文件类型和文件大小,测试不同时间点云存储系统的性能,从而判断网络环境对云存储系统性能的影响。实验中,文件类型选用doc,文件大小设定为16MB,测试结果如图14和图15所示。

从图可以看出,不同时间点的读写性能有一定的差异,但在一定范围内浮动。其中,写性能远远高于从云端读性能,写性能在8M左右浮动,读性能在1M左右浮动。

结束语

本文分析了云服务提供商的特点,搭建了OpenStack Swift本地云存储系统,并从云服务商角度出发,针对云存储系统的四个层次分别在数据中心进行了测试。实验结果表明,云存储系统的各个层次都存在影响性能的因素,这些瓶颈为云存储设备提供商和云存储服务提供商提供了改进参考依据。此外,用户可以根据自己的需求横向对比不同云存储系统的性能,根据自己的侧重点选取最适合的云存储系统。

齐婵颖 李育超 房 谨 吴海东

中国飞行试验研究院

齐婵颖(1990-)女,陕西西安人,硕士研究生,助理工程师,主要研究方向:数据管理。

10.3969/j.issn.1001-8972.2015.07.001

猜你喜欢
存储设备服务提供商存储系统
分布式存储系统在企业档案管理中的应用
论品牌出海服务型跨境电商运营模式
天河超算存储系统在美创佳绩
最新调查:约三成云服务提供商正迅速改变其业务模式
网络非中立下内容提供商与服务提供商合作策略研究
浅析铁路视频监控存储设备设计
高速信号采集及存储系统的信号完整性研究分析
基于电池管理系统的数据存储系统设计
Windows环境下禁用USB存储设备程序设计与实现
电信增值信息服务若干问题研究