对单个文件而言,在文件刚创建时访问频率最高;随着时间的推移,访问频率下降,在大规模文件系统中,大多数文件长期不用,少数文件经常使用[1],利用海量数据之间存在的访问频度差异,人们开始研制分级存储系统,它根据访问负载的变化,将具有不同访问特征的数据在具有不同性能、容量的存储设备之间动态迁移,目标是在保证应用访问性能的同时,实现低成本的数据存储,分级存储系统设计方面的研究已经发展多年[2,3],并取得较大进展,但是分级存储系统性能测试方法却依然非常滞后,性能测试的目标是:确定影响分级存储系统性能的关键因素,从而可以有针对性地进行分析和改进;比较不同的分级存储系统,为选取不同分级存储系统提供参考,分级存储系统性能测试包括两个指标:一个是将具有不同价值的数据在不同性能存储设备中分级存储的能力,另外一个是分级存储系统的I/O性能,分级存储系统性能测试需要通过向具有真实状态的分级存储系统播放有代表性的访问负载来完成,涉及两个主要技术挑战:创建真实的文件系统状态、生成有代表性的负载。
生成有代表性负载的问题尽管还没有彻底得到解决,但是已经朝着这个目标取得了显著进步,文件系统访问模式[4−6]和文件系统活动trace[7,8]的实验研究已经推动了人造负载生成器[9,10]和trace重放方法[11,12]两方面的研究进展,相对而言,创建对于目标使用场景而言是真实的文件系统状态,也是更加困难的一个技术挑战。
目前,还没有令人满意的分级存储系统性能测试工具能够提供可用的真实的文件系统场景以及配套的文件访问记录,已有的文件系统性能测试方法往往针对空白的文件系统播放典型的负载请求,然而,分级存储系统处理的并不只是活跃的数据,而是整个文件系统内容,这种简单的文件系统测试方法因为与分级存储系统应用的真实环境不符而不适用,有人为分级存储系统提出了专用的测试方法,通过将采集到的文件访问记录播放一段时间后得到的文件系统场景作为文件系统状态,播放后续的访问记录作为测试负载,这种方法的优点是能够提供真实的访问请求,然而缺点也很突出:它生成的分级存储状态非常不真实,导致测试结果具有误导性,由于文件访问存在局部性,生成的文件只是真实文件系统中很小的一部分,尤其是必然会丢失那些较长时间不用的文件,这与分级存储系统的应用场景不相符。
本文给出了一个分级存储系统性能测试工具DMStone,它使用文件系统快照生成某一时刻的系统状态,并根据后续的相邻快照的差异分析出后续访问负载的宏观特征,进而生成后续对文件系统的数据访问,DMStone能够提供某一时刻完整的文件系统状态,涵盖了近期访问过的和长期不用的所有文件,而且它能够保证后续文件访问的局部性与真实应用场景相符合。
我们在Linux平台上实现了DMStone,实验结果表明,DMStone能够生成满足分级存储系统测试要求的文件系统真实场景,根据用户的配置灵活生成文件访问负载,能够对分级存储系统进行全面而合理的测试,应用DMStone对分级存储系统AIP进行了测试,验证了DMStone性能测试的有效性。
1 相关工作
分级存储系统性能测试需要向具有真实状态的存储系统播放有代表性的访问负载,两个主要技术挑战是创建真实的文件系统状态和生成有代表性的I/O负载,在2008年的综述文章[13]中,Traeger等人查阅了4个国际顶尖会议SOSP,OSDI,FAST,USENIX从1999年~2007年这9年时间内的全部论文,调研了其中存储相关的106篇论文中提到的415种文件系统和存储测试方法或工具,我们发现,这些方法都毫无例外地忽略了对存储系统状态的构建。
在文件系统场景构建方面,Agrawal和Arpaci-Dusseau等人[14]提出一种构建方法,它根据一定的模型生成相应的目录树结构,并将具有不同大小、不同扩展名的文件按照一定方式在这些文件夹之间分布,在处理文件在目录树结构中的分布情况时,对文件内容及数据在磁盘上的分布进行处理,以提供用户指定的文件系统场景,该方法的缺点是没有考虑I/O负载和系统状态的匹配问题,同时,没有对文件的时间、用户等属性分布进行研究,不能生成适宜测试分级存储系统的场景。
在文件访问负载上,Iometer[15]通过配置读写比例、随机读与随机写的比例、突发请求次数、两次突发请求的时间间隔等参数生成访问负载,模拟存储器或网络的I/O负载情况,对存储器或网络控制器的带宽、延时吞吐量等进行评测,而SynRGen[10]文件访问负载生成器在系统调用层实现,它通过访问获取应用的特性,对应用的负载情况进行模拟,Fstress[9]是一个支持NFSv3的负载生成器,通过设置文件和文件夹的分布情况、符号链接的个数、目录树的最大深度、新建文件的访问情况、文件大小、I/O大小等生成相应负载,目前的负载生成器在生成负载时,并没有考虑文件访问在具有不同时间属性的文件之间的分布规律,但在分级存储的应用系统中,大部分文件访问应该集中在最近创建的文件上。
2 DMStone的设计
2.1 系统架构
DMStone使用文件系统快照生成存储系统某一时刻的系统状态,并根据后续的相邻快照的差异分析出期间访问负载的宏观特征,进而生成后续对文件系统的访问请求,如图1所示,DMStone由4部分组成,分别为快照读取模块Retriever、系统状态重建模块Reconstructor、访问请求增强模块Reinforcer以及访问请求播放模块Replayer。
图1 DMStone组成结构
在对指定的分级存储系统进行测试的过程中,DMStone的4个模块依次执行如下动作:
(1)快照读取模块根据指定的时间点扫描快照数据,根据快照链表结构提取此时间点的状态描述信息并保存到指定文件中,同时,根据指定时间点快照及其后继快照信息生成文件访问请求特征信息;
(2)系统状态重建模块依据生成的状态描述信息及用户设置的参数,在指定的文件系统中生成文件系统场景;
(3)访问请求增强模块根据快照读取模块生成的访问请求特征信息,对文件系统的访问请求进行细化处理,增强访问负载的强度;
(4)访问请求播放模块在生成的文件系统场景的基础上,播放增强后的文件访问负载,同时记录请求的响应时间等性能统计数据。
2.2被测系统的状态重建
DMStone根据某一时刻的文件系统快照信息生成文件系统场景,这些快照信息包括文件路径及文件名、文件大小、文件的最近访问时间、文件的最近修改时间、用户名等,将快照信息使用文件记录的形式来描述有利于生成后续的文件访问请求,由于文件的内容与系统评测并不相关,所以,某一时刻的快照可由文件系统中所有文件的相关记录信息来描述,从而便于被测系统的重复创建,进行多次测试。
在生成文件系统场景描述文件后,DMStone根据这些信息生成文件系统场景,并保证系统中文件的属性与快照中的信息一致,对每条文件记录,选择文件的最近访问时间和最近修改时间中的较小值作为文件的创建时间,为了保证文件的最近访问时间和最近修改时间与快照中的相一致,在文件创建以后,根据文件的最近访问时间和最近修改时间中的较大值进行一次文件读写操作,并保证除文件的相应时间属性以外,其余基本属性不发生变化,如果最近访问时间值较大,在创建文件后,根据最近访问时间再对文件进行一次读操作,如果最近修改时间值较大,则依据这个最近修改时间,对文件进行一次写操作,对文件内容而言,可以随机写入数据。
2.3 负载信息的生成
生成基于已有文件系统场景的文件访问负载,是DMStone的另外一个重要部分,DMStone生成的文件访问负载能够反映文件访问的局部性,并体现实际应用中的文件访问特征,生成文件访问负载包括两个步骤:生成基本访问负载以及对基本访问负载进行负载强度增强处理。
2.3.1基本访问负载的生成
基本访问负载信息需要确定所访问的文件集合以及每个文件的访问类型,将每个文件访问请求用以下几个方面来描述:访问类型、文件路径名、访问起始地址、访问大小、访问时间及请求用户,DMStone通过对比相邻两个快照之间的差异得到基本访问负载信息,由于生成快照会给原系统带来额外的I/O开销,所以如果生成快照的间隔太小,则会对系统的I/O性能产生影响;而如果快照生成时间间隔太大,则会影响获取的负载特征中创建文件及删除文件请求的访问执行时间的准确性,出于这样的考虑,DMStone使用的快照时间间隔为1天,一个文件在两个相邻快照之间是否被访问过,是通过对比相邻快照之间文件的元数据得到的,如果文件的属性有变化,则说明文件在这段期间有相应的访问请求,例如:如果文件的最近访问时间发生变化,则说明在这两个快照之间至少有一个对文件的读访问,文件的创建与删除请求,根据文件在前后快照之间是否存在来确定,DMStone根据访问类型和从快照中可以得到的信息量的不同,确定不同类型的文件访问的起始位置、偏移大小和执行时间等访问信息,例如对写请求,将前一快照的文件大小作为偏移起始地址,并将两个快照中文件大小的差值作为偏移大小;将后一快照中文件的最近修改时间作为文件访问的执行时间,而创建和删除请求的执行时间不能通过比较快照获得准确的时间点,只能在两个快照的时间段中随机生成一个时间点作为请求的执行时间,DMStone通过将后一快照的最近访问时间和最近修改时间作为访问请求的执行时间,保证文件在时间属性上的误差在1天以内,分级存储系统处理的数据往往是最近访问在几十天以前或几百天以前的,所以1天以内的误差对分级存储系统评测的影响很小。
2.3.2 访问负载的增强
基本访问负载并没有包括所有应当被访问的文件,且对单个文件而言,每种访问类型最多只包含一个访问请求,例如,若在两个快照之间文件的最近访问时间有变化,则基本访问负载中仅有一个此文件的读请求,为了还原有代表性的访问负载,需要对这些访问负载进行强度增强处理,为了完成这个过程,需要确定被访问的文件、各种访问的数量、访问的分布情况、每个访问的起始地址及偏移大小。
首先,在生成访问请求的两个快照时间点之间创建、访问并删除的临时文件并没有包含在生成的基本负载信息中,针对临时文件的读写特性,Floyd[16]进行了详细的研究,并得到如下一些结论:(1)临时文件的数量与实际读写文件的数量之间成一定比例;(2)大部分临时文件的生命周期小于1分钟;(3)临时文件的文件大小一般不到1KB,且只有一次或两次的读写,依据这些结论,我们通过基本访问负载中的读写文件数量确定临时文件的数量;其文件创建时间在访问开始和结束时间点之间随机生成,并根据其生命周期性质决定文件的删除时间;在文件创建以后,等概率地对其进行一次或两次的文件读写操作。
其次,基本访问负载中,对每个文件的访问,每种访问类型最多只有一个,所以对每个被访问文件的每种访问,都需要根据快照提供的不同信息进行负载增强处理,其中,创建和删除文件访问请求与原始文件访问负载中的情况相同,在Plan9[17]文件系统的快照中,文件的写次数可以通过相邻快照间文件的版本号的差值得到,为了适应不同的应用请求,DMStone根据用户配置的读写访问比例确定文件的读写次数。
文件访问负载具有突发性,大多数访问集中在某一个时间段,而较小的部分分散分布,Wang等人通过实验得到大多应用都具有I/O访问突发特性,且65%~100%的写请求集中在一段时间区域[18],为体现文件访问的突发特性,DMStone首先在文件创建时间或当日访问请求开始时间和读写此文件的访问执行时间之间确定一个时间点作为突发访问集中区域,在增强过程中,以这个时间点为中心,每隔1/Pi秒添加一个相应的文件访问请求,直到文件的访问请求个数达到预期值或者时间点到达原始文件的访问执行时间点为止,在添加访问请求的过程中,Pi值每经过一步,均按照如下方式来变化:
其中,Pmax为用户设置的最大Pi值,且P0=Pmax;而Pmin为用户设置的最小Pi值,1/Pi为添加的第i个访问与前一个访问之间的执行时间间隔;Di代表Pi的变化系数;D0为用户设置的初始值,且D0∈(0,1),当D0=1时,表示请求将按照恒定的时间间隔访问文件,用户根据期望的文件访问时间间隔设置Pmax,Pmin和D0的值,从而得到与应用具有相同负载特征的访问请求。
文件的读写访问请求区分为随机读和顺序读、随机写和顺序写,DMStone根据指定的参数确定随机读写与顺序读写之间的比例,并根据这个比例确定文件的读写请求的类型,对每个读写访问请求,需要确定读写访问请求的起始地址和偏移大小,随机读写访问请求的起始地址及偏移大小在文件大小范围内随机生成;顺序读写访问请求的起始地址从文件起始位置开始,偏移大小按照等概率从512B~64KB之间得到。
2.4 访问负载的播放
DMStone在评测分级存储系统的过程中,首先在生成的文件系统场景上运行分级存储系统,分级存储系统将依据分级规则,将文件迁移到二级或三级等低级存储设备中,而将具有较高文件价值的文件保留在一级存储设备上,在对文件进行分级处理后,DMStone播放增强后的访问负载来完成分级存储系统的性能评测。
在真实系统状态上播放后续的文件访问请求时,DMStone根据指定参数决定负载播放的时间长短,文件访问线程每次读取一个文件访问请求,当请求播放的时间点到达时,执行对文件的访问,同时记录请求类型及请求响应时间,在评测结束时,DMStone对不同类型的数据进行处理,生成相应的数据信息,完成系统性能数据统计。
3 DMStone的特点与使用
将DMStone应用在分级存储系统AIP中,对AIP进行全面的评测,在评测过程中,DMStone使用了贝尔实验室的Plan9文件系统快照[17],它包含从1990年~2001年间每天的系统快照信息,在实验中,DMStone还原了1993年5月31日的文件系统场景,同时生成此后一天的文件访问请求。
3.1 文件分布
为了验证DMStone恢复系统状态的真实性,我们对还原得到的1993年5月31日的文件系统场景进行了统计分析,图2给出了具有不同最近访问时间、不同最近修改时间的文件数的累积分布。
图2 文件按照最近修改时间及最近访问时间的分布
可以看到,最近10天内访问过的文件数只占总数的2.8%,而最近50天内访问过的文件数占总数的8.7%,100天内被访问过的文件数占总数的12,6%,最近10天内修改过的文件数占总数的1.64%,50天内修改过的文件数占总数的5.0%,最近100天内修改过的文件数占总数的8.74%,这种情况与分级存储的目标应用相符。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/