(计算机软件与理论专业论文)deskfs日志文件系统的设计与实现.pdf_第1页
(计算机软件与理论专业论文)deskfs日志文件系统的设计与实现.pdf_第2页
(计算机软件与理论专业论文)deskfs日志文件系统的设计与实现.pdf_第3页
(计算机软件与理论专业论文)deskfs日志文件系统的设计与实现.pdf_第4页
(计算机软件与理论专业论文)deskfs日志文件系统的设计与实现.pdf_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

哈尔滨理工大学工学硕士论文 d e s k f s 日志文件系统的设计与实现 摘要 文件系统是l i n u x 操作系统的重要组成部分。传统文件系统技术成熟、 性能稳定,但其耗时的崩溃恢复机制使现代操作系统面临着极大地安全隐 患。日志文件系统的出现有效地解决了这一问题,它加入了对文件修改的日 志记录,在系统崩溃恢复时,日志文件系统利用日志记录可以很快地恢复文 件系统的一致性。 然而,日志文件系统仍有很多问题有待解决。作为日志文件系统主要实 现手段的日志块设备j b d 方式尽管简单高效,但其内部机制同样带来诸多 问题,其中最主要的是孤文件问题。另外,日志技术会使文件系统有大量更 新信息需要写入,从而导致文件系统整体性能的下降。因此,如何提高日志 文件系统的效率性能也成为了当前l i n u x 下文件系统的研究重点。 本课题恰恰是针对这两个影响日志文件系统性能的问题提出了解决方 案,并在e x t 3 日志文件系统的基础上进行相应的性能改进,设计并实现了 d e s k f s 日志文件系统。 本文的主要工作是为省攻关项目多媒体及桌面办公增强型l i n u x 系 统设计一个专用文件系统。该文件系统采用j b d 实现日志技术,并提出一 种判断静态域的方法解决孤文件问题,即从操作系统的内部机制考虑,解决 了原始处理方法中出现的空间占有问题。并且,d e s k f s 日志文件系统为提 高文件系统的性能,从磁盘空间分配方面考虑,针对该操作系统所处理文件 类型的特殊性,提出了一种可变预留块组分配策略。该策略采用基于盘区的 分配思想,实现了预留空间在内存中的动态分配,以更好地适应操作系统所 使用的各种环境。 最后,通过专用测试软件对d e s k f s 文件系统进行了测试,结果表明 d e s k f s 文件系统的整体性能良好,在多线程测试方面性能优于e x t 3 文件系 统。 关键词文件系统;日志;可变预留块组;孤文件 哈尔滨理工大学工学硕士论文 d e s i g na n di m p l e m e t a t i o n o nd e s k fs j o u r n a li n gfi l es y s t e m a b s t r a c t f i l e s y s t e mi sa ni m p o r t a n tp a r to fm o d e r no p e r a t i n gs y s t e m ,a n di se x p e c t e d t ob eb o t hf a s ta n de x c e e d i n g l yr e l i a b l e 。h o w e v e r ,a f t e ra nu n e x p e c t e dr e b o o t ,i t m a y t a k es o m et i m ef o ras y s t e mt or e c o v e ri t sf i l e s y s t e mt oac o n s i s t e n ts t a t e a s an e w l y d e v e l o p e dt e c h n o l o g y ,j o u m a l i n gf i l e s y s t e m i n c r e a s et r a d i t i o n a l f i l e s y s t e m ss p e e da n da v a i l a b i l i t yo fc r a s hr e c o v e r yb ya d d i n gat r a n s a c t i o n a l j o u r n a lt ot h ef i l e s y s t e m h o w e v e r , t h e r ea r ean u m b e ro fi s s u e sa tjo u r n a l i n gf i l e s y s t e m j o u r n a l i n g b l o c kd e v i c ei sas i m p l ea n de f f e c t i v em o d et oi m p l e m e n tt h ej o u m a l i n g t e c h n o l o g y , w h i c hs t i l lh a ss o m ei n t e r n a lm e c h a n i s mi s s u e s ,s u c ha st h eo r p h a n f i l e s o t h e r w i s e ,t h ei o sw h i c hr e s u l tf r o mw r i t i n gu p d a t e sw i l la f f e c tt h es p e e d o ft h ef i l e s y s t e m s ot h ep e r f o r m a n c es h o u l ds u f f e rs e r i o u s l ya st h er e s u l to f u s i n gt h ejo u r n a l i n gf i l e s y s t e m t h i st h e s i si n t e n d st od e s i g nas u i t e djo u r n a l i n gf i l e s y s t e mf o ra no p e r a t i n g s y s t e mw h i c hn a m e d “t h em u l t i m e d i ao f f i c i a ld e s k t o pl i n u xs y s t e m ” t h et h e s i si n t r o d u c e st h eb a c k g r o u n do fjo u r n a l i n gf i l e s y s t e m ,a n ds h o w s s o m em o d e l sa n dt h e i rf e a t u r e s t h e ni td i s c u s s e sm a i nt e c h n o l o g yo ft h el i n u x f i l e s y s t e m :t h e v i r t u a lf i l e s y s t e m t h ed i s ka l l o c a t i o na n dt h eo r p h a nf i l e s p r o b l e m f u r t h e r , t h et h e s i sc o m p a r e st h eb l o c ka l l o c a t i o nt ot h ee x t e n ta l l o c a t i o n , a n dp r e s e n t san e ww a yw h i c hn a m e dd y n a m i cr e s e r v e db l o c ka l l o c a t i o nt o a l l o c a t ed i s k i ti sb a s e do nt h ee x t e n ta l l o c a t i o n ,a n di tr e a l i z e st h et h i n gt h a t d y n a m i ca l l o c a t ed i s ki nt h em e m o r y f u r t h e rm o r e ,t h ep a p e rs o l v e st h eo r p h a n f i l e sb yj u d g i n gt h es t a t i cs t a t ew i t hag o o de f f e c t f i n a l l y , w ed e s i g na n di m p l e m e n tt h ed e s k f sj o u m a l i n gf i l e s y s t e mu s i n g t h em e t h o d sa b o v e ,a n dt e s ti t e x p e r i m e n t ss h o wt h a tt h ed e s k f sf i l e s y s t e mi s i i b e t t e rt h a nt h et r a d i t i o n a lf i l e s y s t e m k e y w o r d sf i l e s y s t e m ,j o u m a l ,d y n a m i cr e s e r v e db l o c k ,o r p h a n f i l e 1 u 哈尔滨理工大学硕士学位论文原创性声明 本人郑重声明:此处所提交的硕士学位论文d e s k f s 日志文件系统的设计 与实现,是本人在导师指导下,在哈尔滨理工大学攻读硕士学位期间独立进行 研究工作所取得的成果。据本人所知,论文中除已注明部分外不包含他人已发 表或撰写过的研究成果。对本文研究工作做出贡献的个人和集体,均已在文中 以明确方式注明。本声明的法律结果将完全由本人承担。 作者签名: 载彤形 日期:洲;年弓月加日 哈尔滨理工大学硕士学位论文使用授权书 d e s k f s 日志文件系统的设计与实现系本人在哈尔滨理工大学攻读硕士 学位期间在导师指导下完成的硕士学位论文。本论文的研究成果归哈尔滨理工 大学所有,本论文的研究内容不得以其它单位的名义发表。本人完全了解哈尔 滨理工大学关于保存、使用学位论文的规定,同意学校保留并向有关部门提交 论文和电子版本,允许论文被查阅和借阅。本人授权哈尔滨理工大学可以采用 影印、缩印或其他复制手段保存论文,可以公布论文的全部或部分内容。 本学位论文属于 保密口,在年解密后适用授权书。 不保密曰。 ( 请在以上相应方框内打) 作者签名:鼋氮彤彤 日期:如孑年弓月届1 7 t 导师签名:刊闭互辉吼加矿年乡月侈日 哈尔滨理工大学工学硕士论文 1 1 课题来源和背景 第l 章绪论 本课题来源于黑龙江省教育厅攻关项目( 开放) 多媒体及桌面办公 增强型l i n u x 系统,以下简称d e s k - t o p 操作系统。 l i n u x 操作系统是操作系统家族中最优秀的成员,是近年来用户数量增长 最快的系统软件n 1 。l i n u x 操作系统是多用户、多任务的操作系统,具有强大 的可移植性、良好的编程环境和强大的网络功能让1 。但是由于l i n u x 源于 u n i x ,因此其图形界面、人性化操作等方面远没有w i n d o w s 的优势。本系统 主要着力于更加人性化的操作界面、高效简洁的操作性,而且在应用软件集成 软件依赖等方面都取得了一定的突破性进展。在保持通用的l i n u x 系统稳定特 性的基础上,针对当前的l i n u x 系统在应用方面的不足对l i n u x 系统得多媒体 性及用户界面的亲和力进行了增强,提高其在易用性、办公自动化( o a ) ,以 及对于多媒体方面的处理能力。 作为操作系统最重要的两部分之一的文件系统b 1 ,要达到本系统的预期效 果就必须进行详细周密的设计。l i n u x 操作系统下的文件系统种类众多,不同 的文件系统在不同方面有着不同的优势,因此设计一个适合本系统要求的文件 系统就显得尤为重要了。 1 1 1l i n u x 文件系统简介 在l i n u x 系统早期,它完全是在m i n i x 操作系统下交叉开发的h 1 。l i n u x t o r v a l d s 选择这种策略是因为这允许它在两个系统之间共享磁盘,而不需要从 头创建一个新的文件系统。m i n i x 文件系统是一种有效的、错误相对较少的软 件。但是,m i n i x 文件系统设计中的限制条件太苛刻了,因此人们开始考虑并 着手在l i n u x 中实现新的文件系统。 为了使新的文件系统可以更容易地添加到l i n u x 内核中,人们开发了一个 虚拟文件系统( v i r t u a lf i l es y s t e m ,v f s ) 层拍1 。在集成到l i n u x 内核中之前,v f s 层最初是由c h r i sp r o v e n z a n o 编写的,后来又由l i n u xt o r v a l d s 改写。 将v f s 层集成到内核之后,1 9 9 2 年4 月实现了一个名为扩展文件系统 ( e x t e n d e df i l es y s t e m ,e x t ) 的新文件系统,并添加到l i n u x0 9 6 中。这个新的文 哈尔滨理工大学工学硕士论文 件系统消除了m i n i x 两个大的限制:它的最大值是2 g b ,最长的文件名是2 5 5 个字符。虽然e x t 文件系统已经在m i n i x 文件系统得基础上有了很大的改进, 但是它仍然存在一些固有的缺点。它不支持单独访问、信息节点( i n o d e ) 修改以 及数据修改时间戳。文件系统使用内核中的链接列表来跟踪文件系统中的可用 块和信息节点,但是它也引入了新的缺点:随着文件系统使用的增多,这些列 表变得很混乱,文件系统将会碎片化,这导致了文件系统总体性能的降低。 为了解决这些问题,1 9 9 3 年初发布了两个新的文件系统:x i a 文件系统 ( x i a f s ) 和第二扩展文件系统( e x t 2 f s ) 阻1 。x i a 文件系统主要以m i n i x 文件系统代 码为基础,只是添加了一些基本的改进。x i a 文件系统提供了长文件名,支持 更大的分区,并且支持三种时间戳:创建时间、修改时间和访问时间口1 。另一 方面,e x t 2 f s 以e x t 文件系统代码为基础,它包含了许多改进。 最初发布这两个新的文件系统时,虽然它们具有不同的实现方式和源代 码,但是它们实际上提供了相同的特性集。由于x i a f s 的设计是最小的,因此 事实上它比e x t 2 f s 更稳定。最终,e x t 2 f s 中的错误的到了修复,并且集成了许 多改进和新特性。目前,e x t 2 f s 非常稳定,事实上已经成为了标准的l i n u x 文 件系统馇1 。 文件系统是l i n u x 操作系统中的重要组成部分,用来组织和管理保存在磁 盘上的数据。文件系统的一个重要作用就是保证了数据的完整性,既保证写入 磁盘的数据和读出的数据内容上相一致,因此文件系统直接影响着操作系统的 稳定性和可靠性阳1 。l i n u x 操作系统中的文件系统通常有两类,即非日志式文 件系统和日志式文件系统,以下简单介绍两类文件系统。 1 1 2 非日志式文件系统 非日志式文件系统即传统的文件系统。它是通过为文件分配数据块的方式 把数据存储在磁盘上n0 1 。每个文件在磁盘上都会占用一个以上的磁盘扇区,文 件系统的工作就是维护文件在磁盘上的存放,记录文件占用了哪几个扇区。另 外,扇区的使用情况也要记录在磁盘上。文件系统在读文件时,首先会找到文 件使用的扇区号,然后从中读出文件内容。如果要写文件,文件系统首先找到 可用扇区,进行数据追加。非日志式文件系统能够工作得很稳定,并且有崩溃 恢复机制1 。 非日志式文件系统的种类很多:如1 9 9 3 年发布的文件系统e x t 2 f s ,它是 作为所有l i n u x 发行版本的基本文件系统。此外,l i n u x 支持的其它非日志文 哈尔滨理工大学工学硕士论文 件系统还有:f a t 、v f a t 、h p f s ( o s 2 ) 、n t f s ( w i n d o w sn t ) 、s u n 的u f s 等。 1 1 3 日志式文件系统 为了避免磁盘访问操作成为整个系统的瓶颈,文件系统大多以异步方式工 作,因此如果磁盘操作被突然中断很可导致数据的丢失n 2 1 。传统的文件系统在 系统崩溃后通过使用文件系统检查器e 2 f s c k ( e x t e n d e d2f i l es y s t e mc h e c k ) 来修 复文件系统的一致性,e 2 f s c k 会扫描整个文件系统,试图恢复损坏的元数据信 息。系统会计算出被损坏的数据的位置,然后或是通过恢复冗余的元数据信 息,或是直接删除被损坏或是元数据信息损坏的文件。很明显,要检测的文件 系统越大,检测过程费时就越长。对于一些大型文件系统可能需要好几个小 时,这对许多应用来说是不可接受的。然而日志式文件系统提供了一种机制改 进了这一过程n 3 1 。 日志式文件系统是在传统文件系统的基础上,加入了文件系统更改的日志 记录。在日志式文件系统中,所有的文件系统的变化、添加和改变都被记录到 “日志”中n 屯幅1 。每隔一定时间,文件系统会将更新后文件的元数据及文件内容 写入磁盘,之后删除这部分日志,重新开始新日志记录。如果崩溃在日志内容 被写入磁盘之前发生,那么原始数据仍然在磁盘上,丢失的是最新的更新内 容。如果崩溃在真正的写操作时发生( 也就是日志内容已经更新) ,日志文件系 统的日志内容则会显示进行了哪些操作,因此在系统重启时,它能够轻易地根 据日志内容,很快恢复被破坏的数据。这样在任何一种情况下,都会得到完整 的数据,不会出现损坏的分区的情况。由于恢复过程是根据日志进行,因此整 个过程只需要几秒钟到几分钟的时间。 1 2 国内外研究现状 日志式文件系统的提出不仅解决了数据恢复的问题;同时更重要的,解决 了l i n u x 操作系统的安全问题。通过日志可以方便地查找出系统错误或受到的 入侵,全面的系统安全解决方案必须依托于日志。因此,现阶段l i n u x 操作系 统普遍应用日志式文件系统。 目前,主流的开源日志式文件系统有:e x t 3 、r e i s e r f s 、x f s 和j f s 等 等。 哈尔滨理工大学工学硕士论文 1 2 1 e x t 3 文件系统 e x t 3 文件系统是直接从e x t 2 文件系统发展而来,目前,e x t 3 文件系统己 经非常稳定可靠,它完全兼容e x t 2 文件系统,e x t 2 用户可以平滑地过渡到一 个日志功能健全的文件系统n 引。 e x t 3 文件系统本身不处理日志,而是利用日志块设备或叫j b d 的通用内 核层n 。e x t 3 文件系统调用j b d 例程以确保在系统万一出现故障时它的后续 操作不会损坏磁盘数据结构。e x t 3 与j b d 之间的交互本质上基于三个基本单 元:日志记录,原子操作和事务。 日志记录本质上是文件系统将要发出的低级操作的描述。在某些日志文件 系统中,日志记录只包括操作所修改的字节范围及字节在文件系统中的起始位 置。然而,j b d 层使用的曰志记录由低级操作所修改的整个缓冲区组成。这种 方式可能浪费很多日志空间( 例如,当低级操作仅仅改变位图的一个位时) ,但 是,它还是相当快的,因为j b d 层直接对缓冲区和缓冲区首部进行操作。 出于效率的原因,j b d 层对日志的处理采用分组的方法,即把属于几个原 子操作处理的日志记录分组放在一个单独的事务n 鄙中。此外,与一个处理相关 的所有日志记录都必须包含在同一个事务中。一个事务的所有日志记录都存放 在日志的连续块中。j b d 层把每个事务作为整体来处理。例如,只有当包含在 一个事务的日志记录中的所有数据提交给文件系统时才回收该事务所使用的 块。 e x t 3 既可以只对元数据做日志,也可以同时对文件数据块做日志。具体来 说,e x t 3 提供以下三种日志模式n9 1 : 1 日志( j o u r n a l ) 文件系统所有数据和元数据的改变都记入日志。这种模 式减少了丢失每个文件所作修改的机会,但是它需要很多额外的磁盘访问。例 如,当一个新文件被创建时,它的所有数据块都必须复制一份作为日志记录。 这是最安全也是最慢的e x t 3 日志模式。 2 预定( o r d e r e d )只有对文件系统元数据的改变才记入日志。然而,e x t 3 文件系统把元数据和相关的数据块进行分组,以便把元数据写入磁盘之前写入 数据块。这样,就可以减少文件内数据损坏的机会。例如,确保增大文件的任 何写访问都完全受日志的保护。这是缺省的e x t 3 日志模式。 3 写回( w r i t e b a c k )只有对文件系统元数据的改变才记入日志。这是从其 他日志文件系统借鉴过来的,也是最快的模式。 哈尔滨理工大学工学硕士论文 e x t 3 文件系统的缺点是没有现代文件系统所具有的能提高文件数据处理速 度和解压的高性能,另外使用e x t 3 文件系统时要注意硬盘限额问题。 1 2 2 r e i s e r f s 文件系统 r e i s e r f s 是一个非常优秀的文件系统,是由h a n sr e i s e r 和他的n a m e s y s 开发组共同开发设计的呦1 。h a n s 和他的组员们相信最好的文件系统是那些能够 有助于创建独立的共享环境或者命名空间的文件系统,应用程序可以在其中更 直接、有效和有力地相互作用。目前,r e i s e r f s 可轻松管理上百g 的文件系 统,这在企业级应用中非常重。 r e i s e r f s 是根据面向对象的思想设计的,由语义层( s e m a n t i cl a y e r ) 和存储 层( s t o r a g el a y e r ) 坌h 成啦。语义层主要是对对象命名空间的管理及对象接口的定 义,以确定对象的功能。存储层主要是对磁盘空间的管理。语义层与存储层是 通过键( k e y ) 联系的。语义层通过对对象名进行解析生成键,存储层通过键找到 对象在磁盘上存储空间,键值是全局唯一的。 与e x t 3 一样,r e i s e r f s 也有三种日志模式,即i o u r n a l ,o r d e r e d , w r i t e b a c k 。同时,r e i s e r f s 引入了两种日志优化方法:c o p y - o n - c a p t u r e 和s t e a l o n - c a p t u r e 。 c o p y o n - c a p t u r e - 当一个事务要修改的块在另一个未提交的事务中时,就 把这个块复制一份,这样这两个事务就可以并发进行了。s t e a l o n - c a p t u r e :当 一个块被多个事务修改时,只有最晚提交的那个事务才把这个块实际写入文件 系统,其他事务都不写这个块。 r e i s e r f s 也同样有很多不足之处。如r e i s e r f s 每升级一个版本,都将要将 磁盘重新格式化一次,这给用户带来了极大的不便。 1 2 3x f s 文件系统 x f s 是由s g i 公司为了替代原有的非日志e f s 文件系统而开发的。它也 是一种高性能的6 4 位文件系统,通过保持c a c h e 的一致性、定位数据和分布 处理磁盘请求来提供对文件系统数据的低延迟、高带宽的访问心引。x f s 最初存 在于i r i x 操作系统中,s g i 公司在2 0 0 0 2 0 0 1 年将其从i r i x 移植到了l i n u x 上。 1 日志记录x f s 也是一种日志式文件系统,它允许意外重新引导后的快 速恢复。像r e i s e r f s 一样,x f s 使用逻辑日志:它不像e x t 3 那样将文件系统 哈尔滨理工大学工学硕士论文 块记录到日志,而是使用一种高效的磁盘格式来记录元数据的变动瞳3 1 。就x f s 而言,逻辑日志记录是很适合的;在高端硬件上,日志经常是整个文件系统中 争用最多的资源。通过使用节省空间的逻辑日志记录,可以将对日志的争用降 至最小。另外,x f s 允许将日志存储在另一个块设备上,例如,另一个磁盘上 的一个分区。这个特性很有用,它进一步改进了x f s 文件系统的性能。 2 延迟分配延迟分配是x f s 独有的特性,它是查找空闲空间区域并用 于存储新数据的过程他引。通过延迟分配,x f s 赢得了许多机会来优化写性能。 到了要将数据写到磁盘的时候,x f s 能够以这种优化文件系统性能的方式,智 能地分配空闲空间乜5 1 。尤其是,如果要将一批新数据添加到单一文件,x f s 可 以在磁盘上分配一个单一、相邻区域来储存这些数据。如果x f s 没有延迟它 的分配决定,那么,它也许已经不知不觉地将数据写到了多个非相邻块中,从 而显著地降低了写性能。但是,因为x f s 延迟了它的分配决定,所以,它能 够一下子写完数据,从而提高了写性能,并减少了整个文件系统的碎片。在性 能上,延迟分配还有另一个优点。在要创建许多“短命的”临时文件的情况下, x f s 可能根本不需要将这些文件全部写到磁盘。因为从未给这些文件分配任何 块,所以,也就不必释放任何块,甚至根本没有触及底层文件系统元数据。 由于x f s 设计比较复杂,实施起来有一些难度,所以目前x f s 主要应用 于l i n u x 企业应用的高端。 1 2 4j f s 文件系统 , p j f s 由i b m 公司开发,最初出现在a 操作系统之上,在2 0 0 0 年,移植 到了l i n u x 系统上。j f s 的设计从一开始就完全集成了日志,而不是作为现有 文件系统的附加。它提供了基于日志的字节级、面向事务的高性能文件系统, 具有可伸缩性和健壮性心引。 1 聚集和文件集聚集是包含一种特定格式的磁盘块阵列,其格式包括超 级块和分配映射表阻。超级块将分区标识成j f s 聚集,而分配映射表描述聚集 内每个数据块的分配状态。文件集包含文件和目录。文件和目录由i n o d e 持续 表示:每个i n o d e 描述文件或目录的属性,并作为查找磁盘上文件或目录数据 的起始点。 j f s 是完全6 4 位的文件系统。所有j f s 文件系统结构化字段都是6 4 位大 小。这允许j f s 同时支持大文件和大分区。为了支持d c ed e s k f s ( 分布式计算 环境分布式文件系统) ,j f s 将磁盘空间分配池也就是聚集的概念,与可安装的 哈尔滨理工大学工学硕士论文 文件系统子树也就是文件集的概念分开。每个分区只有一个聚集;每个聚集可 能有多个文件集。 2 j f s 文件系统的特性j f s 使用基于盘区的寻址结构,连同主动的块分 配策略,产生紧凑、高效、可伸缩的结构,以将文件中的逻辑偏移量映射成磁 盘上的物理地址。盘区是象一个单元那样分配给文件的相连块序列,可用一 个由 组成的三元组来描述。寻址结构是一棵 b + 树,该树由盘区描述符( 上面提到的三元组) 填充,根在i n o d e 中,键为文件 中的逻辑偏移量。 j f s 按需为磁盘i n o d e 动态地分配空间,同时释放不再需要的空间。这一 支持避开了在文件系统创建期间,为磁盘i n o d e 保留固定数量空间的传统方 法,因此用户不再需要估计文件系统包含的文件和目录最大数目。另外,这一 支持使磁盘i n o d e 与固定磁盘位置分离。 j f s 提供两种不同的目录组织。第一种组织用于小目录,并且在目录的 i n o d e 内存储目录内容。这就不再需要不同的目录块f o ,同时也不再需要分配 不同的存储器。最多可有8 个项可直接存储在i n o d e 中,这些项不包括自己( ) 和父( ) 目录项,这两个项存储在i n o d e 中不同的区域内。第二种组织用于较大 的目录,用按名字键控的b + 树表示每个目录。与传统无序的目录组织比较, 它提供更快的目录查找、插入和删除能力。 使用j f s 日志文件系统,性能上会有一定损失,因为当它保持一个日志 时,系统需要写许多数据,系统资源占用的比率偏高。 1 3 课题主要研究内容 文件系统是l i n u x 操作系统中的重要组成部分,负责管理和组织保存在磁 盘上的数据。传统的文件系统技术成熟,性能稳定。而传统文件系统在数据恢 复方面表现出的问题使其在数据可靠性和安全性方面大大降低,因此在信息安 全十分重要的今天,传统文件系统已不能满足当前需要乜引。现今,迅速发展的 日志式文件系统很好地解决了传统文件系统中存在的问题,成为当前l i n u x 操 作系统中的主流文件系统。 考虑到d e s k - t o p 操作系统主要应用在企业、政府或学校等中小型办公环 境,而j f s 和x f s 主要应用在大型服务器系统上,在中小型系统上性能较 差;另外,系统设计的主要目标是提高系统性能以及增强系统的应用性,而 r e i s e r f s 中所采用的b + 树结构极为复杂,并且有些特性还不是特别完善。因 哈尔滨理工大学工学硕士论文 此,最终确定采用稳定的e x t 3 文件系统为原型,对e x t 3 某些方面加以改进, 设计一个d e s k t o p 操作系统专用的日志式文件系统,简称d e s k f s 文件系统。 课题的主要研究内容如下: 1 针对当前主流的各种文件系统以及各自特点进行研究,制定出本课题所 研究的d s e k f s 文件系统的基本设计方案。 2 研究l i n u x 下虚拟文件系统的工作原理及实现方法,深入研究虚拟文件 系统及其与实际文件系统之间的关系,重点掌握实际文件系统是如何通过虚拟 文件系统层进行安装、注册和使用的,并制定出相应的d e s k f s 在v f s 管理下 的实际工作方式。 3 深入研究文件系统的磁盘分配算法,分析基于块分配和基于盘区分配两 种策略的优缺点,并根据本课题要求提出一种新的磁盘分配策略基于可变 预留块组的分配策略以提高d e s k f s 日志文件系统的性能。 4 研究孤文件问题,提出切实可行的解决方案。 本课题结合以上技术,设计并实现了一种适合d e s k t o p 操作系统的日志型 文件系统d e s k f s ,并对其性能进行测试分析,得出结论。 1 4 论文结构 本论文各章节的内容安排如下: 第一章:介绍了课题来源,l i n u x 文件系统的相关背景以及研究现状,并 概述了本课题的主要研究内容。 第二章:详细介绍了l i n u x 下文件系统中几个关键技术虚拟文件系统 机制,磁盘空间分配策略以及日志块设备j b d ,对技术中产生的关键问题作了 详尽阐述。 第三章:阐述了d e s l ( f s 文件系统的具体设计方案。分别从设计思想、总 体结构、恢复策略以及具体安装卸载流程几个方面进行叙述。 第四章:本文的重点,详细介绍了d e s k f s 文件系统中的核心技术及实现 方法。 第五章:对d e s k f s 文件系统的1 1 0 性能进行测试,得出测试结果并进行 分析。 哈尔滨理工大学工学硕士论文 第2 章l i n u x 下文件系统剖析 2 1 虚拟文件系统v f s l i n u x 文件系统中引入一个非常重要的机制,即虚拟文件系统( v f s ) m 1 。 v f s 是实际文件系统和操作系统之间的一层接口,它将实际的文件系统和操作 系统隔离开来。实际文件系统为v f s 提供一致的接口,而v f s 则向上一层提 供统一的系统调用接口,这样,对操作系统的其他部分以及运行在操作系统之 上的程序而言,所有的文件系统都是统一的。v f s 机制使得l i n u x 可以支持多 种文件系统,并不断增加下去。v f s 是建立在内存中,它在活动的过程中,在 内存中管理着各种数据结构复杂的高速缓存,这种高速缓存使得l i n u x 保持高 速度及高效率口。虚拟文件系统和实际文件系统之间的关系如图2 1 所示。 u u 虚拟文件系统 uuuu 引掣 目录高速索引节点 缓存 高速缓存 uu 缓冲区高速缓存 | l u 设备驱动程序 图2 1l i n u x 文件系统的组成结构 f i g 2 1l i n u xf i l e s y s t e ms t r u c t u r e 2 1 1 虚拟文件系统的原理及功能 虚拟文件系统之所以被称为虚拟,是因为它不是一个真正的文件系统:它 所有的数据结构都是在运行以后才建立,并在卸载时删除,磁盘上并不存储这 些数据结构。它只有与e x t 2 等实际的文件系统相结合时,才能开始工作。这 就意味着,当用户读取一个文件的内容时,用户不会因为这个文件位于不同的 哈尔滨理工大学工学硕士论文 文件系统而需要采用不同的方式。因此,v f s 的意义就在于为我们提供了一个 透明的接口,使用户感觉不到实际文件系统中的差异。 为了实现这种公共的接口,v f s 引入了公共文件模型的概念。这个模型使 文件对于应用程序来说在不同文件系统上都是相同的。它是由各个实际的文件 系统将它们对文件的理解转换为v f s 需要的信息口引。 在v f s 的公共文件模型中,目录被看作包含其他文件和其他目录列表的 文件。某些文件系统在目录树中存储各个文件的位置,在这种情况下,目录不 是普通的文件。因此,在文件系统上执行操作的过程中这些文件系统必须将目 录的视图动态建立为文件。显然,这样的视图实际上不是存储在文件系统中 的,而只是作为对象存在于内核空间中。 此外,l i n u x 不会在实际的内核函数中执行与文件有关的系统调用。更确 切地说,每个r e a d ( ) 或i o c t l 0 都将转换为各个文件系统处理该文件专用的函数 的指针。为了实现这一点,v f s 公共文件模型引入了一些公共文件系统控制块 的概念,使各个文件系统与传统的u n i x 方法相符。这些控制块结构是:超级 块对象、信息节点( i n o d e ) 对象、文件对象、目录项( d e n t r y ) 对象。 2 1 2 v f s 的数据结构 l i n u x 虚拟文件系统的数据结构类似e x t 2 文件系统,即采用超级块与信息 节点( i n o d e ) 数据结构进行管理。引。超级块结构驻留在内存空间,它存放了该文 件系统的重要信息。从超级块中可取到该文件系统中任何一个文件的i n o d e 节 点,从i n o d e 节点则可以对该文件进行读写等操作,这样就实现了对磁盘中任 一文件的控制。 1 v f s 的超级块( s u p e r b l o c k ) 对象v f s 超级块是在文件系统安装时由系 统在内存中建立的,并在这些文件系统卸载时自动删除,它只存在于内存中。 对于每个已安装的文件系统,在内存中都有与其对应的v f s 超级块。v f s 中 保存了系统中挂接的文件系统的链表以及这些文件系统对应的v f s 超级块。 系统启动后所有被初始化的文件系统都要向v f s 登记。 v f s 超级块的作用是把在各种文件系统中表示整体组织结构的信息转换 成统一的格式。各种文件系统的v f s 超级块都是一个s u p e rb l o c k 结构体, v f s 超级块s u p e rb l o c k 结构体的定义在i n c l u d e f s f s h 中。 s u p e rb l o c k 结构体中主要包括下列几个域: ( 1 ) d e v i c e :表示文件系统所在块设备的设备标志符。例如系统中第一个 哈尔滨理工大学工学硕士论文 i d e 硬盘的设备标志符为o x 3 0 1 。 ( 2 ) i n o d ep o i n t e r s :这个m o u n t e di n o d e 指针指向文件系统中第一个i n o d e 。 而c o v e r e di n o d e 指针指向此文件系统安装目录的i n o d e 。根文件系统的v f s 超 级块不包含c o v e r e d 指针。 ( 3 ) b l o c k s i z e :以字节记数的文件系统块大小,如1 0 2 4 字节。 ( 4 ) s u p e r b l o c ko p e r a t i o n s :指向此文件系统一组超级块操纵例程的指针。 这些例程被v f s 用来读写i n o d e 和超级块。 ( 5 ) f i l es y s t e mt y p e :这是一个指向已安装文件系统的f i l e _ s y s t e m _ t y p e 结 构的指针。 ( 6 ) f i l es y s t e ms p e c i f i c :指向文件系统所需信息的指针。 2 v f s 的信息节点( i n o d e ) 对象文件系统由子目录和文件构成,每个子目 录或文件只能由唯一的i n o d e 描述。i n o d e 是l i n u x 管理文件系统的最基本的单 位,也是文件系统连接任何子目录和任何文件的桥梁口钉。v f s 的i n o d e 同v f s 的s u p e r b o l c k 一样,是物理设备上文件或目录在内存中的统一封装,其内容由 物理设备上的文件系统指定的操作函数填写,并且只存在于内存中。每个v f s i n o d e 中的信息通过文件系统相关例程从底层文件系统中得到。v f si n o d e 仅 存在于内核的存储空间,只要对系统有用,它们就会被保存在v f si n o d ec a c h e 中。每个v f si n o d e 包含下列域: ( 1 ) d e v i c e :包含此文件或此v f si n o d e 代表的任何东西的设备的设备标 志符。 ( 2 ) i n o d en u m b e r :文件系统中唯一的i n o d e 号。在虚拟文件系统中, d e v i c e 和i n o d e 号的组合是唯一的。 ( 3 ) m o d e :表示此v f si n o d e 的存取权限。 ( 4 ) u s e ri d s :所有者的标志符。 ( 5 ) t i m e s :v f si n o d e 创建、修改和写入时间。 ( 6 ) b l o c ks i z e :以字节计算的文件块大小,如1 0 2 4 字节。 ( 7 ) i n o d eo p e r a t i o n s :指向一组例程地址的指针。这些例程和文件系统相 关且对此i n o d e 执行操作,如截断此i n o d e 表示的文件。 ( 8 ) c o u n t :使用此v f si n o d e 的系统进程数。一个c o u n t 为o 的i n o d e 可 以被自由的丢弃或重新使用。 ( 9 ) l o c k :用来对某个v f si n o d e 加锁,如用于读取文件系统时。 ( 1 0 1d i r t y :表示这个v f si n o d e 是否已经被写过,如果是则底层文件系统 需要更新。 哈尔滨理工大学工学硕士论文 3 v f s 的文件( f i l e ) 对象v f s 文件对象的结构如下: s t r u c tf i l e s t r u c tf i l e 幸f _ n e x t 木f _ p p r e v ; s t r u c td e n t r y 宰f _ d e n t r y ; s t r u c tf i l e _ o p e r a t i o o s f _ o p ; l o f ftfp o s ; ; f i l e 结构是采用链式管理的。f n e x t 指向下一个f i l e 结构,f - p p r e v 指向上 一个f i l e 结构地址的地址,f _ d e n t r y 记录其i n o d e 的d e n t r y 地址,f _ _ p o s 记录目 前文件的偏移量,每次读写都从o f f s e t 记录的位置开始读写。 与超级块和i n o d e 节点相同,fo p 字段也提供一组操作文件的函数。这些 函数提供了最终对文件的控制功能。 s e e k ( f i l e ,o f f s e t ,w h e r e ) r e a d ( f i l e ,b u f ,b u f l e n ,p o f f s e t ) w r i t e ( f i l e ,b u f , b u f l e n ,p o f f s e t ) r e a d d i r ( f i l e ,d i r e n t ,f i l l d i r ) o p e n ( i n o d e ,f i l e ) 4 v f s 的目录项( d e n t r y ) 对象d e n t r y 对象中存放目录项与对应文件进行链 接的信息。v f s 把每个目录看作一个由若干子目录和文件组成的常规文件。例 如,在查找路径名t m p t e s t 时,内核为根目录“”创建一个目录项对象,为根 目录下的t m p 项创建一个第二级目录项对象,为t m p 目录下的t e s t 项创建一 个第三级目录项对象。 操作系统搜索文件名对应的信息节点时,系统开销可能会相当大,在嵌套 路径名的情况下尤其如此。因此,管理最近搜索的文件和路径及其信息节点号 码的缓存是非常有意义的。v f s 层所管理的d e n t r y 缓存就起到这样的作用。 d e n t r y 缓存包含两个主要的数据结构: ( 1 ) 使用中、未使用或处于否定状态的d e n t r y 对象列表。 ( 2 ) 用来快速查找文件名及其目录的d e n t r y 对象的散列表。 l i n u x 的d e n t r y 缓存功能也是它的信息节点缓存。这是因为仍然位于 d e n t r y 缓存中的信息节点与未使用的d e n t r y 相关联,将保留这些信息节点而不 是删除它们。所有标记为“已使用”的d e n t r y 都会维护在一个双链接列表中,相 哈尔滨理工大学工学硕士论文 关信息节点对象的d e n t r y 字段就指向这个列表。当删除文件的最后一个硬链接 时,这些d e n t r y 就会无效。源代码中处理d e n t r y 对象的函数是由d e n t r y 操作调 用的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论