浅析分布式文件系统原理及改进_姚毓才
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
介绍了 Andrew 文件系统 AFS,通过比较说明了 AFS 强大的功能和机制。 分布式系统的发展十分迅速,更成熟的分布
式系统也相继出现并得到广泛应用。
关键词: 分布式文件系统; NFS; 发展
中图分类号: TP311
文献标识码: A
文 章 编 号 :1672-0547 (2008)06-0079-02
收稿日期: 2008-11-02 作者简介: 姚毓才(1976-),男,安徽桐城人,铜陵学院数学与计算机科学系教师,安徽大学计算机及应用专业在读硕士研究生,研究方向:数据
挖掘、机器学习等。
- 79 -
《
》ຫໍສະໝຸດ Baidu008 年第 6 期
它返回给用户。 为了提高系统的性能,在 NFS 系统的客户端和服务器端
采用了高速缓存技术。与单机文件系统相比,不同之处在于, NFS 只是把对服务器端的高速缓存写操作修改为立即写,这 样,当服务器崩溃恢复后,客户需要做的只是再发送一次请求, 但这样就要求服务器的高速缓存必须立即写到磁盘,以免服务 器的崩溃导致数据的永久丢失。
文件系统是共享数据的主要方式,是操作系统在计算机硬 盘上存储和检索数据的逻辑方法,这些硬盘可以是本地驱动 器、可以是网络上使用的卷或存储区域网络(StorageArea Net- work,SAN)上的导出共享。特别地,文件系统实现了 Unix 式的 操作系统所需要的基本操作。它通过对操作系统所管理的存储 空间的抽象,向用户提供统一的、对象化的访问接口,屏蔽对物 理设备的直接操作和资源管理。
图 2 NFS 原理图 具体地说,Client 方面主要负责处理用户对远程文件的操 作请求,并把请求的内容按一定的包格式从网络发送给文件所 在的 Server 方面;而 Server 方面则接收 Client 方面的请求,调 用本机的系统函数进行文件的实际操作,并把结果按一定格式 返回给 Client 方面,Client 方面得到 Server 的返回结果后,把
工程科技
《
》2008 年第 6 期
浅析分布式文件系统原理及改进
姚毓才 1,2 张琳娜 3
(1. 安徽大学, 安徽 合肥 230039; 2. 铜陵学院, 安徽 铜陵 244000; 3. 解放军工程兵指挥学院, 江苏 徐州 221004)
摘 要: 文章提出了 NFS 文件系统的设计原理,NFS 主要应用于小型局域网上,并且客户机数目有限。 基于 NFS 的限制,详细
2003. [4]Erez Zadok. Linux 网络文件系统管理指南[M]. 邱仲潘等译. 北
京:电子工业出版社,2001.8-18. [5]Robert R.King. Windows Server2003 活 动 目 录 从 入 门 到 精 通
[M]. 北京:电子工业出版社,2003. [6]Marc Farley. SAN 存储区域网络[M]. 孙功星等译. 北京:机械工
使用客户高速缓存可以避免频繁的网络传输而提高系统 性能,但这样也会带来缓存的一致性问题。NFS 采用缓存有效 性验证限制了不一致数据可见的时间。写操作发生时,数据被 写入缓存和服务器。这意味着后继到达服务器的读请求将得到 新数据。但是如果多于一个客户持有特定块的拷贝,其中一个 客户的写操作将使其他客户缓存旧数据。但数据不一致情况持 续的时间受到时间戳的限制。当时间戳改变时,为该文件缓存 的所有数据块都将被抛弃。
参考文献: [1]Coulouris 等. 分布式系统概念与设计[M]. 金蓓弘等译. 北京:
机械工业出版社,2004. [2]S.Shepler,B.Callaghan. RFC 3530:Network File System (NFS)
version 4 Protocol[M]. The Internet Society,2003. [3]Network File System (NFS) version 4 Protocol. RFC 3530,Apr.
四、NFS 文件系统的改进 NFS 主要应用于小型局域网上,并且客户机数目有限。当将 它用于跨越若干建筑或者成百上千个客户时其效果很不理想。 而 AFS(Andrew File System),是一个能够扩展到几千个用户的 分布式文件系统。它是 1984 年由美国卡内基梅隆大学(CMU)和 IBM 联合开发的,它的全名叫 Andrew 文件系统。AFS 的设计目 标是支持大学校园网内数千台工作站间的文件共享,它的设计 特点包括:可扩展的体系结构,以多个服务器的资料复制来支持 大量的用户,以 callback 机制维护多个副本间的一致性。 AFS 是围绕一组叫做 cell 的文件服务器组织的,每个服务 器的标识通常是隐藏在文件系统中的。它的表层基本结构很像 现代的 NFS 实现,但 AFS 是第一个在客户端采用永久缓冲策 略的文件系统,缓冲包括文件和目录资料。一旦资料被缓冲,客 户端的只读操作将无需服务器的参与。而且客户端的缓冲是永 久性的,即保存在本地文件系统中。所以就算当客户机或服务 器重启以后,系统依然能够通过与每一个文件相连的 DateVersion 属性名重新使用缓冲。 AFS 具有较强的扩展能力。如图 3 所示,AFS 中客户机和 服务器是分开的。服务器的集合被称为 Vice,而客户工作站被 称为 Venus。
五、分布式文件系统的成果 网络技术的发展和普及应用极大地推动了网络存储技术 的发展,基于光纤通道的 SAN、NAS 得到了广泛应用。这也推 动了分布式文件系统的研究。这个阶段,出现了多种体系结构, 充分利用了网络技术。例如 Global File System(GFS),General Parallel File System (GPFS),惠普公司的 DiFFS,SGI 公司的 CXFS 都是基于 SAN 的分布式文件系统。 随着 SAN 和 NAS 两种结构逐渐成熟,研究人员开始考虑 如何将两种结构结合起来。网格的研究成果等也推动了分布式 文件系统体系结构的发展。IBM 的 StorageTank、Cluster 的 Lustre、Panasas 的 PanFS、蓝鲸文件系统(BWFS)等是这种体系 结构的代表。 体系结构的研究逐渐成熟,表现在不同文件系统的体系结 构趋于一致;系统设计的策略基本一致,如采用专用服务器方式 等;每个系统在设计的细节上各自采用了很多特有的先进技术, 也都取得了很好的性能和扩展性。另外,在协议方面的探索也是 研究的热点之一,如 Direct Access File System 利用了远程内存 直接访问的特性,借鉴了 NFS 第四版本和 Common Internet File System 等协议,设计了一套新的网络文件访问协议。
业出版社,2002. [7]唐志敏. 网格技术专题介绍[J]. 计算机研究与发展 ,2002,39
(8):1-2. [8]Andrew S.Tanenbaum,Maarten van Steen. 分布式系统原理与范
一个客户端,客户端上看到的只是多了一个共享的存储盘。其 结构图如图 1 所示。
图 1 NFS 客户机/服务器结构图 三、NFS 设计原理 NFS 通过客户机上的系统 API 来文件共享。这种 API 是 通过远程过程调用(RPC)实现的,但 NFS 不负责服务器的状 态,也不负责 Caching。管理员可以建立远程系统上文件的访 问,以至于用户感觉不到他们是在访问远程文件。 NFS 在文件系统调用层实现分布性(如图 2),但对文件的 读写是按块来进行的。客户端通过一些核心函数调用来使用远 程文件系统;而服务器端,由 NFS 服务器监听进程来提供文件 数据的操作。一般来说,最主要是两个监听进程 Mountd 和 Nfsd,其中 Mountd 用来监听客户的安装请求,并发送相应的应 答信息,如客户端地址和服务器地址;而 Nfsd 进程用来监听客 户端的读写文件请求,并返回相应的文件数据。
图 3 AFS 通过使 Vice 物理安全和在 Vice 与 Venus 间使用加密传 输来确保安全性。通过使用简单设计和缓存来确保缩放性和性 能。通过在本地名字空间中建立到共享名字空间合适的可执行 文件的符号链接来提供异构性。通过在 Vice 间复制文件来提 供完整性和可靠性。 从 AFS3.0 开始,AFS 作为 Transarc 公司的产品开始进入 市场。1998 年 IBM 收购了 Transarc,并使 AFS 成为一个开放 源码产品,叫做 OpenAFS。AFS 的目录对所有客户都是相同 的,具有名字空间唯一性。/afs 是 AFS 的根目录,其下的子目 录称为 Cell,每个 Cell 对应于一组服务器。Cell 的名字通常就 是服务器所有单位的域名。AFS 服务器以卷的结构存放文件, 卷可以在服务器之间复制和移动。 与 NFS 不同,AFS 在客户端和服务器端都必须响应 RPC,
分布式文件系统支持在企业内部网上以文件的形式共享 信息。一个设计良好的文件服务系统,使用户访问存储在服务 器上的文件时,能获得与访问本地磁盘文件类似的性能和可靠 性。一个分布式文件系统,使程序可以像存储和访问本地文件 那样的对远程文件进行操作,允许用户访问在企业内部网中任 一计算机上的文件。
一、分布式文件系统的发展 在二十世纪 70 年代就出现了最初的分布式文件系统的尝 试。到了二十世纪八十年代中期,网络文件系统(NFS-Network File System)的出现使得分布式文件系统逐渐发展并应用到各 个领域。当前的分布式文件系统主要有基于共享文档和缓冲的 文件系统,如 NFS 等;基于并行处理的集群文件系统,如 GFS 等;基于副本机制的文件系统,如 Coda 等。 早期的分布式文件系统以 NFS 和 AFS (Andrew File Sys- tem) 最具代表性,一般以提供标准接口的远程文件访问为目 的,更多地关注访问的性能和数据的可靠性。本文主要简单介 绍网络文件系统。 二、NFS 文件系统 网络文件系统 NFS(Network File system)最早由 Sun 公司 作为 TCP/IP 网上的文件共享系统于 1985 年开发的。它是一种 在网络上共享文件的机制,由一系列 NFS 命令和进程组成的 一个分布式的客户机/服务器文件系统。 NFS 的最近版本并没有改变核心设计,但是改善了安全性 能,并解决了一些管理问题,例如自动安装远程文件系统等。 当客户机安装了服务器提供共享的文件系统后,通过远程 过程调用(RPC)对服务器提出服务请求,服务器根据请求作相 应的操作并返回结果,从而方便地实现信息共享。 NFS 采用共享文档和缓冲机制,系统中的每个节点既可作 为服务器端也可以做为客户端,但客户与服务器是非对称的。 服务器将自己的文件系统、目录和其它资源开放给客户机进行 存取,相当于把远程文件系统以本地文件系统的形式呈现给每
通过这一点,客户端就可以保持当前文件的信息。AFS 的客户 服务器结构限制了它的最终缩放性,因为服务器必须处理所有 的缓存不命中,回调和目录更改。服务器状态和文件定位索引 的大小也限制了缩放性。
如果应用程序只访问大文件的一小部分,AFS 的表现比较 差。它没有解决分布式数据或者其他大型随机访问文件的需 要,也没有处理数据的不一致问题。断开的 AFS 部分无法再次 与原来的文件系统连接。失效的文件服务器进程必须与仍在运 行的 AFS 文件服务器重新同步,但是不能添加可能在它断开 后保存在本地的新更改。
使其显示时就好像所有的资料都位于一台服务器上,这样 用户就不必到网络上的多个位置去查找他们需要的信息。
在以上的网络共享文档系统中,NFS 是最早的实现网络文 件共享的文件系统。NFS 由于简单而成为事实上的工业标准。 由于 NFS 的采取 UNIX 系统特有的认证系统,服务器端要求 有类似 UNIX 风格的安全体系而使得服务端的应用范围不大。 后来发展出的几种分布式文件系统中如 AFS,AFS 的客户服务 器结构限制了它的最终缩放性,还有些是专属系统的文件系统 如 DFS,SAN 是一种架构,而 NAS 是具体的产品。