第五章-分布式文件系统...ppt_第1页
第五章-分布式文件系统...ppt_第2页
第五章-分布式文件系统...ppt_第3页
第五章-分布式文件系统...ppt_第4页
第五章-分布式文件系统...ppt_第5页
免费预览已结束,剩余42页可下载查看

下载本文档

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

文档简介

第5章分布式文件系统,分布式文件系统设计分布式文件系统的实现分布式文件系统的发展趋势,分布式文件系统,文件服务与文件服务器,文件服务,文件系统提供给客户内容的详细说明。它描述了可用的原语、原语所需要的参数和执行的动作。文件服务说明了文件系统对客户的接口。,文件服务器,文件服务器是运行在某台机器上的一个有助于实现文件服务的进程。一个系统可以有一个或多个文件服务器,每台文件服务器提供不同的功能。,5.1分布式文件系统设计,5.1.1文件服务器接口,文件:在许多系统中,如和,文件是一个未经解释的字节序列。文件中的信息的含义和结构完全取决于应用程序。,文件的属性:是关于文件的一部分信息。典型的属性有所有者、大小、创建日期和访问权限。文件创建后能否修改?通常是可以的。不可变的文件:一旦文件创建,不能改变它。使得支持文件高速缓存和复制变得容易。分布式系统的保护权能存取控制表,5.1分布式文件系统设计,5.1.1文件服务器接口,文件服务分类,上载/下载模式文件服务只提供两种主要的操作:读文件和写文件。读文件将整个文件从一个文件服务器传送到提出请求的客户。写操作将整个文件从客户传送到服务器。,5.1分布式文件系统设计,5.1.1文件服务器接口,文件服务分类,上载/下载模式优点:概念简单。使用这种模式不需要掌握复杂的文件接口。整个文件的传送是高效的。缺点:客户端必须具有足够大的存储空间来存储所需的所有文件。如果只需要文件的一小部分,移动整个文件是很浪费的。,5.1分布式文件系统设计,5.1.1文件服务器接口,文件服务分类,远程访问模式文件服务提供了大量的操作用于打开和关闭文件,读写文件的一部分,在文件中来回移动,检查和改变文件属性等。,优点:在客户端不需要很大的空间,当仅需要文件的一小部分时,需要传送整个文件。,5.1分布式文件系统设计,5.1.2目录服务器接口,目录服务,提供诸如创建和删除目录,命名和重命名文件以及将文件从一个目录移动到另一个目录等操作。文件扩展名:prog.cman.txt分布式系统允许目录包含子目录,形成一棵目录树。通常称为分层文件系统。,一棵有5个目录的树,在树型层次结构中,仅当目录为空时,才能删除指向该目录的连接,5.1分布式文件系统设计,5.1.2目录服务器接口,目录服务,对任意目录建立连接或指针。使得可以将目录组织成更强有力的任意目录图。,在目录图中,一个目录只要存在至少另一条链接时就可以删除指向该目录的链接,5.1分布式文件系统设计,5.1.2目录服务器接口,孤立目录,删除A到B的连接。结果从文件系统(A)的根已不能到达B。B、D、E三个目录以及它们的所有文件实际上是孤立了。,分布式系统中的孤立目录问题,5.1分布式文件系统设计,5.1.2目录服务器接口,问题1:,在设计分布式系统时,是否全部机器(和进程)都应该具有完全相同的分层目录结构视图?,5.1分布式文件系统设计,5.1.2目录服务器接口,问题1:,所有客户(和其他机器)具有相同的分布式文件系统视图的情况:即如果路径/D/E/x在一台机器上有效,则在所有机器上都有效。,客户1,客户2,5.1分布式文件系统设计,5.1.2目录服务器接口,问题1:,不同的机器可能具有不同的文件系统视图。路径/D/E/x在客户1可能是有效的,而在客户2上可能是无效的。,客户1,5.1分布式文件系统设计,5.1.2目录服务器接口,问题2:,是否存在一个全局根目录,所有的机器都认为其为根。设置全局根目录的方法是使这个根只包含每个服务器的一个入口。路径的形式为:/服务器/路径,5.1分布式文件系统设计,5.1.2目录服务器接口,命名透明性,位置透明性:指路径名并不能对文件(或其他对象)存储位置给出任何提示。如路径/server1/dir1/dir2/x说明x位于服务器1上,但是并没有说明服务器1的位置。服务器在网络中可以自由的移动而无需改变路径名。如果文件x非常大而且服务器1上的空间又很紧张。需要将文件x移动到服务器2上。系统不能够自动的移动。/server1/dir1/dir2/x/server2/dir1/dir2/x?,5.1分布式文件系统设计,5.1.2目录服务器接口,命名透明性,位置独立性:在一个系统中文件能够移动而无需改变其文件名,这样的系统称之为具有位置独立性。一个明确将机器或服务器名嵌入路径名的分布式系统不是位置独立的系统。机器+路径名如/machine/path或machine:path安装远程文件系统到本地文件分层结构一个在所有机器上看上去都一样的单个名字空间,分布式系统中用于文件和目录命名有以下三种方法:,5.1分布式文件系统设计,5.1.2目录服务器接口,两级命名,符号名和二进制名:文件(和其他对象)具有符号名,供用户使用,还可以具有内部的二进制名供系统使用。目录的作用是提供这两个命名层次之间的一个变换(映射),5.1分布式文件系统设计,5.1.3文件共享的语义,UNIX语义,在READ操作紧跟在WRITE操作后执行时,READ操作返回刚刚写入的值。当一个READ操作跟在两个紧相连发生的WRITE操作后,读入的值是后一个写操作写入的值。,5.1分布式文件系统设计,5.1.3文件共享的语义,分布式系统存在的问题:,分布式系统中允许客户在它们自己的高速缓存中保留经常使用的文件的局部拷贝。,读出了一个过时的值,5.1分布式文件系统设计,5.1.3文件共享的语义,解决办法对话语义,立即将高速缓存文件的所有修改回写到服务器上。简单、效率低。规则:对一个打开文件的修改仅对修改该文件的进程是初始可见的,仅当文件关闭时,其修改才对其他进程可见。(对话语义)当两个或多个客户同时进行高速缓存和修改同一文件,若各个文件连续关闭,将它们的值送到服务器上,最后的结果取决于哪个文件最后关闭。,5.1分布式文件系统设计,5.1.3文件共享的语义,不可更改文件,对文件不能进行更改,只是简单的共享和复制。文件不能被更新,但是目录可以更新。,事务,为了存取一个文件或一组文件,进程首先执行某种类型的开始事务处理原语,以指示跟在其后的操作是不可分的。然后通过系统调用来读写一个或多个文件工作完成后,执行结束事务处理原语。关键特性:保证了包含于事务处理中的所有调用都将按顺序完成,不能有其他任何同时存在的事务处理的干扰。,5.1分布式文件系统设计,5.1.3文件共享的语义,四种处理共享文件方法比较,5.2分布式文件系统的实现,5.2.2文件系统结构,客户与服务器不同吗?,客户和服务器没有差别。所有的机器执行基本相同的软件,任何机器都可以自由的为公众提供文件服务。文件服务器和目录服务器仅是用户程序。可根据需要配置一个系统以便在同一机器上或者不同机器上执行客户和服务器软件。系统根据硬件或软件将客户和服务器分配在完全不同的机器上。,5.2分布式文件系统的实现,5.2.2文件系统结构,文件和目录服务如何构造?,将两者合并成一个服务器来处理所有的目录和文件自身的调用。保持独立。打开一个文件需要进入目录服务器,以便将它们的符号名变换成二进制名。然后用二进制名进入文件服务器对文件进行读写。,5.2分布式文件系统的实现,5.2.2文件系统结构,文件和目录服务器独立的情况,目录分层在多个服务器之间分配的情况,迭代查找a/b/c,5.2分布式文件系统的实现,5.2.2文件系统结构,文件和目录服务器独立的情况,目录分层在多个服务器之间分配的情况,5.2分布式文件系统的实现,5.2.2文件系统结构,频繁查找路径名,代价昂贵,采用高速缓存提示改善性能,当一个文件打开时,先检查高速缓存中是否有该路径名,如果有,就不必逐个目录去查找,从高速缓存中直接读取其二进制地址。如果没有再进行查找。为使用名字高速缓存,基本的做法是:当无意中使用一个已过时的文件时,设法通知客户,以便它能通过逐一查找目录的方式找到文件并更新高速缓存。,5.2分布式文件系统的实现,5.2.2文件系统结构,有状态服务器与无状态服务器,无状态服务器:当客户发送一个请求到给服务器,服务器完成请求,发送一个应答,然后从内部表中移出关于该请求的所有信息。在请求之间,服务器不保存具体客户的信息。有状态服务器:服务器保存两个请求之间的客户的状态信息。,5.2分布式文件系统的实现,5.2.3高速缓存,在一个各自有主存和磁盘的客户-服务器系统中,有四个存储文件或部分文件的地方:,5.2分布式文件系统的实现,5.2.3高速缓存,存储在服务器磁盘上,服务器磁盘上有充足的空间,存放在那里的所有文件对客户都是可访问的。由于文件只有一个拷贝,不会产生一致性问题。运行效率低。在客户读一个文件之前,文件必须从服务器磁盘传送到服务器主存中,然后再通过网络传送到客户的主存中。,5.2分布式文件系统的实现,5.2.3高速缓存,服务器高速缓存,将最近使用的文件保留在服务器的主存中。客户读取一个刚好在服务器主存中的文件,可以消除磁盘传送,但网络传送仍然存在。需解决的问题:1.什么是高速缓存管理单元?2.当高速缓存填满,置换算法。在服务器主存中设置高速缓存:容易、对客户是完全透明的。由于服务器可以保证其主存和磁盘拷贝同步。从客户的观点看,每个文件只有一个拷贝,不会产生一致性问题。,5.2分布式文件系统的实现,5.2.3高速缓存,客户端高速缓存,在客户主存中设置高速缓存,有三种可使用的选择来精确定义高速缓存的位置。1.在每个用户进程自己的地址空间直接进行文件高速缓存,高速缓存由系统调用库管理。当打开、关闭、读和写文件时,该库只是保存最常用的文件当进程退出时,所有被修改过的文件都写回到服务器中,5.2分布式文件系统的实现,5.2.3高速缓存,客户端高速缓存,2.在内核中设置高速缓存,缺点是在所有情况下都需要内核调用,甚至对于高速缓存命中。,5.2分布式文件系统的实现,5.2.3高速缓存,客户端高速缓存,3.高速缓存管理作为一个用户进程,用户级高速缓存管理者的优点是它保持了内核独立于文件系统编码。易于编程,更加灵活。,5.2分布式文件系统的实现,5.2.3高速缓存,高速缓存一致性,直接写算法(WRITE-THROUG算法)当修改一个高速缓存项(文件或块)时,新的值保存在高速缓存中,并立即写到服务器。问题1:假设在机器A上的一个客户进程读文件f。客户结束但机器在其高速缓存中保存f。随后,机器B上的一个客户读同一个文件,修改它,并将它写到服务器上。最后,机器A上的一个新的客户进程开始启动。它从该机器的高速缓存中打开并读入f。(过期值)解决方法:要求高速缓存管理者在从高速缓存向客户提供文件时,须先与服务器进行核对。如果不同,当前的版本必须从服务器中提取。,5.2分布式文件系统的实现,5.2.3高速缓存,高速缓存一致性,直接写算法(WRITE-THROUG算法)问题2:尽管它对读是有益的,但是对写来说,网络传输是相同的,就像根本没有高速缓存一样。解决方法:替代在写操作完成的瞬间访问服务器,客户只是记录一下该文件已被修改。大约每隔30秒,所有的更新文件聚集在一起一次向服务器发送。延迟写,5.2分布式文件系统的实现,5.2.3高速缓存,高速缓存一致性,延迟写延迟写操作使得语义变得不清楚。当另一个进程读此文件时,它所得结果取决于时间选择。延迟写只好在运行效率和清晰的语义之间权衡。关闭时写仅当文件关闭后才将文件写回到服务器。与对话语义相配。,5.2分布式文件系统的实现,5.2.3高速缓存,高速缓存一致性,集中控制算法当打开一个文件时,打开该文件的机器向服务器发送一条消息。服务器保存谁打开了哪个文件以及打开是为了读还是写或者两者兼有。如果文件是为读而打开,允许其他进程为读而打开,避免为写而打开。如果某个进程为写而打开一个文件,必须禁止所有其他访问。当关闭文件时,必须报告,以便服务器更新。缺点:不健壮,不能规模化。,5.2分布式文件系统的实现,5.2.3高速缓存,高速缓存一致性,管理客户文件高速缓存的四种算法,5.2分布式文件系统的实现,5.2.4复制,提供文件复制的原因分布式系统通常保持文件的多个拷贝,每个拷贝放在一台单独的文件服务器上,提供这种服务的原因:,数据不丢失:通过对每个文件的独立备份来增加系统的可靠性。当一个文件服务器出现问题时,仍允许进行文件访问负载均衡:将工作量分配到多个服务器上。,5.2分布式文件系统的实现,5.2.4复制,实现复制的方法,显示复制,当进程产生一个文件时,可以在其他服务器上生成另外的拷贝。如果目录服务存在允许一个文件有多个拷贝,所有拷贝的网络地址都可以和这个文件名联系起来。,5.2分布式文件系统的实现,5.2.4复制,实现复制的方法,懒惰复制,只要在某个服务器上建立每个文件的一个拷贝,服务器自己在其他的服务器上也可自动生成副本。,5.2分布式文件系统的实现,5.2.4复制,实现复制的方法,用组复制文件,所有的写系统调用同时传送到所有的服务器。于是,其他的拷贝在原文件产生时就产生了。,5.2分布式文件系统的实现,5.2.4复制,更新协议,主拷贝复制使用时指定一个服务器为主服务器,其他所有的服务器为从服务器。当更新一个复制文件时,将该改变送至主服务器,在本地完成修改,然后

温馨提示

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

最新文档

评论

0/150

提交评论