一种提高云存储中小文件存储效率的方案
2018-02-08余思桂小林黄汝维
余思,桂小林,黄汝维,等
目的:在各种存储系统中存在大量的小文件,小文件的存储效率会直接影响整个存储系统的存储效率和存储能力。基于Hadoop分布式文件系统(HDFS)的云存储系统由于采用了主从式架构模型而带来了小文件存储效率低的问题。已有的解决基于HDFS的存储系统中小文件存储效率的文件合并或组合方法没有考虑系统的负载状况以及确定小文件合并的最优规模。本文采用多属性决策理论和实验得出小文件合并的最优规模、基于层次分析法(AHP)的系统负载预测算法实现了系统的负载均衡,在不影响存储系统运行状况的基础上,提高了小文件的存储效率。方法:本文提出的面向HDFS的云存储中小文件存储效率的优化方案,首先利用HDFS提供的序列文件(Sequence File)技术将小文件合并为大文件,以小文件的索引号为key,内容为 value的形式进行合并,同时实现了基于数据块的压缩,从而在节省名称节点内存空间的同时也节省了数据节点的磁盘空间;其次利用多维属性决策理论,综合读文件时间、合并文件时间及节省内存空间大小等指标,计算出合并小文件的最优方式,能够在时间消耗和内存空间节省之间取得平衡。为了提高对小文件的处理效率,系统为每个用户建立了3种队列:(1)序列文件队列(SFQ);(2)序列文件操作队列(SFOQ);(3)备用队列(BQ)。其中,SFQ用于小文件的合并,SFOQ用于对合并后小文件的操作,BQ用于操作的小文件数超过SFQ或SFOQ长度的情况。3种队列的长度一致,可通过实验得出队列长度的最优值;最后利用基于层次分析法(AHP)的系统负载预测算法获取系统属性的历史信息,依据系统属性重要性将每个时刻的系统负载属性值经过 AHP分析融合为单一的决策属性值,然后依据决策属性值的时间重要性经过第 2次 AHP分析最终得到下一时刻的系统负载值,从而最终得到系统负载的预测值,实现了良好的负载均衡。结果:实验结果反映出系统性能决策值的大小随着 SFQ长度的增大呈现一种类似开口向上的抛物线状变化,并且在 SFQ长度为 400时取得最小值,系统性能达到了最优。同时,小文件合并的规模越大,名称节点消耗的内存空间将越少,与此同时,对小文件的操作(如读取、删除等)以及合并文件所花费的时间代价也将越大。在其他基于HDFS的存储系统中采用本文的方案进行分析和部署,都可在时间损耗和内存利用率提高之间实现一种最优平衡,实现了小文件存储效率提高的同时不影响系统性能的目标。结论:针对基于HDFS的云存储系统中小文件存储效率不高的问题提出了一个面向HDFS的云存储中小文件存储效率的优化方案。该方案采用Sequence File技术将小文件以队列的形式合并为大文件,从而实现了节省名称节点内存空间的目的,同时也实现了对合并之后的小文件的透明操作。确定影响队列长度的指标后,通过试验获取指标值,采用数据标准化方法和三标度层次分析法确定队列长度的最优值,使得小文件的合并能在合并时间、文件操作时间和节省内存空间之间达到一种平衡;基于负载均衡的目的,设计了基于 AHP的负载预测算法对系统负载进行预测,在不影响存储系统运行状况的基础上,提高了小文件的存储效率。
来源出版物:西安交通大学学报, 2011, 45(6): 59-63
入选年份:2015