分布式文件系统_第1页
分布式文件系统_第2页
分布式文件系统_第3页
分布式文件系统_第4页
分布式文件系统_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

第12章分布式文件系统

分布式系统的关键部分:文件系统

文件服务和文件服务器(1)

文件服务:文件系统为客户所提供的内容的

规范说明

它描述了可用的原语,它们所使用参数以及

执行的操作

文件服务确定了文件系统对客户的界面

文件服务器是一个运行于某些机器上的进程

并帮助实现文件服务

良好的分布式系统,用户不知道文件系统是

如何实现的

文件服务和文件服务器Q)

文件服务器是在某台机器上运行的用户进程

(有时是内核进程)

系统会有多个文件服务器,提供不同的文件

服务

12.1分布式文件系统设计

两个不同的部件:文件服务和目录服务

文件服务:单个文件上的操作相关,诸如读、

写和添加

目录服务:维护目录有关,在目录上加、删

文件等等

12.2.1文件服务的接口

什么是文件?

两种文件类型

文件类型1

文件是一个不加解释的字节序列

文件信息的意义与结构全部由应用程序来决

操作系统对之无兴趣

文件类型2

文件可被组织成一串记录

可使用操作系统调用来读写某个记录

大多数支持把文件视作字节序列的概念

而不是关键记录的序列

文件属性

不包括在文件内容中的

有关文件的若干条信息

常见的属性:所有者,文件大小,建立日期

和访问许可

文件服务通常会提供一些对属性进行读写操

作的原语

文件可否修改

文件被创建之后,是否可被修改

・通常它们可以

•“不可改变的(immutable)”文件

仅有CREATE和READ文件操作

一个文件一旦创建,它就不能改变

容易支持文件缓存和复制,

消除了由于文件改变而要更新所有副本所引

起的问题

文件保护⑴

•存取能力表

每一个用户都持有一张称作存取能力表的票

用于它访问的每一个对象

存取能力指定了哪种形式的访问是被允许的

文件保护(2)

・存取控制表

一个文件对应一个隐式或显式的用户表

指明可能访问该文件的用户及可能的访问形

两种类型文件服务:

­文件的上载/下载模式

•远程访问模式

文件上载/下载模式(1)

•只提供两种操作:读文件和写文件

•读操作:

是将整个文件从服务器送到申请的客户

•写操作:

将整个文件从客户传递到服务器

在服务器和客户之间移动整个文件

文件可以按需要而保存在内存或本地磁盘上

只提供了物理存储和传输

文件上载/下载模式(2)

・优点:概念上的简洁性

没有复杂的文件服务接口

整体文件传送效率很高

・缺点:客户端必须有足够的存储空间

只需文件一小部分,传整个文件浪费

(a)上载/下载模式

客户机向服务器发出访问请求

(b)远程访问模式

远程访问模式

•文件服务提供

打开和关闭文件、文件读和写、文件内的移

动(LSEEK)

考察和修改文件属性等等操作

•文件系统运行在服务器上,而不是客户机上

.优点:在客户机上无须太多的空间,

消除零碎空间中放入整个文件的问题

12.1.2目录服务器

•提供创建和删除目录、对文件命名和改名

把文件从一个目录移向另一个目录

•文件命名规则:

可以是从1到某个最大的数字,字符或一些

特殊字符

文件扩展名:

文件名划分为两部分,通常用一个分开

名字第二部分,称为文件扩展名,标识了文

件的类型

扩展名而用一个显性属性来达到这个目的

目录和子目录

目录下包含子目录,可把相关文件放在一起

系统提供创建、删除、进入以及移动子目录

和从子目录中查找文件的功能

层次型文件系统

子目录可再包含子目录从而形成树型目录

目录的链接

某些系统中,能创建到任一目录的链接或指

不仅构建树,而且构建任意目录图,功能更

设计分布式文件系统的一个关键问题

所有机器和进程都应该对目录层次有相同的

认识

应有一个全局性的,并为所有机器所确认的

根目录

目录的薮邕指向目录

机器1

(a)也)

目录树在一台机器内在在两台机器内的目录图

(b)所有客户机对某文件系统都有相同认识的系统

(c)不同的客户机对某文件系统有不同认识的系统

