Open In App

Andrew File System

Last Updated : 23 Jul, 2024
Comments
Improve
Suggest changes
Like Article
Like
Report

The Andrew File System (AFS) is a distributed file system that allows multiple computers to share files and data seamlessly. It was developed by Morris ET AL. in 1986 at Carnegie Mellon University in collaboration with IBM. AFS was designed to make it easier for people working on different computers to access and share files as if they were all on the same machine, providing a way to manage files efficiently across a network. 

After logging onto workstations that communicate inside the Distributed Computing Infrastructure, users exchange data and programs (DCI). The goal is to facilitate large-scale information exchange by reducing client-server communication. This is accomplished by moving whole files between server and client computers and caching them until the servers get a more recent version. An AFS uses a local cache to improve speed and minimize effort in dispersed networks. A server, for example, replies to a workstation request by storing data in the workstation's local cache. 

What is Andrew File System?

The Andrew File System (AFS) is a distributed file system developed at Carnegie Mellon University. It was designed to handle large-scale distributed computing environments, providing a way to share files across multiple machines in a network as if they were local files.

Andrew File System Architecture

  • Vice:  The Andrew File System provides a homogeneous, location-transparent file namespace to all client workstations by utilizing a group of trustworthy servers known as Vice. The Berkeley Software Distribution of the Unix operating system is used on both clients and servers. Each workstation's operating system intercepts file system calls and redirects them to a user-level process on that workstation.
  • Venus:  This mechanism, known as Venus, caches files from Vice and returns updated versions of those files to the servers from which they originated. Only when a file is opened or closed does Venus communicate with Vice; individual bytes of a file are read and written directly on the cached copy, skipping Venus

This file system architecture was largely inspired by the need for scalability. To increase the number of clients a server can service, Venus performs as much work as possible rather than Vice. Vice only keeps the functionalities that are necessary for the file system's integrity, availability, and security. The servers are set up as a loose confederacy with little connectivity between them.

Andrew File System
Figure: Andrew File System

The following are the server and client components used in AFS networks:

  • Any computer that creates requests for AFS server files hosted on a network qualifies as a client.
  • The file is saved in the client machine's local cache and shown to the user once a server responds and transmits a requested file.
  • When a user visits the AFS, the client sends all modifications to the server via a callback mechanism. The client machine's local cache stores frequently used files for rapid access.

AFS Implementation

  • Client processes communicate with a UNIX kernel via standard system calls.
  • The kernel is tweaked significantly to identify references to Vice files in relevant activities and route requests to the workstation's Venus client process.
  • If a volume is missing from this cache, Venus contacts any server it already has a connection with, asks for the location information, and enters it into the mapping cache. Venus makes a new connection to the server unless it already has one. The file or directory is then retrieved using this connection.
  • Authentication and security need the establishing of a connection. A copy of the target file is made on the local disc when it is located and cached.
  • Venus then returns to the kernel, which opens the cached copy and gives the client process the handle to it. Both AFS servers and clients use the UNIX file system as a low-level storage system. On the workstation's disc, the client cache is a local directory. This directory contains files with placeholder names for cache entries.
  • Both Venus and server processes use the latter's modes to access UNIX files directly, avoiding the costly path-name-to-inode conversion method.
  • When a file is deleted from the cache, Venus informs the relevant server that the callback for that file has been removed.

Advantages

  • Shared files that aren't updated very often and local user files that aren't updated too often will last a long time.
  • It sets up a lot of storage space for caching.
  • It offers a big enough working set for all of a user's files, ensuring that the file is still in the cache when the user accesses it again.

Disadvantages

  • Installation and Configuration: Setting up AFS can be complex and requires a good understanding of its architecture and components.
  • Latency: AFS may exhibit higher latency compared to local file systems because it relies on network communication to access files.
  • Integration with Modern Systems: AFS may have compatibility issues with newer operating systems and modern software applications.
  • Backup Complexity: Backing up an AFS environment can be more complex compared to other file systems, requiring specialized tools and procedures.

Conclusion

The Andrew File System (AFS) is a scalable and secure distributed file system designed for large-scale network environments. It features client-side caching, location transparency, and robust security measures, facilitating efficient file sharing and management. AFS is particularly beneficial for institutions with extensive data access and sharing needs, such as universities and large enterprises.


Next Article
Article Tags :

Similar Reads