Cloud Computing CS

Similar documents
Cloud Computing CS

Chapter 11 DISTRIBUTED FILE SYSTEMS

Distributed File Systems. CS 537 Lecture 15. Distributed File Systems. Transfer Model. Naming transparency 3/27/09

Distributed File Systems. Distributed Systems IT332

Cloud Computing CS

System that permanently stores data Usually layered on top of a lower-level physical storage medium Divided into logical units called files

Today CSCI Coda. Naming: Volumes. Coda GFS PAST. Instructor: Abhishek Chandra. Main Goals: Volume is a subtree in the naming space

Advanced Operating Systems

Distributed File Systems. Directory Hierarchy. Transfer Model

Distributed File Systems

Database Applications (15-415)

CS 470 Spring Distributed Web and File Systems. Mike Lam, Professor. Content taken from the following:

Distributed File Systems II

AN OVERVIEW OF DISTRIBUTED FILE SYSTEM Aditi Khazanchi, Akshay Kanwar, Lovenish Saluja

Distributed File Systems. CS432: Distributed Systems Spring 2017

Service and Cloud Computing Lecture 10: DFS2 Prof. George Baciu PQ838

Distributed Filesystem

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

Introduction to Cloud Computing

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9b: Distributed File Systems INTRODUCTION. Transparency: Flexibility: Slide 1. Slide 3.

OPERATING SYSTEM. Chapter 12: File System Implementation

CS 470 Spring Distributed Web and File Systems. Mike Lam, Professor. Content taken from the following:

Hadoop File System S L I D E S M O D I F I E D F R O M P R E S E N T A T I O N B Y B. R A M A M U R T H Y 11/15/2017

What is a file system

Chapter 11: Implementing File Systems

NFSv4 as the Building Block for Fault Tolerant Applications

Chapter 11: Implementing File-Systems

DISTRIBUTED FILE SYSTEMS & NFS

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Distributed System. Gang Wu. Spring,2018

Crossing the Chasm: Sneaking a parallel file system into Hadoop

Lustre A Platform for Intelligent Scale-Out Storage

Distributed Systems. Hajussüsteemid MTAT Distributed File Systems. (slides: adopted from Meelis Roos DS12 course) 1/25

Crossing the Chasm: Sneaking a parallel file system into Hadoop

CA485 Ray Walshe Google File System

CLOUD-SCALE FILE SYSTEMS

The Google File System

Current Topics in OS Research. So, what s hot?

NFS: Naming indirection, abstraction. Abstraction, abstraction, abstraction! Network File Systems: Naming, cache control, consistency

Chapter 12: File System Implementation

The Google File System

NFS Design Goals. Network File System - NFS

big picture parallel db (one data center) mix of OLTP and batch analysis lots of data, high r/w rates, 1000s of cheap boxes thus many failures

Chapter 11: File System Implementation

EI 338: Computer Systems Engineering (Operating Systems & Computer Architecture)

Chapter 11: File System Implementation

File-System Structure

GFS: The Google File System

Chapter 10: File System Implementation

Lecture 19. NFS: Big Picture. File Lookup. File Positioning. Stateful Approach. Version 4. NFS March 4, 2005

Chapter 11: Implementing File Systems

Distributed Systems - III

Distributed File Systems: Design Comparisons

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

CS /15/16. Paul Krzyzanowski 1. Question 1. Distributed Systems 2016 Exam 2 Review. Question 3. Question 2. Question 5.

Chapter 18 Distributed Systems and Web Services

Da-Wei Chang CSIE.NCKU. Professor Hao-Ren Ke, National Chiao Tung University Professor Hsung-Pin Chang, National Chung Hsing University

Today: Distributed File Systems

The Google File System

CS307: Operating Systems

OPERATING SYSTEMS II DPL. ING. CIPRIAN PUNGILĂ, PHD.

Chapter 11: Implementing File

CSE 486/586: Distributed Systems

