Presented By: Samreen Tahir
18 Slides456.00 KB
Presented By: Samreen Tahir
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 : 1. Availability of files by replicating a file volume across many servers 2. Disconnected mode of operation by caching files at the client machine
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: servers 2. Virtue nodes: Virtue Client Vice file server dedicated file client machines
The internal organization of a virtue workstation: Virtue Client Machine User process User process Venus process RPC client stub Local file system interface Virtual file system layer Local OS 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.
How do the server and client communicate in Coda? Answer: Through Remote Procedure Calls (RPC) RPC call Client (Blocking) File Server Reply May take arbitrary amount of time 1. The server keeps sending back messages to the client that it is still working on the problem. If the server dies and the client notices that it is not receiving any messages reports back failure to the client application.
(contd.) F F File Updated File F Invali d at e Invalidate F F F F F Invalidate F File server 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 invali date Server e Time t lida e Client reply inva t lida reply inva Client ly rep Server ly rep invali d ate Client Time Sending invalidation message oneSending invalidation messages in at a time. parallel. This method is inefficient since a client may crash before giving a reply to the server.
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 Client side Application-specific protocol Server side effect effect RPC client stub RPC protocol RPC server stub 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 A afs Client B Server local bin pkg afs pkg bin Exported directory mounted by client Exported directory mounted by client Network Clients in Coda have access to a single shared namespace.
File Identifiers:
Client Caching:
Server Replication:
Fault Tolerance: Disconnected Operation
Fault Tolerance: Disconnected Operation