云存储是在云计算(cloud computing)概念上延伸和发展出来的一个新的概念,是一种新兴的网络存储技术,是指通过集群应用、网络技术或分布式文件系统等功能,将网络中大量各种不同类型的存储设备通过应用软件集合起来协同工作,共同对外提供数据存储和业务访问功能的一个系统。云存储平台提供了海量的存储容量,可提供用户网盘、nfs、cifs、http接口等多种业务模式。但如何充分的发挥其系统性能,始终困扰着我们。
怎么做好云存储的性能测试呢?下面就云存储性能测试的关键问题、测试思路、测试内容和测试方法四个方面进行说明。
云存储性能评测的关键问题
云存储技术带来了工作方式和商业模式的根本性改变,是引领信息产业创新的关键战略性技术。目前,云存储正处于产业发展、生态环境建设和商业模式构建的关键期。在飞速发展的同时,云存储系统性能评测与仿真需要解决以下几个关键问题:
1、云存储系统性能评测方法问题
首先需要解决评测方法问题,具体来说就是解决评测什么指标、怎样评测的问题。需要依据云存储服务本身的特点,设计云存储系统性能评测指标体系并对各项指标评测方法进行研究并开发出相应的测评工具进行实地测试。云存储系统的分布式特性(如高并发、具有较强弹性、存在多节点失效可能、大规模),使云存储性能评测方法不同于传统存储系统评测方法。
云存储评测方法需要解决三个问题:如何全部覆盖所有终端用户问题,如何消除环境差异问题,如何搭建云存储测评环境问题。具体来讲,云存储系统用户众多、分布广泛、用户使用云存储服务差异明显,在云存储测试需要解决使用有限、合理的测试用例完成对云存储终端用户测试。云存储环境会因为时间、地理的原因带来的环境差异,造成同一测试用例测试结果不一致,需要研究消除环境影响因素的方案。实际云存储环境结构庞大、分布广泛,构建难点是如何使用有限空间、有限设备快速构建可信的云存储评测环境。
2、云存储性能评测系统构建问题
云存储系统向PB级及EB级规模扩展,而研究人员需要评测新技术在超大规模系统中的使用状况。构建云存储系统测试环境成本和时间代价高昂,并且商用规模存储系统7×24h不停机服务,而新技术往往具有破坏性,不能用于评测需要。加之,新技术具有超前性和多变性,调整配置系统资源、收集数据工作量大,这都为存储系统研发带来极大不便。
云存储评测系统构建问题主要研究典型云存储系统构成并在本地搭建云存储系统的评测环境。此问题将主要解决以下技术难点:评测系统规模需要达到云存储系统标准并具有可扩展性、云存储评测系统覆盖典型云存储应用、保证云存储评测系统构建简便性和易用性、保证云存储评测系统准确性。
3、云存储性能评测效率提升问题
云存储系统评测系统规模大、评测指标多,将面临提升云存储评测效率问题,即使用尽可能少的时间和尽可能少的设备测试出系统的指标。云存储评测效率问题涉及到易用性和快捷性,云存储评测体系能够方便测试人员使用,快速构建测评环境,并能够使用尽可能少的时间完成对多测试集进行测试。
4、云存储系统Trace采集及负载生成问题
开展云存储系统Trace采集问题研究,探讨云存储系统访问特性,对云存储平台后期维护和性能优化具有直接指导作用。云存储系统负载生成问题研究可以实现对不同云存储平台负载模拟,对开展云存储性能评测起到直接支持作用。
云存储性能评测的思路
1、云存储评测体系
面向不同用户,适用于不同阶段的多指标综合评测体系。
评测体系分为评测指标、评测服务对象和服务生命周期三个维度。评测指标包括性能、效能、弹性、可用性以及可管理性等指标,评测服务对象包括最终用户、云计算服务提供者、云计算基础设施提供者和设备提供者等,服务生命周期则涵盖云计算和云存储系统的研发、运营、扩容等多个阶段。
2、云存储评测环境
评测的基本思路是采用并行评测及综合分析的方法得到系统的性能指标。整个评测系统由以下几个部分构成:
a)基础存储设备测试。针对基础设备的测试,有负载生成软件产生大量的负载,测试云存储设备的吞吐率、IOPS性能。
b)虚拟存储池测试。通过高速网络将众多存储设备连接在一起,形成云存储系统的存储池,然后分配给各个测试节点。每个节点上均装有用于产生测试时所需负载的负载生成软件。
c)接口应用测试。针对系统级接口应用进行测试。
云存储评测内容
在评测内容的考虑上,则强调从基准指标测试、使用者不同角色、云存储系统研制与运营的不同时段这三个维度出发。基准指标测试是在传统的海量存储系统指标基础上,结合云存储系统的特征(即按需供给、快速弹性配置、访问规模大分布广的服务特征;高并发/高吞吐、计算与I/O需求较为均衡、总量大扩展快的任务特征;海量资源汇聚、强调高性能密度、高性能功耗比等的内部构建特征)提出有针对性的新的指标与测试方法工具,包括弹性伸缩环境下的基准测试、在高并发/高连接数情况下的各类指标、虚拟化相关测试,和单位体积性能、性能成本、吞吐率/功耗等指标测试。
云存储系统对于最终用户、应用开发者以及系统运营者等均提供不同层次/权限的访问、
使用、开发、配置与管理接口。云存储在本质上是一种IT资源的按需提供服务模式,所以对于这些不同角色的使用者均需提供一定的服务等级协议(service-levelagreement,SLA)。SLA有一个很重要的关注点,即其可测量性和测量方法。本文拟针对不同类型SLA的测量指标开展合理指标的计算方法与测量方法研究。
通过评测→反馈→改善→评测的循环达到以评促建的目的,为云存储各个核心系统的成功研制做好服务工作。同时,云存储系统因其强调对外提供IT服务,所以具有根据运行反馈情况,不断更新升级的特点(比如谷歌就有所谓的“永远的Beta版”的网络服务开发与上线策略),这就需要在系统运维期间,通过在线测试方法不断地从系统监控等接口中获得运行状态等各种情况,通过数据挖掘的多种手段进行系统状态评测,从而帮助系统维护方、开发方来定位可能的问题与瓶颈,并提供升级改进的依据。其总体思路如图:
云存储评测方法
云存储系统节点众多,分布广泛,用户使用云存储服务差异明显,在云存储测试需要解决使用有限、合理的测试用例完成对云存储终端用户测试。云存储环境会因为时间、地理的原因带来的环境差异,造成同一测试用例测试结果不一致,需要研究消除环境影响因素的方案。借助于Plantnet测试CDN网络性能的思想,同时可用于测试分布式网络环境下不同物理位置的访问性能测试,构建类似于此的云测试环境,实现以云测试云的测试方案。
课题拟提供基于云存储平台(非目标系统)的一整套测试环境,测试人员利用虚拟桌面等手段登录到该测试环境,就可以立即展开测试。即提供软硬件安装、环境配置、环境维护。以现在的虚拟化技术,在测试人员指定硬件配置、软件栈(操作系统、中间件、工具软件)、网络拓扑后,创建一套新的测试环境。如果测试人员可以接受已创建好的标准测试环境,那么他可以立即登录。