论文部分内容阅读
随着数据规模的不断扩大,分布式文件系统以其海量数据支持、高可用、大规模并发访问和并发处理能力等优势获得越来越多的关注。基于开源分布式文件系统HDFS实现的分布式海量小文件系统SMDFS(Small Files Distributed File System)采用了聚合存储技术实现海量文件的存储。由于HDFS不支持文件的随机读写,SMDFS只能支持聚合空间的删除,实现小文件粒度的文件删除是个技术难点,且研究海量文件系统的删除技术具有一定的研究意义和应用价值。为了实现分布式文件系统中的文件删除,论文给出了元数据删除和无效存储空间整理作为两阶段实现的思路。然而现有的SMDFS文件系统从架构上文件的元数据和数据内容是分离和不紧密相关的,SMDFS可以快速从文件元数据定位到存储数据的数据块,然而从数据块追溯到文件的元数据的代价却很高,导致无效存储空间整理的难度很大。基于SMDFS系统架构的不足,论文提出了聚合单元的概念,细化聚合空间,每个数据文件对应一个聚合单元,增加了用来辅助从数据块可以追溯到元数据的小文件记录包结构,这样存储空间整理阶段以聚合单元粒度进行,极大提高存储空间整理的效率,并避免对系统整理性能造成较大影响。在元数据删除阶段,采用直接删除元数据,然后把文件删除操作记录缓存在客户端,并按照文件元数据所在的元数据簇组织操作记录。客户端定期检查缓存并将各元数据簇对应的操作记录提交至管理元数据簇的数据节点,由数据节点将记录追加到元数据簇对应的操作日志中,这样操作日志的并发问题得到有效控制,极大缩短了元数据删除的响应时间。本文给出了分布的文件碎片整理框架,采用名字节点作为任务分配者,数据节点作为任务执行者,框架分两部分:以聚合空间为单位,根据操作日志更新聚合空间下的小文件记录包并选出需要整理的数据文件;以数据文件为单位,通过遍历小文件记录包,将未删除的小文件迁移到其它的数据文件中,直接更新文件元数据,最后删除数据文件完成碎片整理。在SMDFS基础之上,基于聚合单元实现了一套分布式海量小文件系统SMDFS2.0,系统采用Client删除操作缓存机制以及Worker异常检测,进一步提高海量小文件删除的整理性能和系统的可用性。测试表明,支持文件删除的海量小文件系统SMDFS2.0与原有的SMDFS相比,文件的读写性能没有明显下降;SMDFS2.0文件删除性能较HDFS和Linux文件系统有明显优势;碎片整理时,系统的写性能会降低30%,读性能会降低18%;SMFDS2.0以聚合单元为单位数据迁移在效率上明显高于以小文件为单位数据迁移。