Virtualization Jerry Breecher 19: Virtualization.

Slides:



Advertisements
Similar presentations
Virtualization Dr. Michael L. Collard
Advertisements

Virtualization Technology
Virtualisation From the Bottom Up From storage to application.
Virtualization and Cloud Computing Virtualization David Bednárek, Jakub Yaghob, Filip Zavoral.
Virtual Machine Security Design of Secure Operating Systems Summer 2012 Presented By: Musaad Alzahrani.
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Virtualization for Cloud Computing
Virtual Machine Monitors CSE451 Andrew Whitaker. Hardware Virtualization Running multiple operating systems on a single physical machine Examples:  VMWare,
LINUX Virtualization Running other code under LINUX.
Distributed Systems CS Virtualization- Overview Lecture 22, Dec 4, 2013 Mohammad Hammoud 1.
CSE 451: Operating Systems Winter 2012 Module 18 Virtual Machines Mark Zbikowski and Gary Kimura.
Virtualization-optimized architectures
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
Operating System Virtualization
Microkernels, virtualization, exokernels Tutorial 1 – CSC469.
Virtualization Concepts Presented by: Mariano Diaz.
Virtualization Paul Krzyzanowski Distributed Systems Except as otherwise noted, the content of this presentation is licensed.
VirtualBox What you need to know to build a Virtual Machine.
Introduction 1-1 Introduction to Virtual Machines From “Virtual Machines” Smith and Nair Chapter 1.
Virtualization Part 2 – VMware. Virtualization 2 CS5204 – Operating Systems VMware: binary translation Hypervisor VMM Base Functionality (e.g. scheduling)
 Virtual machine systems: simulators for multiple copies of a machine on itself.  Virtual machine (VM): the simulated machine.  Virtual machine monitor.
Cloud Operating System Unit 09 Cloud OS Core Technology M. C. Chiang Department of Computer Science and Engineering National Sun Yat-sen University Kaohsiung,
Introduction to virtualization
A. Frank - P. Weisberg Operating Systems Structure of Operating Systems.
Full and Para Virtualization
Lecture 26 Virtual Machine Monitors. Virtual Machines Goal: run an guest OS over an host OS Who has done this? Why might it be useful? Examples: Vmware,
Lecture 12 Virtualization Overview 1 Dec. 1, 2015 Prof. Kyu Ho Park “Understanding Full Virtualization, Paravirtualization, and Hardware Assist”, White.
Operating-System Structures
Protection of Processes Security and privacy of data is challenging currently. Protecting information – Not limited to hardware. – Depends on innovation.
CSE 451: Operating Systems Winter 2015 Module 25 Virtual Machine Monitors Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
© 2010 VMware Inc. All rights reserved Introduction to Virtual Machines Carl Waldspurger (SB SM ’89, PhD ’95), VMware R&D.
Running Commodity Operating Systems on Scalable Multiprocessors Edouard Bugnion, Scott Devine and Mendel Rosenblum Presentation by Mark Smith.
Virtualization Neependra Khare
Virtualization-optimized architectures
Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels
Virtualization for Cloud Computing
A move towards Greener Planet
Introduction to Virtualization
Virtualization.
Virtual Machine Monitors
Virtualization Technology
L2- Virtualization Technology
Presented by Mike Marty
CS 3214 Introduction to Computer Systems
Virtualization Dr. Michael L. Collard
Prepared by: Assistant prof. Aslamzai
Virtualization Virtualization is the creation of substitutes for real resources – abstraction of real resources Users/Applications are typically unaware.
Virtual Machines: Versatile Platforms for Systems and Processes
Virtualization overview
Virtual Servers.
Running other code under LINUX
Group 8 Virtualization of the Cloud
Virtualization Virtualization is the creation of substitutes for real resources – abstraction of real resources Users/Applications are typically unaware.
OS Virtualization.
Virtualization Layer Virtual Hardware Virtual Networking
Virtualization Techniques
A Survey on Virtualization Technologies
Virtual Machines (Introduction to Virtual Machines)
Virtual machines benefits
Windows Virtual PC / Hyper-V
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
Introduction to Virtual Machines
Introduction to Virtual Machines
Virtualization Dr. S. R. Ahmed.
CSE 451: Operating Systems Autumn Module 24 Virtual Machine Monitors
System Virtualization
Slides from E0-253 taught by Arkaprava Basu and Vinod Ganapathy
Hypervisor A hypervisor or virtual machine monitor (VMM) is computer software, firmware or hardware that creates and runs virtual machines. A computer.
Presentation transcript:

