当前位置:文档之家› 文件系统

文件系统


命名和名字解析
因此,这种方案是不实用于包含异质 的环境和广阔地理区域的分布式系 统,其中适合于一个计算设施的一 个命名方案可能不适合于另一个计 算设施。
上下文的概念
为了克服系统范围唯一文件名的困难 ,上下文(context)的记号已被用于划 分一个名字空间。一个上下文辨认 名字空间,在该名字空间中来解析 一个给定的名字。上下文可以沿着 下列:地理边界,组织边界,特定 的主机,一个文件系统类型等划分 一个名字空间。
体系结构
一个高速缓存管理器是一个实现文件 高速缓存的进程。当被客户引用时 在文件高速缓存中存储在远程文件 服务器上的数据的一个副本被带到 客户的机器上。对这个数据的随后 访问在客户机上被本地地执行。因 此,减少由于网络延迟而带来的访 问延迟。
体系结构
高速缓存管理器可以出现在客户和文 件服务器上。在服务器上的高速缓存 管理器在内存中高速缓存文件,来减 少由于磁盘延迟而带来的延迟。如果 允许多个客户高速缓存一个文件并修 改它,副本可能变成不一致。为了避 免这个不一致问题,客户和文件服务 器上的高速缓存管理器协作执行数据 存储和检索操作。
命名和名字解析
传统上,在一个分布式环境中已经有 三种途径命名一个文件。最简单的方 案是把主机(host)名字并接 (concatenate)到存贮在该主机上的文 件名字。尽管这种途径保证了一个文 件名是系统范围唯一的,它和网络透 明性的目标冲突。这种途径的另一个 严重问题是把一个文件从一个主机移 到另一个主机需要改变文件名和访问 那个文件的应用。
命名和名字解析
第三种途径是具有单个全局目录,其 中系统种所有文件属于单个名字空间 。这种方案的变种在Sprite和Appollo 系统中找到。这种途径没有上述两种 命名方案的缺点。但是这种方案的主 要缺点是通常被限制到一个计算设施 或少数协作的计算设施。这种限制是 由于系统范围唯一文件名的要求,它 要求所有的包含的计算设施协作。
装载
⑵装载信息可以在服务器上维护,在 这种情况下,每一个客户可以看到 一个同样的文件名空间(见第5.2节 在Sprite文件系统中的远程链接)。 如果文件被移到一个不同的服务器 ,则装载信息仅需要在服务器上被 更新。在第一种途径中,每个客户 需要更新它的装载表。
高速缓冲(Caching)
在分布式文件系统中一般采用高速缓 冲(Caching)来减少数据访问中的延 迟。在文件高速缓冲时,当客户引 用数据时,存贮在远程文件服务器 上的数据的一个副本被带到客户。 随后对该数据的访问将在客户上本 地地执行,因而减少由于网络延误 而带来的访问延迟。
上下文的概念
x-Kernel逻辑文件系统是一个利上下文 的文件系统。在这个文件系统中, 一个用户定义他自己的文件空间层 次。在这个层次中的内部结点对应 于上下文。
上下文的概念
Tilde命名方案是利用上下文的命名方 案另一个变种。在Tilde命名方案中, 名字空间被划分为逻辑上独立的被称 为tilde树的目录树的集合。运行在系 统中的每个进程有一个tilde树集合与 之相联,构成了进程的tilde环境。当 一个进程企图打开或操作一个文件时 ,文件名被解释关于进程的tilde环境 。
服务器在发出一个磁盘I/O请求之前检 查它自己的高速缓存该数据块的出 现。在如何情况下该数据块都被传 输到客户的高速缓存并且如果它不 在服务器的高速缓存中,就装载到 服务器的高速缓存。
体系结构
客 户
请求访问数据 出现数据
装载数据到客 户高速缓存 返回数据给客户
服 器 务
加载服务器 高速缓存 发出磁盘读
装载(Mounting)
一个装载(mount)机制允许不同文件名 空间捆绑(binding)在一起构成一个单 个层次式结构的名字空间。虽然装载 (mount)是UNIX特有的,因为大多数 现存的分布式文件系统都基于 UNIX[33],研究这个机制是值得的 。一个名字空间(或文件集合)可以 被被粘合到或装载在一个名字空间树 的一个内部结点或叶结点上。
检查客户 高速缓存
不出现数据
检查本 地磁盘(如 果有本地 磁盘)
不出现数据 出现数据 出现数据
检查服务器 高速缓存
不出现数据
发送请求给 文件服务器
通 网 信 络
建立分布式文件系统的机制
本节将介绍大多数当前运行的分布式 文件系统底层基本机制[33]。这些机 制利用以前在文件系统上的研究所 作的观察报告。这里要注意的一个 关键点是这些观察报告是运行在科 学环境下分时系统所作出的,并且 假定在分布式系统中也成立。
上下文的概念
在一个基于上下文的方案中,一个文 件名可以被想象为由一个上下文和 局部于那个上下文的名字组成。
上下文的概念
解析一个名字包含解释该名字关于给 定的上下文。解析可能在给定的上 下文内完成,或者可能导致另一个 上下文,在这种情况下,上述过程 被重复。如果所有的文件共享一个 共同的初始的上下文,则发生唯一 的系统范围全局名字。
设计课题
现在我们讨论在分布式文件系统的设 计和实现中必须讲的各种课题。由 研究这些设计课题,人们可以更好 地理解一个分布式文件系统的错综 复杂。
命名和名字Байду номын сангаас析
在文件系统中一个名字(name)和一 个对象相联(例如一个文件或一个 目录)。名字解析(name resolution) 指的是把一个名字映照到一个对象 ,或在复制情况下映照到多个对象 的过程。一个名字空间(name space) 是可能或不可能共享同一个名字解 析机制的名字集合。
装载
装载
图3表示了一个名字空间树。一个名字 空间被装载到的一个结点熟知为装载 点(mount point)。在图中结点a和i是 装载点,存贮在服务器Y和服务器Z 的目录分别被装载到其上。 注意a和i是名字空间树的内部结点。内 核保持一个称为装载表(mount table) 的结构,它映照装载点到适当的存储 设备。
提示
例如,在一个文件或一个目录的名字 被映照到一个物理对象之后,对象的 地址可以作为一个提示存贮高速缓冲 中。如果在随后的企图中该地址失败 于映照到该对象,高速缓冲的地址从 高速缓冲清洗。文件服务器咨询名字 服务器来决定文件或目录的实际地址 并且更新该高速缓冲。
大量数据传输
在一个网络上传输数据中大量延迟是 由于执行通讯协议的高费用(诸如打 包和斥包,通讯协议层次之间缓冲区 复制等)。事实上,通过局部网的实 际转移时间可能是不重要的。整批的 传输数据减少在服务器和客户两端的 协议处理开销[33]。在整批的数据传 输中,多个连续的数据块从服务器传 输到客户以代替只传输由客户引用的 数据块。
分布式文件系统
一个分布式文件系统是一个分布式操 作系统的资源管理组成成分。它实现 一个可以由系统中所有自治计算机共 享的公共文件系统。 分布式文件系统具有下列两个重要目 标: 网络透明性(Network tranaparency) 高可用性(High availability)
网络透明性
分布式文件系统的基本目的是,提供 访问分布于网络上的文件的功能性 能力如同一个分时主机系统访问驻 留于一个位置的文件同样的能力。 理想地,用户不需要知道所访问的 文件的位置。分布式文件系统的这 个性质熟知为网络透明性。
大量数据传输
高速缓冲分摊访问远程服务器的高费用 ,整批的传输分摊协议处理开销和在 一个文件的许多连续的数据块上磁盘 搜寻时间。整批的传输通过用一次搜 寻得到多个块减少文件访问开销;由 在单个上下文切换中格式化及传输多 个大包;以及由减少需要发送的认可 个数。整批的传输利用了大多数文件 作为一个整体被访问这样的事实。
装载
在分布式文件系统情况下,由远程服 务器维护的文件系统被装载到客户 上。存在两种途径维护装载信息: ⑴装载信息可以在客户上维护,在这 种情况下,每个客户必须单个地装 载每一个需要的文件系统。在Sun的 网络文件系统中采用这种途径。
装载
因为每个客户可以在名字空间树的任 何结点上装载一个文件系统,每一 个客户没有必要看到一个同样的文 件名空间。
体系结构
体系结构
但是,为了较高性能,若干被称为文 件服务器(file servers)的机器专用于存 储文件和执行存储及检索操作。系统 中的其余机器可以仅用于计算目的。 这些机器称为客户机(clients),它们 访问存储在服务器上的文件。某些客 户机也可以装配一个本地磁盘用于高 速缓存(caching)远程文件,作为对换 区或存储区。
体系结构
由一个进程访问一个数据块的一个请 求被表示为该进程正在运行的客户机 的本地客户高速缓存。如果该块不在 这个高速缓存中则检查本地磁盘上是 否有这个数据块。如果有,则请求被 满足并且该块被装载到客户的高速缓 存中。如果该块不在本地存储,则请 求被传到适当的文件服务器,这由名 字服务器决定。
体系结构
加密(Encryption)
加密用于在分布式系统中的安全性。 Needham和Schroeder的工作是分布式 系统中目前大多数安全机制的基础。 在这种方案下,两个希望彼此通讯的 实体在一个认(authentication)服务器 的帮助下建立一个会话密钥。 注意,重要的是会话密钥由认证服务 器确定,但是,会话密钥从不以平文 发送给这两个实体。
高速缓冲
高速缓冲开拓了由程序所显示的引用 的时间上的局部性。引用的时间上 的局部性指的是当前所访问的文件 很可能在最近的将来会再次被访问 这个事实。
高速缓冲
数据可以高速缓冲在主存中或者在客 户的本地磁盘上。数据也被高速缓 冲在服务器的主存(服务器高速缓 冲)中来减少磁盘访问延迟。这些 数据包括在客户上交换出的数据以 及以前由客户请求的块相邻的数据 块,因为很可能不久会访问这些数 据块。
提示
在分布式文件系统中保证一致性是昂 贵的,因为,它要求文件服务器和 客户之间复杂的协作。
提示
另一种可供选择的途径是把高速缓冲的 数据处理为提示(hints)。在这种情况 下,高速缓冲的数据不期望是完全精 确的。但是,有效的高速缓冲条目实 质性地改善了性能而不招致维护高速 缓冲一致性的费用。可以使用提示的 应用类是那些在发现高速缓冲的数据 不是有效之后可以恢复的应用。
相关主题