Chapter 11: Implementing File Systems. Operating System Concepts 9 9h Edition

Chapter 12: File System Implementation. Operating System Concepts 9 th Edition

Chapter 12: File System Implementation

MapReduce. U of Toronto, 2014

Lecture 7: Distributed File Systems

-Presented By : Rajeshwari Chatterjee Professor-Andrey Shevel Course: Computing Clusters Grid and Clouds ITMO University, St.

Introduction. Distributed Systems IT332

Google is Really Different.

The MOSIX Scalable Cluster Computing for Linux. mosix.org

Yuval Carmel Tel-Aviv University "Advanced Topics in Storage Systems" - Spring 2013

An Introduction to GPFS

Authors : Sanjay Ghemawat, Howard Gobioff, Shun-Tak Leung Presentation by: Vijay Kumar Chalasani

CS 537: Introduction to Operating Systems Fall 2015: Midterm Exam #4 Tuesday, December 15 th 11:00 12:15. Advanced Topics: Distributed File Systems

Bigtable: A Distributed Storage System for Structured Data By Fay Chang, et al. OSDI Presented by Xiang Gao

FLAT DATACENTER STORAGE. Paper-3 Presenter-Pratik Bhatt fx6568

CPSC 426/526. Cloud Computing. Ennan Zhai. Computer Science Department Yale University

Distributed Systems. Overview. Distributed Systems September A distributed system is a piece of software that ensures that:

Cluster-Level Google How we use Colossus to improve storage efficiency

C 1. Recap. CSE 486/586 Distributed Systems Distributed File Systems. Traditional Distributed File Systems. Local File Systems.

CSE 124: Networked Services Fall 2009 Lecture-19

NPTEL Course Jan K. Gopinath Indian Institute of Science

CSE 5306 Distributed Systems

CS 425 / ECE 428 Distributed Systems Fall Indranil Gupta (Indy) Nov 28, 2017 Lecture 25: Distributed File Systems All slides IG

A Comparative Experimental Study of Parallel File Systems for Large-Scale Data Processing

Distributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi

Distributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs

Today: Distributed File Systems

CS 138: Google. CS 138 XVII 1 Copyright 2016 Thomas W. Doeppner. All rights reserved.

Google File System, Replication. Amin Vahdat CSE 123b May 23, 2006

Chapter 11: Implementing File Systems

Today: Distributed File Systems. File System Basics

MapReduce Spark. Some slides are adapted from those of Jeff Dean and Matei Zaharia

Distributed file systems

Distributed Systems Principles and Paradigms

DFS Case Studies, Part 1

CPE731 Distributed System Models

CS 153 Design of Operating Systems Winter 2016

Transcription:

Cloud Computing CS 15-319 Distributed File Systems and Cloud Storage Part I Lecture 12, Feb 22, 2012 Majd F. Sakr, Mohammad Hammoud and Suhail Rehman 1

Today Last two sessions Pregel, Dryad and GraphLab Today s session Distributed File Systems- Part I Announcement: Project update is due today 2

Discussion on Distributed File Systems Distributed File Systems (DFSs) Basics DFS Aspects 3

Distributed File Systems Why File Systems? To organize data (as files) To provide a means for applications to store, access, and modify data Why Distributed File Systems? Big data continues to grow In contrary to a local file system, a distributed file system (DFS) can hold big data and provide access to this data to many clients distributed across a network

NAS versus SAN Another term for DFS is network attached storage (NAS), referring to attaching storage to network servers that provide file systems A similar sounding term that refers to a very different approach is storage area network (SAN) SAN makes storage devices (not file systems) available over a network Client Computer Client Computer File Server (Providing NAS) Client Computer Client Computer LAN Database Server SAN

Benefits of DFSs DFSs provide: 1. File sharing over a network: without a DFS, we would have to exchange files by e-mail or use applications such as the Internet s FTP 2. Transparent files accesses: A user s programs can access remote files as if they are local. The remote files have no special APIs; they are accessed just like local ones 3. Easy file management: managing a DFS is easier than managing multiple local file systems

