0% found this document useful (0 votes)
34 views

Operating Systems: Vfs/Nfs

File systems must be mounted before they can be accessed. The Virtual File System (VFS) provides an object-oriented way of implementing different file systems using a common interface. The Network File System (NFS) allows files to be accessed remotely over a network in a transparent manner by mounting remote file systems locally. NFS operates independently of machine type or network using remote procedure calls and works across heterogeneous environments.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
34 views

Operating Systems: Vfs/Nfs

File systems must be mounted before they can be accessed. The Virtual File System (VFS) provides an object-oriented way of implementing different file systems using a common interface. The Network File System (NFS) allows files to be accessed remotely over a network in a transparent manner by mounting remote file systems locally. NFS operates independently of machine type or network using remote procedure calls and works across heterogeneous environments.
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 17

Operating Systems

VFS/NFS

A. Frank - P. Weisberg
File System Mounting
• A file system must be mounted before it can be
accessed.
• A unmounted file system is mounted at a
mount point.

2 A. Frank - P. Weisberg
Existing. (b) Unmounted Partition )a(

3 A. Frank - P. Weisberg
Mount Point

4 A. Frank - P. Weisberg
Virtual File Systems
• Virtual File Systems (VFS) provide an object-
oriented way of implementing file systems.
• VFS allows the same system call interface (the
API) to be used for different types of file
systems.
• The API is to the VFS interface, rather than any
specific type of file system.

5 A. Frank - P. Weisberg
Schematic View of Virtual File System

6 A. Frank - P. Weisberg
The Sun Network File System (NFS)
• An implementation and a specification of a
software system for accessing remote files
across LANs (or WANs).
• The implementation is part of the Solaris and
SunOS operating systems running on Sun
workstations using an unreliable datagram
protocol (UDP/IP protocol) and Ethernet.

7 A. Frank - P. Weisberg
NFS Logic (1)
• Interconnected workstations viewed as a set of
independent machines with independent file systems,
which allows sharing among these file systems in a
transparent manner:
– A remote directory is mounted over a local file system
directory. The mounted directory looks like an integral
subtree of the local file system, replacing the subtree
descending from the local directory.
– Specification of the remote directory for the mount
operation is nontransparent; the host name of the remote
directory has to be provided. Files in the remote directory
can then be accessed in a transparent manner.
– Subject to access-rights accreditation, potentially any file
system (or directory within a file system), can be mounted
remotely on top of any local directory.
8 A. Frank - P. Weisberg
NFS Logic (2)
• NFS is designed to operate in a heterogeneous
environment of different machines, operating systems,
and network architectures; the NFS specifications are
independent of these media.
• This independence is achieved through the use of
RPC primitives built on top of an External Data
Representation (XDR) protocol used between two
implementation-independent interfaces.
• The NFS specification distinguishes between the
services provided by a mount mechanism and the
actual remote-file-access services.
9 A. Frank - P. Weisberg
Three Independent File Systems

10 A. Frank - P. Weisberg
Mounting in NFS

11 Mounts A. Frank - P. Weisberg Cascading mounts


NFS Mount Protocol
• Establishes initial logical connection between server and client.
• Mount operation includes name of remote directory to be
mounted and name of server machine storing it:
– Mount request is mapped to corresponding RPC and forwarded to mount
server running on server machine.
– Export list: specifies local file systems that server exports for mounting,
along with names of machines that are permitted to mount them.
• Following a mount request that conforms to its export list, the
server returns a file handle: a key for further accesses.
• File handle: a file-system identifier, and an inode number to
identify the mounted directory within the exported file system.
• The mount operation changes only the user’s view and does not
affect the server side.
12 A. Frank - P. Weisberg
NFS Protocol
• Provides a set of remote procedure calls for remote file
operations. The procedures support the following operations:
– searching for a file within a directory.
– reading a set of directory entries.
– manipulating links and directories.
– accessing file attributes.
– reading and writing files.
• NFS servers are stateless; each request has to provide a full set
of arguments.
• Modified data must be committed to the server’s disk before
results are returned to the client (lose advantages of caching).
• The NFS protocol does not provide concurrency-control
13 mechanisms. A. Frank - P. Weisberg
Three Major Layers of NFS Architecture
• UNIX file-system interface (based on the open, read,
write, and close calls, and file descriptors).
• Virtual File System (VFS) layer – distinguishes local
files from remote ones, and local files are further
distinguished according to their file-system types:
– The VFS activates file-system-specific operations to handle
local requests according to their file-system types.
– Calls the NFS protocol procedures for remote requests.
• NFS service layer: bottom layer of the architecture;
implements the NFS protocol.

14 A. Frank - P. Weisberg
Schematic View of NFS Architecture

15 A. Frank - P. Weisberg
NFS Path-Name Translation
• Performed by breaking the path into component
names and performing a separate NFS lookup
call for every pair of component name and
directory vnode.
• To make lookup faster, a directory name
lookup cache on the client’s side holds the
vnodes for remote directory names.

16 A. Frank - P. Weisberg
NFS Remote Operations
• Nearly 1-1 correspondence between regular UNIX system calls
and the NFS protocol RPCs (except opening and closing files).
• NFS adheres to the remote-service paradigm, but employs
buffering and caching techniques for the sake of performance.
• File-blocks cache: when a file is opened, the kernel checks
with the remote server whether to fetch or revalidate the
cached attributes. Cached file blocks are used only if the
corresponding cached attributes are up to date.
• File-attribute cache: the attribute cache is updated whenever
new attributes arrive from the server.
• Clients do not free delayed-write blocks until the server
confirms that the data have been written to disk.
17 A. Frank - P. Weisberg

You might also like