AFS at MIT - An Introduction
On this page:
What is AFS?
AFS, the Andrew File System, is the file system used by MIT's distributed computing system. A file system organizes the files and directories on a computer system into a tree of directories and subdirectories. Every directory and every file has a pathname that specifies its location within the file system tree. Everybody's files are somewhere in this tree, occupying some sub-branch; the system's files, your files, other users' files, and the online documentation files all are stored in this tree.
You can access files in AFS from Athena or any other networked machine with an AFS client and MIT Kerberos. Athena and Red Hat users with the MIT install of Open AFS have the advantage of utilizing the attach command to simplify navigating the file system while most other clients require that you specify the full path names in order to navigate the file system.
AFS Directory Hierarchy
At a glance, the AFS directory hierarchy looks a bit like this:
Note: Clients not using Athena or the MIT install of Open AFS for Red Hat can not take advantage of the shortcuts provided by the attach command. They must specify the full path name to access files and directories.
AFS Cells and Volumes
AFS's file structure and hierarchy depend on cells and volumes.
- An AFS cell is a collection of filespace managed by some administrative domain (e.g., a company, a university department, or any defined group of users.) There are AFS cells in many different cities, states, and countries, and each cell can have files and volumes on many different file servers. Athena's AFS cell consists of all the directories under /afs/athena.mit.edu (also known as /afs/athena, thanks to a symbolic link). Another AFS cell at MIT of interest to Athena users is /afs/sipb.mit.edu, which contains files maintained by SIPB.
- An AFS volume is how storage is organized within a cell. It is usually (but not always) the same thing as a locker in the Athena system. For example, your home directory (including all its subdirectories) is both an Athena locker and an AFS volume.
Beneath the /afs/athena.mit.edu directory, the local lockers are organized according to type. Thus, all Athena lockers have pathnames such as:
/afs/athena/type/.../lockername
Since all AFS lockers appear under the /afs tree, you can use the cd and ls commands to browse through the Athena cell and see what volumes of each type interest you. However, it is simpler to use the attach shortcut when you want to use the contents of a volume.
Here are all the Athena locker types:
athena% ls /afs/athena.mit.edu activity contrib dept project service system astaff course org reference software user
Directories and Pathnames
The path to a file or directory is usually listed from top-most directory down, with intermediate directories separated by slashes. For instance, when you log into an Athena workstation, the system puts you into your home directory. (Your home directory, and all the subdirectories beneath it, constitute your locker.) Your home directory is located in the overall directory tree as:
/afs/athena.mit.edu/user/first-letter/second-letter/username
Here, username is the name you enter when you login, first-letter is the first letter of your username, and second-letter is the second letter of your username. For instance, if your username were jruser, your home directory would have the following pathname:
/afs/athena.mit.edu/user/j/r/jruser
This means that someone starting at the root of the directory tree would have to go down into the directory tree through the following directories to get to your home directory:
- the root directory (indicated as the first slash / );
- the directory afs, which holds the subdirectories for many different sites around the world;
- the directory athena.mit.edu (the athena.mit.edu cell itself), holds subdirectories at MIT related to Athena (for example, courseware and development lockers are held in subdirectories of athena.mit.edu);
- the directory user, which holds all the directories for individual user accounts on Athena;
- the directory j, which holds all the directories belonging to users whose usernames start with the letter "j";
- the directory r, which holds all the directories belonging to users whose usernames start with the letter "j" and whose second letter is "r" (i.e., only usernames that start "jr");
- the directory jruser, which is the user's home directory itself (note that the name of your home directory is your username).
You can find out the full pathname of your own home directory by typing printenv HOME at your athena% prompt.
Because the full pathname is rather long, Athena lets you specify your home directory in an alternative shorthand as follows:
/mit/username
The home directory is still in its original location, but there is a link in the /mit directory that lets you get to the home directory through the shorter path.
Navigation Shortcuts
You can use the /afs/athena.mit.edu hierarchy to browse through directories, but when you are using files in a locker on Athena it is often simpler to use attach. It creates a shortcut to the locker so you don't have to use the full AFS pathname each time you access a file in that locker. The attach shortcut only works on Athena or Red Hat machines with the MIT install of Open AFS. On most other platforms, you must use the full AFS pathname each time.
The command is used as follows:
athena% attach lockername
The attach command on Athena does the following (these steps are done, for example, when your own locker is attached during login):
- Creates a link from the AFS pathname (e.g., /afs/athena.mit.edu/type/.../lockername) to /mit/lockername. To establish and use this link, you don't have to know the locker type or the long AFS pathname; you can use the shorthand /mit/lockername.
- Obtains AFS tokens to allow you access to the files and directories within the locker. (The Kerberos tickets you receive when you log into Athena allow you to obtain AFS tokens. )
- Subscribes to Zephyr notices for the locker's file server (so you'll get notices if there are problems on that server).
The attach command on non-Athena Red Hat with an MIT IS&T install of OpenAFS does the following:
- Creates a link from the AFS pathname (e.g., /afs/athena.mit.edu/type/.../lockername) to /mit/lockername. To establish and use this link, you don't have to know the locker type or the long AFS pathname; you can use the shorthand /mit/lockername.
- Obtains AFS tokens for you, if necessary, by running the aklog command. You must already have Kerberos tickets to successfully obtain AFS tokens.