AFS Made By Andrew Carnegie & Andrew Mellon Carnegie Mellon University Presented By Christopher Tran & Binh Nguyen.

Slides:



Advertisements
Similar presentations
Andrew File System CSS534 ZACH MA. History  Originated in October 1982, by the Information Technology Center (ITC) formed with Carnegie Mellon and IBM.
Advertisements

Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Lecture 23: Distributed-File Systems (Chapter 17)
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 17: Distributed-File Systems.
Chapter 17: Distributed-File Systems Silberschatz, Galvin and Gagne ©2005 AE4B33OSS Chapter 17 Distributed-File Systems Background Naming and Transparency.
Distributed Databases John Ortiz. Lecture 24Distributed Databases2  Distributed Database (DDB) is a collection of interrelated databases interconnected.
CS-550: Distributed File Systems [SiS]1 Resource Management in Distributed Systems: Distributed File Systems.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
Distributed File Systems 17: Distributed File Systems
Chapter 17: Distributed-File Systems Adapted to COP4610 by Robert van Engelen.
Andrew File System (AFS)
Distributed File Systems CS 3100 Distributed File Systems1.
Distributed File Systems
Coda file system: Disconnected operation By Wallis Chau May 7, 2003.
Other File Systems: AFS, Napster. 2 Recap NFS: –Server exposes one or more directories Client accesses them by mounting the directories –Stateless server.
Computer Science Lecture 21, page 1 CS677: Distributed OS Today: Coda, xFS Case Study: Coda File System Brief overview of other recent file systems –xFS.
Distributed File System: Design Comparisons II Pei Cao Cisco Systems, Inc.
Chapter 17 Distributed File Systems By: Amar Deo( ) Ankur Patel( )
G Robert Grimm New York University Scale and Performance in Distributed File Systems: AFS and SpriteFS.
Jeff Chheng Jun Du.  Distributed file system  Designed for scalability, security, and high availability  Descendant of version 2 of Andrew File System.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
Distributed File System: Design Comparisons II Pei Cao.
Network File System (NFS) in AIX System COSC513 Operation Systems Instructor: Prof. Anvari Yuan Ma SID:
File Systems (2). Readings r Silbershatz et al: 11.8.
Lecture 23 The Andrew File System. NFS Architecture client File Server Local FS RPC.
Sun NFS Distributed File System Presentation by Jeff Graham and David Larsen.
Distributed File Systems Concepts & Overview. Goals and Criteria Goal: present to a user a coherent, efficient, and manageable system for long-term data.
Microsoft Windows 2003 Server. Client/Server Environment Many client computers connect to a server.
1 The Google File System Reporter: You-Wei Zhang.
CSC 456 Operating Systems Seminar Presentation (11/13/2012) Leon Weingard, Liang Xin The Google File System.
Networked File System CS Introduction to Operating Systems.
Local Area Networks (LAN) are small networks, with a short distance for the cables to run, typically a room, a floor, or a building. - LANs are limited.
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
5 Chapter Five Web Servers. 5 Chapter Objectives Learn about the Microsoft Personal Web Server Software Learn how to improve Web site performance Learn.
Advanced Operating Systems - Spring 2009 Lecture 21 – Monday April 6 st, 2009 Dan C. Marinescu Office: HEC 439 B. Office.
Distributed File Systems
Distributed File Systems Case Studies: Sprite Coda.
Distributed File Systems Overview  A file system is an abstract data type – an abstraction of a storage device.  A distributed file system is available.
Chapter 20 Distributed File Systems Copyright © 2008.
What is a Distributed File System?? Allows transparent access to remote files over a network. Examples: Network File System (NFS) by Sun Microsystems.
Chapter 10: File-System Interface Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 1, 2005 Chapter 10: File-System.
Introduction to DFS. Distributed File Systems A file system whose clients, servers and storage devices are dispersed among the machines of a distributed.
Dr. M. Munlin Network and Distributed System Structures 1 NETE0516 Operating Systems Instructor: ผ. ศ. ดร. หมัดอามีน หมัน หลิน Faculty of Information.
Presented By: Samreen Tahir Coda is a network file system and a descendent of the Andrew File System 2. It was designed to be: Highly Highly secure Available.
A Low-bandwidth Network File System Athicha Muthitacharoen et al. Presented by Matt Miller September 12, 2002.
Jinyong Yoon,  Andrew File System  The Prototype  Changes for Performance  Effect of Changes for Performance  Comparison with A Remote-Open.
CS 346 – Chapter 11 File system –Files –Access –Directories –Mounting –Sharing –Protection.
EE324 INTRO TO DISTRIBUTED SYSTEMS. Distributed File System  What is a file system?
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
Lecture 25 The Andrew File System. NFS Architecture client File Server Local FS RPC.
Introduction to AFS IMSA Intersession 2003 An Overview of AFS Brian Sebby, IMSA ’96 Copyright 2003 by Brian Sebby, Copies of these slides.
Distributed File Systems Questions answered in this lecture: Why are distributed file systems useful? What is difficult about distributed file systems?
Chapter Five Distributed file systems. 2 Contents Distributed file system design Distributed file system implementation Trends in distributed file systems.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 16 Distributed-File Systems Background Naming and Transparency Remote File.
Distributed Systems: Distributed File Systems Ghada Ahmed, PhD. Assistant Prof., Computer Science Dept. Web:
DISTRIBUTED FILE SYSTEM- ENHANCEMENT AND FURTHER DEVELOPMENT BY:- PALLAWI(10BIT0033)
Andrew File System (AFS)
Web Caching? Web Caching:.
NFS and AFS Adapted from slides by Ed Lazowska, Hank Levy, Andrea and Remzi Arpaci-Dussea, Michael Swift.
Today: Coda, xFS Case Study: Coda File System
Transarc AFS Client for NT
CSE 451: Operating Systems Winter Module 22 Distributed File Systems
Distributed File Systems
Distributed File Systems
CSE 451: Operating Systems Spring Module 21 Distributed File Systems
Distributed File Systems
CSE 451: Operating Systems Winter Module 22 Distributed File Systems
Distributed File Systems
Distributed File Systems
M05 DISTRIBUTED FILE SYSTEM
Presentation transcript:

