Andrew文件系统
分布式网络文件系统
Andrew文件系统(AFS)一个分布式网络文件系统,其能够使来自任何通过这个国家的 AFS 机器能够在文件一经在本地存储就能访问。 AFS 一个稳定的单元,其每个单元代表文件空间中一个独立的管理部分。单元连接在一起组成了一个在根 /afs 目录下的一个庞大的 UNIX 文件系统。
简介
Andrew是由美国卡耐基-梅隆(Carnegie Mellon)大学和IBM公司联合开发的一种分布式计算环境。它的主要功能是用于管理分布在网络不同节点上的文件,其能够使来自任何通过这个国家的AFS机器能够在文件一经在本地存储就能访问。AFS是专为在大的分布式环境中提供可靠文件服务而设计的。该系统创建了便于管理的带有基于网孔结构的分布式环境。网孔是由特定机构管理的自治区域内文件服务器和客户系统的集合。它通常代表某一组织的计算资源。用户可以容易地与网孔内的其他用户共享信息。根据其他网孔管理机构授予的访问权,用户还可以与这些单元格中的用户共享信息。
系统特点
Andrew文件系统的目标是要支持至少7000个工作站(Carnegie Mellon的学生、教员和职工每人一个),同时为用户、应用程序和系统管理提供一种合适的共享文件系统。AFS 是一个稳定的单元,其每个单元代表文件空间中一个独立的管理部分。单元连接在一起组成了一个在根/afs 目录下的一个庞大的 UNIX 文件系统。与普通文件系统相比,AFS的主要特点在于三个方面:分布式、跨平台、高安全性。
所谓分布式文件系统,主要有两方面的含义:其一、就是说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负荷。
区别
NFS和AFS的区别在于对并发写操作的处理方法上。当一个客户机向服务器请求一个文件(或数据库记录),文件被放在客户工作站的高速缓存中,若另一个用户也请求同一文件,则它也会被放入那个客户工作站的高速缓存中。当两个客户都对文件进行修改时,从技术上而言就存在着该文件的三个版本(每个客户机一个,再加上服务器上的一个)。有两种方法可以在这些版本之间保持同步:
无状态系统 在这个系统中,服务器并不保存其客户机正在缓存的文件的信息。因此,客户机必须协同服务器定期检查是否有其他客户改变了自己正在缓存的文件。这种方法在大的环境中会产生额外的LAN通信开销,但对小型LAN来说,这是一种令人满意的方法。NFS就是个无状态系统。
回呼(Callback)系统 在这种方法中,服务器记录它的那些客户机的所作所为,并保留它们正在缓存的文件信息。服务器在一个客户机改变了一个文件时使用一种叫回叫应答(callbackpromise)的技术通知其它客户机。这种方法减少了大量网络通信。AFS(及OSFDCE的DFS)就是回叫系统。客户机改变文件时,持有这些文件拷贝的其它客户机就被回叫并通知这些改变。
无状态操作在运行性能上有其长处,但AFS通过保证不会被回叫应答充斥也达到了这一点。方法是在一定时间后取消回叫。客户机检查回叫应答中的时间期限以保证回叫应答是当前有效的。回叫应答的另一个有趣的特征是向用户保证了文件的当前有效性。换句话说,若一个被缓存的文件有一个回叫应答,则客户机就认为文件是当前有效的,除非服务器呼叫指出服务器上的该文件已改变了。
参考资料
最新修订时间:2024-05-27 02:26
目录
概述
简介
系统特点
参考资料