210 likes | 357 Views
Distributed File Systems. File System Modules. Directory File Module Access Control File access Block Device. File System Operations. Open Create Close Read Write Seek Stat Link Unlink. Distributed File System Requirements. Transparency Access Location Mobility Performance
E N D
File System Modules • Directory • File Module • Access Control • File access • Block • Device
File System Operations • Open • Create • Close • Read • Write • Seek • Stat • Link • Unlink
Distributed File System Requirements Transparency • Access • Location • Mobility • Performance • Scaling
Reqmts contd.. Concurrent File Updates • Changes to a file by one client should not interfere with the operations of other clients simultaneously accessing or changing the same file Done by -File Locking -Record Locking
Reqmts cond.. File Replication • Represented by several copies of its contents at different locations Provides - Sharing the load of Multiple Servers - Fault tolerance
Reqmts Contd.. Hardware and OS heterogeneity • Design of Service Interface should be implemented such that client and server software can be implemented for different operating system
Reqmts contd Fault tolerance • Service should continue in the face of client and server failures • Server protocol can be designed with idempotent operations • Stateless servers
Reqmts contd Consistency Unix offer one-copy update Semantics • As if a single copy of the file existed • Propagation delay
Reqmts contd Security • Based on Access Control List • Authenticate Client Requests • Digital Signature • Encryption
Reqmts contd Efficiency A DFS should provide a service that is comparable with or better than, local file systems in performance and reliability
File Service Architecture • Flat file service • Directory service • Client Module
Flat file service • Concerned with implementing operations on the contents of the file • UFID – Unique File Identifier • Each file has a unique UFID • Generates a new UFID when a request to create a file is received
Directory Services • Provides a mapping between text names for files and their UFID’s • Text name DS UFID • Functions • Generate Directories • Add new file to directories • To obtain UFID
Client Module • Integrating the operations of a FFS and DS under a singel interface • Holds info about n/w locations of FFS and DS processes • Caching of recently used file blocks • Increases performance
FFS INTERFACE • Read(FileId, i ,n) • Write(FileId,i,n) • Create() • Delete(FileId) • GetAttribute(FileId) • SetAttribute(FileId)
Properties • Repeatable Operations • Idempotent Operations Except Create • Stateless Servers • can be restarted after failures without any need for client and server to restore any state
Access Control • An access check is made whenever a name is converted to a UFID and results are encoded in the form of a capability which is returned to the client for submission with subsequent request • A user id is submitted with every request and access checks are performed by the server
Directory Service Interface • Lookup(Dir, Name) • AddName(Dir,Name, File) • UnName(Dir, Name) • GetNames(Dir,Pattern)
Heirarchical File System • No of directories arranged in tree structure • Files at leaves and directories at other nodes • The root is a directory with a UFID • A function that gets UFID of a file given its pathname • File Attribute – a type field
File Grouping • A collection of files located in a server • Representation of UFID includes a file group identifier component. • File group Identifier should be unique • Generated by concatenating • 32 bit IP address of the host • With a 16 bit integer derived from the date