Virtualization Jerry Breecher 19: Virtualization

Virtualization What is Virtualization? vir•tu•al (adj): existing in essence or effect, though not in actual fact Virtual systems Abstract physical components using logical objects Dynamically bind logical objects to physical configurations Examples Network – Virtual LAN (VLAN), Virtual Private Network (VPN) Storage – Storage Area Network (SAN), LUN Computer – Virtual Machine (VM), simulator 19: Virtualization

Virtualization Overview Virtual Machines Virtualization Approaches Processor Virtualization 19: Virtualization

Virtualization A Physical Machine Physical Hardware Processors, memory, chipset, I/O bus and devices. (Physical resources often underutilized) Software Tightly coupled to hardware Single active OS image OS controls hardware 19: Virtualization

What is a Virtual Machine? Virtualization What is a Virtual Machine? Virtualization Software Extra level of indirection decouples hardware and OS Multiplexes physical hardware across multiple guest VMs Strong isolation between VMs Manages physical resources, improves utilization Hardware Level Abstraction Virtual Hardware: Processors, memory, etc. Encapsulates all OS and application state. 19: Virtualization

Virtualization VM Isolation VM Isolation Run multiple VMs on single physical host Processor hardware isolates VMs, e.g. MMU Strong Guarantees Software bugs, crashes, viruses within one VM cannot affect other VMs Performance Isolation Partition system resources Example: VMware controls for reservation, limit, shares 19: Virtualization

Virtualization VM Encapsulation Entire VM is a file OS, applications, data Memory and device state Snapshots and Clones Capture VM state on the fly and restore to point-in-time Rapid system provisioning, backup, remote mirroring Easy Content Easy Content Distribution Pre-configured apps, demos, Virtual utilities 19: Virtualization

Virtualization VM Compatibility Hardware Independent Physical hardware hidden by virtualization layer Standard virtual hardware exposed to VM Create Once, Run Anywhere. No configuration issues Migrate VMs between hosts Legacy VMs Run ancient OS on new hardware 19: Virtualization

Virtualization Common Uses Today Test and Development – Rapidly provision test and development servers; store libraries of pre-configured test machines Server Consolidation and Containment – Eliminate server sprawl by deploying systems into virtual machines that can run safely and move transparently across shared hardware Business Continuity – Reduce cost and complexity by encapsulating entire systems into single files that can be replicated and restored onto any target server Enterprise Desktop – Secure unmanaged PCs without compromising end-user autonomy by layering a security policy in software around desktop virtual machines 19: Virtualization

Virtualization Overview Virtual Machines Virtualization Approaches Virtual machine monitors (VMMs) Virtualization platform types Alternative system virtualizations Processor Virtualization 19: Virtualization

What is a Virtual Machine Monitor? Virtualization What is a Virtual Machine Monitor? The VMM provides an environment for programs which is essentially identical with the original machine; second, programs run in this environment show at worst only minor decreases in speed; and last, the VMM is in complete control of all system resources. This idea has been around for IBM mainframes since the ’60s. 19: Virtualization

Virtualization VMM Technology So this is just like Java, right? No, a Java VM is very different from the physical machine that runs it A hardware-level VM reflects underlying processor architecture Like a simulator or emulator that can run old Nintendo games? No, they emulate the behavior of different hardware architectures Simulators generally have very high overhead A hardware-level VM utilizes the underlying physical processor directly 19: Virtualization

Virtualization VMM from the Past An Old Idea Hardware-level VMs since ’60s IBM S/360, IBM VM/370mainframe systems Timeshare multiple single-user OS instances on expensive hardware Classical VMM Run VM directly on hardware “Trap and emulate” model From IBM VM/370 product announcement, ca. 197 for privileged instructions Vendors had vertical control over proprietary hardware, operating systems, VMM 19: Virtualization

