安德鲁文件系统
莫里斯等人。 1986 年创建了一个分布式计算环境,用作卡内基梅隆大学 (CMU) 的校园计算机和信息系统。企业使用 AFS 使位于不同位置的 AFS 客户端工作站更容易访问存储的服务器文件。它通过一组可信赖的服务器向所有客户端工作站提供同质的、与位置无关的文件命名空间。登录到分布式计算基础设施内部通信的工作站后,用户交换数据和程序 (DCI)。目标是通过减少客户端-服务器通信来促进大规模信息交换。这是通过在服务器和客户端计算机之间移动整个文件并缓存它们直到服务器获得更新版本来实现的。 AFS 使用本地缓存来提高速度并最大限度地减少分散网络中的工作量。例如,服务器通过在工作站的本地缓存中存储数据来响应工作站请求。
安德鲁文件系统架构:
- Vice: Andrew 文件系统通过使用一组称为 Vice 的值得信赖的服务器,为所有客户端工作站提供了一个同质的、位置透明的文件命名空间。 Unix 操作系统的 Berkeley Software Distribution 用于客户端和服务器。每个工作站的操作系统拦截文件系统调用并将它们重定向到该工作站上的用户级进程。
- Venus:这种称为 Venus 的机制缓存来自 Vice 的文件,并将这些文件的更新版本返回到它们的来源服务器。只有在打开或关闭文件时,Venus 才会与 Vice 通信;文件的单个字节直接在缓存副本上读取和写入,跳过 Venus
这种文件系统架构很大程度上受到可扩展性需求的启发。为了增加服务器可以服务的客户端数量,Venus 执行尽可能多的工作,而不是 Vice。 Vice 只保留文件系统的完整性、可用性和安全性所需的功能。服务器被设置为松散的联盟,它们之间几乎没有连接。
以下是 AFS 网络中使用的服务器和客户端组件:
- 任何创建对托管在网络上的 AFS 服务器文件的请求的计算机都有资格作为客户端。
- 该文件保存在客户端计算机的本地缓存中,并在服务器响应并传输请求的文件时显示给用户。
- 当用户访问 AFS 时,客户端通过回调机制将所有修改发送到服务器。客户端机器的本地缓存存储常用文件以便快速访问。
AFS 实施:
- 客户端进程通过标准系统调用与 UNIX 内核通信。
- 内核进行了重大调整,以识别相关活动中对 Vice 文件的引用,并将请求路由到工作站的 Venus 客户端进程。
- 如果此缓存中缺少某个卷,Venus 会联系它已与之连接的任何服务器,询问位置信息,并将其输入到映射缓存中。 Venus 会与服务器建立一个新连接,除非它已经有了。然后使用此连接检索文件或目录。
- 身份验证和安全需要建立连接。当目标文件被定位和缓存时,它会在本地磁盘上制作一份目标文件的副本。
- Venus 然后返回内核,内核打开缓存副本并将其句柄提供给客户端进程。 AFS 服务器和客户端都使用 UNIX 文件系统作为低级存储系统。在工作站的磁盘上,客户端缓存是一个本地目录。此目录包含带有缓存条目占位符名称的文件。
- Venus 和服务器进程都使用后者的模式直接访问 UNIX 文件,避免了昂贵的路径名到 inode 转换方法。
- 当文件从缓存中删除时,Venus 通知相关服务器该文件的回调已被删除。
好处:
- 不经常更新的共享文件和不经常更新的本地用户文件会持续很长时间。
- 它为缓存设置了大量存储空间。
- 它为用户的所有文件提供了足够大的工作集,确保用户再次访问文件时该文件仍在缓存中。