Distributed File Systems
Distributed File Systems
Distributed File Systems
Topics
What is a distributed file system?
Characteristics of file systems
Distributed File system requirements- Design
Issues
File service architecture
Distributed File Systems
It supports the sharing of information in
the form of files throughout an intranet.
It enables programs to store and access
remote files exactly as they do local ones,
allowing users to access files from any
computer in an intranet.
Distributed File Systems
A well designed file service provides access to
files stored at a server with performance and
reliability similar to, and in some cases better
than, files stored on local disks.
DFS supports the sharing of information in the
form of files and hardware resources in the form
of persistent storage.
The concentration of persistent storage at a few
servers reduces the need for local disk storage.
Characteristics of File Systems
File systems are responsible for the
organization , storage, retrieval, naming,
sharing and protection of files.
They provide programming interfaces that
characterizes the file abstraction
Files are stored on disks or other non- volatile
storage media.
Files contain both data and attributes.
Characteristics of File Systems
DATA :- They consist of a sequence of data
items (typically 8- bit bytes) accessible by
operations to read and write any portion of
the sequence.
ATTRIBUTES :- They are held as a single record
containing information such as length of the
file, timestamps, file type, owners identity
etc.
Attribute Record
File Length
Creation Timestamp
Read Timestamp
Write Timestamp
Attribute Timestamp
Reference Count
Owner
File Type
Access Control List
Characteristics of FS (Contd..)
Naming of file is supported by the use of
directories.
A directory is a file, often of a special type,
that provides a mapping from text names to
internal file identifiers.
Hierarchic file- naming scheme is used.
FS is responsible for creating, naming, deleting
files and also control of access to files etc.
DFS requirements- Design Issues
Transparency:
Access Transparency: Client programs should be unaware
of the distribution of files.
Location Transparency: Files or group of files may be
relocated without changing their pathnames.
Mobility Transparency: Neither client programs nor system
administration tables in client nodes need to be changed
when files are moves.
Performance Transparency: Client program should continue
to perform satisfactorily while load varies.
Scaling Transparency: Service can be expanded by
incremental growth.
DFS- Design Issues
Concurrent File Updates: Changes to a file by
one client should not interfere with the operation
of other clients simultaneously accessing or
changing the same file.
File Replication: A file may be represented by
several copies of its contents at different
locations.
Hardware and operating system heterogeneity:
The service interfaces should be defined so that
the client and server software can be
implemented for different OS and computers.
DFS- Design Issues
Fault Tolerance: Services continue to operate
in the face of client and server failures
Consistency: It follows one- copy update
semantics. This refers to a model for
concurrent access to files in which the file
contents seen by all of the processes accessing
or updating given file are those they would
see if only a single copy of the file contents
existed.
DFS- Design Issues
Security: Need to authenticate users (Client
and Server).
Efficiency: A DFS should provide a service that
is comparable with, or better than, local file
systems in performance and reliability.
File Service Architecture
Application
Program
Application
Program
Client Module
Directory Service
Flat File Service
Disk Disk Disk
Client Computer
Server Computer
File Service Architecture
File service is structured as the following components:
Flat File Service: It is concerned with implementing
operations on the contents of files. Unique file
identifiers(UFIDs) are used to refer to files in all
requests for a flat file service operations.
Directory service: It provides a mapping between text
names for files and their UFIDs. It provides the
functions needed to generate directories, to add new
filenames to directories and to obtain UFIDs from
directories.
File Service Architecture (contd..)
Client Module: A client module runs in each client
computer, integrating and extending the
operations of the flat file service and the
directory service under a single API that is
available to the user- level programs. It
implements a cache of the recently used file
blocks at that client.
Flat File Service Interface: It is the RPC interface
used by the client modules. Most important
operations are those for reading and writing
(Read, Write). Create creates a new file, and
returns UFID that is generated
File Service Architecture (contd..)
Access Control: In the UNIX file system, the
users access rights are checked against the
access mode requested in the open call. The file is
opened only if the user has the necessary rights.
Checks performed at the server.
Directory Service Interface: Provides a service for
translating text names to UFIDs.
Lookup(Dir,Name)- FileId
AddName(Dir,Name,FileId)
UnName(Dir,Name)
GetName(Dir,Pattern)- NameSeq
File Service Architecture (contd..)
Hierarchic File System: Such as the one that
UNIX provides consists of a number of
directories arranged in a tree structure. Any
file or directory can be referenced using a
pathname.
File Grouping: A file group is a collection of
files located on a given server. A file cannot
change the group to which it belongs.
IP Address Date
File Group Identifier:
32 Bits 16 Bits
Reference
Distributed Systems- Concepts and Design :-
George Colouris, Jean Dollimore, Tim Kindberg (Third
Edition- Pearson Education)