DFS Components DFS information can be typically categorized as follows: 1. The data state: This is the contents of files 2. The attribute state (meta data): This is the information about each file (e.g., file s size and access control list) 3. The open-file state: This includes which files are open or otherwise in use, as well as describing how files are locked Designing a DFS entails determining how its various components are placed. Specifically, by component placement we indicate: What resides on the servers What resides on the clients

DFS Component Placement (1) The data and the attribute states permanently reside on the server s local file system, but recently accessed or modified information might reside in server and/or client caches The open-file state is transitory; it changes as processes open and close files Data Cache Data Cache Attribute Cache Network Attribute Cache Local File System Open-File State Open-File State Client Server

DFS Component Placement (2) Three basic concerns govern the DFS components placement strategy: 1. Access speed: Caching information on clients improves performance considerably 2. Consistency: If clients cache information, do all parties share the same view of it? 3. Recovery: If one or more computers crash, to what extent are the others affected? How much information is lost?

Discussion on Distributed File Systems Distributed File Systems (DFSs) Basics DFS Aspects 10

DFS Aspects Aspect Description Architecture How are DFSs generally organized? Processes Who are the cooperating processes? Are processes stateful or stateless? Communication What is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? Naming How is naming often handled in DFSs? Synchronization What are the file sharing semantics adopted by DFSs? Consistency and Replication What are the various features of client-side caching as well as server-side replication? Fault Tolerance How is fault tolerance handled in DFSs?

DFS Aspects Aspect Description Architecture How are DFSs generally organized? Processes Who are the cooperating processes? Are processes stateful or stateless? Communication What is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? Naming How is naming often handled in DFSs? Synchronization What are the file sharing semantics adopted by DFSs? Consistency and Replication What are the various features of client-side caching as well as server-side replication? Fault Tolerance How is fault tolerance handled in DFSs?

Architectures 1. Client-Server Distributed File Systems 2. Cluster-Based Distributed File Systems 3. Symmetric Distributed File Systems

Network File System Many distributed file systems are organized along the lines of client-server architectures Sun Microsystem s Network File System (NFS) is one of the most widely-deployed DFSs for Unix-based systems NFS comes with a protocol that describes precisely how a client can access a file stored on a (remote) NFS file server NFS allows a heterogeneous collection of processes, possibly running on different OSs and machines, to share a common file system

Remote Access Model The model underlying NFS and similar systems is that of remote access model Client Replies from server Server File In this model, clients: Requests from client to access remote file File stays on server Are offered transparent access to a file system that is managed by a remote server Are normally unaware of the actual location of files Areofferedaninterfacetoafilesystemsimilartotheinterfaceoffered by a conventional local file system

Upload/Download Model A contrary model, referred to as upload/download model, allows a client to access a file locally after having downloaded it from the server File moved to client Server Client File File New File All accesses are done at the client side When client is done, file is returned to the server The Internet s FTP service can be used this way when a client downloads a complete file, modifies it, and then puts it back

The Basic NFS Architecture Client Server System call layer System call layer Virtual File System (VFS) layer Virtual File System (VFS) layer Local file system interface NFS client NFS server Local file system interface RPC client stub RPC server stub A Client Request in NFS Network

Architectures 1. Client-Server Distributed File Systems 2. Cluster-Based Distributed File Systems 3. Symmetric Distributed File Systems

Data-Intensive Applications Today there is a deluge of large data-intensive applications Most data-intensive applications fall into one of two styles of computing: Internet services (or cloud computing) High-performance computing (HPC) Cloud computing and HPC applications run typically on thousands of compute nodes and handle big data Visualization of entropy in Terascale Supernova Initiative application. Image from Kwan-Liu Ma s visualization team at UC Davis

