已阅读5页,还剩72页未读, 继续免费阅读
(计算机软件与理论专业论文)网络专用服务器的专用文件系统.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
网络专用服务器的专用文件系统 中文摘要 , ( 网络专用服务器是一种软硬件相结合的网络计算设备。与通用服务器不同, 它只向用户提供一种或几种网络服务( 比如e m a i i 服务、w e b 服务、代理服务) 。 由于采用了专而精的设计思想,网络专用服务器能以较低廉的价格向用户提供高 性能、高可靠性、易维护的网络服务。 随着因特网的高速发展和应用,网络专用服务器得到了非常广泛的应用和发 展,因此它的系统性能成了人们关注的问题。为提高它的访问速度,本文分析了 网络专用服务器的文件系统,提出了一种新型文件系统设计思想,使其对文件的 读写速度得到了明显提高。通过文件系统对数据读写操作流程的分析,在系统的 r e q u e s t 队列中将其读写的对象置换为n v r a m ,从而实现数据读写的截取和转向, 然后对n v r a m 的脏数据容量进行检测,当其到达n v r a m 容量的一定比例后,调用 相应的程序把脏数据对外设回写。 对于n v r a m 的设计,我们采用电子盘,即一块带有后备电池的p c i 卡。主 要考虑电子盘价格适中,而且访问速度够快,是理想的方案。电子盘是单独设计 的一块p c i 卡,上面具有一个n v r a m 存储器用来存储文件系统读写的数据。广一、) r 一 。 论文主要分为5 大部分,第一部分是网络专用服务器的概述。第二部分是 1 i n u x 文件系统的相关知识,讲述了l i n u x 对多文件系统的支持和b u f f e rc a c h e 的结构。第三部分是是l , n u x 设各驱动的相关知识,讲述了l i n u x 设备驱动的分 类,以及可动态安装卸载核心模块的原理机制和实现。第四部分是网络专用服 务器的专用文件系统的具体实现,详述了系统的三个主要模块的设计方案和实现 技术。第五部分是系统性能测试及尚待考虑的问题。给出了所实现网络专用文件 服务器的性能数据,并提出了进一步的工作方向。 关键词:文件系统,文件访问模式设备驱动程序,r e q u e s t 队列。 旦塑! 旦竖墨墅塑童旦苎壁墨鉴 a b s t r a c t w e bs e r v e ri st h ef a c i l i t yd e s i g n e df o rt h ew e b d a t ap r o c e s s i n gw i t ht h ec o m b i n a t i o no ft h e s o f t w a r ea n dh a r d w a r e t ob eq u i t ed i f f e r e n tw i t ht h ec o m m o ns e r v e r s ,w e bs e r v e rc a no n l y p r o v i d eas o r to rs o r t so fw e bs e r v i c e st ot h ec l i e n t s ,s u c ha se m a i ls e r v i c e ,h n ps e r v i c e ,p r o x y s e r v i c e ,e t c b e c a u s eo ft h ec o m p a c tm e t h o d su s i n go nt h ei m p l e m e n to ft h ew e b s e r v e r , i tc a n p r o v i d eal o to f e f f e c t i v es e r v i c e st ot h eu s e r sa tt h el o w e rc o s t s w i t ht h ed e v e l o p m e n to fi n t e r n e t ,t h ep e r f o r m a n c eo fw e b s e r v e ri sb e c o m i n gt h ef o c u so f d i s c u s s i o nw h i l ei ti s b e i n gw i l d l yu s e do nt h ea l la s p e c t so ft h ei n t e r n e t p e o p l ea r em o r ea n d m o r ec o n c e r n i n ga b o u tt h ep e r f o r m a n c eo fw e b s e r v e r f o r a c c e l e r a t i n gi t w et e s ta n da n a l y z e t h ef i l ea c c e s sp a r e r no fw e b s e r v e r , a n dp r e s e n tan e wf i l es y s t e mm o d e l ,w h i c he f f e c t i v e l y s p e e dt h ea c c e s st ot h ef i l e so ni t w ei n t e r c e p ta n dc a p t u r et h er e a da n dw r i t es y s t e mc a l l sv i a p u t t i n gt h en v r a m 0 nt h er e q u e s t q u e u e t h e no b s e r v i n gt h ec a p a c i t yo ft h e “d i r t y ”d a t a 。w e r e d i r e c tt h ew r i t i n gd i r e c t i o nt ot h eh a r dd i s kw h i l ed e t e c t i n gt h ep r o p o r t i o no f t h e “d i r t y d a t a e x c e e d st h e m j t a b o u tt h ed e s i g no ft h en v r a m ,w e p l a nt om a k ef u l lu s eo fe l e c t r o n i cd i s k ,s u c ha sap e i c a r dw i t ht h es u p p o r to ft h eb a c k u pb a k e r y b e c a u s et h ee l e c t r o n i cd i s ki s9 0 0 da tt h ea c c e s s i n g d a t aa n di t sp r i c ei sr e a s o n a b l e ,t h i sp r o j e c ti sf e a s i b l e h e r e ,t h ee l e c t r o n i cd i s ki sac a r dw i t ht h e n v r a mt h a tc a ns a v et h ed a t a t h i st h e s i sh a sf i v ec h a p t e r s c h a p t e r1i sa no v e r v i e wo f n e t w o r k - s p e c i a ls e r v e r s c h a p t e r2 i n t r o d u c e st h ek n o w l e d g eo ft h ef i l e s y s t e m ,d e s c r i b e st h es u p p o r t i n gt h e o r yo ft h em u l t i f i l e s y s t e m s c h a p t e r 3i n t r o d u c e st h ed e v i c e so ft h el i n u xa n dt h e i m p l e m e n t a t i o n o ft h e i n s t a l l i n g j u n i n s t a l l i n gm o d u l e s c h a p t e r4i st h em a i np a r to ft h i st h e s i s i td e s c r i b e sm yd e s i g n a n di m p l e m e n t a t i o no ft h et h r e em a i nm o d u l e s c h a p t e r5g i v e st h ep e r f o r m a n c e t e s t i n go ft h e s p e c i a l i z e df i l es y s t e ma n dt h ef u r t h e rd i r e c t i o na n d d i s c u s s i o no f t h ei m p r o v e m e n t k e y w o r d s :f i l es y s t e m ,f i l ea c c e s s p a t t e r n ,d e v i c ed r i v e r , r e q u e s tq u e u e 4 网络专用服务器的专用文件系统 第一章引言 1 1 网络专用服务器概述 网络专用服务器针对的用户群主要是中小型的企业、中小学校和政府机关。 这些单位般缺乏专门的计算机管理人员,经费使用上受到一定的限制,需要的 网络服务种类比较单一( 通常就是e m a i l 服务、w e b 服务、代理服务) 。网络专 用服务器的低价格、免维护、高性能的特点正好适合这些用户的需要。 目前,国内的i n t e r n e t 应用正迈向个繁荣和务实的阶段,网络正在以前 所未有的速度和渗透力进入到社会的每个角落。“政府上网”、“企业上网”、 “学校上网”在社会上掀起了一个接一个的网络应用热潮。 但是,有关统计资料表明,我国现有企业的总数不少于1 0 0 0 万个,其中大 中型企业只有5 0 0 0 个,而年销售收入在5 0 0 0 万元以上的企业不超过1 6 万个。 尽管我国企业的上网热情不断高涨域名注册数增长迅速,但目前能够拥有自己 的电子商务站点的企业数目还不到总数的0 8 ,建立了企业内部网的就更是风 毛麟角。 为了改变这种局面,作为“企业上网工程”承办方的中国电信数据通信局和 国家经贸委经济信息中一心明确表示,“企业上网工程”的目标是:2 0 0 0 年在全国 范围内实现1 0 0 万家小型企业,1 万家中型企业,1 0 0 家大型企业上网,企业上 网数在3 年内每年递增1 0 0 。 以上这些数据表明,我国将迎来网络发展的又一个高潮。由于网络专用服务 器具有性能高,易于使用维护的特点,它在中小型企业服务器市场上将占据一个 比较大的份额。以我国有中小型企业、学校、政府机关1 0 0 0 万家计,如果有1 0 的单位上网,每家平均购买两台网络专用服务器,将有2 0 0 万台的市场容量。以 每台网络专用服务器平均售价l 万元计算,这将是一个价值2 0 0 亿元的市场。 目前国内还没有厂商生产类似产品。但在国外,尤其是美国近年已经出现很 多生产网络专用服务器的公司,其中比较著名的有c o b a l t ,e n c a n t o ,e s o f t , f r e e g a t e 。老牌服务器生产厂商也不甘落后,纷纷推出自己的网络专用服务器。 由于这类产品具有使用方便、维护简单、性能可靠的优点,在美国市场的销路很 好。目前c o b a l t 公司的q u b e2 7 0 0 售价为1 2 4 9 美元。e s o f t 公司的i n s t a c a t e 网络专用服务器的专用文件系统 c o m m u n i c a t i o n s 售价为3 9 9 5 美元。i n t e r n e ta p p l i c a n c e 公司的s e s l 5 0 0 售价 为3 0 0 0 美元。可以说,这样的售价是有相当好的利润的。 网络专用服务器硬件一般采用标准的商用部件加上一些自主开发的板卡:服 务器软件一般使用经修改、裁剪后的自由软件。 每台服务器的构成如下: 部件名称数量 标准主板 1 p e n t i u m 系列c p u 1 内存1 2 8 5 1 2 m l 网络接口卡 l 文件系统加速卡 1 ( 自主开发) a t a 硬盘i 一4 个 高性能d d n 接口卡 1 ( 自主开发) 双电源机箱 1 ( 自主开发) 总计 由于网络专用服务器是一个软硬件相结合的设各。在开发时除了采用现有的 微机部件外,还有许多硬件和软件都需要自己开发。因此它涉及的技术面很宽, 技术门槛也比较高。加之目前国内还没有厂商生产类似产品,市场竞争环境相对 宽松。 1 2 网络专用服务器软硬件结构 下面两个图介绍了该产品的硬件和软件结构。图l 是专用服务器的硬件结 构。图2 展示了专用服务器的系统结构。 旦丝主旦堡墨墨盟主里壅堡墨壅 图1 网络专用服务器硬件结构图 管理软件l h p a c h e q m i1 m y p r o x y m y c a c h e 经过专门改造的l i n u x 系统 通用硬件+ 专用文件系统加速卡 图2 专用服务器体系结构 对图中的本产品的结构简介如下: 系统硬件拟采用高性能的商用服务器主板,另外加上由我们自行开发 具有自主知识版权的文件系统加速卡。 操作系统我们选用了l i n u x ,但并不是简单的照搬。我们将改进其i o 系统、文件系统和t c p i p 栈,使之更符合专用服务器的需要。 由于设计出发点和采用技术与通用服务器不同,拟开发的专用服务器主要具有以 下特点: 易于使用 由于通用服务器要为用户提供多种服务,因此它的安装、配置和 使用比较复杂,需要有较高专业素质的计算机人员进行维护。这一点 对中小学、小型企事业单位这样的用户来说是不现实的。 固园 壁墅墅墅墅塑塑业壁墨竺 我们设计的专用服务器则是一种典型的“交钥匙,系统。我们交 给用户的就是一个已经配置好了硬件和相应软件的机盒,用户只需要 简单的接上电源、网线即可使用。由于它只为用户提供一种或几种有 限的服务,所以它的安装、配置、使用和日常维护都十分简单。在日 常操作时,用户通过浏览器就可以完成所有的配置管理工作。 成本低廉 与通用服务器相比,专用服务器的另一个特点是成本低廉。通用 服务器包含的很多软硬件对多数网络用户是无用的。我们的专用服务 器在设计时根据特定的应用,去掉了系统中多余的部分,比如显示系 统、外部输入设备、光驱、软驱、声卡等,节约了系统成本。 在操作系统的选择上,通用服务器为了适应不同的用户应用,总 是选用应用程序种类多,稳定性好的商用操作系统。而我们的专用服 务器选用具有开放源代码,可以自行裁剪的l i n u x 操作系统。这也是 一个降低系统总体成本的重要因素。 系统性能高 通用服务器为了对不同应用都能提供一个比较好的性能,在系统 设计时作了很多折衷考虑。因此某种特定应用往往不能利用通用服务 器的全部资源以达到最佳的性能。 我们的专用服务器则采用一种与通用服务器截然不同的做法:尽 最大可能优化系统的各个方面,使单一应用在该平台上能获得最好的 性价比。具体来说我们采用了如下的设计措施: 针对e m a i l 、w e b 服务器小文件操作多的特点,我们研制了专用 硬件一文件系统加速卡,并且修改了l i n u x 中的文件系统 算法,大大提高了文件系统性能。 针对e m a i l 、w e b 服务器网络通信的特点,我们改写了t c p i p 协议栈,通过采用集成化协议栈,用户空间直接i o 等算法, 大大提高了系统处理h t t p 和s m t p 协议的性能。 针对应用的特点,我们还改进了l i n u x 的i 0 系统和内存管理算 法。这些改进都在不同程度上提升了系统的性能。 网络专用服务罂的专用文件系统 系统可靠性好 目前通用服务器在使用中面临的一个主要问题是需要专门的 维护人员,定期对机器进行维护,对系统进行整理。又因为通用 服务器具有各种外设,容易被人误用,产生故障。而网络专用服 务器则不存在上述问题。首先,在设计上我们就将作大量工作, 使系统成为一个免维护系统:其次,专用服务器是一个封闭的机 匣,也不存在被人误用导致故障的隋况:另外,我们还采取了双 电源机箱等措施增强系统的可靠性。 从软件结构图可以看出,底层的通用硬件和专用文件加速卡是通过裁剪后的 l i n u x 系统来对上层的服务进行操作和控制的。 通过改造l i n u x 文件系统,并与文件系统加速卡相配合,使系统对数据读写 的速度较大幅度的提高。 网络专用服务器的专用文件系统 第二章l i n u x 文件系统 2 1li n u x 的多文件系统支持 文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构:即在 磁盘上组织文件的方法。也指用于存储文件的磁盘或分区,或文件系统种类。因 此,可以说”我有2 个文件系统”意思是他有2 个分区,一个存文件,或他用”扩 展文件系统”,意思是文件系统的种类。一个分区或磁盘能作为文件系统使用前, 需要初始化,并将记录数据结构写到磁盘上。这个过程就叫建立文件系统。大部 分( s n d 文件系统种类具有类似的通用结构,即使细节有些变化。其中心概念是 超级块s u p e r b l o c k ,i 节点i n o d e ,数据块d a t ab l o c k ,目录块d i r e c t o r yb l o c k ,和问 接块i n d i r e c t i o nb l o c k 。超级块包括文件系统的总体信息,比如大小( 其准确信息 依赖文件系统) 。i 节点包括除了名字外的一个文件的所有信息,名字与i 节点 数目一起存在目录中,目录条目包括文件名和文件的i 节点数目。i 节点包括几 个数据块的数目,用于存储文件的数据。i 节点中只有少量数据块数的空间,如 果需要更多,会动态分配指向数据块的指针空间。这些动态分配的块是间接块; 为了找到数据块,这名字指出它必须先找到问接块的号码。 l i n u x 的最重要特征之一就是支持多种文件系统。由于l i n u x 核心对文件系 统的支持,虚拟文件系统( v f s ) 以及l i n u x 核心对实际文件系统的支持,它可咀 更加灵活并可以和许多其它种操作系统共存。 l i n u x 并不使用设备标志符( 如设备号或驱动器名称) 来访问独立文件系统, 而是通过一个将整个文件系统表示成单一实体的层次树结构来访问它。l i n u x 每 安装( m o u n t ) 一个文件系统时都会其加入到文件系统层次树中。不管是文件系统 属于什么类型,都被连接到一个目录上且此文件系统上的文件将取代此目录中已 存在的文件。这个目录被称为安装点或者安装目录。当卸载此文件系统时这个安 装目录中原有的文件将再次出现。 当磁盘初始化时( 使用f d i s k ) ,磁盘中将添加一个描叙物理磁盘逻辑构成 的分区结构。每个分区可以拥有一个独立文件系统如e x t 2 。文件系统将文件组 织成包含目录,软连接等存在于物理块设备中的逻辑层次结构。包含文件系统的 设备叫块设备。l i n u x 文件系统认为这些块设备是简单的线性块集合,它并不关 心或理解底层的物理磁盘结构。这个工作由块设备驱动来完成,由它将对某个特 网络专用服务器的专用文件系统 定块的请求映射到正确的设备上去;此块所在硬盘的对应磁道、扇区及柱面数都 被保存起来。不管哪个设备持有这个块,文件系统都必须使用相同的方式来寻找 并操纵此块。l i n u x 文件系统不管( 至少对系统用户来说) 系统中有哪些不同的 控制器控制着哪些不同的物理介质且这些物理介质上有几个不同的文件系统。文 件系统甚至还可以不在本地系统而在通过网络连接的远程硬盘上。 文件系统中的文件是数据的集台;文件系统不仅包含着文件中的数据而且还 有文件系统的结构。所有l i n u x 用户和程序看到的文件、目录、软连接及文件保 护信息等都存储在其中。此外文件系统中必须包含安全信息以便保持操作系统的 基本完整性。没人愿意使用一个动不动就丢失数据和文件的操作系统。 l i n u x 最早的文件系统是m i n i x ,它受限甚大且性能低下。其文件名最长不 能超过1 4 个字符( 虽然比8 3 文件名要好) 且最大文件大小为6 4 m 字节。6 4 m 字节看上去很大,但实际上一个中等的数据库将超过这个尺寸。第一个专门为 l i n u x 设计的文件系统被称为扩展文件系统( e x t e n d e df i l es y s t e m ) 或e x t 。 它出现于1 9 9 2 年四月,虽然能够解决些问题但性能依旧不好。1 9 9 3 年扩展文 件系统第二版或e x t 2 被设计出来并添加到l i n u x 中。它是本章将详细讨论的文 件系统。 将e x t 文件系统添加入l i n u x 产生了重大影响。每个实际文件系统从操作系 统和系统服务中分离出来,它们之间通过一个接口层:虚拟文件系统或v f s 来通 讯。 v f s 使得l i n u x 可以支持多个不同的文件系统,每个表示一个v f s 的通用接 口。由于软件将l i n u x 文件系统的所有细节进行了转换,所以l i n u x 核心的其它 部分及系统中运行的程序将看到统一的文件系统。l i n u x 的虚拟文件系统允许 用户同时能透明地安装许多不同的文件系统。 虚拟文件系统的设计目标是为l i n u x 用户提供快速且高效的文件访问服务。 同时它必须保证文件及其数据的正确性。这两个目标相互间可能存在冲突。当安 装一个文件系统并使用时,l i n u xv f s 为其缓存相关信息。此缓存中数据在创建、 写入和删除文件与目录时如果被修改,则必须谨慎地更新文件系统中对应内容。 如果能够在运行核心内看到文件系统的数据结构,那么就可以看到那些正被文 件系统读写的数据块。描叙文件与目录的数据结构被不断的创建与删除而设备驱 动将不停地读取与写入数据。这些缓存中最重要的是b u f f e rc a c h e ,它被集成 到独立文件系统访问底层块设备的例程中。当进行块存取时数据块首先将被放入 一 旦垒主里堡墨墨塑主旦皇壁墨堑 b u f f e rc a c h e 里并根据其状态保存在各个队列中。此b u f f e rc a c h e 不仅缓存数 据而且帮助管理块设备驱动中的异步接口。 2 2 第二代扩展文件系统( e x t 2 ) 图2 1e x t 2 文件系统的物理分布 第二代扩展文件系统由r e yc a r d 设计,其目标是为l i n u x 提供一个强大的 可扩展文件系统。它同时也是l i n u x 界中设计最成功的文件系统。 象很多文件系统一样,e x t 2 建立在数据被保存在数据块中的文件内这个前 提下。这些数据块长度相等且这个长度可以变化,某个e x t 2 文件系统的块大小 在创建( 使用m k e 2 f s ) 时设置。每个文件的大小和刚好大于它的块大小正数倍 相等。如果块大小为1 0 2 4 字节而一个1 0 2 5 字节长的文件将占据两个1 0 2 4 字节 大小的块。这样你不得不浪费差不多一般的空间。我们通常需要在c p u 的内存利 用率和磁盘空间使用上进行折中。而大多数操作系统,包括l i n u x 在内,为了减 少c p u 的工作负载而被迫选择相对较低的磁盘空间利用率。并不是文件中每个块 都包含数据,其中有些块被用来包含描叙此文件系统结构的信息。e x t 2 通过一 个i n o d e 结构来描叙文件系统中文件并确定此文件系统的拓扑结构。i n o d e 结 构描叙文件中数据占据哪个块以及文件的存取权限、文件修改时间及文件类型。 e x t 2 文件系统中的每个文件用一个i n o d e 来表示且每个i n o d e 有唯一的编号。 文件系统中所有的i n o d e 都被保存在i n o d e 表中。e x t 2 目录仅是一个包含指向 其目录入口指针的特殊文件( 也用i n o d e 表示) 。 图2 1 给出了占用一系列数据块的e x t 2 文件系统的布局。对文件系统而言 文件仅是一系列可读写的数据块。文件系统并不需要了解数据块应该放置到物理 介质上什么位置,这些都是设备驱动的任务。无论何时只要文件系统需要从包含 堕鱼主旦壁墨矍塑主里苎苎墨苎l 一 它的块设备中读取信息或数据,它将请求底层的设备驱动读取一个基本块大小整 数倍的数据块。e x t 2 文件系统将它所使用的逻辑分区划分成数据块组。每个数 据块组将那些对文件系统完整性最重要的信息复制出来,同时将实际文件和目 录看作信息与数据块。为了发生灾难性事件时文件系统的修复,这些复制非常有 必要。 2 2 1t h e e x t 2i n o d e c _ t 2h - 口幽 图2 2 e x t 2 i n o d 。 在e x t 2 文件系统中i n 。d e 是基本块;文件系统中的每个文件与目录由唯一 的i n 。d e 来描述。每个数据块组的e x t 2 i n o d e 被保存在i n o d e 表中,同时还有 一个位图被系统用来跟踪已分配和未分配的i n o d e 。图2 2 给出了e x t 2 i ”。d 。 的格式,它包含以下几个域: 它包含两类信息;i n o d e 描叔的内容咀及用户使用权限。e x t 2 中的i n o d e 可以表示一个文件、目录、符号连接、块设备、字符设备或f i f o 。 一旦竺主旦垦墨矍塑主旦苎壁墨竺 o w n e ri n f o r m a t i o n 表示此文件或目录所有者的用户和组标志符。文件系统根据它可以进行正 确的存取。 以字节计算的文件尺寸。 t i m e s t a m p s i n o d e 创建及最后一次被修改的时间。 d a t a b l o c k s 指向此i n o d e 描叙的包含数据的块指针。前1 2 个指针指向包含由i n o d e 描叙的物理块,最后三个指针包含多级间接指针。例如两级间接指针指向 一块指针,而这些指针又指向一些数据块。这意味着访问文件尺寸小于或 等于1 2 个数据块的文件将比访问大文件快得多。 e x t 2i n o d e 还可以描叙特殊设备文件。虽然它们不是真正的文件,但可以 通过它们访问设备。所有那些位于d e v 中的设备文件可用来存取l i n u x 设备。 2 2 2e x t 2 超块 超块中包含了描叙文件系统基本尺寸和形态的信息。文件系统管理器利用它 们来使用和维护文件系统。通常安装文件系统时只读取数据块组0 中的超块, 但是为了防止文件系统被破坏,每个数据块组都包含了复制拷贝。超块包含如下 信息: m a g i cn u m b e r 文件系统安装软件用来检验是否是一个真正的e x t 2 文件系统超块。 r e v i s i o nl e v e l 这个主从修订版本号让安装代码能判断此文件系统是否支持只存在于某 堕塑童旦里墨墅竺主旦茎壁墨苎一 个特定版本文件系统中的属性。同时它还是特性兼容标志以帮助安装代码 判断此文件系统的新特性是否可以安全使用。 m o u n tc o u n ta n dm a x i m u m m o u n tc o u n t 系统使用它们来决定是否应对此文件系统进行全面检查。每次文件系统安 装时此安装记数将递增,当它等于最大安装记数时系统将显示一条警告信 息“m 矾u m a lm o u n tc o u n tr e a c h e d ,r u n n i n g e 2 f s c kisr e c o m m e n d 。d ”口 b l o c kg r o u pn u m b e r 超块的拷贝。 b l o c ks i z e 以字节记数的文件系统块大小。 每个组中块数目。当文件系统创建时此块大小被固定下来a 文件系统中空闲块数。 文件系统中空闲i n o d e 数a 文件系统中第一个i n o d e 号。e x t 2 根文件系统中第一个i n o d e 将是指向 目录的目录入口。 2 2 3e x t 2 组标志符 每个数据块组都拥有一个描叙它结构。象超块一样,所有数据块组中的组描 叙符被复制到每个数据块组中以防文件系统崩溃。每个组描叙符包含以下信息: 旦堡主! 堂墨塑主旦壅壁墨堕 b l o c k s b i t m a p 对应此数据块组的块分配位图的块号。在块分配和回收时使用。 i n o d eb i t m a p 对应此数据块组的i n o d e 分配位图的块号。在i n o d e 分配和回收时使用。 i n o d et a b l e 对应数据块组的i n o d e 表的起始块号。每个i n o d e 用下面的e x t 2i n o d e 结构来表示。 f r e eb l o c k sc o u n t ,f r e ei n o d e s c o u n t ,u s e dd i r e c t o r yc o u n t 组描叙符放置在一起形成了组描叙符表。每个数据块组在超块拷贝后包含整 个组描叙符表。e x t 2 文件系统仅使用第一个拷贝( 在数据块组0 中) 。其它拷 贝都象超块拷贝一样用来防止主拷贝被破坏。 2 2 4 e x t 2 目录 o 图2 3 - 1 6 网络专用服务器的专用文件系统 在e x t 2 文件系统中目录是用来创建和包含文件系统中文件存取路径的特殊 文件。图2 3 给出了内存中的目录入口布局。 目录文件是一组目录入口的链表,它们包含以下信息 对应每个目录入口的i n o d e 。它被用来索引储存在数据块组的i n o d e 表中 的i n o d e 数组。在图9 3 中f i 】e 文件的目录入口中有一个对j n o d e 号 1 l 的引用。 以字节记数的目录入口长度。 目录入口的名称。 每个目录的前两个入口总是”和”。它们分别表示当前目录和父目录。 2 2 5在e x t 2 文件系统中搜寻文件 l i n u x 文件名的格式与u n i x 类似,是一系列以”,”隔开的目录名并以文件名结 尾。h o m e r u s l i n g c s h r cq b h o m e 和r u s l i n g 都是目录名而文件名为c s h r c 。象u n i x 系统一样,l i n u x 并不关心文件名格式本身,它可以由任意可打印字符组成。为 了寻找e x t 2 文件系统中表示此文件的i n o d e ,系统必须将文件名从目录名中分 离出来。 我们所需要的第一个i n o d e 是根文件系统的i n o d e ,它被存放在文件系统的 超块中。为读取某个e x t 2i n o d e ,我们必须在适当数据块组的i n o d e 表中进行 搜寻。如果根i n o d e 号为4 2 则我们需要数据块组0i n o d e 表的第4 2 个i n o d e 。 此根i n o d e 对应于一个e x t 2 目录,即根i n o d e 的m o d e 域将它描叙成目录且其数 据块包含e x t 2 目录入口。h o m e 目录是许多目录的入口同时此目录给我们提供了 大量描叙h o m e 目录的i n o d e 。我们必须读取此目录以找到r u s l i n g 目录入口, 此入口又提供了许多描叙h o m e r u s l i n g 目录的i n o d e 。最后读取由 h o m e r u s l i n g 目录描叙的i n o d e 指向的目录入口以找出c s h r c 文件的i n o d e 号并从中取得包含在文件中信息的数据块。 网络专用服务器的专用文件系统 2 2 6 改变e x t 2 文件系统中文件的大小 文件系统普遍存在的一个问题是碎块化。个文件所包含的数据块遍布整个 文件系统,这使得对文件数据块的顺序访问越来越慢。e x t 2 文件系统试图通过分 配一个和当前文件数据块在物理位置上邻接或者至少位于同一个数据块组中的 新块来解决这个问题。只有在这种分配策略失败时才在其它数据块组中分配空 间。 当进程准备写某文件时,l i n u x 文件系统首先检查数据是否已经超出了文件 最后个被分配的块空间。如果是则必须为此文件分配一个新数据块。进程将一 直等待到此分配完成:然后将其余数据写入此文件。e x t 2 块分配例程所作的第 一件事是对此文件系统的e x t 2 超块加锁。这是因为块分配和回收将导致超块中 某些域的改变,l i n u x 文件系统不能在同一时刻为多个进程进行此类服务。如果 另外一个进程需要分配更多的数据块时它必须等到此进程完成分配操作为止。 在超块上等待的进程将被挂起直到超块的控制权被其当前使用者释放。对超块的 访问遵循先来先服务原则,一旦进程取得了超块的控制则它必须保持到操作结束 为止。如果系统中空闲块不多则此分配的将失败,进程会释放对文件系统超块的 控制。 如果e x t 2 文件系统被设成预先分配数据块则我们可以从中取得一个。预先 分配块实际上并不存在,它们仅仅包含在已分配块的位图中。我们试图为之分配 新数据块文件所对应的v f si n o d e 包含两个e x t 2 特殊域:p r e a l l o c b l o c k 和 p r e a l l o c c o u n t ,它们分别代表第一个预先分配数据块的块号以及各自的数目。 如果没有使用预先分配块或块预先分配数据块策略,则e x t 2 文件系统必须分配 一个新块。它首先检查此文件最后一个块后的数据块是否空闲。从逻辑上来说这 是让其顺序访问更快的最有效块分配策略。如果此块已被使用则它会在理想块周 围6 4 个块中选择一个。这个块虽然不是最理想但和此文件的其它数据块都位于 同一个数据块组中。 如果此块还是不空闹则进程将在所有其它数据块组中搜寻,直到找到一空闲 块。块分配代码将在某个数据块组中寻找一个由8 个空闲数据块组成的簇。如果 找不到那么它将取更小的尺寸。如果使用了块预先分配则它将更新相应的 p r e a l lo c b lo c k 年口p r e a l l o c c o u n t 。 找到空闲块后块分配代码将更新数据块组中的位图并在b u f f e rc a c h e 中为 它分配一个数据缓存。这个数据缓存由文件系统支撑设备的标志符以及已分配块 网络专用服务器的专用文件系统 的块号来标志。缓存中的数据被置0 且缓存被标记成d i r t y 以显示其内容还没有 写入物理磁盘。最后超块也被标记为d i r t y 以表示它已被更新并解锁了。如果有 进程在等待这个超块则队列中的第一个进程将得到运行并取得对超块的独占控 制。如果数据块被填满则进程的数据被写入新数据块中,以上的整个过程将重复 且另一个数据块被分配。 2 3 虚拟文件系统( v f s ) 图2 , 4 虚拟文件系统的逻辑示意图 图2 4 给出了l i n u x 核心中虚拟文件系统和实际文件系统间的关系。此虚拟 文件系统必须能够管理在任何时刻m o u n t 到系统的不同文件系统。它通过维护一 个描叙整个虚拟文件系统和实际已安装文件系统的结构来完成这个工作。 容易让人混淆的是v f s 使用了和e x t 2 文件系统类似的方式:超块和in o d e 来描叙文件系统。象e x t 2i n o d e 一样v f si n o d e 描叙系统中的文件和目录以及 网络专用服务器的专用文件系统 v f s 中的内容和拓扑结构。从现在开始我将用v f si n o d e 和v f s 超块来将它们和 e x t 2i n o d e 和超块进行区分。 文件系统初始化时将其自身注册到v f s 中。它发生在系统启动和操作系统初 始化时。这些实际文件系统可以构造到核心中也可以设计成可加载模块。文件系 统模块可以在系统需要时进行加载,例如v f a t 就被实现成一个核一1 1 , 模块,当 m o u n tv f a t 文件系统时它将被加载。m o u n t 一个基于块设备且包含根文件系统的 文件系统时,v f s 必须读取其超块。每个文件系统类型的超块读取例程必须了解 文件系统的拓扑结构并将这些信息映射到v f s 超块结构中。v f s 在系统中保存着 一组已安装文件系统的链表及其v f s 超块。每个v f s 超块包含一些信息以及一 个执行特定功能的函数指针。例如表示一个已安装e x t 2 文件系统的超块包含一 个指向e x t 2 相关i n o d e 读例程的指针。这个e x t 2i n o d e 读例程象所有文件系统 相关读例程一样填充了v f si n o d e 中的域。每个v f s 超块包含此文件系统中第一 个v f si n o d e 的指针。对于根文件系统此i n e d e 表示的是”目录。这种信息映 射方式对e x t 2 文件系统非常有效但是对其它文件系统要稍差。 系统中进程访问目录和文件时将使用系统调用遍历系统的v f si n o d e 。 例如键入1 s 或c a t 命令则会引起虚拟文件系统对表示此文件系统的v f s i n o d e 的搜寻。由于系统中每个文件与目录都使用一个v f si n o d e 来表示,所以 许多i n o d e 会被重复访问。这些i n o d e 被保存在j n o d ec a c h e 中以加快访问速度。 如果某个i n o d e 不在i n o d ec a c h e 中则必须调用一个文件系统相关例程来读取此 i n o d e 。对这个i n o d e 的读将把此它放到i n o d ec a c h e 中以备下一次访问。不经 常使用的v f si n o d e 将会从c a c h e 中移出。 所有l i n u x 文件系统使用一个通用b u f f e rc a c h e 来缓冲来自底层设备的数 据以便加速对包含此文件系统的物理设备的存取。 这个b u f f e rc a c h e 与文件系统无关并被集成到l i n u x 核心分配与读写数据 缓存的机制中。让l i n u x 文件系统独立于底层介质和设备驱动好处很多。所有的 块结构设备将其自身注册到l i n u x 核心中并提供基于块的一致性异步接口。象 s c s i 设备这种相对复杂的块设备也是如此。当实际文件系统从底层物理磁盘读 取数据时,块设备驱动将从它们所控制的设备中读取物理块。b u f f e rc a c h e 也 被集成到了块设备接口中。当文件系统读取数据块时它们将被保存在由所有文 件系统和l i n u x 核心共享的全局b u f f e rc a c h e 中。这些b u f f e r 由其块号和读取 设备的设备号来表示。所阻当某个数据块被频繁使用则它很可能能从b u f f e r 网络专用服务器的专用文件系统 c a c h e 而不是磁盘中读取出来,后者显然将花费更长的时间。有些设备支持通过 预测将下一次可能使用的数据提前读取出来。 v f s 还支持一种目录c a c h e 以便对经常使用的目录对应的i n o d e 进行快速查 找。我们可以做一个这样的实验,首先我们对一个最近没有执行过列目录操作的 目录进行列目录操作。第一次列目录时你可能发现会有较短的停顿但第二次操作 时结果会立刻出现。目录c a c h e 不存储目录本身的i n o d e :这些应该在i n o d e c a c h e 中,目录c a c h e 仅仅保存全目录名和其i n o d e 号之间的映射关系。 2 3 1v f s 超块 每个已安装的文件系统由一个v f s 超块表示;它包含如下信息 d e v i c e 表示文件系统所在块设备的设备标志符。例如系统中第一个i i ) e 硬盘的设 备标志符为0 x 3 0 1 。 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 指针。 b l o c k s i z e 以字节记数的文件系统块大小,如1 0 2 4 字节。 s u p e r b l o e ko p e r a t i o n s 指向此文件系统一组超块操纵例程的指针。这些例程被v f s 用来读写 i n o d e 和超块。 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 结构的指针。 f i l es y s t e ms p e c i f i c 堕主旦里墨塑塑型至竺 指向文件系统所需信息的指针。 2 3 2t h e v f si n o d e 和e x t 2 文件系统相同,v f s 中的每个文件、目录等都用且只用个v f si n o d e 表示。每个v f s i n o d e 中的信息通过文件系统相关例程从底层文件系统中得到。 v f s i “。d 。仅存在于核心内存并且保存只要对系统有用,它们就会被保存在在v f s i n o d ec a c h e 中。每个v f s i n o d e 包含下列域: 包含此文件或此v f s i n o d e 代表的任何东西的设备的设备标志符。 m o d e u s e r i d s t i m e s 文件系统
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 保密协议书视频拍摄
- 标签专业分包协议书
- rip协议书命令格式
- 2025年RCEP项下采购与原产地规则管理应用考核试卷
- 2025初级商业人像摄影师布光方案快速设计考核试卷
- 如果搬迁退还协议书
- 青海聚之源协议书
- 2025年公共事业行业数字政府与智慧城市研究报告及未来发展趋势预测
- 2025年家居装修行业智能家居与节能装修研究报告及未来发展趋势预测
- 2025年服装行业时尚产业数字化转型策略研究报告及未来发展趋势预测
- 人工智能在智能交通系统中的应用
- 5.3细胞呼吸的原理和应用课件高一上学期生物人教版(2019)必修1-1
- 《世界法制史专题》课件
- 高中地理课堂教学培训
- 全屋智能培训
- 企业安全生产费用提取和使用管理办法(财企〔2012〕16号)
- 五年级语文上册 古诗专项(部编版)
- 人教版(2024新版)七年级上册英语Starter Unit3单元测试卷(含答案)
- 专升本-英语高频词汇
- 《梦溪笔谈》 公开课一等奖创新教学设计中职语文外研版拓展模块
- 金融学期末考试卷及答案
评论
0/150
提交评论