Virtualization VMM from the Past Renewed Interest Academic research since ’90s VMs for commodity systems Server consolidation VMM for x86 Industry-standard hardware, from laptops to datacenter Run unmodified commodity VMware Fusion for Mac OS X running WinXP, 2006 guest operating systems Significant challenges, e.g. “non-virtualizable” instructions Pioneered by VMware in ’98 19: Virtualization

Virtualization VMM Platform Types Hosted Architecture Install as application on existing x86 “host” OS, e.g. Windows, Linux, OS X Small context-switching driver Leverage host I/O stack and resource management Examples: VMware Player/Workstation/Server, Microsoft Virtual PC/Server, Parallels Desktop Bare-Metal Architecture “Hypervisor” installs directly on hardware Acknowledged as preferred architecture for high-end servers Examples: VMware ESX Server, Xen, Microsoft Viridian (2008) 19: Virtualization

System Virtualization Alternatives Virtual machines abstracted using a layer at different places Language Level OS Level Hardware Level 19: Virtualization

System Virtualization Taxonomy • Java Microsoft .NET / Mono Smalltalk High-Level Language Hardware Level Bare-Metal/ Hypervisor HP Integrity VM IBM zSeries z/VM VMware ESX Server Xen Hosted Microsoft Virtual Server Microsoft Virtual PC Parallels Desktop VMware Player VMware Workstation VMware Server Para-virtualization FreeBSD Jail HP Secure Resource Partitions Bochs Microsoft VPC for Mac QEMU Emulators 19: Virtualization

Virtualization Overview Virtual Machines Virtualization Approaches Processor Virtualization Classical techniques Software x86 VMM Para-virtualization 19: Virtualization

Classical Instruction Virtualization Trap and Emulate Run guest operating system deprivileged (like being in user mode) All privileged instructions trap into VMM VMM emulates instructions against virtual state e.g. disable virtual interrupts, not physical interrupts Resume direct execution from next guest instruction 19: Virtualization

Classical Memory Virtualization Trap and Emulate Run guest operating system deprivileged (like being in user mode) All privileged instructions trap into VMM VMM emulates instructions against virtual state e.g. disable virtual interrupts, not physical interrupts Resume direct execution from next guest instruction 19: Virtualization

Classical Instruction Virtualization Traditional VMM Approach Extra Level of Indirection Virtual ® “Physical” Guest maps VPN to PPN using primary page tables “Physical”  Machine VMM maps PPN to MPN Shadow Page Table Composite of two mappings For ordinary memory references Hardware maps VPN to MPN Cached by physical TLB VPN guest Shadow Page Table PPN Hardware TLB VMM MPN 19: Virtualization

Classical Memory Behavior Virtualization Classical Memory Behavior Shadow Page Table Derived from primary page table in guest VMM must keep primary and shadow coherent Trace = Coherency Mechanism Write-protect primary page table Trap guest writes to primary Update or invalidate corresponding shadow Transparent to guest Native Speed Except for Traps No overhead in direct execution Overhead = trap frequency × average trap cost Trap Sources Most frequent: Guest page table traces Privileged instructions Memory-mapped device traces 19: Virtualization

x86 Virtualization Challenges Not Classically Virtualizable x86 ISA includes instructions that read or modify privileged state But which don’t trap in unprivileged mode Example: POPF instruction Pop top-of-stack into EFLAGS register EFLAGS.IF bit privileged (interrupt enable flag) POPF silently ignores attempts to alter EFLAGS.IF in unprivileged mode! So no trap to return control to VMM Deprivileging not possible with x86! 19: Virtualization

Virtualization How to Virtualize x86? Interpretation Problem – too inefficient x86 decoding slow Code Patching Problem – not transparent Guest can inspect its own code Binary Translation (BT) Approach pioneered by VMware Run any unmodified x86 OS in VM Extend x86 Architecture 19: Virtualization

