分布式文件系统Andrew file system运行机制简介

目录
[隐藏]
 

一、      什么是Andrew File System

Andrew是由Carnegie Mellon大学和IBM公司联合开发的一种分布式计算环境。它的主要功能是用于管理分布在网络不同节点上的文件,其能够使来自任何通过这个国家的AFS机器能够在文件一经在本地存储就能访问。AFS是专为在大的分布式环境中提供可靠文件服务而设计的。该系统创建了便于管理的带有基于网孔结构的分布式环境。网孔是由特定机构管理的自治区域内文件服务器和客户系统的集合。它通常代表某一组织的计算资源。用户可以容易地与网孔内的其他用户共享信息。根据其他网孔管理机构授予的访问权,用户还可以与这些单元格中的用户共享信息。
Andrew文件系统的目标是要支持至少7000个工作站(Carnegie Mellon的学生、教员和职工每人一个),同时为用户、应用程序和系统管理提供一种合适的共享文件系统。AFS 是一个稳定的单元,其每个单元代表文件空间中一个独立的管理部分。单元连接在一起组成了一个在根/afs 目录下的一个庞大的 UNIX 文件系统。与普通文件系统相比,AFS的主要特点在于三个方面:分布式、跨平台、高安全性。
 

二、Andrew File System采用的机制和手段

 
所谓分布式文件系统,主要有两方面的含义:其一、就是说AFS是一种采用分布式结构的文件系统,与传统的集中式的文件系统相比,AFS的各个组件能够分布在网络中的不同机器上,并通过一定的机制协同工作。它并不是简单地C/S(客户端/服务器)结构,也并不象C/S结构的客户端那样仅为服务器端提供接口,所有的功能都集中在服务器端。AFS的各个组件都能够独立的完成某种功能,同时这些组件在一定的机制协调下,又形成一个完整的系统;分布式文件系统的第二层含义是:AFS是一种能够管理分布式文件数据的文件系统,它不但可以把分布在不同网络节点上的存储资源组织成一个虚拟的存储空间,而且能够提供跨平台的文件管理功能。
AFS的跨平台管理功能够使用户方便、高效地共享分布在局域网或广域网中的文件。用户并不需要考虑文件保存在什么地方,也不用考虑文件保存在哪种操作系统上,AFS提供给用户的只是一个完全透明的、永远唯一的逻辑路径,通过这个逻辑路径,用户就象面对一个文件目录一样,这个目录下的内容无论是在什么地方访问,都绝对的一致。因此,AFS的这种功能往往被用于用户的home目录,以使得用户的home目录唯一、而且避免了数据的不一致性。
AFS是一种高安全性的文件系统。它通过鉴权数据库与ACL的配合为用户提供更高的安全性。用户使用AFS,首先需要验证身份,只有合法的AFS用户才能够访问相应的CELL(一个CELL就相当于一个AFS独立结构,该CELL具有AFS文件系统的全部功能);其次,用户还需要在保护数据库中读取相应的ACL列表,以确定他是否有权力读写某一个文件。因此,AFS提供了更高于传统UNIX系统的安全性能。
AFS的目录结构是全球统一的。根据规定,AFS的前两级目录必须由“/afs/cellname”组成,其中,cellname可替换为不同单位的Cell名称。就目前高能所的情况来说,我们已经定义了唯一的cell名:ihep.ac.cn,并建立了唯一的前两级目录:/afs/ihep.ac.cn/。因此,无论用户从什么地方去访问/afs/ihep.ac.cn下的文件,就等于连接到高能所的网络上,并访问了高能所内部的资源。
 

三、AFS的运行模式

 
 .AFS采用C/S(Client/Server)的工作模式,Client发送请求到Server提取文件,Server Machine提供文件给请求的Client。
当Client Machine上的某个Porcess第一次需要某个文件资料时,Client Machine上的一个名叫Cache Manager的Process,便会负责找出存放有该文件的Server(他会从CellServ配置文件中找到 VLDB服务器,在经由VLDB找到相应文件存放的Server),使用RPC通信协议来取回文件存储于自己的Cache中,之后就可以直接读写于Cache中的资料了,这期间Cache Manager会适时的和Server Machine通信来更新资料,有了Cache Manager的帮助使得网络的负荷减轻,因为当我们读写一个在其他机器上的资料时,不再需要每次都经由网络去读取,而由Cache Manage判断在Cache的资料是否和Server Machine上所存的相同,若相同,就直接使用Cache上的资料,如此一来 节省了部分读取文件时所需要的传送,更减少了原本Server上的磁盘I/O负荷。
 

四、NFSAFS的区别

 
NFS和AFS的区别在于对并发写操作的处理方法上。当一个客户机向服务器请求一个文件(或数据库记录),文件被放在客户工作站的高速缓存中,若另一个用户也请求同一文件,则它也会被放入那个客户工作站的高速缓存中。当两个客户都对文件进行修改时,从技术上而言就存在着该文件的三个版本(每个客户机一个,再加上服务器上的一个)。有两种方法可以在这些版本之间保持同步:
无状态系统 在这个系统中,服务器并不保存其客户机正在缓存的文件的信息。因此,客户机必须协同服务器定期检查是否有其他客户改变了自己正在缓存的文件。这种方法在大的环境中会产生额外的LAN通信开销,但对小型LAN来说,这是一种令人满意的方法。NFS就是个无状态系统。
回呼(Callback)系统 在这种方法中,服务器记录它的那些客户机的所作所为,并保留它们正在缓存的文件信息。服务器在一个客户机改变了一个文件时使用一种叫回叫应答(ca11backpromise)的技术通知其它客户机。这种方法减少了大量网络通信。AFS(及OSFDCE的DFS)就是回叫系统。客户机改变文件时,持有这些文件拷贝的其它客户机就被回叫并通知这些改变。
无状态操作在运行性能上有其长处,但AFS通过保证不会被回叫应答充斥也达到了这一点。方法是在一定时间后取消回叫。客户机检查回叫应答中的时间期限以保证回叫应答是当前有效的。回叫应答的另一个有趣的特征是向用户保证了文件的当前有效性。换句话说,若一个被缓存的文件有一个回叫应答,则客户机就认为文件是当前有效的,除非服务器呼叫指出服务器上的该文件已改变了。
 

