Distributed Systems CS

Slides:



Advertisements
Similar presentations
An Overview Of Virtual Machine Architectures Ross Rosemark.
Advertisements

Virtualization Dr. Michael L. Collard
Virtualisation From the Bottom Up From storage to application.
CS-3013 & CS-502, Summer 2006 Virtual Machine Systems1 CS-502 Operating Systems Slides excerpted from Silbershatz, Ch. 2.
Distributed Systems CS Virtualization- Part I Lecture 23, Dec 5, 2011 Majd F. Sakr, Mohammad Hammoud andVinay Kolar 1.
Chapter 4 Structure of Operating Systems Copyright © 2008.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
ELEC6200, Fall 07, Oct 29 Westrom: Virtual Machines 1 Kenneth Westrom ELEC-6620.
Virtualization for Cloud Computing
An Overview of Virtual Machine Architectures by J.E. Smith and Ravi Nair presented by Sebastian Burckhardt University of Pennsylvania CIS 700 – Virtualization.
CIS 700 Machine Virtualization Autumn 2004.
Virtualization 101.
Distributed Systems CS Virtualization- Overview Lecture 22, Dec 4, 2013 Mohammad Hammoud 1.
Virtualization Technology Prof D M Dhamdhere CSE Department IIT Bombay Moving towards Virtualization… Department of Computer Science and Engineering, IIT.
Tanenbaum 8.3 See references
Computer System Architectures Computer System Software
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Virtual Machines: Versatile Platforms for Systems and 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.
Virtualization Concepts Presented by: Mariano Diaz.
Chapter 2: Operating-System Structures. 2.2 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Jan 14, 2005 Operating System.
Virtual Machine Security Systems Presented by Long Song 08/01/2013 Xin Zhao, Kevin Borders, Atul Prakash.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
CS533 Concepts of Operating Systems Jonathan Walpole.
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
CS 346 – Chapter 2 OS services –OS user interface –System calls –System programs How to make an OS –Implementation –Structure –Virtual machines Commitment.
Operating Systems Security
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Distributed Systems CS Lecture 25, November 23, 2014 Gregory Kesden Borrowed from our good friends in Doha: Majd F. Sakr, Mohammad Hammoud andVinay.
Full and Para Virtualization
Lecture 12 Virtualization Overview 1 Dec. 1, 2015 Prof. Kyu Ho Park “Understanding Full Virtualization, Paravirtualization, and Hardware Assist”, White.
Introduction Why are virtual machines interesting?
Operating-System Structures
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
Cloud Computing – UNIT - II. VIRTUALIZATION Virtualization Hiding the reality The mantra of smart computing is to intelligently hide the reality Binary->
Virtual Machines Mr. Monil Adhikari. Agenda Introduction Classes of Virtual Machines System Virtual Machines Process Virtual Machines.
E Virtual Machines Lecture 1 What is Virtualization? Scott Devine VMware, Inc.
Unit 2 VIRTUALISATION. Unit 2 - Syllabus Basics of Virtualization Types of Virtualization Implementation Levels of Virtualization Virtualization Structures.
Virtualization Neependra Khare
1 Virtualization "Virtualization software makes it possible to run multiple operating systems and multiple applications on the same server at the same.
CS 695 Topics in Virtualization and Cloud Computing, Autumn 2012 CS 695 Topics in Virtualization and Cloud Computing More Introduction + Processor Virtualization.
Computer System Structures
Computer System Structures
Virtualization for Cloud Computing
A move towards Greener Planet
VIRTUALIZATION.
Virtualization.
Virtual Machine Monitors
Agenda Hardware Virtualization Concepts
L2- Virtualization Technology
Current Generation Hypervisor Type 1 Type 2.
Virtualization Dr. Michael L. Collard
Virtual Machines: Versatile Platforms for Systems and Processes
Operating System Structure
1. 2 VIRTUAL MACHINES By: Satya Prasanna Mallick Reg.No
OS Virtualization.
Virtualization Layer Virtual Hardware Virtual Networking
Virtualization 101.
Virtualization Techniques
A Survey on Virtualization Technologies
Virtual Machines (Introduction to Virtual Machines)
An Overview of Virtual Machine Architectures
Concurrency, Processes and Threads
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Introduction to Virtual Machines
Introduction to Virtual Machines
Xen and the Art of Virtualization
A Virtual Machine Monitor for Utilizing Non-dedicated Clusters
Lecture Topics: 11/1 Hand back midterms
Hypervisor A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer.
Presentation transcript:

