(计算机系统结构专业论文)面向服务器的分布式并行文件系统.pdf_第1页
(计算机系统结构专业论文)面向服务器的分布式并行文件系统.pdf_第2页
(计算机系统结构专业论文)面向服务器的分布式并行文件系统.pdf_第3页
(计算机系统结构专业论文)面向服务器的分布式并行文件系统.pdf_第4页
(计算机系统结构专业论文)面向服务器的分布式并行文件系统.pdf_第5页
已阅读5页,还剩73页未读 继续免费阅读

(计算机系统结构专业论文)面向服务器的分布式并行文件系统.pdf.pdf 免费下载

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

文档简介

摘要 、近年来,宽带综合网发展迅猛,在此网络平台上开展各种增值业务成为电 信运营商和广电部门新的经济增长点。在宽带综合网的前端,传统的集中式服 务器系统不能满足需求,已经成为限制网络业务多样化发展的性能瓶颈,广大 运营商迫切需要种高性能、高可靠性、扩展能力强、价格合理的服务器系 统。分布式并行服务器系统正好迎合了这种市场需求。为了构建分布式并行服 务器系统,我们基于l i n u x 内核开发了具有自主版权的分布式并行文件系统 x f s 。 x f s 是一种面向服务器的分布式并行文件系统,系统中的各个节点在逻辑 上是完全对等的,没有服务器和客户机的区别。x f s 的服务对象是分布式并行 服务器系统,它不直接面向普通用户。j 本文首先介绍了分布式文件系统的发展情况以及设计分布式文件系统需要 考虑的各种问题,分析了x f s 的设计需求,然后以此为基础讨论了x f s 的结 构设计。本文的后半部分描述了通信模块和网络锁模块的实现,包括消息通信 模型、通信事件机制、对象传输协议、x f s 文件锁机制和非对称锁算法。本文 在介绍了实现细节之后,还给出了性能测试结果,并对测试数据做了简单分 析。 本文重点描述了对象传输协议和非对称锁算法。( 对象传输协议是x f s 消息 通信的传输平台,它由唧协议发展而来,具有简单可靠、响应速度快的特 点。非对称锁算法是一种通用的分布式互斥机制,在以只读方式访问资源为主 的系统中,该算法能够大大降低并发控制的时间开销。 关键词:分布式并行,、文件系统,消息通信,互斥 a b s t r a c t t h ef r o n te n di s 血ep e r f o r m a n c eb o t t l e n e c ko fb r o a d b a n dm u l t i s e r v i c en e t w o r k s s e r v i c e p r o v i d e r s a r es e a r c h i n gf o ran e ws e r v e rs y s t e m ,w h i c hh a sh i g hp e r f o r m a n c e , h i g ha v a i l a b i l i t y ,a n ds t r o n gs c a l a b i l i t y ,w i t har e a s o n a b l ep r i c e w eh a v ed e v e l o p e d a d i s t r i b u t e dp a r a l l e ls e r v e rs y s t e mt om e e tt h em a r k e tn e e d s ,u s i n gt h es o u r c ec o d eo f l i n u xk e r n e l x f s ,ad i s t r i b u t e dp a r a l l e lf i l e s y s t e m ,h a sb e e nd e v e l o p e da s t h e p l a t f o r mo fd i s t r i b u t e dp a r a l l e ls e r v e rs y s t e m 嬲i ss e r v e r - o r i e n t e d i ti sb a s eo np e e r - t o - p e e rm o d e l :a l lc o m p u t e r si nt h e s y s t e m a r es e r v e r s x f si sd e s i g n e dt os u p p o r tt h ed i s t r i b u t e dp a r a l l e ls e r v e rs y s t e m , i n s t e a do f m e e t i n gt h e n e e do fc o m m o nu s e r s b a s i cc o n c e p t sa n dd e v e l o p m e n to fd i s t r i b u t e df i l es y s t e m sa r ei n t r o d u c e di nt h e b e g i n n i n go ft h i st h e s i s d e s i g ni s s u e s ,s u c ha sn a m i n ga n dn a m er e s o l u t i o n ,c a c h e p o l i c y ,c a c h ec o n s i s t e n c y ,e t c a r ca l s od i s c u s s e d t h e n ,w ea n a l y z er e q u i r e m e n t s o f x f s ,b a s eo nw h i c hc o n c e p t u a ld e s i g no fx f s i si n t r o d u c e d t h es e c o n dh a l f p a r to f t h i st h e s i sp u t se m p h a s i so ni m p l e m e n t a t i o no ft h ec o m m u n i c a t i o nm o d u l ea n dt h e n e t w o r kl o c k sm o d u l e 。i n c l u d i n gm e s s a g ec o m m u n i c a t i o nm o d e l ,c o m m u n i c a t i o n e v e n t sm e c h a n i s m ,o b j e c tt r a n s f e rp r o t o c o l ,f i l el o c k sa n da s y m m e t r i cl o c ka l g o n a m a a f t e rt h e s ed e t a i l s ,r e s u l t so f p e r f o r m a n c e t e s t sa l ep r e s e n t e d ,a d dt ow h i c hi sab r i e f a n a l y s i s t h i st h e s i sf o c u s e so no b j e c tt r a n s f e r p r o t o c o la n da s y m m e t r i cl o c k a l g o r i t h m o b j e c t t r a n s f e r p r o t o c o l ,w h i c h i st h e t r a n s p o r tp l a t f o r m o fx f s m e s s a g e c o m m u n i c a t i o n ,i sd e v e l o p e df r o m 田订p i ti ss i m p l et oi m p l e m e n t ,a n do n l yc o s t s r e a s o n a b l e l a t e n c y a s y m m e t r i c l o c k s p r o v i d e ac o m m o nm u t u a le x c l u s i o n m e c h a n i s mf o rd i s t r i b u t e da p p l i c a t i o n s b yu s i n gt h i s a l g o r i t h m ,s o m es y s t e m s ,i n w h i c hm o s td a t aa c c e s si sr e a do n l y ,c a nr e a c ht h er e s u l to fh 2 i g hp e r f o r m a n c e ,l o w l a t e n c y a c c e s st od a t ao n s u b s e q u e n t f i l eo p e n s k e y w o r d s :d i s t r i b u t e d p a r a l l e l ,f i l es y s t e m ,m e s s a g ec o m m u n i c a t i o n , m u t u a le x c l u s i o n 第一章引言 从2 0 世纪4 0 年代后期现代计算机出现到1 9 8 5 年前后,计算机既庞大又昂 贵,即使是小型机,价格都在数万美元以上。因此大多数科研机构和企业都只 有几台计算机,同时,由于缺乏有效互联的方法,这些计算机只能彼此独立地 运行。但是,从2 0 世纪8 0 年代中期开始,技术上的两大进步开始改变这种状 态【1 】。首先是微处理器( m i c r o p r o c e s s o r ) 的出现和广泛应用,同时整个半导体 工业遵循摩尔定律高速发展,计算机科学家们突破3 g 的梦想变成现实( 处理 器主频超过1 g h z ,内存容量超过1 g b ,硬盘存储容量超过1 g b ) ,高性能的 个人计算机( p c ,p e r s o n a lc o m p u t e r ) 处理能力甚至超过了当年的大型机,由 于价格低廉,开始在家庭中普及。第二个进步是高速计算机网络的出现。局域 网( l o c a la r e an e t w o r k ) 的速度已经突破1 g b p s ,甚至超过部分计算机i o 设 备的速度,它可以方便地将分布在同一建筑物甚至同一个城市内的计算机连接 起来,在极短的时间内传输大量信息,延迟在毫秒级。应用这些技术,可以将 大量的p c 或工作站通过高速网络连接在一起,组成具有强大处理能力的硬件 实体,相对于以前包括单个c p u 、储存器、外设和一些终端设备在内的集中式 系统( 又称单处理机系统,s i n g l ep r o c e s s o rs y s t e m ) ,它们被称为分布式系统 ( d i s t r i b u t e ds y s t e m ) 。 从技术角度看,分布式系统和集中式系统相比优势在于可靠性和处理能 力。由于工作负载分散到众多的机器上,单个芯片的故障最多只会使一台计算 机停机,而其它计算机不会受任何影响。理想条件下,某一时刻如果有2 0 的 计算机出现故障,系统仍能继续工作,只不过损失2 0 的性能。对于关键性的 应用,比如用于国土防空的雷达网控制系统或铁路运输网调度系统,采用分布 式系统能很好地满足对可靠性的需求。分布式系统在处理能力方面的优势不难 理解,如果指挥得当,两个人于活肯定比一个人快。在分布式计算领域中,目 前最有名的项目是s e t i h o m e ( s e a r c hf o re x t r a t e r r e s t r i a li n t e l l i g e n c e a t h o m e ) ,它通过i n t c m e t 协同数以万计的p c 机,分析射电天文望远镜收集的 海量数据,搜寻外星智能生物。每时每刻都有上千万的计算机连接在i n t e m e t 上,而大部分时间多数计算机的c p u 都处于比较空闲的状态,s e t l h o m e 的 目的就是通过网络收集这些计算机的剩余处理能力,用于大规模并行计算。这 面向服务器的分布式并行文件系统 样的系统的总处理能力是惊人的,可以在几小时内完成巨型机几年才能完成的 工作。当然,分布式系统的处理能力绝不是单机处理能力的线性叠加,分布式 系统内部节点计算机之间的通信要消耗相当多的网络带宽,分布式算法耗费的 处理器时间也是不容忽视的。而且分布式系统的规模越大,内部联系越紧密, 这种内耗的比例就越大。 从经济角度看,分布式系统和集中式系统相比优势在于性能价格比和扩展 能力。用几台普通p c 构建的分布式系统的价格比同样性能的专用服务器或小 型机便宜得多,用一大群p c 机构建的分布式系统甚至可以提供最贵的大型机 也无法提供的处理能力,前面提到的s e t i h o m e 就是一个极端的例子。分布 式系统的规模通常可以动态变化,具有非常灵活的扩展能力。如果因为用户需 求增长,系统性能不再满足要求时,用户只需购置新硬件添加到现有系统中就 可扩展系统能力,原来的硬件可继续利用,充分保护了用户投资。在高可用性 的分布式系统中,系统升级是平滑的,系统规模的变化对应用程序透明,因此 在扩展系统规模的过程中不会影响正在运行的各种用户程序。在商业服务器系 统中,这样的能力是非常重要的。第一,系统升级元需重启系统,也不必把数 据和程序从旧硬件平台“搬”到新硬件平台,既减轻了系统管理人员的工作负 担,又减小了丢失数据的风险;第二,系统升级过程中不影响用户使用现有的 服务,这是一个非常关怀用户的优点。例如一个分布式邮件服务器,系统升级 过程中用户仍然可正常收发电子邮件。 分布式操作系统是分布式系统的灵魂。只有运行了设计优秀的分布式操作 系统,分布式系统才能体现出前面所说的种种优点。分布式操作系统以软件的 方式屏蔽了硬件的物理分布,让用户能够像使用单机一样方便地使用整个系 统。分布式计算机系统中的各节点都运行相同的分布式操作系统,这些分布式 操作系统相互协同工作,承担任务划分、智能动态任务调度、存储资源分配等 工作,屏蔽底层硬件的差异,隐藏网络通信等细节,为应用程序提供统一的、 透明的运行平台。 在分布式操作系统中突出并行特性就发展出了分布式并行操作系统,它具 有更高的速度。我们的任务就是基于l i n u x 内核开发分布式并行操作系统,并 以此为基础研发适合各种网络应用的分布式并行服务器系统。 2 第一章引言 在集中式大型机( m a i n f r a m e ) 时代,最初人们只能在机房集中将指令输 入,然后顺序执行任务,由于计算机的处理速度远远高于人的输入速度,所以 很多时间计算机都处于空闲状态,因此出现了分时系统。一台主机带几台甚至 几百台终端,终端并不具备任何处理能力,它只是一个i o 设备,这样主机同 时被多人使用,原来闲置的处理能力得到了充分利用。随着p c 机的发展,人 们开始想到把一些简单的处理搬到原来终端的位置,于是出现了c l i e n t s e r v e r 模式。c l i e n t 通常是性能较低的p c 机,它从s e r v e r 上取得数据,做简单的处理 后显示给用户;s e r v e r 通常是性能较好的小型机或高档p c ,集中存放数据,并 做一些必要的后台处理。随着应用复杂度的增加,人们发现c s 模式的扩展能 力很弱,c l i e n t 和s e r v e r 相互依赖,对任何一端的修改都会影响另一端,于是 出现了数据和处理相分离的3 层模型,数据服务器负责存放和管理数据,应用 服务器负责处理数据,客户机仅仅负责显示数据。三层模型实际上是一个两级 c s 结构,应用服务器和数据服务器之间是c s 关系,应用服务器和客户机之 间也是c s 关系。对于要求高可靠性和高吞吐率的网络应用,3 层模型也不能 满足要求,分布式并行服务器系统是有效的解决方案之一。分布式并行服务器 构架在分布式并行操作系统之上,根据不同的网络应用,我们利用分布式并行 操作系统的动态任务调度、数据冗余等功能,开发不同的应用服务器。在分布 式并行服务器系统中,服务器之间互为c l i e n t s e r v e r ,即一台服务器为其它服 务器提供必要的服务,同时又要使用其它服务器提供的服务,当然,系统中的 全部或部分服务器还要为远地的客户机提供服务。所以实际上分布式并行服务 器系统是一种多级c s 结构,比照3 层模型,我们可以把它看成多层模型。 分布式并行服务器系统特别适合运行宽带网络中的非对称流量的服务,最 典型的例子是v o d ( v i d e oo nd e m a n d ) 服务。在v o d 系统中,客户机发送 给服务器的请求数据远远少于服务器发送给客户机的视频数据,分布式并行服 务器系统可以充分发挥并行处理的优势,让系统达到极高的吞吐率,使总的并 发服务数远远高于集中式服务器。单向的c a t v 数据广播是非对称流量的一种 极端情况,它只有服务器到客户机方向的数据流,在这种应用中,分布式并行 服务器系统的优势更加明显。 本课题的最终目的是,基于普通p c 机,开发适合网络时代各种服务的分布 式并行服务器,取代现有的各种专用服务器。本人参加了分布式数据存储子课 3 面向服务器的分布式并行文件系统 题的研发,主要工作包括分布式并行文件系统x f s ( xf i l es y s t e m ,x 代表神 秘,不是英文缩写) 的总体设计以及通信模块、节点管理模块和网络锁模块的 实现。 4 第二章分布式文件系统概述 分布式文件系统是分布式系统的关键,它的任务是统一管理分布式系统中 所有计算机上的文件资源,对用户和应用程序屏蔽各个节点计算机底层文件系 统的差异,提供统一的访问接口【2 】。和普通文件系统相比,分布式文件系统通 常要多考虑三方面的问题,一是透明性,分布式文件系统运行在多台计算机 上,有时甚至构建在广域网络中,却要让用户和应用程序感觉只有一台计算 机;二是可靠性,分布式环境通常都有高可靠性的需求,数据的高可靠性是系 统可靠性的基础;三是扩展能力,分布式系统的节点规模可能随时变化,分布 式文件系统管理的数据也是变化的。 分布式文件系统是随着分布式操作系统而出现的,它是分布式操作系统的 资源管理模块。分布式系统中的所有自治计算机都可以通过它共享文件。分布 式文件系统的两个主要实现目标是睁j : 网络透明性分布式文件系统提供和本地文件系统相同的文件访问接口,使 每个节点计算机上的应用程序可以象访问本地文件一样访问远地文件( r e m o t e f i l e ) ,换言之,应用程序无法区别本地文件和远地文件。最理想的情况是,分 布式文件系统的用户元需知道文件的物理位置。 高可用性分布式文件系统的用户的文件访问过程,不能因为网络故障或系 统调度( 例如在服务器之间备份数据) 而中断。高可用性通常是通过文件副本 ( f i l er e p l i c a t i o n ) 来实现的,最理想的情况是,只要系统中存在一个有效的副 本,用户就可以访问该文件。 2 1 分布式文件系统的设计问题 分布式文件系统是分布式操作系统的数据子系统,所以在分布式文件系统 的设计过程中,既有文件系统的一般设计问题,又有分布式操作系统的一般设 计问题,还有分布式文件系统特有的设计问题。限于篇幅,本节重点介绍只有 在设计分布式文件系统的过程中才会碰到的一系列问题。 5 面向服务器的分布式并行文件系统 2 1 1 透明性 如果一个分布式文件系统让用户和应用程序感觉和普通单机文件系统一 样,我们就说它具有透明性。用户通过文件系统访问接口和文件系统打交道, 用户还通过文件系统的功能来感觉文件系统的存在,所以只要分布式文件系统 的接口和功能与单机文件系统相同,它就能对用户透明。实现透明性的目的有 两个,一是避免用户付出额外的时间和精力学习如何使用分布式文件系统,只 要会用普通的单机文件系,就会用分布式文件系统;二是兼容现有的各种应用 程序,使它们不必修改或重编译就能在分布式环境中运行。 在设计和实现分布式文件系统时,完全实现透明性将付出巨大代价,考虑 到系统的性能和实现的复杂度,往往只部分实现透明性。分布式文件系统的透 明性可分为以下五种: 1 ) 位置透明性。在分布式文件系统中,文件是通过名字来标识的,在具有 位置透明性的系统中,用户不能根据文件路径名推断出文件的物理存放 位置。具有位置透明性的系统的另一个特点是在创建文件的时候,分布 式文件系统自动选择合适的存放位置。 2 ) 迁移透明性。在具有迁移透明性的系统中,文件和目录改变物理存储位 置时无需改变名字。这样的系统在管理存储空间方面具有很大的灵活 性,例如一个分布式文件系统原来由a 、b 两台服务器组成,最开始服 务器a 上面存放了h o m e d a t a 目录中的全面文件,由于系统升级,新增 了服务器c ,需要将服务器a 上面的数据全部转移到服务器b 上。在数 据转移完成后,虽然目录h o m e d a t a 中的文件的存放位置已经改变,但 是它们的路径没变,用户不会受到任何影响,原有的数据依赖于 h o m e d a t a 的程序仍然可用正常运行。最理想的迁移透明性是在资源迁 移过程中,资源仍然是可访问的。 3 ) 复制透明性。为了达到高可靠性,分布式文件系统通常具有文件副本机 制,即系统内的不同节点上保存同一文件的多个拷贝,在这样的系统 中,用户不知道某个文件有几个副本,副本的产生、分布、和访问都是 自动的嗍。 6 第二章分布式文件系统概述 4 ) 并发透明性。在分布式文件系统中,多个用户并发访问同一个文件的情 况是不可避免的,具有并发透明性的系统能够自动保证并发的文件访问 之间不会冲突。在大多数场合中,并发透明性需要解决的就是共享文件 的读写一致性问题。 5 ) 并行透明性。并行透明性是指无需用户干涉,任务自动被并行执行。毫 无疑问,具有并行透明性的系统肯定具有较好的性能,但在目前的技术 条件下,很难完全实现并行透明性。 2 1 2 名字空间和名字解析 统一的名字空间是在设计分布式文件系统时追求的目标之一。文件系统中 的每个文件( 包括目录,目录可以看成是一种特殊的文件) 都和一个名字关 联,用户通过文件名指代文件,文件名和文件之间是一种映射关系。在分布式 文件系统中,每个节点计算机上的文件系统目录树就是一个名字空间。如果每 个节点上的文件系统目录树都是相同的,我们就说这个分布式文件系统的名字 空间是全局统一的,或称名字空间唯一。很显然,在名字空间唯一的系统中, 同一个文件在不同的节点上的名字是相同,因此很容易实现位置透明性,比如 说如果文件名中不包括任何位置信息,用户就不可能了解文件的物理位置。名 字空间唯一的另一个优点是可以兼容对文件路径有依赖性的程序。例如某程序 p 在运行时需要读眦o m e d a t a 的数据文件,而且文件路径名已经硬编码到程序 中,不能在运行时配置,如果系统的名字空间不唯一,则有可能在a 节点上该 数据文件的路径是m 脚甜a t a ,而在b 节点上是另一个路径,很显然该程序是 不能在b 节点上正常运行的。要想在b 节点上运行该程序只有修改程序中的数 据文件路径名,但是修改了程序后,它又不能在a 节点上正常运行了。退一步 说,即使数据文件的路径可以在运行时配置而不是编码到程序中的,也必须为 每一个节点写一个配置文件。如果系统的名字空间唯一,问题就迎刃而解了。 p 运行时所需数据文件路径在系统中所有的节点上都是m o m e j d a t a ,它显然可以 在系统中任何一个节点上正常运行。 名字解析是通过文件名字找到文件位置的过程。分布式文件系统中通常由 名字服务器专门负责解析名字。最简单的名字解析方法是集中查找,在系统中 的某个节点上运行名字服务器,任何节点需要知道某个文件的位置时就向名字 7 面向服务器的分布式并行文件系统 服务器发出查询请求,同时告诉名字服务器需要查找的文件名。名字服务器维 护了一个文件位置表,可以根据文件名找出文件的位置。名字服务器找到文件 位置后将位置信息返回给发出查询请求的节点。这种算法的主要缺点是存在性 能瓶颈和单一故障点。理想的名字解析算法应该让一个节点上的名字解析不依 赖于其它节点,使得系统中任何一个节点的故障都不会影响其它节点的名字解 析。 2 1 3c a c h e 方式 为了提高i 0 效率,降低网络负载和服务器负载,分布式文件系统在服务 器端和客户端都会建高速缓存( c a c h e ) ,这是一种典型的空间换时间的手 段。c a c h e 既可以建立在磁盘上,也可以建立在内存中,或者在两者中都建 c a c h e 。这两种c a c h e 方式各有优缺点,内存中的c a c h e 速度快,但是数量小, 会因为消耗了宝贵的物理内存而影响本节点上的其它服务;磁盘上的c a c h e 速 度相对较慢,但是数量大。设计分布式文件系统的时候必须综合考虑系统各方 面因素,选择合适的c a c h e 方式【5 】【6 】。 2 1 4c a c h e 一致性 保证c a c h e 一致性是分布式文件系统实现的难点之一口】。在客户机存在 c a c h e 的系统中,如果多个客户机同时访问相同的文件数据,就可能使这些客 户机c a c h e 中的数据不一致。c a c h e 一致性问题的解决方法主要有两类,服务 器发起算法( s e r v e r - i n i t i a l e d ) 和客户机发起算法( c l i e n t - i n i t i a t e d ) 。 在采用服务器发起算法的系统中,任何时刻服务器都记录了所有客户机 c a c h e 的情况,一旦发现某个客户机的c a c h e 中有脏数据( s t a l ed a t a ) ,立即通 知该客户机更新。 在采用客户机发起算法的系统中,客户机上的c a c h e 管理器在向服务器返 回数据的时候检查相关客户机的c a c h e 一致性,并通知拥有脏数据的客户机更 新c a c h e 。 需要特别说明的是,c a c h e 一致性并不是一个非解决不可的问题。彻底解决 一致性问题必须付出较大的性能代价,所以有些分布式文件系统采用弱一致性 语义,将一致性问题交给应用层处理。 8 第二章分布式文件系统概述 2 1 5 可用性 作为分布式文件系统的突出优点之一,高可用性是大多数系统设计时重点 考虑的问题。高可用性通常是通过文件副本( r e p l i c a t i o n ) 实现的,最理想的情 况是,只要系统中存在一个有效的副本,用户就可以访问该文件。副本的粒度 由实际需求决定,可以是目录树,例如卷( v o l u m e ) ,也可以是目录或文件。 副本的另一个优点是可以提高系统性能。如果系统在访问文件的时候,总是选 择最小负载节点上的副本或者离自己最近的节点上的副本,可以有效地平衡负 载,减小网络流量。 当然,不是说有了副本功能的分布式文件系统就一定具有高可用性,分布 式文件系统的每个组件的设计都必须考虑可用性,总的指导原则是避免集中式 的部件、表和算法【2 】。 2 1 6 扩展能力 对于规模需要不断增长的系统,扩展能力非常重要。分布式文件系统的扩 展能力目标是,系统规模能够线性增长,而且系统扩展后,不影响用户对原有 文件的访问。 2 3 几种著名的分布式文件系统 进入2 0 世纪9 0 年代以后,分布式文件系统在理论和实践上都没有什么根 本的突破发展,在世界范围内有深远影响并且仍在广泛应用的3 个分布式文件 系统是n f s 、a f s 和c o d a 。n f s 严格说不是一个完整的分布式文件系统,仅 仅具有了分布式文件系统的部分特点,但所有介绍分布式文件系统的文献资料 都把它归为分布式文件系统,它可以说是分布式文件系统的鼻祖。 2 3 1n f s s u nm i c r o s y s t e m 公司于1 9 8 5 年开发了n f s ( n e t w o r kf i l es y s t e m ) ,以此 作为对远程文件进行透明存取的一种方法。它目前已被移植到几乎所有u n i x 系统( 包括l i n u x 、f r e e b s d ) 及v m s 和d o s 上,并成为事实上的工业标准。 n f s 支持异构系统,可以在不同硬件平台和不同操作系统的计算机之间实现文 件共享。n f s 使用的是c h e a t s e r v e r 模型,其基本思想是让客户机和服务器的 9 面向服务器的分布式并行文件系统 任意集合共享一个公用的文件系统。n f s 既可在局域网上运行,也可在广域网 上运行。 n f s 服务器可以向客户输出( e x p o r t ) 它的一个或多个目录。被输出的目录 的子目录也可以被客户访问,也就是说输出的单元是整个目录树。服务器输出 的目录列表通常保存在文$ 牛l e t c l e x p o r t 中,这样当服务器重启时,将自动输出这 些目录。 网络透明性 n f s 客户通过安装的方式访问n f s 服务器的输出目录。客户使用 m o u n t 命令把远程目录安装到本地目录中,使之成为本地目录的一部分。 如果客户机是无盘工作站,甚至可以把远程目录安装为本地的根目录,使 工作站的整个文件系统都由远程的文件服务器来支持。远程目录安装到本 地目录中后,客户机上的程序可以像使用本地文件一样使用远程文件,底 层的通信和文件管理对于上层应用来说完全是透明的。 一致性 n f s 缺乏严格的u n i x 语义。多个客户机可同时对某一服务器上的相 同文件进行存取,但n f s 未能对多个重叠的i o 请求进行保护;如果某客 户机已删除一个文件,在其关闭该文件之前另一个客户机仍然可打开该文 件,这是违反u n i x 语义的。 可靠性 n f s 的服务器是元状态的( s t a t e l e s s ) ,所以n f s 具有一定的容错能 力。但是n f s 仅仅是一个网络文件系统,不支持文件副本,其可用性和其 它分布式文件系统相比是很低的。另外,n f s 的名字解析依赖于文件所在 的服务器,在存在多级安装点( c a s c a d i n gm o u n t ) 的情况下,若安装链上 的某个s e r v e r 崩溃,则其后的所有目录和文件都将不可用。 扩展性 n f s 的可扩展性较差,因为它是基于单服务器模型的,即使网络中有 多台n f s 服务器,它们之间也没有任何联系,各自独立运行。随着系统客 户规模的增长,n f s 服务器将逐渐成为系统瓶颈,这时只有更换性能更高 的服务器。 1 0 第二章分布式文件系统概述 2 3 2a f s a f s ( a n d r e wf i l es y t e m ) 是由美国卡内基一梅隆大学( c a r n e g i e m e l l o n u n i v e r s i t y ) 和i b m 公司联合成立的信息技术中心( i n f o r m a t i o nt e c h n o l o g y c e n t e r ) 研制开发的分布式文件系统删【9 】。从a f s3 0 开始,a f s 作为t r a n s a r c 公司的产品开始进入市场。目前,i b m 公司将a f s 作为o p e ns o u r c e 产品向公 众开放源代码,遵循的是mp u b l i cl i c e n s e 。 名字空间 a f s 的目录对所有客户都是相同的,具有名字空间唯一性。a f s 是a f s 的根目录,其下的子目录称为c e l l ,每个c e l l 对应于一组服务器。c e l l 的 名字通常就是服务器所在单位的域名。例如,如果电子科技大学提供a f s 服务,则其c e l l 是w w w u e s t c e d u c n ,任何一个客户可通过路径 a f s w w w u e s t e x l u c r l ,l 方问电子科技大学a f s 服务器上的文件。a f s 服务器 以卷的结构存放文件,卷可以在服务器之间复制和移动。 缓存策略和一致性 a f s 采用本地磁盘缓存来提高系统性能。a f s 的客户机上运行了一个 缓存管理器进程,它将访问过的远地文件数据保存到本地磁盘中。当客户 机再次访问相同远地文件时,直接从本地缓存中读数据,不必访问服务 器。a f s 实现了严格的u n i x 语义,它用s e r v e r - i n i t i a l e d 算法来保证不同客 户机上c a c h e 的一致性。 透明性 a f s 的一个突出特点是具有位置透明性和迁移透明性。在n f s 中,远 地文件系统到本地文件系统的映射在客户机上完成,而在a f s 中,映射关 系则在服务器上完成,降低了客户端的复杂度。位置透明性和迁移透明性 的优点已经在2 1 节讨论过。 可靠性 a f s 通过文件副本来提高系统可靠性,但是副本是只读的。a f s 中复 制副本的基本单位是卷,客户读文件的时候a f s 自动选择一个可用的副本 来访问。在读文件的过程中,若当前副本所在的服务器发生故障,访问将 自动转向另一个副本,其过程对用户是透明的。 面向服务器的分布式并行文件系统 扩展能力 a f s 具有较强的扩展能力。在a f s 结构设计的时候,设计者的目标是 客户机,服务器之间能够达到2 0 0 :1 的比率。实际上,现在很多站点都成功 超越了这个比率。在实际使用中,客户机,服务器比率依赖于文件总数、文 件大小、修改率、文件访问频度、服务器处理器速度、i o 能力、网络带宽 等因素。a f s 的c d l 可以动态变化,当用户需要增加计算资源的时候,可 以随时添加客户机或服务器。 2 3 3c o d a c o d a 在1 9 8 7 年由卡内基一梅隆大学开发,它的前身就是上一节介绍的 a f s 。c o d a 和a f s 相比,主要的改进在于系统可用性,其它方面则基本相同或 相似【1 0 1 。本节重点介绍c o d a 是如何通过服务器复制和无连接操作来达到高可 用性的。 2 3 3 1服务器复制( s e r v e r r e p l i c a t i o n ) 服务器复制其实就是建立文件副本。c o d a 中复制的单位是卷( v o l u m e ) 。 卷是存放在服务器上的共享文件的集合,它构成了名字空间中的一棵子树。存 放有某个卷的副本的全部服务器构成了一个集合,称为该卷的v s g ( v o l u m e s t o r eg r o u p ) 。不需要高可用性的文件存放在没有副本的卷中。c o d a 仅支持只 读副本,这是从a f s 继承下来的特性。 c o d a 的客户端进程称为v e n u s ,它负责使用文件副本。当客户机缓存了某 个卷的数据之后,v e n u s 就维护了该卷的可访问服务器集合,它是该卷v s g 的 子集,称为a v s g ( a c c e s s i b l ev o l u m es t o r a g eg r o u p ) ,如果没有故障发生,它 和v s g 是相等的。如果探测到某个服务器故障,就把该服务器从a v s g 中删 除。v e n u s 在访问c o d a 中的文件时,首先在本地缓存中查找,如果本地缓存中 有该文件的数据,v e n u s 就直接访问本地缓存。如果本地缓存中没有所需数 据,v e n u s 从a v s g 中选择一个服务器来访问,选择的标准通常是服务器的性 能指标,例如服务器和客户机之间物理连接的远近、服务器负载、服务器c p u 处理能力等。 c o d a 保证副本一致性的策略称为m a d o n e ,w r i t e a l l 。一个修改过的文件关 闭后就立即传输到a v s g 的所有成员上。这种方法实现简单,而且尽可能保证 第二章分布式文件系统概述 了每一个副本节点在任何时候都有最新的数据。它同时也减小了服务器c p u 负 载,因为数据传播负担由服务器转移到客户机上了,这反过来又提高了扩展 性,因为服务器c p u 常常是分布式文件系统的性能瓶颈。这种方法的主要缺点 是数据同步延迟较大,c o d a 通过并行远过程调用机制来解决这个问题。 2 3 3 2无连接操作( d i s c o n n e c t e do p e r a t i o n ) 在无连接操作状态下,a f $ 客户机不访问服务器,直接读取或修改本地缓 存中的文件数据。在v s g 所有成员都不可用时,a f s 自动变为无连接操作模 式。无连接操作是完全依赖于服务器和完全由客户机自治两种方案的折中。 无连接操作和服务器复制不同,它在获得容错能力的同时没有付出空间代 价和性能代价。而服务器复制需要额外的空间来存放副本,同时副本协议降低 了服务器性能。但是无连接操作只能访问已经缓存到本地磁盘上的数据。当无 连接操作结束时,如果客户机修改了属于无连接的卷的文件和目录,相应的数 据就更新到v s g 的所有成员上。 c o d a 客户机把无连接操作看成一种临时状态,它总是尽可能早地转变到正 常操作状态。正常操作和无连接操作之间的转换对用户是透明的。在正常操作 中,查找缓存失败仅仅对性能有所影响。但在无连接操作中,如果在缓存中找 不到所需数据,用户程序会被挂起,直到恢复为正常操作或用户取消相应的文 件系统调用为止。可见,在无连接操作中避免缓存查找失败是非常重要的。 c o d a 允许用户指定一个文件和目录列表,v e n u s 将尽可能地将列表中的文 件和目录保留在缓存中。这个列表中的文件或目录可以设置优先级,最高优先 级是s t i c k y ,它表明相关的对象必须一直保存在缓存中。只要本地磁盘足够 大,能够容纳所有的s t i c k y 属性的文件和目录,那么即使所有的服务器都发生 了故障,用户也能访问这些文件和目录。 1 3 第三章x f $ 的结构设计 本章将论述x f s 的结构设计,首先简要讨论了x f s 的需求以便明确设计目 标,然后给出x f s 的整体轮廓,最后重点说明副本表是如何设计的。 3 1需求 如前所述,x f s 是一个面向服务器的分布式文件系统,它的服务对象是各 种服务器程序,所以它的功能和性能需求和现有的面向客户机的分布式文件系 统有所不同。 1 ) 透明性。作为分布式并行服务器系统的数据子系统,x f s 至少应该是位 置透明的,或者说x f s 应该能够为上层应用程序提供单一的系统映像,应用程 序不能感觉到文件系统是构建在多计算机的硬件环境中的,使程序员在开发应 用程序的时候不必考虑底层的分布式环境。x f s 最好能够对应用程序隐藏所有 的细节,把分布式并行服务器的复杂性能尽可能地搬到操作系统中,一方面可 以大大简化应用服务程序比如视频点播( v o d ) 、数据广播的开发,另一方面 可以兼容现有的各种网络服务程序,例如f r p 服务器、w w w 服务器。 2 ) 性能。既然x f s 为服务程序服务,性能是需要重点考虑的,肯定不能 让文件系统成为分布式并行服务器系统的性能瓶颈。宽带网络前端服务器将同 时为成千上万的用户服务,而且这些服务程序都有较大的o 需求,以视频点 播服务为例,一路m p e g i 编码的视频流的速率是1 2 m b p s ,那么一个支持 1 0 0 0 路并发点播的视频点播服务器系统每秒最多会通过文件系统读取1 5 0 m b 数据。 3 ) 可靠性。分布式并行服务器系统的特点之一是高可靠性,如果位于底层 的x f s 在可靠性方面有缺陷,系统整体的可靠性必将大打折扣。分布式并行服 务器系统是一个市场化的产品,它的成败完全由最终用户决定,如果系统经常 出故障而不能为用户服务或者中断用户正在使用的服务,不论是前端的运营商 还是用户端的家庭用户都是不能容忍的。所以分布式并行服务器的目标就是要 为用户提供持续的、不间断的服务,x f s 在设计过程中必须在每一个细节考虑 到可靠性。 1 4 第三章x v - s 的结构设计 4 ) 扩展能力。很显然,x f s 必须具备灵活的伸缩性,系统规模应该能线性 增长。在x f s 之上构建的分布式并行服务器的主要用途之一就是作为前端服务 器为小区提供宽带服务,各个小区的规模千差万别,有的需要较大规模的服务 器系统,有的需要较小规模的服务器系统。另一方面,特定小区的用户群也是 逐渐增长的,有可能开始只要3 台服务器就满足需求,而一年后则需要5 台服 务器。可见,x f s 必须具备较强的扩展能力才能应付各种类型的需求。 除了上面4 点以外,有些隐形需求是不言而喻的。比如代码的重用性、可 读性等。 3 2 结构设计 3 2 1 系统逻辑结构 我们所说的分布式文件系统通常指代了两个实体,一个是运行在单机上的 分布式文件系统,另一个是由多台运行分布式文件系统的计算机组成的大系 统。或者可以这样说,“系统”一词既可以代表个体,又可以代表群体。本节 要说的是群体的逻辑结构。 x f s 系统中的各个节点在逻辑上是完全对等的,没有服务器和客户机的区 别。换个角度看,我们也可以认为x f s 的每个节点既是服务器又是客户机。 x f s 的服务对象是分布式并行服务器系统,它不直接面向普通用户,所以说 x f s 是一种面向服务器的分布式并行文件系统。每台服务器上都运行x f s , x f s 将所有服务器上的文件资源组织成逻辑上统一的整体。 3 2 2 x f s 功能特点 根据实际需求,x f s 被设计为具有以下功能特点: 唯一名字空间 x f s 管理的文件放在目录树x f s 下,称为x f s 目录,习惯上我们把它 叫做全局目录。系统的每个节点计算机上都有x f s 目录,而且在任何时候 它们的内容都是相同的。 1 5 面向服务器的分布式并行文件系统 文件共享 x f s 通过将本地目录映射到全局目录的方式来共享文件。x f s 共享文 件的过程和通过w i n d o w s 网络共享文件非常相似。希望共享出本地目录的 计算机指定本地路径和共享名,执行共享命令后,x f s 中就出现相应的目 录。例如,节点f o o 希望共享出本地目录,h o 蜊o c f p a p 既,并且想把共享名 取为s h a r e a o c ,那么在f o o 上执行命令d o s h a r e ( h o m e j d o c p a p e r , “s h a r e d o c ”) 后,x f s 目录树中将出现子目录d x f s

温馨提示

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

评论

0/150

提交评论