1. DISTRIBUTED COMPUTING
EG 3113 CT DIPLOMA IN COMPUTER ENGINEERING
5TH SEMESTER
UNIT 4.4 ANDREW FILE SYSTEM (AFS)
LECTURE BY : ER. ASHISH K.C(KHATRI)
2. ANDREW FILE SYSTEM (AFS):
⢠Like NFS, AFS provides transparent access to remote shared files for
UNIX programs running on workstations.
⢠AFS is a distributed file system, with scalability as a major goal.
3. ⢠Its efficiency can be attributed to the following practical assumptions (as
also seen in UNIX file system):
ďźFiles are small (i.e. entire file can be cached)
ďźFrequency of reads much more than those of writes
ďźSequential access common
ďźFiles are not shared (i.e. read and written by only one user)
ďźShared files are usually not written
ďźDisk space is plentiful
4.
5. ⢠AFS distinguishes between client machines (workstations) and dedicated server machines.
⢠Caching files in the client side cache reduces computation at the server side, thus
enhancing performance.
⢠However, the problem of sharing files arises.
⢠To solve this, all clients with copies of a file being modified by another client are not
informed the moment the client makes changes.
⢠That client thus updates its copy, and the changes are reflected in the distributed file
system only after the client closes the file.
6. ⢠AFS is designed to perform well with larger numbers of active users than other distributed
file systems.
⢠The key strategy for achieving scalability is the caching of whole files in client nodes.
⢠AFS has two unusual design characteristics:
⢠Whole File Serving: The entire file is transferred to client computers in one go, limited
only by the maximum size UDP/IP supports
⢠Whole File Caching: The entire file is cached in the local machine cache, reducing file-
open latency, and frequent read/write requests to the server
7. ⢠In AFS, the server keeps track of which files are opened by which clients (as was not in the case of
NFS).
⢠In other words, AFS has stateful servers, whereas NFS has stateless servers.
⢠Another difference between the two file systems is that AFS provides location independence (the
physical storage location of the file can be changed, without having to change the path of the file,
etc.) as well as location transparency (the file name does not hint at its physical storage location).
⢠Stateful servers in AFS allow the server to inform all clients with open files about any updates made
to that file by another client, through what is known as a callback.
⢠Callbacks to all clients with a copy of that file is ensured as a callback promise is issued by the
server to a client when it requests for a copy of a file.
8. ⢠The key software components in AFS are:
⢠Vice: The server side process that resides on top of the unix kernel,
providing shared file services to each client
⢠Venus: The client side cache manager which acts as an interface between
the application program and the Vice
9. ISSUES IN DESIGN OF AFS:
⢠Client mobility: Clients are able to access any file in the shared name space from any
workstation. A client may notice some initial performance degradation due to the caching of
files when accessing files from a workstation other than the usual one.
⢠Security: The Vice interface is considered the boundary of trustworthiness, because no client
programs are executed on Vice machines.
- Authentication and secure-transmission functions are provided as part of a connection based
communication package based on the RPC paradigm.
- Vice server and a client communicate via encrypted messages. Encryption is performed by
hardware devices or (more slowly) in software. Information about clients and groups is stored
in a protection database replicated at each server.
10. ⢠Protection: AFS provides access lists for protecting directories and the regular UNIX bits
for file protection. The access list may contain information about those users allowed to
access a directory, as well as information about those users not allowed to access it. Thus,
it is simple to specify that everyone except, say, Jim can access a directory. AFS supports
the access types read, write, lookup, insert, administer, lock, and delete.
⢠Heterogeneity: Defining a clear interface to Vice is a key for integration of diverse
workstation hardware and operating systems. So that heterogeneity is facilitated, some
files in the local /bin directory are symbolic links pointing to machine-specific executable
files residing in Vice.