AFS Made By Andrew Carnegie & Andrew Mellon Carnegie Mellon University Presented By Christopher Tran & Binh Nguyen

AFS: ANDREW FILE SYSTEM ▪ Abstraction of DFS from users ▪ Accessing a file is similar to using a local file ▪ Scalability with region distribution ▪ Permissions Control with Access Control Lists ▪ University Environment (Large number of users) ▪ Weak Consistency by Design

AFS: PRIMARY FEATURES ▪ Implemented in UNIX at the system call level ▪ Work Unit is the entire file ▪ Applications and users are unaware of distributed system ▪ Kerberos Authentication for use over insecure networks ▪ Access Control Lists (ACLs) control permissions ▪ File Consistency through stateful servers

AFS: IMPLEMENTATION OVERVIEW 1.Application Opens file stored on AFS server 2.System Call is intercepted by a hook in the workstation Kernel (Venus) 3.Andrew Cache Manager Checks for local copy of file 4.Andrew Cache Manager Checks for callback status 5.If needed, Andrew Cache Manager forwards request to file server 6.If needed, Andrew Cache Manager receives file and stores on local machine 7.File Descriptor is returned to application

AFS: SYSTEM DIAGRAM

AFS: CALL INTERCEPT

AFS: VERSION 1 ▪ Clients would constantly check with the server for consistency ▪ Message intervals ▪ Every message would include authentication information ▪ Server has to authenticate source ▪ Messages included full path to the file ▪ Server had to traverse directories ▪ Approximately 20 clients per server (in 1988) Check file? It’s Good!