Cluster-Based Distributed File Systems The underlying cluster-based file system is a key component for providing scalable data-intensive application performance The cluster-based file system divides and distributes big data, using file striping techniques, for allowing concurrent data accesses The cluster-based file system could be either a cloud computing or an HPC oriented distributed file system Google File System (GFS) and S3 are examples of cloud computing DFSs Parallel Virtual File System (PVFS) and IBM s General Parallel File System (GPFS) are examples of HPC DFSs

File Striping Techniques Server clusters are often used for parallel applications and their associated file systems are adjusted to satisfy their requirements One well-known technique is to deploy file-striping techniques, by which a single file is distributed across multiple servers Hence, it becomes possible to fetch different parts in parallel Accessing file parts in parallel a d c b d e a e c b b d c e a

Round-Robin Distribution (1) How to stripe a file over multiple machines? Round-Robin is typically a reasonable default solution Logical File 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Stripe Size Striping Unit 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 Server 1 Server 2 Server 3 Server 4

Round-Robin Distribution (2) Clients perform writes/reads of file at various regions Client I: 512K write, offset 0 Client II: 512K write, offset 512 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 4 1 5 2 6 3 7 8 12 9 13 10 14 11 15 0 4 8 12 1 5 9 13 2 6 10 14 3 7 11 15 Server 1 Server 2 Server 3 Server 4

2D Round-Robin Distribution (1) What happens when we have many servers (say 100s)? 2D distribution can help Logical File 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Stripe Size Striping Unit 0 2 4 6 1 3 5 7 8 10 12 14 9 11 13 15 Server 1 Server 2 Server 3 Server 4 Group Size = 2

2D Round-Robin Distribution (2) 2D distribution can limit the number of servers per client Client I: 512K write, offset 0 Client II: 512K write, offset 512 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 4 1 5 2 6 3 7 8 12 9 13 10 14 11 15 0 2 4 6 1 3 5 7 8 10 12 14 9 11 13 15 Server 1 Server 2 Server 3 Server 4 Group Size = 2

General Purpose Applications For general-purpose data-intensive applications, or those with irregular or many different types of data structures, file striping may not be effective In those cases, it is often more convenient to partition the file system as a whole and simply store files on different servers File block of file a a b c d e a b c d e a b c d e

GFS Data Distribution Policy The Google File System (GFS) is a cloud-computing-based scalable DFS for large distributed data-intensive applications GFS divides large files into multiple pieces called chunks or blocks (by default 64MB) and stores them on different data servers This design is referred to as block-based design Each GFS chunk has a unique 64-bit identifier and is stored as a file in the lower-layer local file system on the data server GFS distributes chunks across cluster data servers using a random distribution policy

GFS Random Distribution Policy Server 0 (Writer) 0 0 1 1 2 2 3 3 4 4 5 5 6 6 Server 1 0 0 2 2 3 3 3 3 5 5 0M 64M 128M 192M 256M 320M 384M Server 2 Server 3 1 1 2 2 4 4 6 6 0 0 1 1 4 4 5 5 6 6 Load Imbalance

GFS Architecture The storage and compute capabilities of a cluster are organized in two ways: 1. Co-locate storage and compute GFS in the same node 2. Separate storage nodes from compute nodes File name, chunk index GFS client Master Contact address Chunk Id, range Chunk Server Chunk Server Chunk Server Chunk data Linux File System Linux File System Linux File System

PVFS Data Distribution Policy Parallel Virtual File System (PVFS) is an HPC-based scalable DFS for large distributed data-intensive applications PVFS divides large files into multiple pieces called stripe units (by default 64KB) and stores them on different data servers This design is referred to as object-based design Unlike the block-based design of GFS, PVFS stores an object (or a handle) as a file that includes all the stripe units at a data server PVFS distributes stripe units across cluster data servers using a round robin policy