附录:

 
AFS中的几个名词解释:
   Cell:一个管理单元,由一个Group或一个管理单位所负责管理建筑的基本单元,通常是由许多文件及目录所组成的一个结构,不同的Cell可以组合成为一个 AFS File Space
通常是一个主服务器和几个附加服务器组成一个Cell每个Cell共用自己的VLDB。
   Partition:一般常使用电脑的人,对于硬盘上的Partiton一定不会陌生,对于一个分散文件系统而言,这个系统管理既然是文件,必会和硬盘扯上关系,使得AFS对于硬盘同样可以分Partition,但是AFS中的分区必须是/vicepXX这样的形式 XX可以是a-zz中的任意组合或单个字母。
   Volumes:在每个Partition上可以再分更小的单元,我们称之为Volumes,对于使用者而言,并不需要太注意Volumes到底是做什么的,因为使用者使用AFS,只是想好好好使用自己的文件,而不必要理会Volume或者Partition,这两者都只是AFS对于硬盘空间的管理,适用者所需要的AFS的系统管理都已经帮你弄好了。
AFS管理人员把 cell划分为所谓的卷。虽然卷可以随硬盘分区协同扩展 (co-extensive),但大多数管理人员都不会将整个分区只分为一个卷。AFS卷实际上是由一个单独的、称作 Volume Manager 的 UNIX类型的进程管理的。您可以以一种常见的方式从 UNIX文件系统目录安装卷。但是,您可以将 AFS卷从一个文件服务器移动到另一个文件服务器,同样是由一个 UNIX类型的进程来管理的,但是 UNIX目录不能从一个分区实际地移动到另一个分区上。AFS通过 Volume Location Manager 自动跟踪卷和目录的位置,并留意复制的卷和目录。因此,每当文件服务器非预期地停止操作,用户根本无需担心,因为 AFS会把用户切换到另一个文件服务器机器上的复制卷,而用户可能都不会注意到。
用户从来不对 AFS服务器上的文件进行操作。他们操作已经由客户端缓存管理器从文件服务器中取出的文件。Cache Manager 是居留在客户机操作系统内核中的一只非常有趣的猛兽。(您可以在 2.4版本以上的任何内核中运行 Cache Manager)。
Mount Point:分散文件系统的最大特色是,不需要专门的指定一部机器作为文件的存储,相反的,任何一部机器都可以使存储文件的Server,也可以成为提出要求存取某个文件的Client,那么,文件都分散存储在不同的机器上,使用者要如何存取它所需要的文件呢?
前面提过Volume的概念,让我们从Volume的概念出发,各位可以将Volume视做一个箱子,负责存一个目录文件,当你下达了CD命令更换目前所在的目录,有两种情况会发生,第一种情况是,所更换的目录仍在同一个Volume,第二种情况是,需要换到另一个Volume中,此时便需要一个指标来指示,所要更换的目录是在哪一个Volume,好到该Volume所在处取出该Volume的资料,这个指标便成为Mount Points。
 
 

The AFS File System

What is AFS?
AFS is an enterprise file system designed for use in a distributed environment on multiple computing platforms. AFS allows users on various types of computers to access the same file system. To a casual UNIX user, AFS disk space looks like a regular local disk; to Windows and Mac OS X users, it looks like a normal network drive. So with a single namespace and Kerberos authentication, AFS allows a user to log into any machine participating in the DCI and be presented their files and/or applications.
How does AFS work?
Like any network application, AFS has two components, a client and a server. The client component resides on each machine that wants to use AFS. This client asks the server for files stored in AFS and the server sends the file to the client over the network. The client then presents the file to the user as if it were local to the machine. When the user makes any changes in AFS space, such as creating a new file, saving a file or deleting files, the client sends the information to the server where updates occur. AFS speeds this process up by using disk caching. The AFS client keeps pieces of commonly used files on local disk. When the user asks the AFS client for a file, it checks to see if that file is in the local disk cache. If it is, the client then asks the server if the file it has in disk cache is up-to-date. If the server reports that the file is up to date, the client is able to present the client with the file that is stored in the local disk cache rather than transferring the file from the server.
Why Use AFS?
AFS file space is available from any AFS client installed on any supported platform. AFS provides the flexibility of having the same file structure and content available from any supported client, whether that client is Windows XP/2000/NT or a variety of UNIX clients. 
Additionally, AFS file space is managed centrally by ATN, freeing departments from having to buy and maintain departmental file servers. It also provides end users with the ability to store data in a secure and reliable location. 
AFS at UNC
ATN maintains an AFS cell, isis.unc.edu, which houses departmental and personal directories as well as shared applications. To be able to see this AFS space, you will need to use a machine that has an AFS client installed on it.

 

点赞 (0)
  1. 陈连龙说道:

    好专业啊 顺道看看吧

回复 花脸猴 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Captcha Code