andrew design goals
play

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. 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 incremental costs � Easy administration and operation � Sharing with strong/flexible protections � Strong consistency semantics � Security (authentication) COMP 790-088 -- Fall 2009 2 2

  2. Users Share a Single File System / / afs bin etc bin etc usr cache bin local cache tools joe sam win32 doc / / bin bin etc etc cache cache COMP 790-088 -- Fall 2009 3 3 File Space Distributed on Servers / / bin bin etc etc cache cache afs local usr bin data “volume” movement is joe sam tools non-disruptive to users win32 doc COMP 790-088 -- Fall 2009 4 4

  3. Server “Cells” Form a Global File System / / /afs/unc.edu bin bin etc etc cache cache usr /afs/cmu.edu /afs/mit.edu usr usr kj fds carol ted bob alice doc doc doc COMP 790-088 -- Fall 2009 5 5 Andrew File Access (Open) (1) - open request passed to Andrew client (2) - client checks cache for valid file copy application (3) - if not in cache, fetch whole file from server open(/afs/usr/fds/foo.c) and write to cache; else (4) (4) - when file is in cache, return handle to local file (4) (2) (1) (3) Server file system file system Client OS kernel OS kernel cache COMP 790-088 -- Fall 2009 6 6

  4. Andrew File Access (Read/Write) application (5) - read and write operations take read(fh, buffer, length) place on local cache copy write(fh, buffer, length) Server file system file system Client OS kernel (5) OS kernel cache COMP 790-088 -- Fall 2009 7 7 Andrew File Access (Close-Write) (6) - close request passed to Andrew client application (7) - client writes whole file back to server from cache close(fh) (8) - server copy of file is entirely replaced (6) Server file system file system Client OS kernel (7) OS kernel (8) cache COMP 790-088 -- Fall 2009 8 8

  5. Andrew System Structure application read(fh, buffer, length) Virtual Virtual Client Server *Andrew RPC optimized for file system file system bulk data (file) transfer (VFS) (VFS) RPC* RPC* Unix Unix file system file system UDP/IP UDP/IP OS kernel OS kernel cache COMP 790-088 -- Fall 2009 9 9 Andrew Cache Operation and Consistency Semantics � File data is read from, or written to, the local cache copy only � if the file exists but is not in the cache, it must be fetched from the server to the local cache on open � Directories are fetched to the local cache for read ( lookup ) operations � Directory updates (e.g., create or remove ) are always performed on the server (atomically) and also performed locally on a cached copy if present and valid COMP 790-088 -- Fall 2009 10 10

  6. Andrew Cache Operation and Consistency Semantics � On close , a modified file is copied from the cache back to the server and replaces the server’s copy � When file or directory data is fetched, the server “guarantees” to notify ( callback ) the client before changing the server’s copy � Cached data is used without checking until a callback is received for it or 10 minutes has elapsed without communication with its server COMP 790-088 -- Fall 2009 11 11 Andrew Cache Operation and Consistency Semantics � On receiving a callback for a file or directory, the client invalidates the cached copy which causes a re-fetch on the next reference � Cached data can also be validated (and new callbacks established) by the client with an RPC to the server � primarily used to avoid discarding all cache content after a loss of communication with the server or a reboot of the client machine COMP 790-088 -- Fall 2009 12 12

  7. Andrew Benchmark 1 client workstation = 1 “load unit” ≅ 5 “typical users” Files: source code of program 70 files, 200KB Ethernet server 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 clients COMP 790-088 -- Fall 2009 13 13 Andrew Benchmark -- Elapsed Time Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81. COMP 790-088 -- Fall 2009 14 14

  8. Andrew Benchmark -- Server CPU Utilization Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81. COMP 790-088 -- Fall 2009 15 15 Andrew Benchmark -- Server Disk Utilization Source: Howard, et al, “Scale and Performance in a Distributed File System”, ACM TOCS, vol. 6, no. 1, February 1988, pp. 51-81. COMP 790-088 -- Fall 2009 16 16

Recommend


More recommend