|
What is NFS?
In the early 1980's, large capacity disk drives were very expensive.
NFS was originally developed for UNIX, at Sun Microsystems, so that users
on a Local Area Network (LAN), could transfer files across the network.
NFS is a client/server environment that allows computers to share disk
space, and users to see their files from multiple computers without having
to copy the files to those computers. One of the best things about NFS
is that it is "transparent." With NFS, the users of a network cannot tell
the difference between local disk space and shared disk space coming from
an NFS server (unless they know what to Look for). |
How does NFS work
Network File systems are usually set up so that a client can mount a
central server and manipulate files without knowledge that the files are
actually located on a server. The files that are on the server can be accessed
by a user on any machine as long as the user has permission to utilize
the files. One benefit of NFS is that the network administrator can back
up one server and by doing this all of the clients data is saved.
Early NFS Implementations
Early versions of NFS used User Datagram Protocol (UDP). UDP was originally
selected because it worked well on LAN's and had a higher bandwidth than
TCP. The problem with UDP is that it provides no error checking, and it
will not resend the data if an error occurs. Over the last several years
TCP implementations and the quality of hardware have improved. Solaris
2.5 NFS was the first version to use TCP instead of UDP. Another problem
with the earlier implementations of NFS was that the file offsets were
limited to 32 bits. Thirty two bit file offsets limit the size of files
accessible by clients to aproximatly 4.2 Giga Bytes (GB). Newer implementations
of NFS greatly increased this limitation by increasing the file offset
to 64 bits.
The original platform that NFS was used on was UNIX. In order for a
NFS to work, the hosts must know the files that a client has access to.
The file system must also be mounted. On a UNIX machine the file /etc/exports
contains a list of the remote hosts that are authorized to use each file
system on the host. A large number disks and file systems can cause problems
if every file system is mounted everywhere. The export list can become
very difficult to keep up to date. If a power outage occurs and all hosts
attempt to boot at the same time, deadlock can occur, as hosts wait for
each other's file systems to become available. One feature of NFS that
can reduce the chance of deadlock is Automounting.
Automounting NFS systems provide "on demand" mounting. A minimal number
of default "mounts" can be maintained in the export file. When a host attempts
to access a file from the server, a connection is established for only
as long the file is being used. Automounting can greatly reduce maintenance
of Network File Systems because one list keeps track of the hosts that
can mount the file system, instead of modifying the /etc/fstab file on
every host.
NFS protocols were designed with portability in mind. NFS can be implemented
on different types of machines using different operating systems. This
portability is achieved by using Sun's Remote Procedure Call specifications
(RPC).
|