Software VMM: Binary Translation Virtualization Software VMM: Binary Translation Direct execute unprivileged guest application code Will run at full speed until it traps, we get an interrupt, etc. “Binary translate” all guest kernel code, run it unprivileged Since x86 has non-virtualizable instructions, proactively transfer control to the VMM (no need for traps) Safe instructions are emitted without change For “unsafe” instructions, emit a controlled emulation sequence VMM translation cache for good performance 19: Virtualization

Virtualization How Does VMWare Do This? Binary – input is x86 “hex”, not source Dynamic – interleave translation and execution On Demand – translate only what about to execute (lazy) System Level – makes no assumptions about guest code Subsetting – full x86 to safe subset Adaptive – adjust translations based on guest behavior 19: Virtualization

Virtualization How Does VMWare Do This? Each Translator Invocation Input: BB 55 ff 33 c7 03 ... Each Translator Invocation • Consume a basic block (BB) • Produce a compiled code fragment (CCF) Store CCF in Translation Cache • Future reuse • Capture working set of guest kernel • Amortize translation costs • Not “patching in place” translator Output: CCF 55 ff 33 c7 03 ... 19: Virtualization

Virtualization How Does VMWare Do This? BB CCF 80304a69 push %ebp 80403a6a push (%ebx) 80403a6c mov (%ebx), ffffffff 80403a72 mov %edx, %esp 80403a74 mov %esp, 81c(%ebx) 80403a7a push %edx 80403a7b mov %ebp, %eax 80403a7d call 80460ba4 25555b0 push %ebp 25555b1 push (%ebx) 25555b3 mov (%ebx), ffffffff 25555b9 mov %edx, %esp 25555bb mov %esp, 81c(%ebx) 25555c1 push %edx 25555c2 mov %ebp, %eax 25555c4 push 80403a82 25555c9 int 3a 25555cb data: 80460ba4 BB CCF 25555c4: push return address 25555c9: invoke translator on callee 10: File Systems

Virtualization Adaptive BT Translated Code Is Fast !*! Invoke Translator Translation Cache Translated Code Is Fast • Mostly IDENTICAL translations • Runs “at speed” Except Writes to Traced Memory • Page fault (shown as !*!) • Decode and interpret instruction • Fire trace callbacks • Resume execution • Can take 1000’s of cycles 19: Virtualization

Adaptive BT: Fast Trace Handling Virtualization Adaptive BT: Fast Trace Handling JMP Invoke Translator TRACE Detect and Track Trace Faults Splice in TRACE Translation • Execute memory access in software • Avoid page fault • No re-decoding • Faster resumption Faster Traces • 10x performance improvement • Adapts to runtime behavior 19: Virtualization

What is ParaVirtualization? Full Virtualization • No modifications to guest OS • Excellent compatibility, good performance, but complex Paravirtualization Exports Simpler Architecture is an enhancement of virtualization technology in which a guest OS is recompiled prior to installation inside a virtual machine.  allows for an interface to the virtual machine that can differ somewhat from that of the underlying hardware. requires guest OS to be explicitly ported for the para-API — a conventional OS distribution that is not paravirtualization-aware cannot be run on top of a paravirtualizing VMM. 19: Virtualization

What is ParaVirtualization? Full Virtualization • No modifications to guest OS • Excellent compatibility, good performance, but complex Paravirtualization Exports Simpler Architecture • Term coined by Denali project in ’01, popularized by Xen • Modify guest OS to be aware of virtualization layer • Remove non-virtualizable parts of architecture • Avoid rediscovery of knowledge in hypervisor • Excellent performance and simple, but poor compatibility Ongoing Linux Standards Work • “Paravirt Ops” interface between guest and hypervisor • Small team from VMware, Xen, IBM LTC, etc. 19: Virtualization

What is ParaVirtualization? Hardware Hypervisor Guest OS Hypercalls ( GOOD ) System call interface NOT GOOD! Full Virtualization Paravirtualization 19: Virtualization

Transparent Paravirtualization? Same OS binary Xen 3.0.x VMware ESX Native Dom0 VMI Linux DomU Xeno Windows Solaris 19: Virtualization