190 likes | 388 Views
CODA FILE SYSTEM. Presented By: Samreen Tahir. CODA FILE SYSTEM. WHAT IS IT?. Coda is a network file system and a descendent of the Andrew File System 2. It was designed to be: Highly secure Available Transparent to its users. Andrew File System:.
E N D
CODA FILE SYSTEM Presented By: Samreen Tahir
CODA FILE SYSTEM WHAT IS IT? Coda is a network file system and a descendent of the Andrew File System 2. It was designed to be: • Highly secure • Available • Transparent to its users. Andrew File System: • Architecture of Coda is based on Andrew File System • AFS was developed at Carnegie Mellon University • It was designed to support the CMU community that meant serving 10, 000 workstations
Limitations of AFS: • Limited form of replication posed scaling problems • Non-availability of services when servers and network components fail • No catering for mobile use of portable computers Coda was designed to overcome the problems associated with AFS.
How does Coda work? It works by implementing two COMPLEMENTARY functionalities : • Availability of files by replicating a file volume across • many servers 2. Disconnected mode of operation by caching files at the client machine
AFS Architecture The Coda architecture is based on AFS: The Andrew File System Transparent access to a Vice file server AFS is divided into two types of nodes: 1. Vice nodes: dedicated file servers 2. Virtue nodes: client machines Virtue Client Vice file server
Venus process User process User process RPC client stub Virtual file system layer Local file system interface Local OS The internal organization of a virtue workstation: Virtue Client Machine Network Venus: A process that is hosted on each Virtue system. VFS: Virtual File System, intercepts the calls from client application or user processes and forwards them either to the local file system or Venus.
Communication How do the server and client communicate in Coda? Answer: Through Remote Procedure Calls (RPC) RPC call File Server Client Reply May take arbitrary amount of time (Blocking) • The server keeps sending back messages to the client that it is still working • on the problem. 2. If the server dies and the client notices that it is not receiving any messages it reports back failure to the client application.
Communication (contd.) F File Invalidate F F F Invalidate F F F F Updated File File server Invalidate F F client When a server notices updates in a file, it must inform the client which are caching a copy of it to invalidate that copy.
COMMUNICATION: (contd.) There are two ways to invalidate a file: A better approach: Client Client invalidate invalidate reply reply Server Server invalidate invalidate reply reply Client Client Time Time Sending invalidation message one at a time. Sending invalidation messages in parallel. This method is inefficient since a client may crash before giving a reply to the server.
RPC2 • Coda uses RPC2: more sophisticated than the traditional RPC used by NFS • RPC2 implements a functionality called side effect: a separate connection is opened when a remote procedure is called. • This separate connection is for the application specific protocol between the client and the server.
RPC2 contd. Client Application Server RPC Application-specific protocol Client side effect Server side effect RPC client stub RPC server stub RPC protocol Side-effects in Coda’s RPC2 system.
Naming: • Coda uses name space implementation analogous to that of UNIX. • Volumes are the building units of the entire file system and are mounted at a mount point.
Clients in coda have access to a single shared namespace Naming inherited from server’s namespace Client B Client A Server afs pkg local afs bin pkg bin Exported directory mounted by client Exported directory mounted by client Network Clients in Coda have access to a single shared namespace.