名称解析透明性

定位透明性

服务器可以在网络中随意移动,其路径名也

无需改动

文件在移动时无需改变其名称时,称为定位

独立性

在路径名中嵌入了服务器名称显然不是定位

独立的

不易实现的,是一个在分布式系统中所希望

具有的性质

名称解析三个处理方式:

•机器+路径解析,诸如/machine/path或

machine:path

•把远程文件系统安装到本地文件层次中

•对所有机器都视同一致的单一名称空间

前两项容易实现

后者较困难,需要仔细地设计

两级名称解析(1)

•二级命名法

对用户:文件(及其它对象)有符号名

对机器:有系统内部使用二进制名

要提供这两个名字解析间的一种映射

在一个有多个自含文件服务器的系统中

二进制名实质上就是一个本地的I•结点数

通用名称解析方案:

二进制名指向服务器和里面的某个特定文件

两级名称解析Q)

•符号链

符号链是一个目录项,映射到一个(服务器

文件名)中的字符串上

通过字符串,可通过命名的服务器找到二进

制名

符号链本身实际上就是路径名

两级名称解析(3)

•利用二进制名能力

查找一个ASCII码名字

包括物理的或逻辑的机器号

或适当的服务器网络地址

物理地址就可用来向服务器发消息

通过通过广播或者在名字服务器上查找

能够定位一个虚拟地址

12.1.3文件共享的语义

•多用户文件共享要严格定义读与写语义

・UNIX语义学

当READ操作接着WRITE操作时

READ所返回的值正是刚写入的

类似地,当两个WRITE操作连续出现后跟

一个READ操作

读的值是最后一次写的值

•系统按绝对的时间序列执行所有操作

且总是返回最后一次操作的值

单一服务器文件系统

在实践中,单一服务器文件系统性能,通常很差

改进:允许客户机在其私有空间中维护文件本地副

客户在本地修改缓存区文件

接着另一个客户从服务器读取该文件

第二个客户会得到一个陈旧的文件

解决方法:向服务器播送对缓存区文件的全部修改

概念尽管简单,但处理是低效率的

(a)在单处理器上,当READ跟随WRITE,返回的值是刚才写入

的值

(b)有缓存区的分布式系统中,可能被返回的是陈旧值

替代解法:会话语义(sessionsemantics)

放松文件共享的语义学要求

新的规则:“对打开文件的修改,仅对修改

该文件的进程是初始可见的”

重新定义了正确的操作的实际行为

当A关闭文件时,它送一个副本给服务器

所以后续的READ得到了所需要的新值

会话语义的问题

•更多的客户同时在同一个缓存区上修改会怎

样?

・一种解决方法:

当每个文件依次关闭时,其值回送给服务器

•最后的结果取决于谁最后关闭

不可更改文件

操作只有CREATE与READ

虽然文件不能更新,但可以更新目录

问题就不存在了

共享文件的第四个方法:原子事务

确保在事务中的所有调用都会按序执行

不会被任何其它的、并发的事务所干扰

方式评论

UNIX语义在文件上的每一操作

对所有进程均是立即可见的

会话语义在文件关闭之前,

变化对其它进程是不可见的

不可变文件不能更新,简化了共享和复制处理

原子事务所有修改有,全是-或-全不是的性质

12.2.1文件的使用

文件使用的模式

多数文件较小(低于10k)

读比写要多得多

读和写是顺序的,很少随机访问

多数文件寿命很短

文件共享是不寻常的

平均看进程只使用少量文件

存在不同特性的显然不同的文件类型

12.2.2系统结构

“客户机和服务器有差别吗?”

在一些系统中(比如:NFS)

客户机和服务器之间没有差别

另一个极端

客户机和服务器在软硬件上是完全不同的

服务器甚至可以运行和客户机不同的操作系

怎样构造文件和目录服务

一种方法:两种服务组织到单独的服务器里

用户送一个符号名给目录服务器

目录服务器返回服务器可以识别的二进制文

件名

目录在

文件文件

层次化目录

层次化目录有可能分段处在多个服务器上

经常地寻找路径名,特别是多重目录服务器

费用会很昂贵

提示快捷栈

保存最近查找的名字以及查找的结果