Distributed Systems CS 15-440 Virtualization- Overview Lecture 22, Dec 10, 2012 Majd F. Sakr, Mohammad Hammoud

Today… Last session DFS Today’s session Virtualization – Overview Announcements: PS4 is due on Dec 12 by 11:59PM Project 4 is due on Dec 15 by 11:59PM (No deadline extension) Wednesday’s session on Dec 12 (the last session) will be a review session.

Discussion on Virtualization Objectives Discussion on Virtualization Partitioning and Multiprocessor virtualization Virtual machine types Virtualization, para-virtualization, virtual machines and hypervisors Why virtualization, and virtualization properties

Intended Learning Outcomes: Virtualization Considered: a reasonably critical and comprehensive perspective. Thoughtful: Fluent, flexible and efficient perspective. Masterful: a powerful and illuminating ILO8 Explain resource virtualization, how it applies to distributed systems, and how it allows distributed resource management and scheduling ILO8.1 Identify the role of virtualization in distributed systems and describe process and system virtual machines ILO8 ILO8.1

Discussion on Virtualization Objectives Discussion on Virtualization Partitioning and Multiprocessor virtualization Virtual machine types Virtualization, para-virtualization, virtual machines and hypervisors Why virtualization, and virtualization properties Why virtualization, and virtualization properties

Benefits of Virtualization Here are some of the benefits that are typically provided by a virtualized system A system VM provides a sandbox that isolates one system environment from other environments Virtualization helps isolate the effects of a failure to the VM where the failure occurred Multiple Secure Environment Failure Isolation Mixed-OS Environment Better System Utilization A single hardware platform can support multiple operating systems concurrently A virtualized system can be (dynamically or statically) re-configured for changing needs

Operating Systems Limtations OSs provide a way of virtualizing hardware resources among processes This may help isolate processes from one another However, this does not provide a virtual machine to a user who may wish to run a different OS Having hardware resources managed by a single OS limits the flexibility of the system in terms of available software, security, and failure isolation Virtualization typically provides a way of relaxing constraints and increasing flexibility

Virtualization Properties Fault Isolation Software Isolation Performance Isolation (accomplished through scheduling and resource allocation) All VM state can be captured into a file (i.e., you can operate on VM by operating on file– cp, rm) Complexity is proportional to virtual HW model and independent of guest software configuration All guest actions go through the virtualizing software which can inspect, modify, and deny operations Isolation Encapsulation Interposition 1 2 3

What is Virtualization? Informally, a virtualized system (or subsystem) is a mapping of its interface, and all resources visible through that interface, to the interface and resources of a real system Formally, virtualization involves the construction of an isomorphism that maps a virtual guest system to a real host system (Popek and Goldberg 1974) Function V maps the guest state to the host state For a sequence of operations, e, that modifies a guest state, there is a corresponding e’ in the host that performs an equivalent modification How can this be managed? Guest e(Si) Si Sj V(Si) V(Sj) Host e’(Si’) Si’ Sj’

Abstraction The key to managing complexity in computer systems is their division into levels of abstraction separated by well-defined interfaces Levels of abstraction allow implementation details at lower levels of a design to be ignored or simplified File File Disk Files are an abstraction of a Disk A level of abstraction provides a simplified interface to underlying resources

Virtualization and Abstraction Virtualization uses abstraction but is different in that it does not necessarily hide details; the level of detail in a virtual system is often the same as that in the underlying real system Virtual Disks File File Disk Virtualization provides a different interface and/or resources at the same level of abstraction

