论文部分内容阅读
随着互联网的普及和覆盖率提升,人们的日常生活已经开始全方位接入互联网。由此带来的是数据量的急剧增长,和数据类型的多样化。近些年不断兴起的如短视频直播网站,图片,社交网站等产生的单个数据大小都相对较小,常见在几十KB到几MB之间不等。但是传统的分布式文件系统如GFS,HDFS等都是为大文件存储而优化过的,在面对海量小文件的时候,性能都会急剧下降甚至无法提供服务。如何设计实现一个高吞吐量,高可用的小文件系统也是目前研究的一个热点。FastDFS是一个开源的分布式文件系统,它的主要功能包括文件存储、文件同步和文件访问等,同时能提供大容量和负载均衡的要求。对比其他的分布式文件系统,它的优势是量级较轻,同时又能满足高并发访问,易于扩展等需求。为了针对小文件的存储优化,FastDFS天生支持对小文件进行了合并存储,将大量的小文件聚集成大文件来统一存储,减少元数据的数目,进而提高文件的访问性能。本文从语音小文件存储的应用场景出发,简要介绍了语音小文件存储和分析的特点,对文件聚合算法进行了改进,提出了一种高效的小文件数据分布式文件系统EastDFS(Efficient Access of Small Data in Distributed File Systems)。EastDFS的主要优势在于能加快文件读取的速率,满足一次写入多次读取的需求。EastDFS基本思路是修改文件的聚合算法,通过合理的将同个类型的文件聚合在一起,加快文件读取速率。修改聚合算法之后引入了部分元数据信息,为了保证系统的高可用,则需要对这些元数据信息进行持久化和同步。此外,还将原来的FastDFS系统改进后作为一个数据中心,构造一个能支撑海量存储的分布式系统架构,避免单个机器成为系统瓶颈。更改文件聚合算法之后招致了随机写的问题,为了加快写入速度,本文引入了缓存层。在进行文件写入的时候,直接将小文件的数据写入到缓存中,再由后台线程定时的将聚合起来的文件刷新到磁盘中。缓存算法是基于LRFU进行改进,针对实际命中的贡献率,以及在预测块到达时间上融合了语音小文件独有的特性,更能有效提高命中率。在文件读取方面,将原来单个请求聚合在一起,一次请求多个数据,有效的利用文件聚合后能连续读取的特性,加快系统的读取性能。