Zap Steven Osman Dinesh Subhraveti Gong Su Jason Nieh A System for Migrating Computing Environments.

Slides:



Advertisements
Similar presentations
Applications of Feather-Weight Virtual Machines (FVMs) Hadi Salimi Distributed Systems Lab, School of Computer Engineering, Iran University of Science.
Advertisements

More on Processes Chapter 3. Process image _the physical representation of a process in the OS _an address space consisting of code, data and stack segments.
Extensibility, Safety and Performance in the SPIN Operating System Presented by Allen Kerr.
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
Using DSVM to Implement a Distributed File System Ramon Lawrence Dept. of Computer Science
A SECURE JAILING SYSTEM FOR CONFINING UNTRUSTED APPLICATIONS Guido Noordende, ´Ad´am Balogh, Rutger Hofman, Frances M. T. Brazier, and Andrew S. Tanenbaum.
 Introduction Originally developed by Open Software Foundation (OSF), which is now called The Open Group ( Provides a set of tools and.
Technical Architectures
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
MobiDesk: Mobile Virtual Desktop Computing Ricardo A. Baratto, Shaya Potter, Gong Su, Jason Nieh Network Computing Laboratory Columbia University September.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
3.5 Interprocess Communication
MobiDesk: Mobile Virtual Desktop Computing Ricardo A. Baratto, Shaya Potter, Gong Su, Jason Nieh Network Computing Laboratory Columbia University.
Process in Unix, Linux and Windows CS-3013 C-term Processes in Unix, Linux, and Windows CS-3013 Operating Systems (Slides include materials from.
CS 603 Threads, Processes, and Agents March 18, 2002.
Linux Operating System
PRASHANTHI NARAYAN NETTEM.
1 Distributed Systems: Distributed Process Management – Process Migration.
Processes in Unix, Linux, and Windows CS-502 Fall Processes in Unix, Linux, and Windows CS502 Operating Systems (Slides include materials from Operating.
Copyright Arshi Khan1 System Programming Instructor Arshi Khan.
Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access memory.
5205 – IT Service Delivery and Support
Design and Implementation of a Single System Image Operating System for High Performance Computing on Clusters Christine MORIN PARIS project-team, IRISA/INRIA.
Chapter 3 Operating Systems Concepts 1. A Computer Model An operating system has to deal with the fact that a computer is made up of a CPU, random access.
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Chapter 6 Operating System Support. This chapter describes how middleware is supported by the operating system facilities at the nodes of a distributed.
Distributed Systems. Interprocess Communication (IPC) Processes are either independent or cooperating – Threads provide a gray area – Cooperating processes.
Operating System Support for Virtual Machines Samuel T. King, George W. Dunlap,Peter M.Chen Presented By, Rajesh 1 References [1] Virtual Machines: Supporting.
CSC 322 Operating Systems Concepts Lecture - 4: by Ahmed Mumtaz Mustehsan Special Thanks To: Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall,
Today’s Topics Introducing process: the basic mechanism for concurrent programming –Process management related system calls Process creation Process termination.
4P13 Week 1 Talking Points. Kernel Organization Basic kernel facilities: timer and system-clock handling, descriptor management, and process Management.
Chapter Two Exploring the UNIX File System and File Security.
Our work on virtualization Chen Haogang, Wang Xiaolin {hchen, Institute of Network and Information Systems School of Electrical Engineering.
Lecture 3 Process Concepts. What is a Process? A process is the dynamic execution context of an executing program. Several processes may run concurrently,
Threads, SMP, and Microkernels Chapter 4. Process Resource ownership - process is allocated a virtual address space to hold the process image Scheduling/execution-
30 October Agenda for Today Introduction and purpose of the course Introduction and purpose of the course Organization of a computer system Organization.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
Copyright © cs-tutorial.com. Overview Introduction Architecture Implementation Evaluation.
8-Sep Operating Systems Yasir Kiani. 8-Sep Agenda for Today Review of previous lecture Process scheduling concepts Process creation and termination.
OPERATING SYSTEM SUPPORT DISTRIBUTED SYSTEMS CHAPTER 6 Lawrence Heyman July 8, 2002.
Eduardo Gutarra Velez. Outline Distributed Filesystems Motivation Google Filesystem Architecture The Metadata Consistency Model File Mutation.
© 2004 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice Cruz: Application-Transparent Distributed.
SoftwarePot: A Secure Software Circulation System Yoshihiro OYAMA (Univ. of Tokyo / JST) Kazuhiko KATO (Univ. of Tsukuba / JST)
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
1 Lecture 6 Introduction to Process Management COP 3353 Introduction to UNIX.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
M. Accetta, R. Baron, W. Bolosky, D. Golub, R. Rashid, A. Tevanian, and M. Young MACH: A New Kernel Foundation for UNIX Development Presenter: Wei-Lwun.
Full and Para Virtualization
CSE 466 – Fall Introduction - 1 User / Kernel Space Physical Memory mem mapped I/O kernel code user pages user code GPLR virtual kernel C
CENG334 Introduction to Operating Systems 1 Erol Sahin Dept of Computer Eng. Middle East Technical University Ankara, TURKEY URL:
Silberschatz, Galvin and Gagne ©2011 Operating System Concepts Essentials – 8 th Edition Chapter 2: The Linux System Part 2.
Introduction Contain two or more CPU share common memory and peripherals. Provide greater system throughput. Multiple processor executing simultaneous.
Operating Systems Unit 2: – Process Context switch Interrupt Interprocess communication – Thread Thread models Operating Systems.
Threads, SMP, and Microkernels Chapter 4. Processes and Threads Operating systems use processes for two purposes - Resource allocation and resource ownership.
Towards a High Performance Extensible Grid Architecture Klaus Krauter Muthucumaru Maheswaran {krauter,
Virtualization Neependra Khare
GridOS: Operating System Services for Grid Architectures
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
Kernel Design & Implementation
OpenMosix, Open SSI, and LinuxPMI
Container-based Operating System Virtualization: A scalable, High-performance Alternative to Hypervisors Stephen Soltesz, Herbert Potzl, Marc E. Fiuczynski,
Backtracking Intrusions
Chapter 2: The Linux System Part 2
Operating Systems Lecture 6.
Operating Systems Lecture 4.
Operating Systems Lecture 1.
Prof. Leonardo Mostarda University of Camerino
SCONE: Secure Linux Containers Environments with Intel SGX
CS510 Operating System Foundations
Presentation transcript:

Zap Steven Osman Dinesh Subhraveti Gong Su Jason Nieh A System for Migrating Computing Environments

Benefits of Migration Dynamic Load Balancing Mobility Data Access Locality Improved Administration Fault Resilience

Clustered System Approach Single system image across a cluster Good for load-balancing Examples include, MOSIX, Sprite May leave dependency on previous host May be new operating system or significant kernel changes

Middleware/Language Approach Object-based approach using special programming language or middleware Examples include, Abacus, Emerald, Globus, Legion, Rover Requires applications to be rewritten

User-level Approach No operating system changes Good for long-running applications Examples include, Condor, CoCheck, Libckpt, MPVM Does not support many common operating system services

Virtual Machine Monitor Approach Support any operating system No application changes Example, using VMware for migration Must migrate the whole operating system Potentially higher overhead

Introducing Zap Transparent migration Unmodified legacy applications Networked applications Commodity operating system Minimal operating system changes Leaves nothing behind Low overhead

Outline Background & Motivation Difficulties of Migration Zap components Virtualization Migration Experimental Results Conclusion

Migration Difficulties int iChildPID; if (iChildPID=fork()) { /* parent does some work */ waitpid(iChildPID); } else { /* child does some work */ exit(0); }

Resource Consistency Problem Host AHost B PID 20 PID 10 Parent invoked waitpid(20) PID 20 PID 10 PID 40 PID 30

Host B PID 20 Resource Conflict Problem Host A PID 20 PID 10 Resources May Conflict With Other Processes PID 20 PID 10 PID 20 PID 10

Resource Dependency Problem Host AHost B Child Parent Parent and child depend on each other Parent

Problem Recap Resource consistency Names can ’ t change Resource conflict Names can ’ t be duplicates Resource dependency Migration must be complete

Solution Group processes into a POD (Process Domain) that has a private virtual namespace PODs can contain one process, one group of processes, or a whole user session PODs are migrated as a unit Solves Resource consistency problem Resource conflict problem Resource dependency problem

Zap Architecture Zap combines Thin virtualization layer Checkpoint/restart mechanism Checkpoint/restart offers: Easier to implement than demand paging Leaves nothing behind Suspend sessions Easily configure and clone environments Dynamic system configuration

What Should Zap Virtualize? Process identifiers (PIDs) Inter-process communication (IPC) keys Memory File system structure Network connections Devices

PID and IPC Key Virtualization & Migration Create unique namespace for the POD Names are virtualized When entering a system call, replace POD virtual identifiers with real ones When exiting a system call, replace real return values with POD virtual ones Mask out identifiers that do not belong to the POD

Memory Virtualization & Migration Like IPC, create unique shared memory namespace Modern architectures support virtual memory Thank you modern architectures! Migration optimization: Move only data pages, code pages can be remapped

File System Virtualization & Migration Some filenames can ’ t conflict: /var/run/httpd.pid Some directories have unique configuration: /etc Some directories depend on the current processes /proc

File System Virtualization & Migration Create a directory structure for POD Use network file systems Create private POD directories Good for /tmp, /var & POD specific configuration Private /proc directory Private /dev directory

Host FS POD FS File System Example Use chroot() to map POD root directory bin etc pod bin  NFS:/pods/bin dev  Dynamic proc  Dynamic tmp  Private POD

Networking Virtualization & Migration Two network addresses: Persistent internal address Host-dependent external address For connection migration: Transport layer sees virtual address Network layer sees real address Transport layer independent Initial virtual address is real address

Network ADDR. 1 Network ADDR. 2 1212 Application Transport ADDR. 1 1212 Transport ADDR. 2 Network ADDR. 1 Network ADDR. 2 1212 12=1212=12 21=2121=21 Network ADDR. 3 Network ADDR. 2 3232 12=3212=32 21=2121=21 12=3212=32 21=2321=23 Virtual Networking

Device Virtualization & Migration Device migration is hard Pseudo Terminal Sound Device CDRW During a Recording Session Electron Microscope

Device Migration & Virtualization Pseudo Terminal  Virtual device configuration+data Sound Device  Virtual device configuration Recording CDRW  Migrate later Electron Microscope  Communicate with original host

Device Migration & Virtualization Unsupported devices do not appear in a POD ’ s /dev Zap currently supports pseudo terminals, ensuring their names are consistent after migration (e.g. /dev/pts/2)

Zap Implementation Developed for Linux 2.4 Zap design enables Loadable kernel module No need to rebuild the kernel Intercept system calls for virtualization

Zap Implementation User space kernel space Kernel System Calls User Processes ZAP Virtualization Zap Migration

Virtualization Cost Created micro-benchmarks PID calls (getpid) IPC calls (shmget/ctl, semget/ctl) Process creation calls (fork, execve, exit) Used macro-benchmarks Apache Build Linux kernel Volano

Virtualization Results

Zap incurs low overhead

Migration Cost – VNC Session

Migration Cost – Apache Apache Default configuration

Migration Cost – Time

Migration Cost – Space

Migration Cost Zap can be fast <1 second checkpoint/restart times Includes Zap networking round-trip

Zap Offers transparent migration of legacy and network applications Introduces PODs Consistency Conflict free Avoids Unwanted dependencies Leaves nothing behind Fast and lightweight

For more information … Zap computing Network Computing Laboratory

Future Work Secure migration Trusted images, POD sandbox, etc. Generalized device support Migration policies Heterogeneity Contextualization Resource management