Discussion on Virtualization Objectives Discussion on Virtualization Partitioning and Multiprocessor virtualization Virtual machine types Virtualization, para-virtualization, virtual machines and hypervisors Virtualization, para-virtualization, virtual machines and hypervisors Why virtualization, and virtualization properties

Virtual Machines and Hypervisors The concept of virtualization can be applied not only to subsystems such as disks, but to an entire machine denoted as a virtual machine (VM) A VM is implemented by adding a layer of software to a real machine so as to support the desired VM’s architecture This layer of software is often referred to as virtual machine monitor (VMM) Early VMMs are implemented in firmware Today, VMMs are often implemented as a co-designed firmware-software layer, referred to as the hypervisor

Virtual Machine Monitor A Mixed OS Environment Multiple VMs can be implemented on a single hardware platform to provide individuals or user groups with their own OS environments VM1 VM2 VM3 VM4 VM5 Linux Red Hat Solaris 10 XP Vista Mac Virtual Machine Monitor Hardware

Full Virtualization Traditional VMMs provide full-virtualization: The functionally provided is identical to the underlying physical hardware The functionality is exposed to the VMs They allow unmodified guest OSs to execute on the VMs This might result in some performance degradation E.g., VMWare provides full virtualization On IA-32, certain privileged instructions must be patched and handled by the VMM. Philosophy: Make VMM do as little work as possible (e.g., paging and memory management are the responsibility of guest OS).

Para-Virtualization Other types of VMMs provide para-virtualization: They provide a virtual hardware abstraction that is similar, but not identical to the real hardware They modify the guest OS to cooperate with the VMM They result in lower overhead leading to better performance E.g., Xen provides both para-virtualization as well as full-virtualization

Virtualization and Emulation VMs can employ emulation techniques to support cross-platform software compatibility Compatibility can be provided either at the system level (e.g., to run a Windows OS on Macintosh) or at the program or process level (e.g., to run Excel on a Sun Solaris/SPARC platform) Emulation is the process of implementing the interface and functionality of one system on a system having a different interface and functionality It can be argued that virtualization itself is simply a form of emulation

Discussion on Virtualization Objectives Discussion on Virtualization Partitioning and Multiprocessor virtualization Virtual machine types Virtual machine types Virtualization, para-virtualization, virtual machines and hypervisors Why virtualization, and virtualization properties

Background: Computer System Architectures 1 Application Programs Instruction Set Architecture (ISA): 7 & 8 2 Software 3 3 Application Binary Interface (ABI): 3 & 7 Libraries OS 4 5 6 Application Programming Interface (API): 2 & 7 Drivers Memory Manager Scheduler ISA 8 8 8 8 7 7 9 Execution Hardware Memory Translation 10 10 System Interconnect (bus) Hardware 11 11 12 Controllers Controllers 13 14 I/O Devices & Networking Main Memory

Types of Virtual Machines As there is a process perspective and a system perspective of machines, there are also process-level and system-level VMs Virtual machines can be of two types: 1. Process VM Capable of supporting an individual process 2. System VM Provides a complete system environment Supports an OS with potentially many types of processes

Process Virtual Machine Application Process Application Process Guest Virtualizing Software Virtual Machine Runtime OS Hardware Host Runtime is placed at the ABI interface Runtime emulates both user-level instructions and OS system calls

System Virtual Machine Applications Applications OS Virtual Machine OS Guest Virtualizing Software VMM Hardware Host VMM emulates the ISA used by one hardware platform to another, forming a system VM A system VM is capable of executing a system software environment developed for a different set of hardware

Native and Hosted VM Systems Guest Applications Guest OS VMM Host OS Hardware Guest Applications Guest OS VMM Host OS Hardware Guest Applications Guest OS VMM Hardware Applications OS Hardware Nonprivileged modes Privileged modes Traditional Uniprocessor System Native VM System User-mode Hosted VM System Dual-mode Hosted VM System

