1 1
COMP 790-088 -- Fall 2009
COMP 790-088 -- Distributed File Systems
Andrew File System
2 2
COMP 790-088 -- Fall 2009
Andrew Design Goals Transparent file naming in single name space - - PDF document
COMP 790-088 -- Distributed File Systems Andrew File System COMP 790-088 -- Fall 2009 1 1 Andrew Design Goals Transparent file naming in single name space Scalable -- O(1000s) Performance approximating local files Low
1 1
COMP 790-088 -- Fall 2009
2 2
COMP 790-088 -- Fall 2009
3 3
COMP 790-088 -- Fall 2009
etc bin cache
etc bin cache
etc bin cache
etc bin cache local usr sam joe doc bin tools win32 afs
4 4
COMP 790-088 -- Fall 2009
etc bin cache
etc bin cache local afs bin tools win32 usr sam joe doc data “volume” movement is non-disruptive to users
5 5
COMP 790-088 -- Fall 2009
etc bin cache
etc bin cache usr ted carol doc usr alice bob doc usr fds kj doc /afs/unc.edu /afs/mit.edu /afs/cmu.edu
6 6
COMP 790-088 -- Fall 2009
application OS kernel OS kernel
file system Client file system Server
cache (1) (1) - open request passed to Andrew client (2) (2) - client checks cache for valid file copy (3) (3) - if not in cache, fetch whole file from server and write to cache; else (4) (4) - when file is in cache, return handle to local file (4)
7 7
COMP 790-088 -- Fall 2009
application OS kernel OS kernel
file system Client file system Server
cache (5) - read and write operations take place on local cache copy (5) read(fh, buffer, length) write(fh, buffer, length)
8 8
COMP 790-088 -- Fall 2009
application OS kernel OS kernel close(fh)
file system Client file system Server
cache (6) (6) - close request passed to Andrew client (7) (7) - client writes whole file back to server from cache (8) - server copy of file is entirely replaced (8)
9 9
COMP 790-088 -- Fall 2009
application OS kernel read(fh, buffer, length)
Unix file system Client RPC* UDP/IP Virtual file system (VFS) Unix file system Server RPC* UDP/IP Virtual file system (VFS)
OS kernel cache
*Andrew RPC optimized for bulk data (file) transfer
10 10
COMP 790-088 -- Fall 2009
11 11
COMP 790-088 -- Fall 2009
12 12
COMP 790-088 -- Fall 2009
13 13
COMP 790-088 -- Fall 2009
Ethernet 1 client workstation = 1 “load unit” ≅ 5 “typical users” Benchmark Phases: mkdir - duplicate directory tree cp - copy all files to duplicate directories scan - get status of every new file read - read every byte of every file make - make the program Files: source code of program 70 files, 200KB clients server
14 14
COMP 790-088 -- Fall 2009
Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81.
15 15
COMP 790-088 -- Fall 2009
Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81.
16 16
COMP 790-088 -- Fall 2009
Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81.