AFS: VERSION 1 PROBLEMS ▪ Servers spending too much time communicating with clients ▪ Clients constantly checking if a file is consistent increasing network traffic ▪ Server constantly authenticating messages using CPU time ▪ Server traversing directories every read, write, and file check using CPU time

AFS: VERSION 2 ▪ Callback Mechanism – Server promises to inform clients of file change ▪ Stateful Server ▪ 50 Clients per server (in 1988) ▪ Clients request file based on FID ▪ Volumes can exist on any server I’ll let you know if something changes

AFS: CALLBACK ▪ Server Keeps track of clients using threads ▪ Each Client is managed by a separate thread ▪ Client and Server use RPC that to respective daemons ▪ Server has Vice daemon ▪ Client has Venus daemon ▪ Each file a client opens also gets a AFSCallback Structure. ▪ AFSCallback contains an expiration for how long the callback is valid and how the server will communicate with the client ▪ Clients assume that file is consistent until server callback is received or the expiration time lapses.

AFS: CALLBACK INVALIDATION VICE Daemon ThreadFID Client1412 Client2412 Client3412 Client4492 FID: 412 FID: 492FID: Store(412) 2. Write(412) 3. invalidate(412)

AFS: CALLBACK ISSUES ▪ No description of why the callback was initiated ▪ Modified portions ▪ Appended data ▪ Saved but no data changed ▪ File Moved ▪ Etc ▪ Client has to redownload entire file when reading ▪ No support for differential update ▪ If application reads more data, file is re-downloaded but updates may not be reflected in application ▪ If user is reading past the changes in a file, the application is unaware of such changes.

AFS: VOLUMES ▪ Collection of files ▪ Does not follow directory path ▪ Mounted to a directory ▪ Venus on client maps the pathname to a FID ▪ Vice on server gets file based on FID ▪ Less directory traversal

AFS: SERVER SCALABILITY ▪ Server Replication: Multiple Servers act as a single logical server ▪ Server keeps track of clients in System Memory using threads ▪ Clients have a heartbeat to the server to make sure server is alive ▪ Volumes can be located on any server and moved to any other server ▪ Volume Read-Only clones used to distribute across physical space ▪ All servers share the same common name space ▪ /afs/…….. ▪ Local server name space can be unique where volumes are mounted ▪ /afs/server2 ▪ /afs/home/server3 ▪ AFS servers have links to other AFS servers for Volume Locations ▪ Servers know which server has a volume with specific files

AFS: FAULT HANDLING ▪ Client Crash – Worst Case Scenario ▪ Upon boot to OS: check local cache against server for consistency ▪ Server Crash – Start Fresh ▪ Clients detect server crashed from missed heartbeats ▪ Upon connection: clients re-establish communication ▪ Server rebuilds client list ▪ Clients check file consistency I crashed or server crashed, I’m probably wrong Uptime 0 seconds Let’s GO!

AFS: WEAK CONSISTENCY ▪ Condition ▪ Two or more clients have file open ▪ Two or more clients modify file ▪ Two or more clients close file to be written ▪ Result ▪ Client that sends store() and received by server LAST is the current file I got here FIRST! I got here LAST, I WIN!

AFS: WHY WEAK CONSISTENCY ▪ Majority of all DFS access is reading files ▪ In a University, Users are rarely modifying files simultaneously. ▪ Users work out of home directories ▪ Simplicity in Implementation ▪ Allows multiplatform implementation ▪ Does not add complexity to crash recovery ▪ No need to resume from a crash point

AFS: ACCESS CONTROL LISTS ▪ Standard Unix/Linux permissions are based on Owner/Group/Other ▪ ACLs allow refined control per user/group Example, you want to share a directory with only one other person so they can read files. Linux/Unix: make group, give group read access, add user to group ACLs: Add user/group with read permissions Months later: you want to give someone read/write access Linux/Unix: can’t do it without giving “other” group read access and everyone now has read access ACLs: Add user/group with read/write permissions

