Distributed File Systems

File Characteristics

From Andrew File System work:

Distributed File Systems

Primarily look at three distributed file systems as we look at issues.

  1. File Transfer Protocol (FTP). Motivation is to provide file sharing (not a distributed file system). 1970s.

    Connect to a remote machine and interactively send or fetch an arbitrary file. FTP deals with authentication, listing a directory contents, ascii or binary files, etc.

    Typically, a user connecting to an FTP server must specify an account and password. Often, it is convenient to set up a special account in which no password is needed. Such systems provide a service called anonymous FTP where userid is ``anonymous'' and password is typically user email address.

  2. Sun's Network File System (NFS). Motivated by wanting to extend a Unix file system to a distributed environment. Easy file sharing and compatability with existing systems. Mid-1980's.

    Stateless in that servers do not maintain state about clients. RPC calls supported:

    Latest version of NFS (version 4) introduces some amount of state.

  3. Andrew File System (AFS). Research project at CMU in 1980s. Company called Transarc, acquired by IBM. Primary motivation was to build a scalable distributed file system. Look at pictures.

Other file systems:

  1. CODA: AFS spin-off at CMU. Disconnection and fault recovery.
  2. Sprite: research project at UCB in 1980's. To build a distributed Unix system.
  3. Echo. Digital SRC.
  4. Amoeba Bullet File Server: Tanenbaum research project.
  5. xFs: serverless file system--file system distributed across multiple machines. Research project at UCB.

Distributed File System Issues

Naming

How are files named? Access independent? Is the name location independent?

Migration

Can files be migrated between file server machines? What must clients be aware of?

Directories

Are directories and files handled with the same or a different mechanism?

Amoeba has separate mechanism for directories and files.

Sharing Semantics

What type of file sharing semantics are supported if two processes accessing the same file?

Possibilities:

Immutable files in Amoeba.

Caching

What, if any, file caching is supported?

Possibilities:

Locking

Does the system support locking of files?

Replication/Reliability

Is file replication/reliability supported and how?

Scalability

Is the system scalable?

Homogeneity

Is hardware/software homogeneity required?

File System Interface

Is the application interface compatible to Unix or is another interface used?

Security

What security and protection features are available to control access?

State/Stateless

Do file system servers maintain state about clients?

AFS Design Principles

What was learned.

Think about for file systems and other large distributed systems.