Today: Distributed File Systems
Issues in distributed file systems
Suns Network File System case study
Computer Science
CS677: Distributed OS
Lecture 20, page 1
NFS Architecture
Suns Network File System (NFS) widely used distributed file system Uses the virtual file system layer to handle local and remote files
Computer Science
CS677: Distributed OS
Lecture 20, page 2
NFS Operations
Operation Create Create Link Symlink Mkdir Mknod Rename Rmdir Open Close Lookup Readdir Readlink Getattr Setattr Read Write v3 Yes No Yes Yes Yes Yes Yes Yes No No Yes Yes Yes Yes Yes Yes Yes v4 No Yes Yes No No No Yes No Yes Yes Yes Yes Yes Yes Yes Yes Yes Description Create a regular file Create a nonregular file Create a hard link to a file Create a symbolic link to a file Create a subdirectory in a given directory Create a special file Change the name of a file Remove an empty subdirectory from a directory Open a file Close a file Look up a file by means of a file name Read the entries in a directory Read the path name stored in a symbolic link Read the attribute values for a file Set one or more attribute values for a file Read the data contained in a file Write data to a file
Computer Science
CS677: Distributed OS
Lecture 20, page 3
Communication
a) Reading data from a file in NFS version 3. b) Reading data using a compound procedure in version 4. Both versions use Open Network Computing (ONC) RPCs - One RPC per operation (NFS v3); multiple operations supported in v4.
Computer Science
CS677: Distributed OS Lecture 20, page 4
Naming: Mount Protocol
NFS uses the mount protocol to access remote files
Mount protocol establishes a local name for remote files Users access remote files using local names; OS takes care of the mapping
Computer Science
CS677: Distributed OS
Lecture 20, page 5
Naming: Crossing Mount Points
Mounting nested directories from multiple servers NFS v3 does not support transitive exports (for security reasons)
NFS v4 allows clients to detects crossing of mount points
Computer Science
CS677: Distributed OS
Lecture 20, page 6
Automounting
Automounting: mount on demand
Computer Science
CS677: Distributed OS Lecture 20, page 7
File Attributes (1)
Attribute TYPE SIZE CHANGE FSID Description The type of the file (regular, directory, symbolic link) The length of the file in bytes Indicator for a client to see if and/or when the file has changed Server-unique identifier of the file's file system
Some general mandatory file attributes in NFS.
NFS modeled based on Unix-like file systems Implementing NFS on other file systems (Windows) difficult NFS v4 enhances compatibility by using mandatory and recommended attributes
Computer Science
CS677: Distributed OS Lecture 20, page 8
File Attributes (2)
Attribute ACL FILEHANDLE FILEID FS_LOCATIONS OWNER TIME_ACCESS TIME_MODIFY TIME_CREATE Description an access control list associated with the file The server-provided file handle of this file A file-system unique identifier for this file Locations in the network where this file system may be found The character-string name of the file's owner Time when the file data were last accessed Time when the file data were last modified Time when the file was created
Some general recommended file attributes.
Computer Science
CS677: Distributed OS Lecture 20, page 9
Semantics of File Sharing
a) b) On a single processor, when a read follows a write, the value returned by the read is the value just written. In a distributed system with caching, obsolete values may be returned.
Computer Science
CS677: Distributed OS
Lecture 20, page 10
Semantics of File Sharing
Method UNIX semantics Session semantics Immutable files Transaction Comment Every operation on a file is instantly visible to all processes No changes are visible to other processes until the file is closed No updates are possible; simplifies sharing and replication All changes occur atomically
Four ways of dealing with the shared files in a distributed system.
NFS implements session semantics Can use remote/access model for providing UNIX semantics (expensive) Most implementations use local caches for performance and provide session semantics
Computer Science
CS677: Distributed OS Lecture 20, page 11
File Locking in NFS
Operation Lock Lockt Locku Renew Description Creates a lock for a range of bytes (non-blocking_ Test whether a conflicting lock has been granted Remove a lock from a range of bytes Renew the lease on a specified lock
NFS supports file locking
Applications can use locks to ensure consistency Locking was not part of NFS until version 3 NFS v4 supports locking as part of the protocol (see above table)
Computer Science
CS677: Distributed OS
Lecture 20, page 12
File Locking: Share Reservations
Current file denial state NONE READ Fail Succeed Fail WRITE Succeed Fail Fail BOTH Fail Fail Fail READ WRITE BOTH (a) Requested file denial state NONE READ Fail Succeed Fail WRITE Succeed Fail Fail BOTH Fail Fail Fail Succeed Succeed Succeed
Request access
Current access state
READ WRITE BOTH (b)
Succeed Succeed Succeed
a) b)
The result of an open operation with share reservations in NFS. When the client requests shared access given the current denial state. When the client requests a denial state given the current file access state.
CS677: Distributed OS Lecture 20, page 13
Computer Science
Client Caching
Client-side caching is left to the implementation (NFS does not prohibit it)
Different implementation use different caching policies Sun: allow cache data to be stale for up to 30 seconds
Computer Science
CS677: Distributed OS
Lecture 20, page 14
Client Caching: Delegation
NFS V4 supports open delegation
Server delegates local open and close requests to the NFS client Uses a callback mechanism to recall file delegation.
Computer Science
CS677: Distributed OS
Lecture 20, page 15
RPC Failures
Three situations for handling retransmissions: use a duplicate request cache a) The request is still in progress b) The reply has just been returned c) The reply has been some time ago, but was lost. Use a duplicate-request cache: transaction Ids on RPCs, results cached
Computer Science
CS677: Distributed OS Lecture 20, page 16
Security
The NFS security architecture.
Simplest case: user ID, group ID authentication only
Computer Science
CS677: Distributed OS
Lecture 20, page 17
Secure RPCs
Secure RPC in NFS version 4.
Computer Science
CS677: Distributed OS Lecture 20, page 18
Replica Servers
NFS ver 4 supports replications Entire file systems must be replicated FS_LOCATION attribute for each file Replicated servers: implementation specific
Computer Science
CS677: Distributed OS
Lecture 20, page 19
10