(计算机软件与理论专业论文)网络缓存服务器专用文件系统的设计及实现.pdf_第1页
(计算机软件与理论专业论文)网络缓存服务器专用文件系统的设计及实现.pdf_第2页
(计算机软件与理论专业论文)网络缓存服务器专用文件系统的设计及实现.pdf_第3页
(计算机软件与理论专业论文)网络缓存服务器专用文件系统的设计及实现.pdf_第4页
(计算机软件与理论专业论文)网络缓存服务器专用文件系统的设计及实现.pdf_第5页
已阅读5页,还剩53页未读, 继续免费阅读

(计算机软件与理论专业论文)网络缓存服务器专用文件系统的设计及实现.pdf.pdf 免费下载

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

文档简介

摘要 ( 随着计算机网络尤其是i n t e r n e t 的快速发展,作为缓存服务器的w e b p r o x y 得到了普遍的应用。而随着网络速度的提高和磁盘速度的缓慢,w e b p r o x y 所在的文件系统的延迟在人们感觉到的w e bp r o x y 服务的响应时间 中占了很大的比例。 通常作为缓存的w e bp r o x y 运行在普通文件系统上,而普通的文件系 统不是针对w e bp r o x y 应用服务来设计而优化的,所以这会造成服务的效 率不高。商用的缓存服务器通常采用专用的操作系统、专用的文件系统甚 至专用的硬件,加上专门的缓存服务程序,具有较高的性能,但是代价较 为昂贵。l 本文分析了w e bp r o x y 负载的特点,针对它的特点在l i n u x 上面设计 并实现了一种应用层轻型的针对w e b p r o x y 负载的特点优化过的文件系统 库。普通的w e bp r o x y 程序只要针对此文件系统库做很少的修改,运行在 通用操作系统和硬件之上,就能达到较高的性能。 本文提出的文件系统利用了w e bp r o x y 负载的一些特点,例如w e b p a g e s 一旦缓存大小就不会发生变化,存取权限也不会发生变化,w e bp a g e s 访问的邻接性等。这些特点可以让我们把一个文件的数据存储到连续的磁 盘块之上。这种存储的连续性可以使对文件的读写最大限度的利用了磁盘 的带宽,缩短了寻找的时间。w e bp r o x y 存储的文件是远方服务器的一个 备份,这种冗余性可以使我们把所有的元信息放在内存当中来提高文件系 ,_ 。_ _ 。一 统的效率。 本文首先介绍了相关的技术基础,然后讨论了w e bp r o x y 的负载特点, 针对其特点提出了专用文件系统库的设计思想。接着给出了接口和实现, 最后给出了一个简单的测试和尚待考虑的问题。 关键词: 缓存服务器j专用文件系统,l i n u x a b s t r a c t w i t ht h e d e v e l o p m e n t o fc o m p u t e rn e t w o r k s e s p e c i a l l yi n t e r n e t ,w e b p r o x y ,a sa c a c h es e r v e r ,i su s e dw i d e l y a n dw i t ht h ei n c r e a s i n gs p e e do f n e t w o r ka n ds l o wn a t u r eo fd i s k s ,t h ed e l a y so ff i l es y s t e mo nw h i c hw e b p r o x yr u n sc o n t r i b u t eh i g ht o w a r dt o t a lr e s p o n s e t i m ea sp e r c e i v e db yt h e p r o x y c l i e n t w e bp r o x yu s u a l l yr u n so nt r a d i t i o n a lf i l es y s t e m ,w h i l et r a d i t i o n a lf i l e s y s t e mi sn o to p t i m i z e d f o rw e b p r o x ya p p l i c a t i o n s s oi tc a l lb ei n e f f i c i e n ti n t r a d i t i o n a ls y s t e m c o m m e r c i a lc a c h es e r v e r so f t e na d o p ts p e c i a lo p e r a t i n g s y s t e m ,s p e c i a lf i l es y s t e ma n de v e nd e d i c a t e dh a r d w a r ea n dt h e i ro w n w e b p r o x ya p p l i c a t i o n st oa c h i e v eh i g h e rp e r f o r m a n c e w h i l e t h e yl e a dt oh i g h c o s t t h i st h e s i sa n a l y z e st h ec h a r a c t e r i s t i c so fw e bp r o x ys e r v e r s ,d e s i g n sa n d i m p l e m e n t sal i g h t w e i g h t d e d i c a t e df i l es y s t e ml i b r a r yi nu s e rs p a c eo p t i m i z e d f o rw e b p r o x ya p p l i c a t i o n i nl i n u x n o r m a lw e bp r o x yw i t hm i n i m a l m o d i f i c a t i o na c c o r d i n gt on e wi n t e r f a c eo fo u rf i l es y s t e mc a na c h i e v eh i g h p e r f o r m a n c eo n t r a d i t i o n a lo p e r a t i n gs y s t e ma n dh a r d w a r e t h ef i l es y s t e mt h i st h e s i sb r i n gu t i l i z e ss o m ec h a r a c t e r i s t i c so fw e b p r o x y , s u c ha st h ef a c tt h a tc a c h e dw e bp a g e sd on o tc h a n g ei ns i z eo n c ec a c h e da n d a c c e s sp e r m i s s i o nd on o tc h a n g e ,a n dt h er e f e r e n c el o c a l i t y a c c o r d i n gt o t h e s ec h a r a c t e r i s t i c sw ec a ns a v ef i l e sd a t ai nc o n t i g u o u sb l o c k so nd i s ka n d r e a d i n g w r i t i n gt oc o n t i g u o u sb l o c k sa l l o w su st ou t i l i z ead i s k sb a n d w i d t h m o s ta n dr e d u c et h es e e kt i m e t h ec a c h e dd a t ao nw e bp r o x yi sb a c k u pf i l e s o fr e m o t eo r i g i n a ls e r v e r s s ou t i l i z i n gt h i sr e d u n d a n c yw ec a np u tm e t ad a t a i nm e m o r yt oi n c r e a s ep e r f c l r m a n c eo ff i l es y s t e m a t f i r s t ,t h i s t h e s i si n t r o d u c e sr e l a t e d t e c h n o l o g i e s ,a n d t h e nt h e c h a r a c t e r i s t i c so fp r o x y w o r k l o a d a c c o r d i n g t ot h e s ec h a r a c t e r i s t i c sw e i n t r o d u c e st h e d e s i g n i d e ao fd e d i c a t e df i l e s y s t e m t h ei n t e r f a c e a n d i m p l e m e n t a t i o na r ea l s od i s c u s s e da n ds i m p l et e s t i n gr e s u l ti sg i v e n k e y w o r d s : p r o x yc a c h es e r v e r ,d e d i c a t e df i l es y s t e m ,l i n u x i i 独创性声明 本人声明所里交的学位论文是本人在导师指导下进行的研究工作 及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为 获得电子科技大学或其它教育机构的学位或证书而使用过的材料。与 我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的 说明并表示谢意。 签名;立。塑日期:亩母予月o - e l 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被鸯阅和借阅。本人授权电子科技大学可以将学位论文的全 部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描 等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 日期:文蚂年弓月q - 日 第一章概述 第一章概述 1 1 背景 当前i n t e r n e t 的发展日新月异, i n t e r n e t 。由于网上资源的极大丰富, 每天都有数目巨大的新增主机连入 涉及工作、生活的方方面面,互联网 已经成为不少人生活密不可分的一部分。互联网的发展推动了网上应用的 发展,为人们提供了更多的信息服务,但也带来了更多的安全和访问效率 的问题。在这种情况下出现了代理服务器。 代理服务器在实际应用方面有非常重要的价值:通过c a c h e 技术,代 理服务器可以降低网络流量,缓解网络的拥塞情况,提高网络访问速度, 大大降低网络使用费,同时也能对网络内容的访问进行有效的控制。减少 了访问延迟,这是由于两方面的原因:一是,频繁访问的网页由附近的 w e b 代理服务器取回,而不是远程的服务器,这样传输延迟降低了;再者, 由于网络流量的减少和远程服务器负载的降低,使取回没缓存的网页的时 间也相对的减少了。降低远程w e b 服务器的工作负载,由于在网络上缓存 数据的存在,减少了直接访问w e b 服务器的次数。 s q u i d 和a p a c h e 是两个流行的w e bp r o x y 服务应用程序,这两个系统 都是用宿主操作系统提供的通用文件系统来存储数据。在l i n u x 上面一般 文件系统是e x t 2 或者e x t 3 等通用文件系统。这些通用文件系统设计的 时候是为了工作站的负载情况设计的,没有针对w e bp r o x y 不同的工作负 载特点做出优化。而随着网络速度的提高和磁盘速度的相对滞后,w e b 客 户机所感觉到的w e bp r o x y 响应的延迟相当一部分由w e bp r o x y 所处的文 件系统的延迟所构成。 一些厂家为了提高i o 效率重构了整个系统:一个专用的操作系统, 一个针对应用程序优化趵文件系统,有的还包括自己设计的专用硬件。比 如c a c h e f l o w 和n e t w o r k a p p l i a n c e 等。这些系统的w e bp r o x y 应用程序也 是针对重构后的系统而特别设计的。 这些整个系统都针对w e bp r o x y 应用进行优化重构的方案虽然性能优 越,效率很高,但是代价非常高,可移植性很差。本文提出了一个轻型的 易移植的用户层的文件系统库,这个文件系统针对w e bp r o x y 负载的特点 做出优化,运行在普通硬件和通用的操作系统上面( 而不是重新设计的专 用操作系统) 。文件系统库作为一个库链接到w e bp r o x y 应用程序中去, 电子科技大学硕士学位论文 只需要对w e b p r o x y 应用程序源代码做很小的修改,就能获得比较高的性 能。 1 2 论文内容组织形式 本文从相关技术基础入手,分析了w e bp r o x y ,文件系统,通用文件系 统为何成为w e bp r o x y 应用的性能瓶颈,相关技术和产品等。第三章讨论 了w 曲p r o x y 的负载特点,针对这个特点讨论了我们的解决方案,专用文 件系统的设计和接1 :3 。第四章详细讨论了专用文件系统的具体实现,针对 各个模块详细说明了功能和流程。第五章给出了一个简单的测试和尚待考 虑的问题。最后是致谢和相关参考文献。 2 第二章相关技术基础 2 1 w e bp r o x y 第二章相关技术基础 2 2 1w e b p r o x y 介绍 随着i n t e r n e t 的普及和不断增长,使用团体从最初的少数学术机构到 现在的普通大众,2 0 0 1 年8 月统计全球访问i n t e r n e t 的人数达到5 】3 4 1 亿, 2 0 0 2 年1 月d n s 中的主机数达到1 4 7 ,3 4 4 ,7 2 3 台。i n t e r n e t 指数级的增长 导致了沉重的网络负载和网络服务响应时间的迟缓。 据统计数据显示,i n t e r n e t 中数据流量的增长的首要原因是w o r l dw i d e w e b ( w w w ) 的增长( 2 0 0 2 年1 月统计的主机中1 2 0 3 8 5 6 台拥有w w w 的域名) ,其中很大比例的是h t t p 流量。9 5 年左右,i n e r n e t 中的流量主 要是源于f t p 请求占4 4 ,而现在,在大多数地方的网络流量中有7 5 8 0 是源于h t t p 。 可以认为w w w 是一个提供共享数据访问的最大的分布式的信息系 统。随着w w w 持续的指数级的增长( 静态的w e b 页面每月增加大约1 5 ) ,现在的w e b 用户在i n t e r n e t 上遇到的两个最大的问题是网络拥塞和服 务器过载。至少在现在来说w w w 的快速增长归功于它的使用很廉价,并 且使用w w w 服务来获取信息比其它的方式更方便、快捷。w w w 拥有的 资料吸引了广泛的兴趣群体,如有:新闻,教育,科学研究,体育,娱乐, 证券,旅游,商业,天气,地图等等。 虽然,i n t e r n e t 的主干容量每年增长速度为6 0 ,但在可预见的未来 内,随着越来越多的信息服务加入到w e b 上来,对带宽的需求仍超过这一 速度。如果不采取一些解决的办法,由于这种增长速度带来的问题使w w w 变得更拥塞,它的吸引力将会大大减小甚至消失。 从9 0 年代初期研究人员就在研究如何提高w e b 的性能。在客户附近 缓存访问率高的对象是缓解w e b 服务瓶颈、减少i n t e r n e t 流量和提高w w w 扩展性的一种有效的途径。在一个集团中,通常在防火墙内使用代理 ( p r o x y ) 服务器来作为访问i n t e r n e t 的中转服务器,因此产生了用代理服 电子科技大学硕士学位论文 务器来缓存数据的想法。处于安全的考虑和资源的限制,很多公司在他们 的防火墙内( 或同一机器上) 使用一种叫“代理”的h t t p 服务器。代理 服务器通常接收防火墙内的客户请求再把它们中转到外部的远程服务器, 并把响应返回给客户。既然,防火墙内部的所有用户通常都要共享这些代 理服务器,很自然地,使用代理服务器来缓存数据是有效的。而使用这些 代理服务器的用户们,由于工作或兴趣的原因,会更有机会访问一些同样 类别的网页。这样,在代理服务器中,先前用户所访问过并缓存下的页面 在不长的时间内很可能被再次访问。因此,在代理服务器上的w e b 缓存 不但可以节约网络带宽,而且可以减少客户访问的延迟时间。代理服务器 的功能图如图2 1 所示。 图2 - 1w e bp r o x y 示意图 研究表明,w e b 代理服务器的命中率( 缓存网页被再次访问的比例) 为2 0 3 0 左右,这样减少了的网络流量是可观的。而同时用户也可以 感觉到随之带来的响应时间的变短。 w e b 代理服务器提供了一个有效访问i n t e r n e t 的途径,它的实施有如下的 优点: 4 第二章相关技术基础 减少了对网络带宽的消耗,从而减少网络流量和减轻网络拥塞, 对于以流露计费的方式来说从而也减少了网络使用费用 2 减少了访问延迟( d e l a y ) ,可以由以下两方面来理解:频繁访问 的网页由附近的w e b 代理服务器取回,而不是由远程的原始服 务器取回来,一般来说访问附近的代理服务器要比访问远端的 服务器快得多,这样传输延迟降低了;由于网络流量的减少和 远程服务器负载的降低,使取回没有在本地代理服务器缓存的 网页的时间也相对的减少了。 3 降低了远端w e b 原始服务器的工作负载,由于在代理服务器上缓 存数据的存在,减少了直接访问w e b 服务器的次数。 4 ,提供用私有l p 访问i n t e r n e t 的方法。有限的i p 资源的不足,已 经突出。使用代理服务器使一个集团,只要拥有一个外部i p 就 可拥有对i n t e r n e t 的访问。 5 提供了一种管理手段。在代理服务器上可以对用户进行管理,还 可实现流量计费等功能。 然而,我们也看到,w e b 代理服务器的使用也有一些缺点: 1 一个主要的缺点是由于w e b 代理服务器上缺乏适当的缓存更新 机制导致客户可能看到过期的网页( w e b 服务器上的相应网页 已经有了变化) 。 2 由于缓存未命中导致代理服务额外的处理带来的访问延迟的增 加。 2 2 2w e b p r o x y 相关协议 正确解析和处理符合h t t p 协议的请求和响应是w w w 代理的基础。 尽管客户请求的资源所涉及的协议可以不同,但其请求格式必须得符合 h t t p 规范,同样w w w 代理的响应信息也得遵从该规范,否则客户将无 法获得所需信息。 h t t p 是一个属于应用层的面向对象的协议,由于其简捷、快速的 方式,适用于分布式超媒体信息系统。它于1 9 9 0 年提出,经过几年的使 电子科技大学硕士学位论文 用与发展,得到不断地完善和扩展。目前在w w w 中广泛使用的h t t p 1 0 和h t t p 1 1 ,而且h t t p n g ( n e x tg e n e r a t i o no f h t t p ) 的建议已经提出。 h t t p 协议的主要特点可概括如下: 1 ) 支持客户服务器模式。 2 ) 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。 请求方法常用的有g e t 、h e a d 、p o s t 等。每种方法规定了客户与服 务器联系的类型不同。由于h t t p 协议简单,使得h t t p 服务器的程 序规模小,因而通信速度很快。 3 ) 灵活:h t t p 允许传输任意类型的数据对象。正在传输的类型由 c o n t e n t t y p e 加以标记。 4 ) 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处 理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式 可以节省传输时间。 5 ) 无状态:h t t p 协议是无状态协议。无状态是指协议对于事务处理 没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它 必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在 服务器不需要先前信息时它的应答就较快。 h t t p 消息由客户端到服务器的请求和由服务器到客户端的回应组成。完 整的请求( f u l l r e q u e s t ) 和完整的回应( f u l l r e s p o n s e ) 都使用r f c 8 2 2 中实体传输部分规定的消息格式。两者的消息都可能包括标题域( h e a d e r s , 可选) 、实体主体( e n t i t yb o d y ) 。实体主体与标题问通过空行来分隔( 即 c r l f 前没有内容的行) 。 w e b 是一个信息空间,我们怎么来在这个空间中定位,找到我们所需 要信息。而“统一资源标志”( u n i f o r mr e s o u r c ei d e n t i f i e r - - u r i ) 就在用 来定位这个空间中的位置的。u r i 是一个字符串,用它来标识w e b 上的资 源:文档,图像,下载文件,服务,电子邮箱和其它的资源。这样通过一 个资源的u r i ,就可以定位这个资源,进一步使用它。 u r l 是一种标准化的寻址方案,用来在i n t e r n e t 上标识由不同协议支 持的资源位置,它最大的好处是提供了标识资源的种简单统一的方式。 6 第二章相关技术基础 u r l 只允许用七位a s c i i 文本来表示u r l 。除了字母数字字符,u r l 还 允许出现的字符是:美圆符( $ ) 、横线( 一) 、下划线( 一) 、圆点( ) 、加 号( + ) 、感叹号( ! ) 、星号( + ) 、单引号( ) 、以及左括号和右括号。其 他特殊字符用跟上该字符a s i c i i 码的十六进制表示,如空格符为2 0 。 2 2 3w e b p r o x y 的缓存 w e b p r o x y 服务器的重要功能就是能缓存w e b 数据。但是也不是所有的 w e b 数据都可以缓存。据统计,在w e b 访问中遇到的不可缓存的对象的数 量在15 5 0 之间。不可缓存对象的存在影响了缓存系统的有效性。 一些w e b 对象的不可缓存性在于 首先,一些w e b 对象从本质上是不能缓存的。如,它在取回时需要首 先通过认证,所以不能缓存。而一些w e b 对象是用户相关的或上下文相关 的,这样有不同的用户请求或请求的上下文不同时其结果是不一样的。这 些w e b 对象都是不可缓存的。 其次,缓存一些w e b 对象意义不大或保存它们代价太大,那它们都是 不可缓存的。有一些对象改变的太快,如动态产生的对象,常常在下次请 求时前次的缓存已经无效了,这时缓存就没有多大意义了;还有一些w e b 数据太大了,要缓存它们代价太高。 2 2 4w e b p r o x y 的缓存替换 代理服务器的缓存的存储空间是有限的。当这个空间装满以后,必须 把一些缓存移走,才能在有新的请求时进行缓存。缓存的替换策略就是用 来决定将哪些旧的缓存移走,它的目标就是要更好的利用可用的资源,比 如硬盘、内存和网络带宽。缓存的替换策略是影响代理服务器的效率和性 能的重要因素,同时好的替换策略也对网络流量的减少有着重要的作用。 缓存替换时需要考虑的因素 “活的”文档 如果一份文档在将来还会被再次请求,那么我们就说它是“活的”。 代理服务器只需保存“活的”文档,从而达到最大的命中率。而对那 些相当长的时间就不被再次请求的文档,就认为它已经“死”了。 请求间隔 电子科技大学硕士学位论文 请求间隔是连续的对文档的请求之间的时间。请求间隔小的文档在将 来被再次请求的机会也更大。l r u 就是把请求间隔最大的网页淘汰, 所以它是减小缓存网页的平均请求间隔的最好算法。 先前访问的次数 文档的先前被访问的次数可以用来作为估计将来会不会再次被请求 的辅助参考。 文档的大小 文档的大小是缓存考虑中的一个重要的因素。在代理服务器的缓存 中,缓存的文档的大小各异。在缓存中包含更多的文档,那么会有更 高的命中率,所以可能为了提高性能而缓存较小的文档。 延迟 文档下载的代价( 延迟时间) 也是值得考虑的一个因素。文档下载 时所需的代价更大,那么就更应该保留在缓存。 关于缓存替换的算法有最近最少使用算法( l e a s tr e c e n t l yu s e d l r u ) ,最少使用频率算法( l e a s t f r e q u e n t l yu s e d l f u ) ,基于大小的 算法( s i z e ) ,以及混合算法等。 2 2 5w e bp r o x y 的预读取 在传统的文件系统中,为了减少读磁盘的时间,常采用了预读技术。 当读取磁盘文件的一个块时,因为考虑到对文件的操作可能还会涉及相邻 的数据,所以除了请求的文件块外,还把其后紧接的几个文件数据块也读 到了文件系统的缓存中来。 类似的,因为w e b 页面的具有邻接性的特性,处于w e b 环境中的w e b 代理服务器读取用户请求的网页,也可通过预读来加快对用户请求的响应 时间和提高缓存的命中率,当然文件系统中所用的预读技术可能并不适用 于w e b 环境。 在w e b 中,预读技术是通过预测用户将来可能要访问的网页,并将 它先取回,从而提高缓存的效率。预读技术可以减少用户的等待时间,然 而预读技术的优势是以增加网络流量和服务器的负载为代价的,在具体实 第二章相关技术基础 施中,要权衡一下它们之间的关系。 预读技术的关键是它所使用的预测算法,而预测算法的信息来源有 两个:访问历史的统计或者是来自于被访问的对象本身( 例如h t m l 页面 中的超链接) 。常用的预测算法有通过访问的目标链接预测,过访问模式 预测,“热点”预测等。 2 2 文件系统 2 2 1 文件系统介绍 文件系统是物理存储空间中的虚拟存储机制,每个文件代表了个各 自独立的逻辑存储空间,于是,文件可看成逻辑存储空间到物理存储空间 的一种映射。将这种映射用数来标识就称为i n o d e 号直接用i n o d e 号来引 用文件并不方便,于是引入了目录文件,它建立了文件名到文件之间的映 射关系,由于文件名可以代表目录文件,于是就产生了文件名到文件的层 次索引结构于是,文件系统分为两个层次,一个是文件层次,一个是目 录层次,文件层次建立了文件到物理空间的映射关系,目录层次建立了文 件名到文件的映射关系 一个文件系统至少由超级块,物理块表,文件表( i n o d e 表) ,数据块,以 及目录文件的目录项结构这些基本要素组成。现代操作系统中,按照功能 的不同将操作系统划分成若干相对独立的且具有一定层次关系的模块, 每个模块尽可能的屏蔽掉内部的细节,仅抽象出一组标准的接口供上层 模块调用。l i n u x 下的这种层次关系如图2 2 所示。最上面是v f s 抽象层, 下面是具体的文件系统如e x t 2 ,e x t 3 等等,再下面是对块设备的缓冲管 理b u f f e rc a c h e ,最下面就是磁盘的驱动程序。 文件系统与设备驱动程序之间,设备驱动程序屏蔽了底层物理存储介 质的差异,把他们抽象为有一组连续的从o 开始编号的逻辑块组成的逻辑 盘。设备驱动程序的任务就是负责把对这些逻辑块的操作转换为对具体物 理介质的操作,并驱动实际的硬件。而文件系统的任务就是按照一定的规 则对这些连续逻辑块进行管理,例如e x t2 文件系统中把逻辑块0 用来作 为它的超级块。为了提供文件系统与设备驱动程序之间数据交换的效率, 电子科技大学硕士学位论文 减少不必要的i o 操作,在文件系统与设备驱动程序之间引入了一层缓冲 机制。缓冲机制的引入使文件系统与设备驱动程序之间层次更加分明,独 立性更强。现在文件系统的任务就是从它的管理数据结构中获取用户需要 访问的文件的信息,例如文件在哪个逻辑盘上,以及数据具体分布在哪些 逻辑块上。然后就以逻辑盘号和逻辑块号为关键字查找缓冲区中是否已经 有该块的有效数据,如果没有或者数据无效,则构造一个缓冲结构,并把 它加到与该逻辑盘相关的个请求队列中。此时设备驱动程序的任务就是 循环的处理请求队列中由这些缓冲结构所标记的i o 任务,例如启动硬件 将缓冲数据写入物理介质,或者从物理介质中把数据读出到缓冲区中。 图2 - 2l i n u x 下文件系统逻辑结构图 下面介绍文件系统中有关的几个概念和问题 块( b l o c k ) 分配 传统的u n i x 文件系统使用块分配机制,例如u f s ,并且提供一个灵活 1 0 第二章相关技术基础 有效的块分配策略( p o l i c y ) 。磁盘块在被使用时分配,就是说只为文件 分配一个最小的文件系统块数,以保存存储空间。当文件扩展时,从一个 空闲块位图中分配块,所以有时块是随机分配的。随机分配会导致过多的 磁盘搜寻,随后从文件系统读数据会导致磁盘机制搜寻文件扩展期间所分 配的所有随机块位置。随机块分配可以通过块分配策略的优化来避免,它 试图分配连续序列的块。更小的块分配获得大的连续分配,大量减少了磁 盘搜寻。然而,连续的文件系统块分配最终导致了文件系统中的文件块碎 片,结果文件系统访问最终又会回到随机的本质。块分配方案也要保存文 件扩展时每个被分配的新块的位置信息,以及文件是否是每次一块的扩 展。额外的磁盘i o 被要求读写文件系统块结构信息。 范围( e x t e n t ) 分配 基于范围的文件系统每次按一大群来分配磁盘块,因此要强制进行顺 序分配。一个文件被写入时,大量块在文件创建时被分配给文件;然后, 可以进行大群或簇顺序块的写入。文件系统元数据在文件首次创建是写 入;在块的第一个分配范围内的写不要求额外的元数据写,直到被分配下 一个范围。这种方法优化了磁盘搜寻方式,到簇的群化块写入允许文件系 统提交对存储设备的更大的物理磁盘写入,节省了许多小s c s i 转换的开 销。我们可以看到,在块分配的文件中每个逻辑块都需要有一个块地址号, 导致每个文件有许多的元数据。在范围分配方法中,每个接连的数据块范 围只需有起始块号和长度就够了。所以包含有一些大范围块的文件只有少 量的元数据。范围分配的文件系统为顺序文件访问提供了更好的性能,因 为他的顺序分配策略以及块聚集为更大的写。 元数据( m e t a d a t a ) 文件系统块结构信息成为元数据( m e t a d a t a ) 。要保持文件系统元数据 和文件数据的一致性,文件系统元数据一般需要同步写入存储设备,所以 对一个文件大小的改变需要等待每个元数据操作完成。因此,元数据同步 写操作极大地降低了文件系统的整体性能。而为了消除文件系统中的元数 据同步写,出现了一些技术例如s o f tu p d a t e s ,日志文件系统等。 元数据日志 最常见的文件系统日志形式是元数据日志。文件系统要对它磁盘上的 结构作改动时,使用几个无连接的同步写来完成这些操作。如果期间发生 电子科技大学硕士学位论文 断电或其它故障,则文件系统的状态未知,必须对整个文件系统作一致性 检查。举个例子,如果在个文件末尾加上一个块( b l o c k ) ,就需要对 告诉文件系统文件的每一块的位置信息的磁盘位图进行读、修改和重写, 然后才能写入这个数据块。故障发生时,必须在系统引导时检查文件系统, 文件系统不知道这个块的位图是否正确,也不知道崩溃期间哪个文件发生 的改动。这种状态意味着要扫描整个文件系统,经常要花费几分钟,甚至 几小时。元数据日志文件系统在磁盘上有一个循环的只附加的日志域, 可以用来记录每次磁盘事务的状态。任何磁盘结构改动前都要写一个目的 改变( i n t e n t t o c h a n g e ) 记录到日志。然后才改变目录结构,完成后, 此日志条目被标记为完成。由于文件系统的所有改动都记录在日志中,我 们就可以通过查看日志来检查文件系统的一致性,而不必扫描整个文件系 统。在挂载时,如果找到一个目的改变条目,而且它没有标记为完成,则 检查那个块对应的文件结构,并在需要是进行调整。 日志结构的文件系统 传统的文件系统是按块分配的,设备块分配自一个空闲块位图。另一 种替代的文件系统形式是日志结构的文件系统,它将整个文件系统作为一 个日志来实现。日志结构的文件系统在每次块被写到一个文件时将数据块 加到日志的末尾,进行时将以前写的块置为无效。这种方法允许每个文件 被顺序写入;不管写的块顺序,因此提供了更快的写速度。日志结构的 文件系统用降低读性能的代价换来很高的写性能,同时也增加了复杂性。 读性能性能经常由于块按照写时的顺序分配而交得更慢,因为这样可能会 使文件以随机顺序在磁盘中分散放置。由于要增加一个单独的垃圾收集或 清除程序来扫描文件系统、移除无效块,所以会增加复杂性。然而,需要 个复杂的缓存查询机制来支持高效的查询,因为块是以随机顺序分配 的,并且每个文件的块位置信息必须保存起来。日志结构的文件系统在元 数据密集环境中证明是高效的,但是还要被证明对数据密集的工作量更有 效。注意臼志结构的文件系统和文件系统日志的不同是重要的。 2 2 2 文件系统成为w e bp r o x y 性能的瓶颈 随着分布式计算越来越普遍,用户的对服务器性能满意程度很大部分 上取决于和远端服务器的交互的响应时间。为了性能和管理的原因,很多 1 2 第二章相关技术基础 服务采用的是专用的硬件,专用的操作系统和专用的文件系统。然而,这 些服务也经常跑在通用的操作系统和文件系统比如u n i x 的u f s 、f f s 、 l f s 和l i n u x 的e x t 2 之上,而这些操作系统和文件系统又是未对某一单 独的应用程序优化过的,通常这会造成性能的下降。统计数据表明,对一 个p r o x y 的访问命中的文件9 0 来自于磁盘,而磁盘的延迟又对相应时间 ( 用户感觉到的) 的贡献是3 0 。由于网络速度的不断提高,而磁盘存取 速度的没有什么提高,所以这个比重还会加大。 通用文件系统在解决w e bp r o x y 系统性能上的局限性在于: * 命名策略: 传统的u n i x 文件系统采用的是层次化的树状目录命名策略来管 理文件,而w e bp r o x y 不需要此层次结构,它需要的只是一个平坦的 名字空间。比较深的层次化的树状目录结构会造成很长的遍历时间。 而如果一个目录内有大量的文件也会减慢查询速度,因为在一个目录 中查找文件很多系统的实现是线性查找。 * 一致性: 文件系统的元数据保存在i n o d e 里面,为了保持元数据的一致性, 许多文件系统采用的同步写的技术,这样整个系统的性能就会下降。 而w e bp r o x y 由于自身的特点,在一致性要求上较为宽松,不需要严 格的一致性,从而换来一定的速度提升。 数据缓冲的重复和不方便管理: 例如一个典型的u n i x 系统会把数据用d m a 方式从设备放到设备 驱动程序的缓冲区里面,然后再把数据拷贝到文件系统的缓冲区,最 后再拷贝到应用程序的缓冲区。而后面两个拷贝应该避免。另外文件 系统c a c h e 的不方便管理。由于文件系统不能存取应用程序的信息, w e b p r o x y 一般在应用程序级维护自己的c a c h e 管理。但是应用程序级 维护的c a c h e 很可能在文件系统级别也存在,特别是刚刚从磁盘存取 过。这就是多重缓存的问题,这个问题降低了计算机内存的利用率、 命中率以及造成响应时间的延长 t 访问的邻接性 电子科技大学硕士学位论文 磁盘的读写延迟主要是由于数据块的不连续存放导致的磁头移动 造成。传统的文件系统用目录存储相关的对象,但是传统的文件系统 不能保证一个目录的文件存储在磁盘上的连续块。 下面以u f s 为例具体说明一下通用文件系统的局限 u f s 是一个固定大小的块的集合,一个典型的块的大小是8 k b 。 当访问文件的时候,磁盘的延迟主要是由于文件的各个块在磁盘上存 储的不连续而使磁盘头的移动所耗费的时间造成的。u f s 为了尽量减 少磁头的移动,把文件尽量存储在连续的块上,并且如果顺序读取文 件时预读一些块来增加速度,这些措施对小文件比较管用。于是,当 负载主要是小文件时,磁盘的延迟主要是由于逻辑上的邻接和实际物 理上的磁盘的邻接不对应造成的。u f s 通过让用户把文件放入目录而 存储在一组连续的磁盘块( 叫做柱面组) 来减少这种延迟。所以访问的邻 接性和名字结合在一起了。所以,提高性能的任务就由应用程序或者 使用者来完成。应用程序或者使用者必须为了将来的使用模式构建一 个的具有邻接性目录层次。并且,为了减少查找文件的时间,目录层 次必须比较平衡。s q u i d 试图保持平衡的目录层次,但是损害了存储的 邻接性。a p a c h e 把来自同一个服务器的文件放入同一个目录。 a p a c h e 和s q u i d 的特点使得w e bp r o x y 很难利用使用目录的层次的 有点。太深的目录路径增加遍历的时间,而在一个目录下存储太多的 文件又增加了查找文件的时间,因为通用文件系统在目录中的查找一 般都是线性查找。p r o x y 不需要层次的名字空间,而一个平坦的名字空 间就够了。 u f s 文件的元数据存储在i 节点中,并使用同步磁盘写机制来保证 元数据的完整性,从而降低了文件系统的效率。而一个p r o x y 不需要 这种严格的一致性。w e bp r o x y 也不需要同步写来维持元数据的一致性 1 4 第二章相关技术基础 2 2 3r a wd i s k 操作系统的读写存在这样一个问题,它们有两次数据拷贝一一一次是 在用户空间和内核空间之间,一次是在内核和磁盘之间,这种方式使得内 核可以缓存数据,这对于一般的应用程序来说是有利的。但是对于要大量 在磁盘上传输数据的应用程序,或者那些不能从缓存机制中获得好处的应 用程序来说,这办法效率低,而且耗费时间长。 一个可选的方案是用m m a p 将数据映射到地址空间去,虽然这样可以 减少额外的拷贝,但它与读和写的系统调用语义就不相同了。u n i x 中提 供了一种称作原始i o ( r a wi o ) 的设施,可以以不做缓冲的方式访问 块设备,这样能避免不必要的数据拷贝,保证了系统较高的性能。 l i n u x 2 4 内核中一个全新的特性是实现了r a wi o 设备,r s w 设备不 通过高速缓存层处理,自动寻找到低级设备。如果一个复杂的程序要求完 全的控制绕过文件系统,用缓存方式无法满足,这时可以使用r a w 设备。 r a w 设备能够用于数据要求严格的情况下,例如:我们确保数据立即写入 磁盘,系统失败时不会遗失数据。以前的版本没有合适的方法,包括它们 字面上需要加倍设备节点数以使每个块设备都有一个r a w 设备节点( 这是 一些商业u n i x 使用的方法) 。 在l i n u x 下使用r a w 设备,需要先要把一个分区绑定到一个r a w 设备 上,例如,用下面的命令: # r a wd e v r a w r a w l d e v h d a 5 然后,就可以对这个r a w 设备进行o p e n ,w r i t e ,和r e a d 了,就象对这个 块设备进行操作样。但是r a w 设备内部运行和块设备却大不一样。对r a w 设备的访问绕过了内核的块b u f f e rc a c h e ,直接在此进程的地址空间进行 i 0 操作。因为r a wi o 引入了硬件设备直接对应用程序进程内存的访问, 所以需要一些限制条件。所有的i o 操作必须在内存中和磁盘中正确地对 齐:它们必须从个磁盘的一个扇区的位移开始,它们必须是一个扇区的 n * 鹳蝴蛹盛蕊醯* 女赫酗豳 b 聃:,j ,; 电子科技大学硕士学位论文 大小的整数倍。 2 4 相关技术和产品 c a c h e f l o w n e t w o r ka p p l i c a n c e 和i n f o l i b r i a 有针对、e bp r o x y 的产品, 他们的产品一般都是用专用的操作系统和专用的文件系统,以及有的还采 用专用的硬件,这种产品的性能的提高主要是他们的非通用的经过优化的 操作系统和文件系统。但是代价较为昂贵。下面主要以c a c h e f l o w 为例说 明一下它的解决w e bp r o x y 的性能的方案。 2 4 1c a c h e f l o w c a c h e f l o w 的互联网加速设备作为一种专业的互联网加速产品,采用专 用的硬件平台和操作系统( c a c h e o s ) ,提供了优秀的互联网加速解决方案。 c a c h e o s 是c a c h e f l o w 自己的专用操作系统,是一个轻型、高效和可靠的 系统,源代码只有3 0 0 ,0 0 0 行,可以在7 1 0 秒之内重新启动。其中采用 它自己的一些专利技术。例如: * 对象并行抓取技术( o b j e c tp i p e l i n i n g ) : 当浏览器向w e b 服务器发出请求时,通常要跟着很多个请求的往 返行程,因为一个w e b 网页通常包括很多个w e b 对象。而对于一 个w e b 网页,通常每个对象都要产生一个t c p 会话,所以这样会 造成很大的开销,造成w e b 服务器性能的降低。如图2 3 所示。 第二章相关技术基础 图2 - 3 浏览器请求w e b 页面 而c a c h e f l o w 在其操作系统中利用了它自己的l a t e n c y a t t a c k i n g 算 法来改进这种处理。而其中的一个算法就是对象并行抓取技术,在 这种算法中c a c h e f l o w 不是串行向服务器取得对象,而是尽量同时 开几个t c p 连接,并行取数据,然后传回客户机。如图2 4 所示。 图2 4c a c h e f l o w 的对象并行抓取 如果网页在c a c h e 中没有缓存,利用这种技

温馨提示

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

评论

0/150

提交评论