NFS (Network File System) allows hosts to mount remote file systems and access them locally. There are three versions of NFS in use (v2, v3, v4). NFS implements a client-server model and uses RPC (Remote Procedure Call) to make file operations on remote servers appear local. NFS aims to support UNIX file semantics over the network in a stateless manner for scalability.
9. NFS (Network File System) NO Create file CREATE NO Remove file REMOVE YES Fix server cache data to the disk COMMIT YES Check access ACCESS YES Read from symbolic link READLINK YES Read file READ YES Write to the file WRITE NO Rename file RENAME YES File name search LOOKUP YES Set file attribute SETATTR YES Get file attribute GETATTR Idempotent Action RCP request
10. NFS (Network File System) YES Get FS static attribute FSINFO YES Get POSIX information PATHCONF YES Get FS dynamic attribute FSSTAT NO Crate directory MKDIR NO Remove directory RMDIR YES Read directory READDIR YES Extended directory read READDIRPLUS NO Create special node MKNOD NO Create symbolic link SYMLINK NO Create hard link LINK Idempotent Action RCP request
25. FreeBSD NFS implementation (read cache lease) Client A Client B Server Read req. + lease Answer Read sys. call Read sys. Call (from cache) Read req. (cache miss) Answer Lease timeout Read sys. call Lease expired Read lease req. Answer with same ctime ctime the same - cache valid Read sys. Call (from cache) Lease timeout Read req. (cache miss) Answer Read cache lease for client A Read req. + lease Read sys. call Read sys. call Lease timeout Answer Client B added to lease Read req. (cache miss) Answer Time
26. FreeBSD NFS implementation (write cache lease) Server Client B Write system call Write cached lease Write cached lease for client B Answer (write cache lease) Write system call (cached leaved records) Write cached lease req. before previous lease expired. Get record lease Lease update Answer (write cache lease) Lease timeout System call Lease expired record answer record answer Lease expiration Stopped for a moment because of records Write_slack seconds After last records Time
27. FreeBSD NFS implementation (non-cache lease) Client A Server Client B Time Read sys. call req. Read req. + lease Read cache lease for A client answer Read req. (from cache) Read req. (miss cache) answer Lease timeout Read sys. call req. Lease request Answer (non-cache lease) Read sys. call req. (non-cache lease mode) Read req. Read data Lease expired Write sys. call req. Get write cache lease Answer (non-cache lease) Write sys. call (async write cached) Cleanup req. Write cached data to server record answer answer record Release msg. Write sys. call req. Get write cache lease record answer Synchronous Writes wihout cache
28.
29.
30.
31.
32. Local and remote file systems accessible on an NFS client mount –t nfs Server1:/ export/people /usr /students mount –t nfs Server2:/ nfs/users /usr/ staff
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43. AFS: Neat Idea #2 (A Common View of the Global Namespace)