Title: Parallel NFS implementation for an Object based Storage Backend
Author: Rahul Iyer

The traditional model of Distributed Filesystems involves having a
central File server that exports a filesystem to a number of
clients. This is the model followed by NFS as well. While this model
has been extremely successful, it has begun to have problems keeping
up to today?s workloads.

The reason for this is, in part the increasing bandwidth of the
network. The network is no longer the bottleneck in the current
setup. The NFS server has finite resources in terms of CPU, memory
etc. As a result, when placed in an environment where the network is
fast enough, this server becomes the bottleneck.

Parallel NFS, or pNFS, aims to remedy this problem. The goal of pNFS
is to eliminate the server bottleneck and let the bandwidth of the
storage system scale with the *total aggregate bandwidth of the
disks*. In order to do this, pNFS hands the clients a LAYOUT, which
is, a description of how a particular file is stored on the storage
devices. Using this information, the clients can directly talk to the
storage devices, thus avoiding the central server on the Data Path.

Currently, there is no implementation of pNFS for object based storage
back ends. Ursa Minor, a project at Carnegie Mellon's Parallel Data
Lab, is a storage system that uses object based storage devices. One
of its interfaces to clients is an NFSv3 server. I propose to make the
server pNFS compliant.

As evaluation, I propose to show that the central NFS server can
become a bottleneck and that making it pNFS compliant enables it to
scale with the total aggregate bandwidth offered by Ursa Minor.