SeriesOperating Systems14 / 16

Distributed File Systems

Module 14 of CS 6200 - Graduate Introduction to Operating Systems @ Georgia Tech.

Overview#

A Distributed File System (DFS) is a file system stored across multiple machines. Recall that UNIX platforms use a Virtual File System (VFS) layer to abstract away any details on underlying file system implementation. This implies a DFS appears to the user / machine similarly to any other local file system.

DFS

Distributed file systems are analogous to distributed storage facilities:

DFS Implementation#

Distributed Architectures#

A DFS can follow one of many models:

In this lesson, we will primarily focus on the Client-Server DFS model.

Remote File Access#

So how does a client access and modify files stored on a remote server? There are two extreme scenarios:

A more practical implementation blends both extremes to provide robust features:

Server State#

In the context of a DFS and remote file access, State refers to information maintained by the file server on client characteristics and file operations. For example, state may include the files a client is currently accessing, their access types (R/W), and current modifications to a given file in the system.

A purely stateless file server maintains no state on DFS clients. This is only permissible in the case of pure remote access, and requires each client request to be fully self-contained.

Conversely, a stateful file server does maintain state on DFS clients. Any practical DFS implementation involving client-side caching requires a stateful file server.

DFS Mechanisms#

Caching#

Caching is a general optimization technique which refers to maintaining copies of data in a fast-access location to reduce latency associated with access. In the context of a client-server DFS, clients may cache portions of DFS files (e.g., file blocks) to perform operations on cached state (e.g., open, read, write) without incurring additional overhead by interacting with the server. DFS caching requires cache coherence mechanisms to ensure all machines within the DFS always maintain updated versions of each file.

File Sharing#

To understand how file sharing across machines works within a distributed system, let’s compare relative to file sharing across processes within a single machine (UNIX file sharing semantics):

Immediate file updates are not possible in a distributed file system. For example, Client 1 may update a file, but Client 2 may read outdated file contents from the file server before Client 1 can push its changes.

file-updates

Since a distributed system cannot enforce immediate consistency, it must define alternative DFS file sharing semantics:

File sharing semantics are typically specific to the particular DFS implementation.

DFS Examples#

NFS#

As part of the Network File System (NFS), clients access a remote file system across a network. NFS relies on Remote Procedure Call (RPC) to interact with the remote file system.

NFS

NFS supports the following functionalities:


(all images obtained from Georgia Tech GIOS course materials)

License

CC BY-NC-SA 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Related Posts