PVFS Round-Robin Distribution Policy Server 0 (Writer) Server 1 0M 64M 128M 192M 256M 320M 384M Server 2 Server 3 0 0 1 1 2 2 4 4 5 5 6 6 0 0 1 1 3 3 5 5 4 4 0 0 2 2 4 4 6 6 3 3 1 1 2 2 3 3 5 5 6 6 Load Balance

PVFS Architecture The storage and compute capabilities of a cluster are organized in two ways: 1. Co-locate storage and compute in the same node 2. Separate storage nodespvfs from compute nodes Metadata Manager Compute Nodes Network I/O Nodes

Architectures Client-Server Distributed File Systems Cluster-Based Distributed File Systems Symmetric Distributed File Systems

Ivy Fully symmetric organizations that are based on peer-to-peer technology also exist All current proposals use a DHT-based system for distributing data, combined with a key-based lookup mechanism As an example, Ivy is a distributed file system that is built using a Chord DHT-based system Data storage in Ivy is realized by a block-oriented (i.e., blocks are distributed over storage nodes) distributed storage called DHash

Ivy Architecture Ivy consists of 3 separate layers: Node where a file system is rooted File System Layer Ivy Ivy Ivy Block-Oriented Storage DHash DHash DHash DHT Layer Chord Chord Chord

DFS Aspects Aspect Description Architecture How are DFSs generally organized? Processes Who are the cooperating processes? Are processes stateful or stateless? Communication What is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? Naming How is naming often handled in DFSs? Synchronization What are the file sharing semantics adopted by DFSs? Consistency and Replication What are the various features of client-side caching as well as server-side replication? Fault Tolerance How is fault tolerance handled in DFSs?

Processes (1) Cooperating processes in DFSs are usually the storage servers and file manager(s) The most important aspect concerning DFS processes is whether they should be stateless or stateful 1. Stateless Approach: Does not require that servers maintain any client state When a server crashes, there is no need to enter a recovery phase to bring the server to a previous state Locking a file cannot be easily done E.g., NFSv3 and PVFS (no client-side caching)

Processes (2) 2. Stateful Approach: Requires that a server maintains some client state Clients can make effective use of caches but this would entail an efficient underlying cache consistency protocol Provides a server with the ability to support callbacks (i.e., the ability to do RPC to a client) in order to keep track of its clients E.g., NFSv4 and HDFS

DFS Aspects Aspect Description Architecture How are DFSs generally organized? Processes Who are the cooperating processes? Are processes stateful or stateless? Communication What is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? Naming How is naming often handled in DFSs? Synchronization What are the file sharing semantics adopted by DFSs? Consistency and Replication What are the various features of client-side caching as well as server-side replication? Fault Tolerance How is fault tolerance handled in DFSs?

Communication Communication in DFSs is mainly based on remote procedure calls (RPCs) The main reason for choosing RPC is to make the system independent from underlying OSs, networks, and transport protocols In NFS, all communication between a client and server proceeds along the Open Network Computing RPC (ONC RPC) GFS uses RPC and may break a read into multiple RPCs to increase parallelism PVFS currently uses TCP for all its internal communication

RPCs in NFS Client Server Up until NFSv4, the client was made responsible for making the server s life as easy as possible by keeping requests simple The drawback becomes apparent when considering the use of NFS in a wide-area system Time Lookup Read Lookup name Read file data In that case, the extra latency of a second RPC leads to performance degradation To circumvent such a problem, NFSv4 supports compound procedures Time Client Lookup Open Read Server Lookup name Open file Read file data

Next Class: DFS Aspects Aspect Description Architecture How are DFSs generally organized? Processes Who are the cooperating processes? Are processes stateful or stateless? Communication What is the typical communication paradigm followed by DFSs? How do processes in DFSs communicate? Naming How is naming often handled in DFSs? Synchronization What are the file sharing semantics adopted by DFSs? Consistency and Replication What are the various features of client-side caching as well as server-side replication? Fault Tolerance How is fault tolerance handled in DFSs?