Network File Systems

NFS

NFS was the earliest network file system to escape the research labs and find a stable home in mainstream environments. It was deployed by Sun Microsystems in the early 1980's, and released as an open standard. Sun urged other manufactures to adopt NFS with considerable success. Hewlett Packard, for example, soon began encouraging their customers to switch from the proprietary HP network file system to NFS.

NFS works quite well on "trusted" networks, such as a private LAN protected by a firewall. The performance and ease of setup are hard to rival. However, NFS security is lacking, and anyone with a client with root access can attach to a NFS network and become any user (except root) on the NFS server.

[TODO: Mention something about NIS here.]

AFS

AFS is a distributed, secure filesystem that enables co-operating hosts (clients and servers) to efficiently share filesystem resources across both local area and wide area networks. Clients hold a cache for often used objects (files), to get quicker access to them.

AFS was originally developed under a different name at (CMU), and was first described in a paper in 1985. Soon after the public release the name was changed to AFS, an acronym for "Andrew File System", in honor of Andrew Carnegie and Andrew Mellon, the two patrons of Carnegie Mellon University. CMU spawned the Transarc Company to develop and market AFS.

AFS is based on a distributed file system originally developed under a different name in the mid-1980's at the Information Technology Center of Carnegie-Mellon University (CMU). It was first publically described in a paper in 1985, and soon afterwords was renamed to the "Andrew File System" in honor of the patrons of CMU, Andrew Carnegie and Andrew Mellon. As interest in AFS grew, CMU spawned the Transarc Company to develop and market AFS. Once Transarc was formed and AFS became a product, the "Andrew" was dropped to indicate that AFS had gone beyond the Andrew research project and had become a supported, product quality filesystem. However, there were a number of existing cells that rooted their filesystem as /afs. At the time, changing the root of the filesystem was a non-trivial undertaking. So, to save the early AFS sites from having to rename their filesystem, AFS remained as the name and filesystem root.

In the late 1990's Transarc was acquired by IBM, who subsequently re-released AFS under an open source license. This code became the foundation for OpenAFS, which is currently under active development.

AFS groups servers into "cells", which is a collection of servers that present a single, cohesive filesystem. Typically, an AFS cell is a set of hosts that use the same Internet domain name (like for example gentoo.org) Users log into AFS client workstations which request information and files from the cell's servers on behalf of the users. Users won't know on which server a file which they are accessing, is located. They even won't notice if a server will be located to another room, since every volume can be replicated and moved to another server without user an user noticing. The files are always accessible.

The main strengths of AFS are its caching facility (on client side, typically 100M to 1GB), security features (Kerberos 4 based, access control lists), simplicity of addressing (you just have one filesystem), and scalability (add further servers to your cell as needed).

AFS has clients for Mac OS X, Windows NT/2K/XP, Linux, and most other flavors of currently shipping Unix. It is extremely scalable, as it was designed for very large networks. It also gives performance very near local disk speeds due to extensive cacheing. It is encrypted throughout, and does not trust the machine (as NFS does), but only an authenticated user.

AFS is non-trivial to set up, but is generally very easy to administer.

Coda was a to be an OSS implementation of AFS, but once IBM released the source code to AFS, development on Coda began to stagnate.

On the down side, that the server cant use a normal data partition, but needs to have a AFS volumne which can only be accessed via AFS. Some people also report instability under Linux.

OpenAFS setup

CIFS/SMB/Samba