|
The goal of the
Network Attached Storage (NAS) project is to create a production-level system using mostly
Open Source components (Linux, Samba, NFS). We are working both to improve the open
source base (for example, Linux in large environments) and to integrate proprietary functions
from IBM and others. We are actively pursuing algorithmic functions such as cache algorithms,
protocol challenges such as the integration of CIFS and NFS, and evolution opportunities such
as running NAS servers on clustered file systems.
As network-attached file servers evolve into the highly interconnected SAN environment, it
will be challenging to find the right balance between the code simplicity of the current
single-system NAS box and the more versatile function provided by a cluster of NAS servers
that have common access to SAN-connected storage. Achieving a workable answer will
require that we provide for all of the complexities of sharing data across multiple nodes.
Achieving a truly ideal answer requires that we make the system perform as if it had
the simplicity of a single-node system. This will require careful caching of locks
and other potentially multi-node data. It will also require a load balancer/director
that places similar requests on particular nodes so that local caches and lock retention
can provide the throughput of the simpler single-node systems. None of these targets
are trivial, and will present interesting challenges.
|