PPP SEMINAR

NFS

{ NETWORK FILE SYSTEM }
NFS


Network File System (NFS) is a protocol
originally developed by Sun Microsystems in
1984 and defined in RFCs 1094, 1813, and
3530 (obsoletes 3010), as a
distributed file system which allows a
computer to access files over a network as
easily as if they were on its local disks. NFS
is one of many protocols built on the
Open Network Computing Remote Procedure Ca
(ONC RPC).
NFS






Version 2 of the protocol originally operated entirely over UDP
and was meant to keep the protocol stateless, with locking (for
example) implemented outside of the core protocol.
Version 3 introduced support for using TCP as transport. While it
is true several vendors had already extended NFS Version 2 to
support TCP as transport, Sun Microsystems introduced TCP as
a transport for NFS at the same time it introduced Version 3.
Using TCP as transport made using NFS over a WAN more
feasible.
Version 4, influenced by AFS, and CIFS includes performance
improvements, mandates strong security, and introduces a
stateful protocol. Version 4 was the first version developed with
the Internet Engineering Task Force (IETF) after Sun
Microsystems handed over the development of the NFS
NFS


Problems with NFS.








-- Not Secure.

-- Performance is average at best and doesn’t
scale well.
-- Maintaining a truly distributed file system can be
complicated if many machines supply data.
-- Locking is not good and can cause problems
when used simultaneously by multiple
applications.
NFS





Why is NFS used then?
-- It is ubiquotous.
-- It is easy to setup and administer.
-- It provides a better solution than the
alternative of not sharing files.
Terminology


Server





Client





contains all of the files and directories
responsible for maintaining the file system
requester of directory and file information
does the actual reading and writing of files

file handle




a way to access a file without giving the file
name
similar to a file descriptor on a local file
system
RPC


Initial implementations of RPC used the
UDP communication protocol




if no response in a certain amount of time,
just re-send the request

Today both UDP and TCP are used


implemented on top of the IP protocol
NFS Protocol


NFS is implemented using RPC




a client issues a request to the server by
placing all necessary information to
complete the request in the parameters
RPC calls are synchronous




client blocks until the server sends a response
back

This looks exactly like a procedure call
on a local system


exactly what a user is used to seeing
when they make a system call
NFS Protocol


NFS protocol is stateless








each procedure call by a client contains all
the necessary information to complete an
operation
server doesn’t need to maintain any
information about what is at the clients site
server also doesn’t keep track of any past
requests

This makes crash recovery very simple
NFS Protocol




There are a set of standard NFS
procedures
Here are a few of the major ones







lookup(dirfh, name) returns (fh, attr)
create(dirfh, name, attr) returns (newfh,
attr)
remove(dirfh, name) returns (status)
read(fh, offset, count) returns (attr, data)
write(fh, offset, count, data) returns (attr)
Virtual File System




Major goal of NFS is system
independence
Concept of the Virtual File System
(VFS)






this is an interface that the client side must
implement
if implemented properly, the client can then
communicate with the NFS server
regardless of what type of system each is

Can allow different file systems to live
Increasing Performance


Cache directory entries




allows for fast pathname traversal

For small executable files






send the entire file on execution
versus demand page-in of executable file
most small executable files touch all pages
of the file
a form of read-ahead
Hard Issues


Authentication





user passes uid and gid on each call
very large number of uid’s and gid’s on a
distributed system
NFS uses a yellow pages




just a big database of users and their rights

Concurrent Access




what if two users open a file at the same
time?
could get interleaved writes


especially if they are large writes.

NETWORK FILE SYSTEM

  • 1.
  • 2.
    NFS  Network File System(NFS) is a protocol originally developed by Sun Microsystems in 1984 and defined in RFCs 1094, 1813, and 3530 (obsoletes 3010), as a distributed file system which allows a computer to access files over a network as easily as if they were on its local disks. NFS is one of many protocols built on the Open Network Computing Remote Procedure Ca (ONC RPC).
  • 3.
    NFS    Version 2 ofthe protocol originally operated entirely over UDP and was meant to keep the protocol stateless, with locking (for example) implemented outside of the core protocol. Version 3 introduced support for using TCP as transport. While it is true several vendors had already extended NFS Version 2 to support TCP as transport, Sun Microsystems introduced TCP as a transport for NFS at the same time it introduced Version 3. Using TCP as transport made using NFS over a WAN more feasible. Version 4, influenced by AFS, and CIFS includes performance improvements, mandates strong security, and introduces a stateful protocol. Version 4 was the first version developed with the Internet Engineering Task Force (IETF) after Sun Microsystems handed over the development of the NFS
  • 4.
    NFS  Problems with NFS.     --Not Secure. -- Performance is average at best and doesn’t scale well. -- Maintaining a truly distributed file system can be complicated if many machines supply data. -- Locking is not good and can cause problems when used simultaneously by multiple applications.
  • 5.
    NFS     Why is NFSused then? -- It is ubiquotous. -- It is easy to setup and administer. -- It provides a better solution than the alternative of not sharing files.
  • 6.
    Terminology  Server    Client    contains all ofthe files and directories responsible for maintaining the file system requester of directory and file information does the actual reading and writing of files file handle   a way to access a file without giving the file name similar to a file descriptor on a local file system
  • 7.
    RPC  Initial implementations ofRPC used the UDP communication protocol   if no response in a certain amount of time, just re-send the request Today both UDP and TCP are used  implemented on top of the IP protocol
  • 8.
    NFS Protocol  NFS isimplemented using RPC   a client issues a request to the server by placing all necessary information to complete the request in the parameters RPC calls are synchronous   client blocks until the server sends a response back This looks exactly like a procedure call on a local system  exactly what a user is used to seeing when they make a system call
  • 9.
    NFS Protocol  NFS protocolis stateless     each procedure call by a client contains all the necessary information to complete an operation server doesn’t need to maintain any information about what is at the clients site server also doesn’t keep track of any past requests This makes crash recovery very simple
  • 10.
    NFS Protocol   There area set of standard NFS procedures Here are a few of the major ones      lookup(dirfh, name) returns (fh, attr) create(dirfh, name, attr) returns (newfh, attr) remove(dirfh, name) returns (status) read(fh, offset, count) returns (attr, data) write(fh, offset, count, data) returns (attr)
  • 11.
    Virtual File System   Majorgoal of NFS is system independence Concept of the Virtual File System (VFS)    this is an interface that the client side must implement if implemented properly, the client can then communicate with the NFS server regardless of what type of system each is Can allow different file systems to live
  • 12.
    Increasing Performance  Cache directoryentries   allows for fast pathname traversal For small executable files     send the entire file on execution versus demand page-in of executable file most small executable files touch all pages of the file a form of read-ahead
  • 13.
    Hard Issues  Authentication    user passesuid and gid on each call very large number of uid’s and gid’s on a distributed system NFS uses a yellow pages   just a big database of users and their rights Concurrent Access   what if two users open a file at the same time? could get interleaved writes  especially if they are large writes.