NFS : Network File System

Preview:

DESCRIPTION

NFS : Network File System. SMU CSE8343 Prof. Khalil September 27, 2003 Group 1 Group members: Payal Patel, Malka Samata, Wael Faheem, Hazem Morsy, Poramate Ongsakorn. Outline. Definition NFS OSI v.s. NFS How does NFS work ? File Handles Statelessness Idempotent procedures - PowerPoint PPT Presentation

Citation preview

NFS : NFS : Network File Network File

SystemSystemSMU CSE8343SMU CSE8343

Prof. KhalilProf. Khalil

September 27, 2003September 27, 2003

Group 1Group 1

Group members:Group members:Payal Patel, Malka Samata, Payal Patel, Malka Samata,

Wael Faheem, Hazem Morsy, Poramate OngsakornWael Faheem, Hazem Morsy, Poramate Ongsakorn

Outline

• Definition• NFS• OSI v.s. NFS• How does NFS work ?• File Handles• Statelessness• Idempotent procedures• TCP or UDP• How does RPC work ?• How does RPC differ from Local procedure call

?• Port Mapper/RPCBIND• Summary• Reference & Appendix

Definition

• The Network File System (NFS) is a distributed file system that allows users to access files and directories located on remote computers and treat those files and directories as if they were local.

• The NFS protocol is designed to be machine, operating system, network architecture, and transport protocol independent.

Several workstations with NFS

Ethernet

rapid.engr.smu.edu(Ultrix)

buz.engr.smu.edu(Tru64)

nova.engr.smu.edu(Solaris)

burn.engr.smu.edu(Solaris)

NFS Server

DISK

Several workstations with NFS(Logical view)

rapid:/

etc home usr ...

buz:/

etc home usr ...

nova:/

etc home usr ...

NFS Server's disk:/

etc home usr ...

pongsak hmorsy wfaheem ...

burn:/

etc home usr ...

OSI v.s. NFS

Application

Presentation

Session

Transport

Network

Link

Physical

NFSMOUNT

PORT MAPPERNIS(Network Information System)

XDR (eXternal Data Representation)

RPC (Remote Procedure Call)

TCP, UDP

IP

Ethernet

OSI Model NFS Protocol Layers

Outline

• Definition• NFS• OSI v.s. NFS• How does NFS work ?• File Handles• Statelessness• Idempotent procedures• TCP or UDP• How does RPC work ?• How does RPC differ from Local procedure call

?• Port Mapper/RPCBIND• Summary• Reference & Appendix

How does NFS work ?

localfile

access

NFSclient

TCP/UDPIP

userprocess

NFSserver

TCP/UDPIP

localfile

access

port 2049

client kernel server kernel

localdisk

localdisk

RPC RPC

Client wants to access a file from server

File Handles

• How does a server know which file/dir ectory the client needs to access?

– At first, client obtains a file handle for root of the file system

– File handle is opaque to the client– Client sends file handle to server when ref

erencing a file/directory– No need to use the full path names

• “ The file handle can contain whatever inform ation the server needs to distinguish an indivi

dual file”

Example of File Handles

Suppose : client nee ds to cat the file sub

2 /myname.txt under rrr rrrrrrr rrrrrrrrr rr rpongsak )

What is the attribute of current dir(1000) ?

These are attributes of 1000

What is FH of "sub2" in 1000 ?

FH of sub2 is 1100

What is FH of "myname.txt"in 1100 ?

FH of myname.txt is 1200

What is the attribute of 1200 ?

.

.

.

NFS Client NFS Server

Statelessness

• What is statelessness ?– Server does not need to maintain protocol

state about it’s client– Server does not keep previous request info

rmation– Client keeps track of all information require

d to send requests to the server

• Advantage :– If server crashes, no state information lost– Client needs only retransmit a request until

the server responds

Why is idempotent import ant ?

Suppose: clientneedstor emove t he fi l e sub2/myname.txt

Remove OK

Here is the attr and content of 1100

Remove "myname.txt" from 1100

NFS Client NFS Server

Remove "myname.txt" from 1100 (retransmitted)

Error : No such file or dir

What is the attribute of 1100 (dir sub2) ?

Idempotent procedures

• Can be executed more than once by the se rver and still return the same result

• Stateless protocol requires idempotent operation

• How to makes all NFS requests idempotent:– Server records recently performed operations in

cache– Server checks in cache for duplicate requests– Server returns the previous result if it is a duplic

ate

Should NFS use TCP o r UDP ?

• From the beginning, NFS used UDP– Most NFS systems were on LAN– High overhead if using TCP

• Currently, NFS across WAN needs TCP– Reliability and congestion control– Both sides set TCP’s keep alive option– If server crashes, client opens new TCP co

nnection– If client crashes, server will terminate the

connection after the next keep alive probe

Outline

• Definition• NFS• OSI v.s. NFS• How does NFS work ?• File Handles• Statelessness• Idempotent procedures• TCP or UDP• How does RPC work ?• How does RPC differ from Local procedure call

?• Port Mapper/RPCBIND• Summary• Reference & Appendix

