[OpenAFS] Re: afs vs nfs

lamont@scriptkiddie.org lamont@scriptkiddie.org
Tue, 22 Nov 2005 11:38:44 -0800 (PST)

On Tue, 22 Nov 2005, Joe Buehler wrote:
> - AFS has a single namespace: the content of /afs is the same on all
> machines (or under whatever drive letter(s) you pick for Windows).

The biggest win to me over NFS is a single global namespace which is 
*location independent*.  The location independence is pretty crucial. 
With NFS you eventually hit a limit where a single fileserver becomes 
unweildy and it may take weeks to do a backup and restore.  It is better 
to split your data into multiple smaller fileservers, but all the options 
of how to manage this are bad with NFS and are not location independent. 
So inevitably what occurs is a system of managing symlink farms which 
point to paths containing the mountpoints of the NFS servers, to try to 
produce location independence on top of NFS.  This is just a cheap hacky 
way of producing something like AFS's VLDB on top of NFS (mapping paths to 
locations via a symlink 'database').  It inevitably fails.  AFAIK, NFSv4 
is simply better at clustering and better at doing autofs/automounter and 
does not have any support for a location database and therefore it isn't 
comparable to AFS and will therefore inherantly fail to scale.

Replication also gets highly amusing with NFS.  With two replicas you may 
be okay, but when it comes to multiple replicas in multiple datacenters 
and the requirement that all of them be up-to-date, then you usually wind 
up with N single-points-of-failure on replication.  Queueing writes and 
having filservers be able to do "journal replays" when they come up in 
order to catch up can be done, but it is complicated and usually you'll 
get corruption that creeps in over time so that your replicas aren't 
truely replicas.

One other comment is that AFS can be a truely global and location 
independent filesystem, but you do need to abandon the /afs/<cellname> 
convention and dynroot.  Otherwise you are merely reinventing location 
dependence and/or autofs at the level of cells rather than fileservers.  I 
don't know why the AFS community continues to support this convention 
which breaks location independence.  *shrug*.