论文部分内容阅读
随着信息技术的高速发展,数据资源也在不断膨胀。海量数据对文件系统不断提出更高的要求和挑战,传统的文件系统已不能满足高可扩展性、高可靠性、高可用性等新的要求,分布式文件系统应运而生。当前国内外已涌现出了众多优秀的分布式文件系统,但都应用在特定背景之下,无法满足本文所面临的海量顺序小文件存储要求。在此背景下,本文设计并实现了一个面向海量顺序小文件的分布式文件系统:SDFS(Distributed File System for Sequential Files)。
文章对比了目前几个主流的分布式文件系统,剖析其架构,总结其优缺点。然后研究相关理论技术,如数据通路、本地文件系统选择等,针对海量顺序小文件的特点,设计了SDFS系统。SDFS系统采用数据流和控制流分离的总体架构,其组成部分包括负载均衡器、存储节点和客户端。其中,负载均衡器维护元数据信息并进行负载调度,存储节点进行持久化的数据存储,而客户端负责发送数据操作请求。
SDFS设计了面向海量顺序小文件的存储优化方案。SDFS采用大文件块和特殊的块内文件结构对顺序小文件进行优化存储。文章介绍了大文件块的设计思路、文件块内部结构和文件块的关联方式。通过此优化方案,大大减少了数据操作过程中与负载均衡器的通信次数和文件的打开关闭次数,实现了顺序小文件的高效读写。在此基础上,通过索引文件,实现了高效的随机文件读取。
文章提出了基于负载均衡的存储策略。本文研究了静态负载均衡算法和动态负载均衡算法,并给出了SDFS采取的基于动态反馈的负载收集策略和基于概率模型的动态调度算法。SDFS将存储节点按存储容量百分比划分队列,以概率模型选取相应的队列,在队列中通过轮询策略选取相应节点,并在选取过程中跳过高负载节点,实现了文件块的均匀分布。同时,SDFS通过动态副本机制实现了数据的容灾方案。