【转】AFS文件系统学习笔记

时间:2023-01-16 05:15:28

转自:http://blog.chinaunix.net/u/13229/showart_270314.html

 

AFS文件系统学习笔记

 

什么是AFS文件系统?

  .AFSAndrew File System的缩写,他是一种分散式的文件系统(Distributed File System)可以将分散在不同机器上磁盘空间组合成一个共有的磁盘空间,让使用者能够在不同的机器上使用相同的文件系统来管理自己的文件.

 

AFS的运行模式

  .AFS采用C/S(Client/Server)的工作模式,Client发送请求到Server提取文件,Server Machine提供文件给请求的Client

 

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

 

OpenAFS 基本原理

   OpenAFS 试图免除安装和管理用于使不同文件系合作的的痛苦。OpenAFS 也能使不同文件系更有效地合作。尽管 UNIX 及其引人注目的后 Plan 9 的最初目是文件,但是商业现实指出,与其底重构代的网文件系,不如添加另一个分布式文件系统层

1983 Carnegie Mellon University 程人员开发 AFS。此后不久,大学成立了一家叫做 Transarc 的公司来出售基于 AFS 的服1998 IBM Transarc,并使 AFS 一个放源码产品,叫做 OpenAFS。但是,故事并未就此束,因 OpenAFS 衍生了其他的分布式文件系,如 Coda Arla些我将在后面到。存在针对所有主要操作系的各机,及大量的过时文档料。Gentoo.org 使 OpenAFS Linux 可用做出了特别贡献,即使其他机构在需要分布式文件系统时似乎仍然是指 NFS

 

OpenAFS 如何行管

    NFS 是位置无的,它把本地目映射到程文件系位置。OpenAFS 户隐藏了文件位置。因可能所有的源文件都以写副本的形式保存在制到的不同文件服器位置上,必保持制的副本同此要使用一称作 Ubik 的技,它源于单词“ubiquitous(无所不在),是欧拼写法。Ubik 程使 AFS 文件系上的文件、目和卷 (volume) 保持同,但是通常运行三个以上文件服程的系统获益最多。系管理人可以将一个 AFS 站点的几个 AFS cell —— 个以前的 AFS 被保留在 OpenAFS 文件系语义中了。管理人将决定 AFS cell 的数目,以及 cell 使存器和文件站点内的其他 AFS cell 可用的程度。

 

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

    简单一点来说,AFS系统是利用Mount Points的概念,不漏痕迹的取回使用者所需要的文件或目录资料

 

 

 

 CacheManagerCache Manager 可以响本地用程序的求,来跨 AFS 文件系取出文件。当然,如果文件是常更改的源文件,那文件存在于几个制版本中可能不太好。很可能要繁地更改常被求的源文件,所以您会遇到两个问题:首先,文件很可能被保存在客存内,而同时还保存在几个文件服器机器上的几个制卷内;然后,Cache Manager 不得不更新所有的卷。文件服程把文件送到客存内并随其附一个回,以便系可以生在其他地方的任何更改。如果用更改了存在其他地方的制文件,原始文件服器将会激活回,并提醒原始存版本它需要更新。

分布式版本控制系也面临这问题,但是有一点重要的区:分布式版本控制系在断开时可以运行得很好,而 AFS 文件系的任一部分都不能断。断 AFS 部分无法再次与原来的文件系统连接。失效的文件服程必与仍在运行的 AFS 文件服器重新同,但是不能添加可能在它断后保存在本地的新更改。

 

AFS的体系结构

 

【转】AFS文件系统学习笔记

 

AFS分布式文件系统计算环境

 

【转】AFS文件系统学习笔记