Andrew Design Goals Transparent file naming in single name space - - PDF document

andrew design goals
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

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 Scalable -- O(1000s) Performance approximating local files Low incremental costs Easy administration and operation Sharing with strong/flexible protections Strong consistency semantics Security (authentication)

slide-2
SLIDE 2

3 3

COMP 790-088 -- Fall 2009

Users Share a Single File System

/

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

File Space Distributed on Servers

/

etc bin cache

/

etc bin cache local afs bin tools win32 usr sam joe doc data “volume” movement is non-disruptive to users

slide-3
SLIDE 3

5 5

COMP 790-088 -- Fall 2009

Server “Cells” Form a Global File System

/

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

Andrew File Access (Open)

application OS kernel OS kernel

  • pen(/afs/usr/fds/foo.c)

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)

slide-4
SLIDE 4

7 7

COMP 790-088 -- Fall 2009

Andrew File Access (Read/Write)

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

Andrew File Access (Close-Write)

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)

slide-5
SLIDE 5

9 9

COMP 790-088 -- Fall 2009

Andrew System Structure

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

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

slide-6
SLIDE 6

11 11

COMP 790-088 -- Fall 2009

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

12 12

COMP 790-088 -- Fall 2009

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

slide-7
SLIDE 7

13 13

COMP 790-088 -- Fall 2009

Andrew Benchmark

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

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.

slide-8
SLIDE 8

15 15

COMP 790-088 -- Fall 2009

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.

16 16

COMP 790-088 -- Fall 2009

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.