How does RPC works?

Client Process

Clientexecutes

ServerwaitsRPC

messageServer starts

Procedure call

Procedure return

Server executesprocedure

Call terminatesRPC returnmessage

Clientwaits

Clientcontinues

Server Process

How does RPC different fro m

local procedure call ?• Error handling:

– failures of the server or network must be handled

• Global variables:– arguments cannot be passed as global varia

bles

• Performance:– slower than local procedure calls

• Authentication:– RPC can be transported over insecure netw

orks

Port Mapper : Analogy

Airport Entrance

Terminal A

Terminal BTer

min

al C

Ter

min

al D

Terminal E

Terminal F

US109 to DFW

Port Mapper : Analogy

Airport Entrance

Terminal A

Terminal B

Ter

min

al C

Ter

min

al D

Terminal E

Terminal FFlight schedule

US109 to DFWFlight Departure timeDestinationGate

DE427 6:15 AMCincinnati E8

US109 7:40 AMAkron OH B5US278 4:35 PMDetroit MI C9UA0097 6:00 PMLAX CA D12

DFW TX

Philadelphia

Port Mapper/RPCBIND

Client Process

Client Kernel Server Kernel

Port Mapper

user process

user process

Server Process

user process

(1) register

at start

(2) get port# RPC request

(3) RPC reply with port#

(4) RPC call (request)

(5) RPC reply message

Outline

• Definition• NFS• OSI v.s. NFS• How does NFS work ?• File Handles• Statelessness• Idempotent procedures• TCP or UDP• How does RPC work ?• How does RPC differ from Local procedure call

?• Port Mapper/RPCBIND• Summary• Reference & Appendix

Summary

• NFS provides transparent file accesses• NFS sends messages in XDR format usin

g RPC• NFS server is stateless• NFS procedures are idempotent• RPC executes remote procedure for clien

ts• Most RPC programs use ephemeral ports• Port Mapper maps RPC programs and ver

sion numbers to port numbers

Reference & Appendix

• http://www.faqs.org/rfcs/• http://www.ussg.iu.edu/usail/network/nfs/overview.html• http://www.scit.wlv.ac.uk/~jphb/comms/nfs.html• http://www.opengroup.org/onlinepubs/9629399/

chap1.htm• http://msdn.microsoft.com/library/default.asp?url=/

library/en-us/rpc/rpc/rpc_start_page.asp• http://www.cis.udel.edu/~srisath/NFS/index.html

• Silberschatz/Galvin/Gagne, Operating System Concepts, Wiley

• William Stallings, Operating Systems, Prentice Hall

RFC DocumentsRequest For Comments• RFC 1014 – XDR (1987)• RFC 1057 – RPCv2 (1988)• RFC 1094 - NFSv2 (1989)• RFC 1813 - NFSv3 (1995)• RFC 2054 - WebNFS (1996)• RFC 2624 - NFSv4 (1999)• RFC 3010 - NFSv4 Protocol (2000)• RFC 3530 - NFSv4 Protocol (2003)

http://www.faqs.org/rfcs/

NFS v2

• 18 ops• File sizes limited to 32 bit• Slow writes• Arbitrary transfer limit• Lack of cache consistency

NFS v3

• 22 ops• File size extended to 64 bit• Fast write• Increased transfer write• Support caching and ACLs

WebNFS

• Eliminate overhead of PORTMAP and MOUNT

• Possible for firewall transit• Reduce number of LOOKUP

request

NFS v4

• Internet• Need for cross platform

support• Strong security• Design for growth

NFS procedures

NFSProcedures

Functions

LOOKUP Returns a file handle and attribute corresponding to a file name in a specified directory.MKDIR Create a directory.RMDIR Delete a directory.READDIR Read a directory. Used by the Unix ls command, for example.RENAME Rename a file.REMOVE Delete a file.CREATE Create a file.READ Read from a file, by specify the file handle, starting offset and max. no. of bytes to read

(up to 8192).WRITE Write to a file.GETATTR Returns the attributes of a file: type of file, permissions, size, owner, last-access time,

and so on.SETATTR Set the attributes of a file: permissions, owner, group, size,and last-access and last-

modification time.LINK Create a Unix hard link to a file.SYMLINK Create a symbolic link to a file.READLINK Returns the name of the file to whidh the symbolic link points.STATFS Returns the status of a file system. Used by the Unix df command, for example.

Format of RPC callIP header 20 bytes

UDP header 8

Transaction ID (XID) 4Send direction (0) 4RPC version (2) 4Program number 4Version number 4

Procedure number 4

Credentials up to 408 bytes

Verifier up to 408 bytes

Procedure call parameters N

common for all Sun RPC

procedure call

depends on specific procedure being

called

Format of RPC reply

IP header 20 bytes

UDP header 8

Transaction ID (XID) 4Send direction (1) 4

Status (0=accepted) 4

Verifier up to 400 bytes

Accept status (0=success) 4

Procedure results N

common for all Sun RPC

procedure

depends on specific procedure

Questions and Questions and CommentsComments

Thank You!Thank You!

Recommended