海量小文件存储的优化毕业论文
2022-05-16 20:31:05
论文总字数:22964字
摘 要
随着互联网的发展,其应用范围也在不断扩大,用户使用而产生的零散数据也在呈指数增长,对于这些零散数据,一方面是使用较为传统的数据库进行保存,而对于大量图片信息,文本信息和一些流信息,全部存进数据库会加大数据库对于正常数据查询的压力,这时将这些信息存入磁盘中是最佳的选择。而将如此海量的零散数据存入磁盘中又对磁盘的存储效率以及文件系统对小文件的处理效率提出了挑战。
本系统采用了现在较为流行的文件合并存储方案来解决小文件问题,并且为提高通用性而避开修改底层原始文件系统,转而采用在通用文件系统之上架设一层小文件系统,拦截Windows对于文件的请求并进行判断,对于小文件的请求则提供了完整的对上层的接口并实现了接口的实现。包括:创建,读取,写入,关闭等等请求,以及对于各种类型查询的实现。
系统还同时实现了对于基于块的文件的索引管理,基于块的数据文件采用页表的形式进行管理,并且为了节省内存空间和加快寻块速度而采用了可扩展的页表。系统实现了将文件偏移转译到三级的可扩展页表中的目标页面以及页内偏移。
关键字:文件系统,合并存储,元数据,缓存
Optimization of Massive Small File Storage
ABSTRACT
With the development of the Internet, its scope of application also continues to expand, users of scattered data is in exponential growth, for these scattered data, on the one hand is using more traditional database to save, and for a large number of picture information, text information and some flow information, all put into the database will increase the database for the pressure normal data query, then this information is stored in the disk is the best choice. And so the massive scattered data stored in the disk and the storage efficiency of the disk and the file system to the processing efficiency of small file proposed a challenge.
This system uses now popular file merge storage scheme to solve the problem of small files, and to improve the versatility and avoid modifying the underlying original file system, instead of using the set up a small file system on the basis of the general file system, intercepting windows for the requested file and judge, a request for a small file provides a complete interface to the upper layer and the implementation of the interface. Including: create, read, write, off, and so on the request, as well as the realization of various types of inquiries.
System also realizes based on block file index management, based on block data files using page table management, and in order to save memory space and accelerate the search speed and the use of the extensible page table. The system has realized the target page and page offset of the extensible page table of the file migration to three levels..
Keywords: File System, Merged Storage, Metadata, Cache
目录
摘要 Ⅰ
ABSTRACT Ⅱ
第一章 绪论 1
1.1 什么是小文件问题 1
1.2 小文件问题的几种解决方法 2
1.2.1 硬件优化 2
1.2.2 缓存优化 2
1.2.3 小文件合并存储 2
1.2.4 元数据管理优化 3
1.3 现有小文件解决方案 3
1.3.1 HDFS 3
1.3.2 TFS 4
1.3.3 HAYSTACK 4
1.4 本文的主要研究工作 4
第二章 开发相关原理和工具 5
2.1 Windows文件系统结构 5
2.2 开发工具 7
2.2.1 Visual Studio 7
2.2.2 Windows Driver Kit 7
2.3 调试工具 7
2.3.1 Vmware工作站 7
2.3.2 WinDbg 8
第三章 系统设计 9
3.1 优化思路 9
3.1.1 文件合并方法 9
3.1.2 缓存管理方法 10
3.2数据结构设计 10
3.2.1 索引文件设计 10
3.2.2 页表设计 11
3.2.3 管理对象设计 12
3.3 系统结构 14
第四章 系统实现 16
4.1 设备绑定 16
4.1.1 文件系统绑定 16
4.1.2 卷设备绑定 16
4.2 请求处理 16
4.2.1 创建请求处理 16
4.2.2 读取请求处理 18
4.2.3 写入操作 21
4.2.4 查询请求 21
4.2.5关闭请求 22
4.3 小文件集合操作 23
4.3.1 从文件对象中获取文件路径 23
4.3.2 索引文件解析 24
4.3.3 页表文件解析 24
4.3.4 插入页面节点 24
4.3.5 写回机制 27
4.4 系统性能测试 27
第五章 总结与展望 29
5.1 总结 29
5.2展望 29
参考文献 31
第一章 绪论
1.1 什么是小文件问题
随着互联网的发展,其应用范围也在不断扩大,用户使用而产生的零散数据也在呈指数增长,对于这些零散数据,一方面是使用较为传统的数据库进行保存,而对于大量图片信息,文本信息和一些流信息,全部存进数据库会加大数据库对于正常数据查询的压力,这时将这些信息存入磁盘中是最佳的选择。
而将如此海量的零散数据存入磁盘中又对磁盘的存储效率以及文件系统对小文件的处理效率提出了挑战,当目录中包含大量小文件时,文件产生的元数据将会急剧增大,并且元数据会随着文件数量增加而分散在整个硬盘中,为了找到一个或者数个小文件不得不翻箱倒柜的去寻找该文件的元数据成为很多传统主流文件系统在面对海量小文件时的常态,而找到元数据后又不得不到磁盘的另一头去读取文件中的数据,这不仅加重了磁盘的压力,更使得缓存在不断刷新,命中率急剧下降。不仅仅是互联网产生的小文件,动画游戏渲染以及许多程序加载时都需要载入大量的小文件,传统的文件系统在面对这些操作时已经显得力不从心。
请支付后下载全文,论文总字数:22964字