Network file system


A network file system is any computer file system that supports sharing of files, printers and other resources as persistent storage over a computer network. The first file servers were developed in the 1970s, and in 1985 Sun Microsystems created the Network File System (NFS) which became the first widely used distributed file system. Other notable distributed file systems are Andrew File System (AFS) and Server Message Block SMB, also known as CIFS.


A distributed file system (DFS) is a network file system whose clients, servers, and storage devices are dispersed among the machines of a distributed system or intranet. Service activity occurs across the network, and instead of a single centralized data repository, the system has multiple and independent storage devices. In some DFSs, servers run on dedicated machines while in others a machine can be both a server and a client. A DFS can be implemented as part of a distributed operating system, or else by a software layer whose task is to manage the communication between conventional operating systems and file systems. The distinctive feature of a DFS is that the system has many and autonomous clients and servers.
Ideally, a DFS should appear to its users to be a conventional, centralized file system. The multiplicity and dispersion of its servers and storage devices should be made invisible. That is, the client interface used by programs should not distinguish between local and remote files. It is up to the DFS to locate the files and to arrange for the transport of the data.
The most important performance measurement of a DFS is the amount of time needed to satisfy service requests. In conventional systems, this time consists of a disk-access time and a small amount of CPU-processing time. But in a DFS, a remote access has additional overhead due to the distributed structure. This includes the time to deliver the request to a server, the time to deliver the response the client, and for each direction, a CPU overhead of running the communication protocol software. The performance of a DFS can be viewed as one dimension of its transparency: ideally, it would be comparable to that of a conventional file system.
A DFS should allow multiple client processes on multiple machines to access and update the same files. Hence updates to the file from one client should not interfere with access and updates from other clients. Concurrency control or locking may be either built into the file system or be provided by an add-on protocol.
Client-server file systems
* 9P
* Amazon S3
* Coda
* Secure File System (SFS)
* Self-certifying File System (SFS)

Distributed file systems
* Ceph
* Andrew File System (AFS), OpenAFS
* DCE Distributed File System - remote file access protocol used with the Distributed Computing Environment.
* Google File System - File system that is optimized for Google's core storage needs.
* Hadoop - a Java software framework that supports distributed applications running on large clusters of commodity computers.
* Lustre - a distributed file system for large scale cluster computing.
* Microsoft Distributed File System - a set of client and server services for organizing many distributed SMB file shares into a distributed file system.
* GlusterFS - a platform for developing clustering applications.
* Parallel Virtual File System - a parallel file system that focuses on high performance access to large data sets.
* easy-to-use File System:etuFS - a Distributed File System providing simplicity and ease-of use to its users.


See also:

Disk sharing
Gopher

From Wikipedia, the free encyclopedia