另一种方法:把它们分隔开

拥有两个服务器将需要更多的通讯

客户机的状态(1)

一个派认为服务器应是无状态(stateless)的

当客户机向服务器发出请求,服务器执行了

这个请求

发送回答信息,在请求之间,没有保留客户

机状态信息

每个请求必须自我包含信息

包含全文件名及文件内的偏移量,以允许服

务器完成工作

信息增加了消息的长度

客户机的状态Q)

另一派认为保留客户机请求间的状态信息是

完全有必要的

服务器状态

容错较短的请求消息

无需OPEN/CLOSE调用较好的性能

不在表上浪费服务器空间有可能预读

打开文件数量无限制较易实现

客户机失效时不受影响文件加锁有可能

12.2.3缓存区处理(Caching)

四个地方存放文件:

服务器硬盘

服务器主存

客户机硬盘(若存在的话)

客户机主存

服务器硬盘

所有文件在服务器的硬盘上

文件可被所有客户机所访问

一个文件只有一套拷贝,不存在一致性问题

客户机主内存服务器磁盘

网络

可存放文件的四个地方

13-9

服务器主存

在服务器主存上缓存最近使用过的文件

可使性能获得高的提升

主存一般都比磁盘小

需要算法决定文件的哪部分留在缓存区

客户机的主存

客户机主存有三种选择

方案一最简单:把缓存文件直接放在用户进

程自有地址空间中

大多数进程只读一个文件一项

所以在库中设缓存区并没有多大的价值

在客户机主存中运用缓存区的不同方式

(a)无缓存区

(b)在每一进程中设缓存区

(c)在内核中设缓存区

(d)视作用户进程的缓存区管理器

客户机缓存区地方是内核

缺点是,需要内核的调用

这种缓存区比在进程中设缓存区效果为好

方案二:缓存区在不同的用户级缓存区

管理器中

优点:内核同文件系统代码无关

容易编程,因为它它完全隔离

且更具灵活性

缓存区一致性

客户机把不一致性引入了系统

方法评价

遍写工作,但不影响写的操作

延迟写更好的性能,但可能带来二义性

闭写满足会话语义要求

集中控制UNIX语义,但鲁棒性和可伸缩性差

不可改变的文件

吸引力,可在机器上进行缓存处理的能力

不用担心机器会有改变它的可能性

12.2.4复制性(replication)

分布式系统常常提供文件复制服务给他们的客户

主要的原因中有:

可靠性:每一文件的各自独立的副本增强了可靠性

有效性:即使在服务器关闭时,也允许访问文件

性能:所有文件放在一台服务器上会造成性能瓶颈

多服务器上复制文件,最轻载的将会被使用

符号名多重二进制地址(a)显式文件复制

(b)空闲复制

(a)

(c)使用组的文件复制

13-12

三种复制

复制关键问题是透明度问题

显式文件复制;空闲复制;组通讯

显式文件复制

程序员控制整个复制进程

进程在某服务器上创建个文件

如果需要的话,可以在其他服务器上备份多份

如果目录服务器允许文件的多份拷贝同时存在

那么备份的网上地址都与文件名相关

只要给出文件名,所有的备份都能被找到

空闲复制(Lazyreplication)

每个文件只在一服务器中建立

在服务器空闲时自动复制到另外的服务器中

复制过程对用户透明

在后台复制文件时,注意原文件是否已被修

改过

组通讯方式

全部“写”调用同时发往所有服务器

后备文件与原件同时产生

空闲复制与组通讯方式主要有两个区别:

在空闲复制方式中只须一个服务器地址,而

不是一个组;

空闲复制空闲时在后台进行

而组通讯方式中,所有文件同时产生

如何更新

原本复制(primarycopyreplication)

一台服务器被指定为主机。其它的当作辅机

已复制文件需要更新时,首先告诉主机,把主机文

件修改

然后主机命令辅机,要求它们修改

缺点:一旦被指定主机不能工作,对文件的修改不

能进行

复制更可靠的方法:“投票表决法(voting)”

基本思想:无论读或写已复制文件时,用户应向多

台服务器提出请求并获得同意

"幽灵表决法(vot

温馨提示

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

评论

0/150

提交评论