A Taxonomy Process VMs System VMs Multiprogrammed Systems Dynamic Same ISA Different ISA Same ISA Different ISA Multiprogrammed Systems Dynamic Translators Classic-System VMs Whole-System VMs Dynamic Binary Optimizers HLL VMs Hosted VMs Co-designed VMs

The Versatility of VMs Java Application JVM Linux IA-32 Windows IA-32 Crusoe VLIW JVM VMWare Code Morphing

Discussion on Virtualization Objectives Discussion on Virtualization Partitioning and Multiprocessor virtualization Partitioning and Multiprocessor virtualization Virtual machine types Virtualization, para-virtualization, virtual machines and hypervisors Why virtualization, and virtualization properties

Multiprocessor Systems Multiprocessor systems might have 1000s of processors connected to TBs of memory and PBs of disk capacity Often there is a mismatch between the ideal number of processors an application needs and the actual number of physical processors available It is more often the case that applications cannot exploit more than a fraction of the processors available. The is mainly because of: Limitations in the parallelism available in the programs Limitations in the scalability of applications due to the overhead of communication between processors

Partitioning The increasing availability of multiprocessor systems has led to the examination of techniques that can help utilize them more effectively Techniques have been developed in which the multiprocessor system can be partitioned into multiple partitions A partition is given a subset of the resources available on the system Hence, using partitioning, multiple applications can simultaneously exploit the available resources of the system Partitioning can be achieved: Either in-space (referred to as physical partitioning) Or in-time (referred to as logical partitioning)

Physical Partitioning With physical partitioning, each partition is assigned resources that are physically distinct from the resources used by the other partitions Partition 1 Partition 2 Partition 3 P P P P P P P P P P P P P P P P P P P P P P P P M M M M M M I/O I/O I/O I/O I/O I/O D D D D D D D D D D D D

Physical Partitioning Physical partitioning allows a partition to own its resources physically It is not permissible for two partitions to share the resources of a single system board Partitions are configured by a central control unit that receives commands from the console of the system admin and provisions hardware resources accordingly The number of partitions that can be supported in physically partitioned systems is limited to the number of available physical processors

Physical Partitioning- Advantages Physical partitioning provides: Failure Isolation: it ensures that in the event of a failure, only the part of the physical system that houses the failing partition will be affected Better security isolation: Each partition is protected from the possibility of intentional or unintentional denial-of-service attacks by other partitions Better ability to meet system-level objectives (these result from contracts between system owners and users of the system) Easier management of resources: no need of sophisticated algorithms for scheduling and management of resources

Physical Partitioning- Disadvantages While physical partitioning has a number of attractive features, it has some major disadvantages: System utilization: Physical partitioning is probably not the ideal solution if system utilization is to be optimized It is often the case that each of the physical partitions is underutilized Load balancing: with physical partitioning, dynamic workload balancing becomes difficult to implement

Logical Partitioning P P P P P P P P P P P P P P P P P P P P P P P P P With logical partitioning, partitions share some of the physical resources, usually in a time-multiplexed manner P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P M M M M M M M M M M M M I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O I/O D D D D D D D D D D D D D D D D D D D D D D D D

Logical Partitioning With logical partitioning it is permissible for two partitions to share the resources of a single system board Logical partitioning makes it possible to partition an n-way system into a system with more than n partitions, if so desired Logical partitioning is more flexible than physical partitioning but needs additional mechanisms to provide safe and efficient way of sharing resources Logical partitioning is usually done through a VMM or a hypervisor and provides what is referred to as multiprocessor virtualization

Multiprocessor Virtualization A virtualized multiprocessor gives the appearance of a system that may or may not reflect the exact configuration of the underlying physical system P P P P P P P P P P P P M I/O M I/O M I/O M I/O Virtual Machine Monitor Processor Processor Processor Processor Cache Cache Cache Cache Bus or Crossbar Switch Memory I/O

Discussion on Virtualization Partitioning and Multiprocessor virtualization Virtual machine types Virtualization, para-virtualization, virtual machines and hypervisors Why virtualization, and virtualization properties Next Class Review