AFS: ADVANTAGES ▪ First Read performance is similar to other DFS ▪ Second Read performance is improved in almost all cases since read requests are far greater than write requests ▪ Creating new files is similar in performance with other DFS ▪ Use of ACLs over default file system permissions ▪ For read-heavy scenarios, supports a larger client-server ratio ▪ Volumes can be migrated to other AFS servers without interruption ▪ Kerberos Authentication allows access over insecure networks ▪ Build into Kernel so user login is authentication and UNIX/Linux applications can use AFS without modifications

AFS: DISADVANTAGES ▪ Entire file must be downloaded before file can be used ▪ Causes a noticeable latency when accessing files the first time ▪ Modifications require entire file to be uploaded to server ▪ Short reads in large files is much slower than other DFS ▪ No simultaneous editing of files

AFS: CONTRIBUTIONS ▪ AFS highly influences NFS v4 ▪ Basis of the Open Software Foundations Distributed Computing Environment ▪ Framework for Distributed Computing in the Early 1990s Current Implementations ▪ Open AFS ▪ Aria ▪ Transarc (IBM) ▪ Linux Kernel v2.6.10

AFS: SUGGESTED IDEAS ▪ Automatic Download of file when server sends consistency invalidation ▪ Smart invalidation by determining if a user needs to redownload ▪ If a user is beyond the changes of a file, no need to redownload entire file. ▪ Supporting differential updates ▪ Only sending information on what changed

AFS PERFORMANCE ▪ Andrew Benchmark (Still sometimes used today) ▪ Simulation of typical user ▪ Multi Stage Benchmark ▪ File Access ▪ File Write ▪ Compiling Program ▪ Response Time in creating various sized files in and out of AFS servers ▪ How long until file is available to be used? ▪ AFS performance was around half in comparison to a file stored locally on a hard drive

AFS PERFORMANCE File CountFile SizeFile System /tmp Seconds /tmp Average/File AFS Seconds AFS Average/File /tmp /tmp , /tmp , /tmp > 20 minutesn/a Varying the count of small files

AFS PERFORMANCE Varying the size of one file File CountFile SizeFile System /tmp Seconds /tmp Average/File AFS Seconds AFS Average/File 5102,400/tmp ,000/tmp ,024,000/tmp ,048,000/tmp ,072,000/tmp ,096,000/tmp ,120,000/tmp ,240,000/tmp ,480,000/tmp ,960,000/tmp

AFS PERFORMANCE ▪ Largest impact is when making lots and lots of small files or very large files ▪ The extra overhead is directly proportional to the total number of bytes in the file(s) ▪ Each individual file has its own additional overhead, but until the number of files get very large, it is not easy to detect

AFS PERFORMANCE

▪ AFS: server-initiated invalidation ▪ NFS: client-initiated invalidation ▪ Server-initiated invalidation performs better than client-initiated invalidation

AFS PERFORMANCE AndrewNFS Total Packets3,82410,225 Packets from Server to Client2,0036,490 Packets from Client to Server1,8183,735 Network Traffic Comparison

AFS PERFORMANCE AFSNFS Callback Mechanism (Server initiated)Client-initiated Invalidation Network traffic reduced by callbacks, large buffers Network traffic increased by limited caching Stateful serversStateless servers Excellent performance in wide-area configurations Inefficient in wide-area configurations Scaleable; maintains performance in any size installation Best in small- to medium-size installations

AFS: QUESTIONS

BIBLIOGRAPHY "AFS and Performance." University of Michigan. Web. Accessed 16 May "Andrew File System." Wikipedia. Wikimedia Foundation, 05 July Web. 16 May "The Andrew File System." University of Wisconsin. Web. Accessed 16 May Coulouris, George F. Distributed Systems: Concepts and Design. 5th ed. Boston: Addison-Wesley, Print. John H Howard, "An Overview of the Andrew File System", in Winter 1988 USENIX Conference Proceedings, 1988 M. L. Kazar, "Synchronization and Caching Issues in the Andrew File System", In Proceedings of the USENIX Winter Technical Conference, 1988