(计算机软件与理论专业论文)mosix机群文件系统研究.pdf_第1页
(计算机软件与理论专业论文)mosix机群文件系统研究.pdf_第2页
(计算机软件与理论专业论文)mosix机群文件系统研究.pdf_第3页
(计算机软件与理论专业论文)mosix机群文件系统研究.pdf_第4页
(计算机软件与理论专业论文)mosix机群文件系统研究.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机软件与理论专业论文)mosix机群文件系统研究.pdf.pdf 免费下载

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

文档简介

摘要 机群文件系统提供的文件访问效率对整个机群系统的性能有着至关重要的影 响,m o s i x 负载均衡机群系统利用抢占式进程迂移和直接文件系统访问( d f s a ) 口 机制,实现了机群节点阳j 的负载均衡和资源的协调使用,m o s i x 机群文件系统 m f s 通过在服务器节点进行全局唯一的缓存实现了单一节点一致性【2 j ,提供了对 d f s a 机制的支持。但这种缓存方法导致m o s i x 节点使用的传统l i n u x 虚拟文件 系统缓存策略不能很好的满足m f s 缓存要求,对m f s 的文件访问效率产生了影 响。 本文首先分析了m o s i x 中单节点使用的l i n u x 虚拟文件系统缓存机制,对机 群文件系统中的两类缓存模型:三层缓存体系结构和协作式缓存【3 】进行了详细的讨 论;在对m o s i x 及其机群文件系统m f s 和d f s a 机制进行深入研究的基础上, 本文把协作缓存机制引入到m f s 中,提出了m o s i x 全局协作缓存( m g c c ) 模 型,改进了m o s i x 的缓存策略。m g c c 模型的设计保证了与m o s i x 原有的内存 引导算法1 4 】和d f s a 机制不产生冲突,从而进一步保证了m g c c 的有效性。文章 最后对该模型的实现进行了探讨。 关键词:m o s i x ,机群文件系统,协作缓存,m o s i x 全局协作缓存 a b s t r a c t t h ee f f i c i e n c yo ff i l ea c c e s s i n gi nc l u s t e rf i l es y s t e mp l a y sa l li m p o r t a n tr o l ei nt h e p e r f o r m a n c eo ft h ec l u s t e rs y s t e m m o s i xl o a d b a l a n c i n gc l u s t e rs y s t e mi sa n e n h a n c e m e n to fl i n u x t h r o u g ht h ep r e e m p t i v ep r o c e s sm i g r a t i o ni tc a l lb a l a n c el o a d s v a r i a t i n si nt h er e s o u r e su s a g ea m o n gt h en o d e si nt h ec l u s t e r d i r e c tf i l es y s t e m a c c e s s ,ap r o v i s i o nt h a ta l l o w i n gam i g r a t e dp r o c e s st od i r e c t l ya c c e s sf i l e si nt h e c u r r e n tl o a c t i o n ,i ss u p p o r t e db ym o s i xt h r o u g ht h em o s i xf i l es y s t e m ( m f s ) t o m a k ed f s aw o r k ,as i n g l e - n o d ec o n s i s t e n c yi s r e q u i r e d ,a n dm f sc a ns u p p o r tt h e f e q a i r e m e n tb yc a c h i n gt h eo n l yb l o c kd a t ao nt h ef i l es e r v e ri nt h ec l u s t e rs y g e m ,b u t t h et r a d i t i o n a ll i n u xc a c h em e c h a n i s mo nt h ef i l es e r v e rc a n tp r o v i d ee n o u g hb u f f e r c a c h e st ob o t ht h el o c a la n dt h e 豫m o t ec l i e n tp r o c e s s e s a tt h es a m et i m e t h e r em a y b e h a v es o m en o d e si nt h ec l u s t e rw i t hl o wi g a da n dt h e i rb u f f e rc a c h e sa r e n tu s e d e f f i c i e n t l y o nt h ea n a l y s i so fl i n u xv i r t u a lf i l es y s t e m ,c a c h em o d e l si nc l u s t e rf i l e s y s t e m ,m f sa n d t h em e c h a n i s mo f d f s a ,t h ep a p e ri m p o r tt h ep r o v e s i o no f c o o p e r a t e c a c h i n gt o m f sa n dp u tf o r w a r dt h em e c h a n i s mo fm o s i xg l o b a lc o o p e r a t e c a c h i n g ( m g c c ) ,w h i c hc a nm a k ea l lt h eb u f f e rc a c h e si nt h ec l u s t e rc o o p e r a t ew h e n t h ec l u s t e ri sw o r k i n ga n dm a k et h e s eb u f f e rc a c h e su t i l i z ef u l l y , s ot h eo v e r a l l p e r f o r m a n c eo ft h em f s c a l lb ei m p r o v e d a n dt h ep a p e ra l s od e s c r i b et h em g c c c a nw o r kw i t hd f s aa n dm e m o r yu s h i n ga l g o r i t h mh a r m o n i o u s l y k e y w o r d s :m o s i x ,c l u s t e rf i l es y s t e m ,m f s ,c o o p e r a t ec a c h i n g ,m g c c 创新性声明 y 5 8 3 4 1 4 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:查堡重:同期塑丝! :垒 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即j 研究生 在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕业 离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。学 校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部 或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文摘 解密后遵守此规定) 本学位论文属于保密,在一年解密后适用本授权书。 本人签名:叠堡垒 翮躲琢一 同期坳牛, 只期砒,汐 第一章绪论 1 1 1 机群技术 第一章绪论 1 1 机群文件系统 机群是一种并行或分布式处理系统,它由通过高性能网络或局域网( l a n ) 连接在一起的多个独立的计算机节点组成,各节点间协同工作,为用户提供单一 系统映象。机群计算的主要目标在于通过网络互连进行资源共享,充分利用各节 点的计算资源,以较低的代价获得较高的计算性能,通常情况下,每个机群节点 是一台p c 、i 作站或是s m p ,这也决定了机群的价格比具有相同计算能力的超级 计算机的价格要低得多1 5 】。 传统的计算系统处于两个极端采用专用互连硬件建立的紧藕合大规模 并行计算机系统( m p p ) 和采用通用网络技术建立的松藕合分布式计算系统,机 群系统处于这两个体系结构之间之问,能够有效结合它们的技术优点。机群系统 在通过网络互连实现全系统范围内资源共享的同时,还通过高效的资源管理和任 务调度技术提高系统资源的利用率、进而提高系统的整体性能。同两种传统的计 算模型相比,机群有如下优点: 1 高可扩展性: 为了满足不断增长得对性能和功能的要求,机群可以动态的扩展和缩减计算 资源。因为机群系统是松耦合的,因此这样的扩展是容易实现和管理的。 2 高可用性: 机群的组件都是廉价的商业化产品,因此可以提供冗余量大的高可用性。一 些机群系统中的具体算法也可以使机群的可用性进一步提高。 3 高性能价格比: 机群由常见的廉价的商业化部件组成,整体的价格低。具统计,具有相同峰 值性能的机群系统比相应的超级计算机( 如m p p ) 的价格要低1 到2 个数量级 5 】o 4 单一系统映象: 相对于一般的分稚式系统,机群可以为用户提供单一系统映象,易于使用。 为了最大程度的利用机群中的切资源,机群系统一般都提供负载均衡功能, 通过监视机群中的节点负载情况在节点阳动态的调度负载已达到负载均衡,提高 机群系统中资源的整体利用率。负载均衡机群已经成为当前机群研究领域的一个 热点和趋势。 m o s l x 机群文件系统研究 1 1 2 机群文件系统 文件系统是操作系统的重要组成部分,它通过对文件的有效存储和管理使用 户对文件的操作更有效、方便和安全。机群文件系统是传统文件系统在机群系统 中的体现,是实现整个机群信息共享的重要手段。机群文件系统的主要目的是在 系统的范围内进行信息共享和文件管理,并为用户提供简单和定义良好的接口。 通常,机群文件系统提供的服务都要跨越网络,由其决定的机群范围内文件的访 问效率对文件访问进程的响应时间有重要的影响,因此机群文件系统是衡量一个 机群系统质量的重要指标,高效的机群文件系统是实现高质量机群系统中的关键 之一。 机群文件系统为适应机群计算环境的特点,一般具有如下的特征: 透明性: 即为用户提供单一系统映象,使用户意识不到某些操作是跨越网络在多个节 点间进行的,提供给用户简单的接口,便于用户使用。 良好的可扩展性: 机群文件系统应该适应机群系统中节点或用户数量的增长,即出现这种增长 时不能使系统的i o 性能急剧下降。同时,系统中的i 0 资源增加时,其文件系统 的整体i o 性能也应该随之增长。 可用性支持: 当机群系统中的某个或某部分节点出现故障时,应该保证整个机群系统的继 续运行。 实现机群文件系统通常有两种方法:共享磁盘方法和共享文件系统方法。 共享文件系统是实现机群文件系统单一系统映象的传统方法,它把系统的功 能分布到客户机和服务器上,客户机通过网络向文件服务器发出请求,服务器读 取本地缓存和磁盘,将结构返回给客户机。共享文件系统的方法见示意图1 1 。在 共享磁盘模型中,系统中没有文件服务器,而是共享磁盘。共享磁盘和客户机都 连接在系统内部的高速网络上,每个客户都将共享磁盘作为其存储设备,可以直 接以磁盘块的方式读取共享磁盘上的文件数据。与共享文件系统的方法相比,它 对设备的要求较高,实现的难度也较大。共享文件系统的方法相对比较简单,对 设备的要求不高,并且通用性好。本文中所讨论的机群文件系统都是基于共享文 件系统方法实现的。 第一章绪论 幽1 1 共享文件系缆方法示意豳 1 1 3 提高机群文件系统效率的方法 在由共享文件系统方法实现的机群文件系统中,可以从两个主要方面改善文 件系统的访问效率,即与机群文件系统密切相关的硬件部分和软件部分。其中硬 件部分包括存储子系统和网络子系统,软件部分包括机群文件系统的缓存策略等 方面。为有效提高机群系统的效率,通常有以下几种方法: 采用高带宽低延时的网络和服务器磁盘子系统。 采用大容量的主存( 由此缓存容量增加) ,减少磁盘读写。 采用有效的缓存策略,减少磁盘访闯和网络传输。 由于应用程序f o 访问的局部性,采用有效的缓存技术能够使大量的数据访问 在缓存中完成,从而大量减少磁盘访问。同时应该减少数据在网络中的传输。 降低或消除访问瓶颈。 在机群系统中尽量采用分散存储和控制方案,避免在系统中出现瓶颈而导致 整体性能下降,分散控制策略机群发展的一个方向。 4m o s i x 机群文件系统研究 1 2 1m o s i x 系统的特征 1 2m o s i x 机群系统 m o s i x 机群系统是由以色列的h e b r e w 大学开发的,它通过对l i n u x 的内核 进行扩充,使l i n u x 具有了枧群运算能力,使多个运行相同内核的计算机节点紧 密协作,提高资源的整体使用效率。它是负载均衡机群系统的杰出代表之一。 m o s t x 系统的最大特点是支持动念的负载均衡,它监视各个节点的处理器资源使 用情况并使用抢占式进程迁移( p r e m p t i v ep r o c e s sm i g r a t i o n ) 在节点间持续自动的 分配进程,从而达到动各的负载均衡,使系统处理器资源得到充分利用。同时 m o s i x 中还实现了内存引导算法,可以在系统范围内容纳更多的进程而不会引起 某个页面页面的换入换出,即在一定程度上实现了主存资源的协调使用。m o s i x 的系统视图即为一个拥有多个c p u 和存储器的虚拟机。 m o s i x 被设计成运行在基于x 8 6 p e n t i u m 的工作站上,具有如下特点: 1 易用性。 m o s i x 的实现均在内核层进行,无需对用户程序进行任何修改,透明性好。 2 可扩展性。 m o s i x 系统中的节点是一个独立的自主系统,节点间分散控制,没有任何主 从关系,用户可以动态的配置在系统中加入和删除一个节点,而不影响其它节点 的工作。 3 资源的有效利用。 m o s i x 根据各节点的处理器负载情况,可以动念的,透明的把进程从负载较 高的节点迁移到负载较低的节点继续运行,从而有效的提高处理器资源的利用率; m o s i x 的内存引导算法在一定程度上协调了节点间主存资源的使用,提高了系统 的主存利用率。 4 m f s 和d f s a 机制的支持 m o s i x 的进程迁移采用了d e p u t y r e m o t ei l l 机制,当迁移了的进程执行节点 相关的系统调用时,必须与d e p u t y 交互,m o s i x 通过其文件系统m f s 引入对 d f s a 机制的支持,使迁移了的进程可以直接访问当前节点的本地文件系统,而不 用再通过与d e p u t y 的交互,避免了了文件访问相关系统调用效率的降低。同时, m o s i x 把d f s a 机制和进程迁移相结合,可以把文件访问把密集型的进程迁移到 进行文件访问依赖性最强的节点允许,实现了把进程迁移到数据的策略,减少了 数据在网络中的传输,从而提高了文件操作的效率f 2 j 。 第一章绪论 1 2 2 m o s i x 机群文件系统 m o s i x 通过对l i n u x 文件系统的扩展实现了自己的机群文件系统m f s ,m f s 在系统中所有节点的根文件系统基础上设立了一个虚拟超根( s u p e rr o o t ) 1 6 1 ,为系 统中所有节点的文件系统提供了统一的视图,并使系统拥有了统一的名字空间。 m f s 采用c l i e n t s e r v e r 模型,当进程执行本地系统调用时与在l i n u x 上执行 时的过程基本相同,而执行一个m f s 相关的远程系统调用时,m o s i x 链接层会 把系统调用的类型( 名称) 和参数等信息传送给相关的远程节点,此时本地内核 作为c l i e n t ,提供服务的远程节点为s e r v e r ,m f ss e r v e r 访问本地文件系统并进行 缓存,然后把结果返回回c l i e n t 端:c l i e n t 与s e r v e r 间通过t c ps o c k e t 进行通信。 在m o s 中,每个节点可以同时是c l i e n t 和s e r v e r 。 m f s 为了提供对d f s a 机制的支持,只在驻留文件的服务器端缓存唯一的一 份数据,从而提供了d f s a 机制要求的“单一节点一致性”,但这会导致服务器节 点上缓存资源的紧张。 1 3 问题的提出 m o s i x 机群系统通过负载均衡算法利用抢占式进程迁移1 1 】实现了节点间的处 理器资源的负载均衡,提高了c p u 密集型进程的执行效率。但由于迁移的只是进 程的用户态信息( 称为进程的r e m o t e 部分) ,与节点相关的核心态( 称为d e p u t y 部分) 是不能被迁移到远程节点的,只能驻留在唯一宿主节点上,此时与d e p u t y 相关的访问( 如文件相关的系统调用) 必须通过r e m o t e d e p u t y 的交互来完成,反 而增加了网络负担。为此m o s i x 通过其机群文件系统m f s 引迸了对d f s a 机制 的支持,即迁移了的进程可以在远程节点直接访问本地的文件系统,不必再通过 r e m o t e d e p u t y 的交互,从而解决了i o 密集型进程的迁移而导致的效率问题。并 且通过把进程迁移到文件的策略减少了数据在网络间的传输,由此m o s i x 系统的 机制对c p u 操作密集型进程和文件操作密集型进程的执行效率都有很大的提高 ”z j ,促进了机群系统中节点资源的负载均衡和协调使用,提高了整个机群系统的 效率。 m o s i x 文件系统m f s 为了提供了对d f s a 机制的支持,只在提供文件服务 的服务器端缓存唯一的份数据,由此导致了文件服务器节点要同时对本地进程 和远程进程进行数据缓存,缓存的需求量大。而m o s i x 节点通常是由商业部件组 成的p c 机或工作站,主存容量有限,而m o s t x 采用传统的l i n u x 数据缓存策略, 由此导致了用于缓存的主存容量更加有限,而在单一的节点上利用l r u 算法对数 据进行缓存,容易造成服务器节点缓存使用紧张而导致频繁的数据丢弃,增加磁 m o s i x 机群文件系统研究 盘的访问次数,降低m f s 的文件访问效率。同时系统中比较空闲的节点会有大量 空闲的缓存得不到利用,缓存的整体利用率低。 针对m o s i x 文件系统不能对系统中缓存有效利用的问题,本文把协作缓存机 制引入到m o s i x 文件系统中,提出了m o s i x 全局协作缓存算法,使m o s i x 系 统中各节点的缓存资源得到协调、充分的利用,从而可以缓存更多的数据,增加 缓存命中率,减少磁盘访问次数。协调的使用缓存资源也使m o s i x 系统进一步达 到负载均衡。 系统中引入协作缓存后,怎样与d f s a 机制和内存引导算法进行协作也是一 个需要研究的问题。 1 4 1 n f s 1 4 相关的研究 s u n 公司在1 9 8 5 年开发了n f s t 7 , g l ,以此作为对远程文件系统进行透明存取 的一种方法,目前已经成为事实上的工业标准。n f s 体系结构基于客户机服务器 模型,每个节点可以同时作为客户和服务器。客户机和服务器之间通过r p c 进行 通信,数据采用x d r 协议进行表示,屏蔽了不同架构机器间的差异。n f s 在服务 器端采用采用无状态( s t a t e l e s s ) 的服务流程,在客户端缓存数据,采用基于时间 的弱一致性协议,简化了协议的实现。n f s 的主要问题是性能问题,也不支持严 格的文件共享语义,不适于并行应用的开发。 1 4 2x f s x f s l 3 】是加州大学伯克力分校实现的一种基于无服务器( s e r v e r l e s s ) 的分_ 布式 文件系统原型。传统的分布式文件系统依赖于一个集中式服务器,容易引起系统 i o 性能的和可用性的瓶颈,无服务器系统中的任一台机器都能存取、缓存和控制 任意的数据块,该系统利用快速局域网可以提供较好的性能和可扩展性,同时还 可以通过冗余数据存储提高可用性。x f s 中还引入了协作式缓存和并行i o 的支 持,实验结果表明它的可扩展性和性能均优于n f s 。 1 4 3 曙光c o s m o s 文件系统 c o s m o s t l 2 , 1 3 1 是在曙光3 0 0 0 超级服务器上实现的一种可扩展单一映象机群文 件系统。c o s m o s 的底层基于a i x 文件系统j f s ,系统中每个节点通过高速网络 第一章绪论 7 t 互相连接,c o s m o s 则构建于这些操作系统平台之上,向用户提供文件服务。 c o s m o s 由核心相关层( k e r n e l ) 和用户层两部分组成。核心层是在虚拟文件系统 级中实现的,它接收来自逻辑文件系统的i o 请求,并以一定的格式转发给用户层。 c o s m o s 中实现了元数据和文件数据的分离存储,系统分别中设置多个元数据服 务器和存储服务器,采用了协作缓存机制,实现了类似于n f s 的文件共享语义。 1 5 本文的组织 论文首先在第二章中对m o s i x 文件系统的基础l i n u x 文件虚拟系统机制及其 缓存机制进行了说明。第三章讨论了机群文件系统缓存模型及其设计和实现中的 一些关键问题,包括共享语义问题、缓存一致性问题等。第四章详细研究了m o s i x 系统中与进程迁移技术、内存引导算法及其机群文件系统m f s ,重点分析了m f s 和d f s a 机制的原理和实现。第五章对针对m o s i x 文件系统中使用的缓存策略与 m o s i x 应用要求之问的矛盾,把协作缓存机制引入到m f s 中,提出了m d s i x 全 局协作缓存模型( m g c c ) ,实现m o s i x 文件系统的协作缓存机制,并对m g c c 的实现进行了探讨。论文的最后即第六章对本文的工作进行了总结并说明了今后 工作的方向。 8 m o s i x 机群文件系统研究 第二章l i n u x 文件系统缓存机制 当今的许多机群系统都是建立在u n i x l i n u x 基础上的,本文讨论的m o s i x 系统是在l i n u x 内核的基础上进行的改进,它使l i n u x 具有了机群运算的能力。 m o s i x 机群文件系统m f s 是建立在l i n u x 文件系统基础上的,所以本文接下来的 部分对l i n u x 文件系统进行了简要的分析,主要部分集中于l i n u x 的虚拟文件系统 机制及其文件缓存策略。 2 。1l 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 ) 把对各种不同文件系统 的操作和管理纳入到统一的框架中,用户程序可以使用同一组系统调用对各种文 件系统进行操作,从而对用户隐藏了不同文件系红的实现细节,为用户程序提供 统一的,抽象的文件系统界面。 图2 1l i n u x 虚拟文件系统示意图 在用户进程对文件系统提出操作请求后,虚拟文件系统将内存中的数据结构与 具体文件系统的数掘结构关联起来,同时调用具体的文件系统的操作函数,启动 第二章l i n u x 文件系统缓存机制 9 设备的输入输出操作,实现设备上文件的读取、写回、查找、更新等操作。由虚 拟文件系统提供的内存节点缓冲区、内存目录项缓冲区、数据块缓冲区使文件系 统尽可能在内存中操作节点、目录和数据块,减少对磁盘等外设操作的次数。操 作完成后,文件系统在适当的时机将调用虚拟文件系统的更新例程,将改变的数 据从内存中写回外部设备。l i n u x 虚拟文件系统整体结构如图2 1 所示。 l i n u x 系统中,把所有的设备都看成文件进行操作,本文中所指的文件如果没 有特别说明的话,指的是一般意义上的文件,即存储在磁盘上的处于某个文件系 统管理的下的“狭义”的文件。 2 2 虚拟文件系统的相关数据结构 2 2 1 虚拟文件系统数据结构 v f s 通过一组数据结构和文件操作完成对具体文件系统中文件和操作的抽象, 这个抽象的界面主要由一组标准的文件操作构成,以系统调用的形式提供给用户 程序。l i n u x 在v f s 中对具体的文件系统及文件抽象了一系列的数据结构,主要 包括标识文件系统的s u p e r 结构,标识文件的和结构等。下面b l o c k i n o d e d e n t r y 对这些虚拟文件系统中的数据结构进行进行简要的分析和说明: i n o d e 结构。 文件系统中所有的普通文件、设备文件、特殊文件等都用i n o d e 结构来唯一 表示和标识。i n o d e 结构中包含了用于文件组织和管理的信息,l i n u x 在处理文件 时,把磁盘上特定文件系统的i n o d e 结构( 或相当于i n o d e 描述的信息) 读入到内 存并填入一个v f s 的i n o d e 结构中。在内存中,虚拟文件系统将多种文件系统节 点的数据结构都用统一的i n o d e 节点表示,i n o d e 节点主要记录了如下信息( 这里 主要讨论与磁盘文件系统访问相关的数据结构部分,) : ii n o 唯一的i n o d e 节点号。 ih a s h 表示浚内存节点所在的h a s h 链表。 id e v存储该索引节点的设备。 i _ s t a t e 该内存节点的状态标志,i n o d e 节点有三种状态,id i r t y 、 c l o c k 、和i _ f r e e i n g 。分别表示i n o d e 处于脏状态、锁定状态和未使用状态。 ic o n u t 表示该i n o d e 节点的引用计数。 i _ o p表示操作该i n o d e 节点对应文件的i n o d e _ o p e m t i o n 数据结构。 i _ f o p指向操作该i n o d e 节点对应文件的f i l eo p e r a t i o n 数据结构。 u 区 与特定的文件系统相关的保存在磁盘上的“索引节点”信息。 i _ u i d ,i _ g i d 文件所属的用户和组信息。 m o s i x 机群文件系统研究 ia t i m e 。im t i i 】a e ,ic t i m e 访问该文件的时间戳信息。 d e n t r y 结构。 d e n t r y 结构主要包含了文件名信息。l i n u x 中为了提高目录检索的命中率和 便于文件共享,将文件名信息同文件管理和控制信息分开存储,文件的管理和控 制信息存储在i n o d e 数据结构中,而文件名信息存储在d e n t r y 结构中。同i n o d e 结 构一样,v f s 的d e n t r y 结构也是对具体文件系统e n t r y 结构( 或相当于该结构的信 息) 的一个抽象,其在v f s 中的定义如图2 2 所示: s t r u c td e n t r vt a t o m i c _ td _ c o u n t ; u n s i g n e di n td _ f l a g s ; s t r u c ti n o d e + d _ i n o d e ; 4w h e j e 孙en 帅t e 岛删b n u l l - 詹, m # a i f f v e 章, s t r u c td e n t r y d _ p a r e n t ;+ p a r e n td i t e c - o r yv s t r u c tl i s l h e a dd _ h a s h ;l o o k u ph a s hh s t s t r u c tl i s t - h e a dd _ l r u ; + dc o u n t = 0 触h s tv s t r u c tl i s t _ h e a dd _ c h i l d ;p 曲舶o fp i r e 哦k s t s t r u c tl i s th e a dd _ s u b d i r s ; + 0 0 ,c h i l d r e nv s t r u c tl i s th e a dd _ a l i a s ; + n o d ea t m sl i s tv i n td _ m o u n t a d ; s t r u c tg s t rdn a m e ; u n s i g n e dt o n gd _ t i m e ; + u c e d 却t r e v a i d i $ e s t r u c td e n t r y _ o p e r e t i o n s + d _ o p ; s t r u c ts u p e r _ b l o c k d _ s b ; ,+ t hr o o t 甜t h “哦qt r e e u n s i g n e dl o n gd _ v f s _ f l a g s ; v o i d 4 d _ f s d a t a ; ,+ 厅s p e c i f i cd a s av u n s i g n e dc h a rd _ i n a m e d n a m e i n l i n el e n i ;+ s m a l ln a m e jv ) j 图2 2v f s 的d e n t r y 数据结构 d e n t r y 数据结构中主要包含以下一些信息: di n a m e该数组存储文件的名字。 dc o u n t 目录项的引用计数。 di n o d e 该目录项对应的i n o d e 节点。 dh a s h目录项h a s h 链表。 di r u 目录项的l r u 链表。 d 该目录项对应的目录项操作结构的指针。o p d _ c h i l d ,d _ s u b d i r s ,该目录项所属的父接点以及属于它的子节点的列表,由此构 成目录项树。 d 具有相同 信息的目录项的链表。_ a l i a s i n o d e s u p e rb l o c k 结构。 v f s 的s u p e rb l o c k 数据结构是磁盘超级块在内存中的存在方式,每一个安装 的文件系统都要用到v f s 超缴块,其中包含着各种具体文件系统的重要信息。内 核中维持着一个s u p e rb l o c k 数据结构的队列s u p e rb l o c k s ,里面包含了所有的内 存中驻留的s u p e r数据结构。block 第二章l i n u x 文件系统缓存机制 f i l es y s t e m 结构。_typc f i l es y s t e m 描述了一个文件系统,其中的关键内容是一个指向读取具体_type 文件系统超级块信息的函数指针。内核中有一个f i l e _ s y s t e m _ t y p e 队列 f i l es y s t e m s ,系统初始化时通过r e g i s t e r _ f l l e s y s t e m ( ) 注册一个文件系统,把这个 文件系统的f i l e _ s y s t e m _ t y p e 结构挂入到f i l e _ s y s t e m s 队列中。 b u f f e rh e a d 结构。 b u f f e rh e a d 结构是维护和管理数据块缓存的关键数据结构,当操作系统需要 读取设备上的数据块时文件系统利用b u f f e r h e a d 结构记录每一个缓存的数掘块, 并把这些数据块合理的组织成h a s h 链表和f r e e 链表,以便于数据块的查找、更新、 分配等操作。b u f f e rh e a d 数据结构如图2 3 所示: s t r u c tb u 仟e r _ h e a d 7 f i r s tc a c h el i n e :, s t r u c tb u f f e r h e a d | b _ n e x t ;,4m a $ 1 q u e u el i s t u n s i g n e dl o n gb _ b l o c k n r ; b l o c ka q m b e ,4 f u n s i g n e ds h o r tb _ s i z e ; + b l o c ks i z ev、 u n s i g n e ds h or tb _ l i s t ; l i s tt h a tt h | b u h a ra p p e a r s k d e v _ tb _ d e v ; ,+ 如v l c e 随f r e e = f r e e ) v j t o m i ctb _ c o u n t ; + u s 斟fu i t r 0t h i sb l o c k k d e vtb _ r d e v ;+ r ,d e v i c ev u n s i g n e dl o n gbs t a t e ; ,+ b u y e rs t a k6 i t m a p “e ea b o v e ) 吖 u n s i g n e dl o n gb j l u s h t i m e ; + ,加ew h e n ( d i r t m , ) 6 u 加,s h o u l d6 ew , , r l t a nv s t r u c tb u f f e r h e a d b _ n e x t _ f r e e ;* # o f r e e 沁tl i n k a g e 叫 s t r u c tb u f f e r h e a d4 b _ p r e v _ f r e e ;+ d o u b l yl i n k e dl l s to fb u f f e r sv s t r u c tb u f f e rh e a d4 b _ t h i s _ p a g e ;+ o l r c u l m , l i s t 。,b u f f e r smonep a g a 吖 s t r u c tb u f f e r _ h e a d4 b _ r e q n e x t ; ,+ r e q u e s tq u e u ev s t r u c tb u f f e rh e a d4 + b _ p p r e v ;+ d o u b l y i n k e dl i s to fh a s h q u e u e c h a r + h _ d a t a ; + p o i n t e rb 幽bb l o c kv s t r u c tp d 口e + b _ p a g e ; + ep j 口t h i gb h 括m a p p e d6 4 v o i d ( 咱一e n d - i o ) ( s t r u c tb u f f e r _ h e a d 4 b h ,i n tu p t o d a t e ) ;+ o 呷,呦 v v o i d + b _ p r i v a t e ;+ 悝j e h e d 南,l * n d _ i o u n s i g n e dl o n gbr s e c t o r ; _ r e a lb u f f e rl o c a t i o no dd i s k w a i t _ c l u e u e h e a dtb _ w a i t ; t r u c ti n o d e +bi n o d e ; s t r u c tl i s l h e a d b _ i n o d e _ b u 砖e r s ; f d b h i n k e dl i s t 毋i 幽乜h 嘏封s 1 ) e n db u # 2 0 h e d j 图2 3v f sb u f f e r _ h e a d 数据结构 该数据结构主要包含以下信息: bs i z e表示对应数据块的大小。 bd e v 、bb l o c k n r 表示该数据块所在设备的标识符和该设备上的块号。这两 项属性唯一的确定了文件系统中的每一个数据块。 bn e x t 表示b u f f e rh e a d 队列上后继的指针。 bn e x tf r e e表示缓冲区头部双向链表的后继指针。 bf r e vf r e e 表示缓冲区头部双向链表的前驱指针。 bd a t a 表示该缓冲区头部的数据块指针。 1 2 m o s i x 机群文p f :系统研究 b j i s t 该缓冲区头部所在的子链表的类型。在e x t 2 文件系统中, 数据块缓冲区有三个子链,分别为c l e a n 的、d i r t y 的、l o c k e d 的缓冲区链表,分 别表示链表中的缓冲区未被使用、已被修改但还未被写隧磁盘和缓冲区正被等待 写入。 2 2 ,2 进程与虚拟文件系统相关联的数据结构 通常情况下,文件系统的访问是由用户进程请求的。在l i n u x 操作系统中,进 程用t a s ks t r u c t 数据结构来描述,每个进程唯一的对应了一个t a s ks t r u c t 数据结 构,全局变量c u r r e n t 指针指向当前运行的进程。下面对进程与文件系统调用相关 的数据结构进行简要的说明。 f i l e 数据结构 f i l e 数据结构是进程打开文件的信息结构体,一个f i l e 结构代表着文件的一次 打开。该数据结构记录了进程打开文件的有关信息。 f i l e ss t r u c t 数据结构 f i l e ss t r u c t 是进程的打开文件表数据结构,通过该结构,一个用户进程管 理它的所有打开文件,该数据结构的主体是一个f i l e 结构数组,表示当前进程 打开的文件。 f ss t r u c t 数据结构: f ss t r u c t 数据结构描述的是进程与文件系统相关的全局性的信息,包括进 程的当前目录、根目录,以及当前目录和根目录的v f s m o t m t 结构等信息,而与 具体的打开文件没有什么关系。 t a s ks t r u c t 数据结构: 一个t a s ks t r u c t 数据结构标识着一个l i n u x 进程。在该结构中,提供了进程所 需的资源地址,进程的工作状态,进程的参数等多种属性。其中还包含了两个与 文件系统相联系的结构:f s 指针和f i l e s 指针。窍指向该迸程的f ss t r u c t 结构,而 f i l e s 指向该进程打开文件表的f i l e s _ s t r u c t 数据结构。下图描述了l i n u x 中进程结 构体与文件系统的关系。 图2 4 给出了进程与文件系统的关联结构。 第二章l i n u x 文件系统缓存机制 d e n t r y 翻2 4l i n u x 进 ! f 与文什系统荚联结构图 2 3 虚拟文件文件系统的缓冲区管理 在目前的计算机体系结构中,c p u 不能直接与外设进行数据交换,而只能与 寄存器、高速缓存以及主存进行数据交换,由于制造成本与工艺等的限制,上述 三种存储设备远远不能满足c p u 供数速率的需要。因此在目前的计算机中,都存 在着存储层次结构,各类存储设备如寄存器、外部高速缓存、主存储器、磁盘等 通常被组织成由上到下的层次结构。存储层次结构由两种主要的性质,即包含性 和一致性。包含性是指在某个存储层次上存储的信息,在更低的存储层次上肯定 包含该信息;一致性是指不同存储层次上所保存的信息副本应该一致。 缓存( c a c h e ) 技术通过在靠近c p u ,可以提供较高供数速率的较小容量的高 层存储设备中保留一些低速大容量的存储设备中内容的副本,利用程序执行的时 间和空间的局部性原理减少对低速存储设备的访问,从而达到节省访问时间,提 高访问性能的目的。可以将存储层次本身看成是缓存技术的一种体现。 文件缓存是存储层次结构在文件系统中的体现,它利用文件读写与属性存取 的局部性,通过在内存中的进行缓存,减少对文件系统所在物理磁盘的访问,从 而加快文件访问的速度。l i n u x 的v f s 中主要对三种数据对象进行缓存,即:数 据缓存、i n o d e 缓存和d e n t r y 缓存。 1 4 m o s i x 机群文件系统研究 2 3 1 数据缓冲区管理 l i n u x 数据缓冲区就是一个内存缓冲块组成的池,当数据块从磁盘上取出后存 放到内存缓冲区中。缓冲区机制利用了程序局部访问的特性,把最近使用的数据 块存放在内存中,同时,内核算法使数据块在缓冲区中保存尽可能长的时问,以 便减少磁盘访问的次数。 l i n u x 为了方便文件系统的访问,外部设备的数据空间被分成相同大小的数据 块,外部设备的数据空间的分配就以数据块为单位,数据块是块设备的最小分配 单位。l

温馨提示

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

评论

0/150

提交评论