《毕设论文范文——F2FS文件系统实现分析及其在移动设备上的优化》由会员分享,可在线阅读,更多相关《毕设论文范文——F2FS文件系统实现分析及其在移动设备上的优化(69页珍藏版)》请在金锄头文库上搜索。
1、 本 科 生 毕 业 论 文(设计)题目F2FS文件系统实现分析及其在移动设备上的优化姓名与学号 指导教师 年级与专业 信息与通信工程所在学院 信息与电子工程学系 1摘 要随着移动设备产品的不断普及和闪存容量的增大,闪存文件系统类型成为一个越来越影响产品性能的因素。2012年三星公司发布闪存友好型文件系统F2FS,其对NAND闪存存储介质做了友好设计,不仅加快了数据的存取速度,而且解决了旧式日志结构文件系统存在的问题。但由于移动设备的存储空间十分有限,F2FS在数据存储上存在的空间浪费在一定程度上影响了其在移动设备上的应用。因此本文通过深入分析F2FS的实现以及其文件索引方式,设计并完成普通文
2、件和目录文件的内联技术,解决F2FS在数据存储上的空间浪费问题,以进一步提升该文件系统的性能。关键词:F2FS,存储空间浪费,数据内联,目录内联AbstractWith the rapidly increasing requirement of mobile devices and the larger and larger capacity of Flash memory , flash file system plays a more and more important role in product performance. In 2012, Samsung released a ne
3、w flash-friendly file system based on Log-Structured, namely F2FS. F2FS, which is specially designed for NAND flash, not only speeds up the data access, but solves the two problems arose in the traditional LFS. Due to the limited storage space of mobile devices, however, the application of F2FS on m
4、obile devices is limited by its waste of storage space to some extent. So according to the implementation of F2FS, this paper works out the function called inline data and inline directory to reduce the waste and improve the performance.Key words:F2FS,waste of storage space,inline data,inline direct
5、ory目录第一章 引言11.1 背景11.2 已往的研究闪存文件系统11.2.1 闪存文件系统JFFS21.2.2 闪存文件系统JFFS221.2.3 闪存文件系统YAFFS31.3 最新的研究成果F2FS31.4 本文的主要内容51.4.1 论文的主要内容51.4.2 论文的结构5第二章 F2FS概述及实现分析62.1 F2FS概述文件系统的基本功能62.1.1 磁盘资源管理功能62.1.2 文件管理和操作的实现62.1.3 文件系统实现需求82.2 F2FS概述磁盘布局和主要数据结构82.2.1 F2FS的磁盘布局82.2.2 F2FS主要数据结构92.3 F2FS实现分析recovery
6、和checkpoint机制122.3.1 磁盘写入与checkpoint机制132.3.2 recovery机制14第三章 F2FS在移动设备上的优化普通文件数据内联163.1 普通文件数据内联技术概述163.1.1 普通文件数据存储存在的问题163.1.2 普通文件数据内联技术的基本思路173.2 普通文件数据内联技术实现183.2.1 设置支持数据内联的标志位及宏定义183.2.2 处理数据内联的关键函数203.2.3 增加普通文件内联数据的文件操作253.3 普通文件数据内联技术测试273.3.1 存储性能测试273.3.2 I/O性能测试29第四章 F2FS在移动设备上的优化目录文件数
7、据内联344.1 目录文件数据内联技术概述344.1.1 目录文件数据存储的问题344.1.2 目录文件数据内联技术的基本思路344.2 目录文件数据内联技术实现354.2.1 目录文件数据内联的宏定义354.2.2 更新room_for_filename函数364.2.3 更新处理数据内联的关键函数374.2.4 增加目录文件内联数据的文件操作394.3 目录文件内联数据技术测试414.3.1 存储性能测试414.3.2 I/O存储测试44第五章 总结475.1 遇到的问题475.2 取得的成果485.3 后期展望48参考文献49附录A F2FS内联代码(部分)51附录B 文件读写过程代码流
8、程分析56B1 文件读过程56B2 文件写过程56附录C 文件系统性能测试57C1 iozone测试内容57C2 iozone测试方法58第一章 引言1.1 背景随着移动设备的普及,智能手机和平板电脑的出货量都呈现两位数的增长,人们已经越来越依赖于移动设备上的图片、视频功能来记录信息。根据Display Search的预测,2014年全球手机市场的出货量将由2013年的近17.5亿台增长至近18.7亿台,其中随着智能手机需求量的不断攀升,智能手机的出货量相较2013年增长25%,将从2013年的9.6亿台增长到2014年的近12亿台1。而平板电脑的出货量也将从2013年的2.5亿台增长至201
9、4年的3.2亿台,增长近28%。面对如此大的需求,各移动设备商家除了增加自身产品的出货量,更应该不断提升产品性能,以抢占消费者换机消费的商机。提升移动设备产品的性能,需重点关注的是数据的存储策略和读写速度。在存储方面,移动设备绝大部分采用了闪存存储方式,随着闪存容量的不断扩大,选择一个适合闪存的文件系统成为了提升产品性能的关键。闪存文件系统是一种设计用于在闪存上存储文件的文件系统2。随着移动设备产品的不断普及,加之闪存容量的不断增大,闪存文件系统已经被广泛地应用于移动设备存储。在移动设备存储上应用闪存文件系统的理由有三:(1) 擦除区块:由于闪存存储的特性,数据块在重新写入数据前需要进行擦除操
10、作。擦除数据块的操作可能造成长延时,闪存文件系统对用户隐藏这一过程能够很大程度上提升设备性能。(2) 随机访问:由于随机访问的特性,闪存避免了费时的寻址过程,不存在寻址延迟。(3) 写入平衡:由于闪存存储的写前擦除性能,导致经常写入的区块容易损坏,而闪存文件系统能够使数据均匀地写到整个存储设备3。1.2 已往的研究闪存文件系统目前研究的闪存文件系统大多基于日志文件系统(LFS),这是因为日志文件系统可以实现闪存文件系统所需的上述三个特点。这类文件系统主要有JFFS,JFFS2和YAFFS。1.2.1 闪存文件系统JFFS闪存设备日志型文件系统(JFFS),由瑞典的AXIS Communicat
11、ion AB开发,是最早的闪存文件系统之一4。JFFS文件系统根据NOR闪存的存储特性进行设计,采用日志结构,解决了很大闪存设备存在的问题。tailheadJFFS作为日志文件系统,将闪存存储设备看作一个大的循环日志,文件的更新数据会被写入日志末尾的数据块中,同时日志最前面无效的数据块将被回收5。在处理垃圾回收时,JFFS采用这样一种策略:将所有有效的数据块移至日志末尾,并对无效数据块进行擦除,其大致过程如图1.1所示。垃圾回收前垃圾回收tailhead无效块未使用块垃圾回收后有效块图1.1 JFFS在垃圾回收前后磁盘情况1.2.2 闪存文件系统JFFS2顾名思义,JFFS2是JFFS的继承者
12、,但它是一款专门针对NAND闪存存储设计的日志文件系统,在设计时修改了JFFS的底层算法,剔除了循环日志结构,并改善了读写平衡和压缩性能6。在实现过程中,JFFS2对每个数据块单独操作,并维护node和log的实例链表。其中节点块包含了文件实际的数据,日志则用来保存更新的数据信息。文件的数据从第一个数据块按顺序读入,当文件数据被更新时,更新的数据 通过日志形式写入其他区域,这种处理方式的缺点是可能导致文件数据块分散在闪存设备的整个空间7。在垃圾回收方面,JFFS2通过合理的算法智能地判别需要被回收的数据块,将有效数据移出至另外一个数据块中,并将该数据块擦除后供后续写入使用。该算法的大致思路如图
13、1.2所示。块分配机制CLEAN 链表DIRTY 链表FREE 链表垃圾回收P(0.01)P(0.99)图1.2 JFFS2垃圾回收机制尽管JFFS2相对于JFFS而言进行了不少的改进和提升,但应用于在NAND闪存时仍存在许多不足之处。如(1)由于node和log分开,需要频繁的擦除操作,导致挂载时间过长;(2)随着闪存容量增加,仍会出现内存消耗过大的问题。1.2.3 闪存文件系统YAFFSYAFFS是第一款严格意义上专门针对NAND闪存开发的文件系统,该文件系统存在两个版本:YAFFS和YAFFS2,两者差别在于缓存页的大小,前者仅支持512bytes,而后者则支持2KB8。YAFFS并没有
14、像其他闪存文件系统那样使用闪存转换层(FTL)来模拟块设备,而是直接在闪存设备上应用文件系统。该文件系统一般仅用于小的NAND闪存设备。在垃圾回收方面,YAFFS处理方式与其他闪存文件系统不同,其使用单调递增的序列号额外对数据块进行标记,使得文件系统可以快速找到标识有效索引节点inode9。YAFFS通过保存在缓存中的树结构来表示闪存设备的块结构,以实现快速挂载。1.3 最新的研究成果F2FS尽管已往对闪存文件系统的研究层出不穷,但目前存在的闪存文件系统在应用于移动设备的NAND闪存上时仍会存在很多不足。此外,基于日志结构的闪存文件系统还存在着两个方面的普遍问题,一是wandering tre
15、e引起的滚雪球效应(更新信息的传播)问题,二是cleaning process可能产生的不可预料的长延时10。为此,三星公司在2012年提出一款专门为NAND闪存设计的文件系统闪存友好型文件系统(F2FS)。该文件系统不仅解决了上述日志文件系统存在的两个问题,而且其特有的数据恢复机制实现了数据恢复的最大化,大大地提升了系统性能。在摩托罗拉公司公布的对摩托罗拉Moto X的评测报告中,对F2FS文件系统进行的相关测试很好地体现了该文件系统的优点。测试时Moto X对系统分区采用常见的ext4文件系统,而用户数据分区则采用F2FS。具体测试情况如图1.3a、b、c、d所示。图1.3 Moto X对F2FS测试报告a) 4K随机读性能;b)2 4K随机写性