Introduction to Virtual Machines. Carl Waldspurger (SB SM 89 PhD 95) VMware R&D

Similar documents
Virtual Machines. To do. q VM over time q Implementation methods q Hardware features supporting VM q Next time: Midterm?

Virtualization. Starting Point: A Physical Machine. What is a Virtual Machine? Virtualization Properties. Types of Virtualization

Virtualization. ! Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized

Overview of System Virtualization: The most powerful platform for program analysis and system security. Zhiqiang Lin

Virtualization. Pradipta De

Virtualization. Operating Systems, 2016, Meni Adler, Danny Hendler & Amnon Meisels

Virtualization and Virtual Machines. CS522 Principles of Computer Systems Dr. Edouard Bugnion

Virtualization. Dr. Yingwu Zhu

Spring 2017 :: CSE 506. Introduction to. Virtual Machines. Nima Honarmand

Virtual Machines. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Chapter 5 C. Virtual machines

CSE 120 Principles of Operating Systems

Module 1: Virtualization. Types of Interfaces

Advanced Operating Systems (CS 202) Virtualization

Introduction to Cloud Computing and Virtualization. Mayank Mishra Sujesha Sudevalayam PhD Students CSE, IIT Bombay

CS370 Operating Systems

COMPUTER ARCHITECTURE. Virtualization and Memory Hierarchy

Distributed Systems COMP 212. Lecture 18 Othon Michail

Virtualization. Adam Belay

What is KVM? KVM patch. Modern hypervisors must do many things that are already done by OSs Scheduler, Memory management, I/O stacks

CS 350 Winter 2011 Current Topics: Virtual Machines + Solid State Drives

System Virtual Machines

CHAPTER 16 - VIRTUAL MACHINES

references Virtualization services Topics Virtualization

The Architecture of Virtual Machines Lecture for the Embedded Systems Course CSD, University of Crete (April 29, 2014)

24-vm.txt Mon Nov 21 22:13: Notes on Virtual Machines , Fall 2011 Carnegie Mellon University Randal E. Bryant.

OS Virtualization. Why Virtualize? Introduction. Virtualization Basics 12/10/2012. Motivation. Types of Virtualization.

Learning Outcomes. Extended OS. Observations Operating systems provide well defined interfaces. Virtual Machines. Interface Levels

Virtual Machine Monitors (VMMs) are a hot topic in

The Challenges of X86 Hardware Virtualization. GCC- Virtualization: Rajeev Wankar 36

System Virtual Machines

Nested Virtualization and Server Consolidation

Knut Omang Ifi/Oracle 6 Nov, 2017

CHAPTER 16 - VIRTUAL MACHINES

Operating Systems 4/27/2015


Virtualization and memory hierarchy

Micro VMMs and Nested Virtualization

Virtualization. Virtualization

COS 318: Operating Systems. Virtual Machine Monitors

VIRTUALIZATION: IBM VM/370 AND XEN

CIS : Computational Reproducibility

An overview of virtual machine architecture

Virtualisation: The KVM Way. Amit Shah

Virtualization. Michael Tsai 2018/4/16

Virtualization History and Future Trends

Virtualization. join, aggregation, concatenation, array, N 1 ühendamine, agregeerimine, konkateneerimine, massiiv

CS370 Operating Systems

CS370 Operating Systems

CS 5600 Computer Systems. Lecture 11: Virtual Machine Monitors

Cloud Computing Virtualization

A Survey on Virtualization Technologies

Lecture 7. Xen and the Art of Virtualization. Paul Braham, Boris Dragovic, Keir Fraser et al. 16 November, Advanced Operating Systems

Virtualization. Application Application Application. MCSN - N. Tonellotto - Distributed Enabling Platforms OPERATING SYSTEM OPERATING SYSTEM

I/O virtualization. Jiang, Yunhong Yang, Xiaowei Software and Service Group 2009 虚拟化技术全国高校师资研讨班

W4118: virtual machines

How it can help your organisation

Background. IBM sold expensive mainframes to large organizations. Monitor sits between one or more OSes and HW

Virtual Leverage: Server Consolidation in Open Source Environments. Margaret Lewis Commercial Software Strategist AMD

Virtual Virtual Memory

Advanced Systems Security: Virtual Machine Systems

Virtual Machine Security

CSCE 410/611: Virtualization!

Virtual Machines. Part 2: starting 19 years ago. Operating Systems In Depth IX 1 Copyright 2018 Thomas W. Doeppner. All rights reserved.

Virtual Machine Monitors!

DISCO and Virtualization

Virtualization. ...or how adding another layer of abstraction is changing the world. CIS 399: Unix Skills University of Pennsylvania.

Intel s Virtualization Extensions (VT-x) So you want to build a hypervisor?

CS370: Operating Systems [Spring 2017] Dept. Of Computer Science, Colorado State University

Server Virtualization Approaches

We ve seen lots of examples of virtualization. This is another: a virtual machine monitor. A VMM virtualizes an entire hardware machine.

SERVE. -Priyal Lokhandwala

Lecture 3 Memory Virtualization Larry Rudolph

Virtual Machines Disco and Xen (Lecture 10, cs262a) Ion Stoica & Ali Ghodsi UC Berkeley February 26, 2018

CS5460: Operating Systems. Lecture: Virtualization. Anton Burtsev March, 2013

Darek Mihocka, Emulators.com Stanislav Shwartsman, Intel Corp. June

Knut Omang Ifi/Oracle 20 Oct, Introduction to virtualization (Virtual machines) Aspects of network virtualization:

Linux and Xen. Andrea Sarro. andrea.sarro(at)quadrics.it. Linux Kernel Hacking Free Course IV Edition

Virtualization and Cloud Computing. Sorav Bansal

Performance Aspects of x86 Virtualization

Xen Project Status Ian Pratt 12/3/07 1

Virtual machines are an interesting extension of the virtual-memory concept: not only do we give processes the illusion that they have all of memory

Multiprocessor Scheduling. Multiprocessor Scheduling

CS 470 Spring Virtualization and Cloud Computing. Mike Lam, Professor. Content taken from the following:

Lecture 5: February 3

CSE 237B Fall 2009 Virtualization, Security and RTOS. Rajesh Gupta Computer Science and Engineering University of California, San Diego.

Xen is not just paravirtualization

CLOUD COMPUTING IT0530. G.JEYA BHARATHI Asst.Prof.(O.G) Department of IT SRM University

Xen and the Art of Virtualization. CSE-291 (Cloud Computing) Fall 2016

Intel Virtualization Technology Roadmap and VT-d Support in Xen

CSCE 410/611: Virtualization

CS370: Operating Systems [Spring 2016] Dept. Of Computer Science, Colorado State University

Advanced Systems Security: Virtual Machine Systems

MEMORY HIERARCHY DESIGN. B649 Parallel Architectures and Programming

Lecture 4: Extensibility (and finishing virtual machines) CSC 469H1F Fall 2006 Angela Demke Brown

Xen and the Art of Virtualization. Nikola Gvozdiev Georgian Mihaila

Fast access ===> use map to find object. HW == SW ===> map is in HW or SW or combo. Extend range ===> longer, hierarchical names

Introduction to Virtualization

WoW. CS Summer Handout #26: Virtual Machines. What If? Review: What is an OS? One way: Complete Machine Simulation

Virtual Machine Systems

Transcription:

Introduction to Virtual Machines Carl Waldspurger (SB SM 89 PhD 95) VMware R&D

Overview Virtualization and VMs Processor Virtualization Memory Virtualization I/O Virtualization

Typesof Virtualization Process Virtualization OS-level processes, Solaris Zones, BSD Jails, Virtuozzo Language-level Java,.NET, Smalltalk Cross-ISA emulation Apple 68K-PPC-x86, Digital FX!32 Device Virtualization Logical vs. physical VLAN, VPN, NPIV, LUN, RAID System Virtualization Hosted VMware Workstation, Microsoft VPC, Parallels Bare metal VMware ESX, Xen, Microsoft Hyper-V

Starting Point: A Physical Machine Physical Hardware Processors, memory, chipset, I/O devices, etc. Resources often grossly underutilized Software Tightly coupled to physical hardware Single active OS instance OS controls hardware

What is a Virtual Machine? Software Abstraction Behaves like hardware Encapsulates all OS and application state Virtualization Layer Extra level of indirection Decouples hardware, OS Enforces isolation Multiplexes physical hardware across VMs

Virtualization Properties Isolation Fault isolation Performance isolation Encapsulation Cleanly capture all VM state Enables VM snapshots, clones Portability Independent of physical hardware Enables migration of live, running VMs Interposition Transformations on instructions, memory, I/O Enables transparent resource overcommitment, encryption, compression, replication

What is a Virtual Machine Monitor? Classic Definition (Popek and Goldberg 74) VMM Properties Fidelity Performance Safety and Isolation

Classic Virtualization and Applications From IBM VM/370 product announcement, ca. 1972 Classical VMM IBM mainframes: IBM S/360, IBM VM/370 Co-designed proprietary hardware, OS, VMM Trap and emulate model Applications Timeshare several single-user OS instances on expensive hardware Compatibility

Modern Virtualization Renaissance Recent Proliferation of VMs Considered exotic mainframe technology in 90s Now pervasive in datacenters and clouds Huge commercial success Why? Introduction on commodity x86 hardware Ability to do more with less saves $$$ Innovative new capabilities Extremely versatile technology

Modern Virtualization Applications Server Consolidation Convert underutilized servers to VMs Significant cost savings (equipment, space, power) Increasingly used for virtual desktops Simplified Management Datacenter provisioning and monitoring Dynamic load balancing Improved Availability Automatic restart Fault tolerance Disaster recovery Test and Development

Trapand Emulate Binary Translation Processor Virtualization

Trap and Emulate Guest OS + Applications Unprivileged Page Fault Undef Instr virq MMU Emulation CPU Emulation I/O Emulation Privileged Virtual Machine Monitor

Strictly Virtualizable A processor or mode of a processor is strictly virtualizableif, when executed in a lesser privileged mode: all instructions that access privileged state trap all instructions either trap or execute identically

Issues with Trap and Emulate Not all architectures support it Trap costs may be high VMM consumes a privilege level Need to virtualize the protection levels

Binary Translation Guest Code Translation Cache vepc mov ebx, eax mov ebx, eax start cli mov [VIF], 0 and ebx, ~0xfff and ebx, ~0xfff mov ebx, cr3 mov [CO_ARG], ebx sti call HANDLE_CR3 ret mov [VIF], 1 test [INT_PEND], 1 jne call HANDLE_INTS jmp HANDLE_RET

Issues with Binary Translation Translation cache management PC synchronization on interrupts Self-modifying code Notified on writes to translated guest code Protecting VMM from guest

Shadow Page Tables Nested Page Tables Memory Virtualization

Traditional AddressSpaces 0 4GB Virtual Address Space 0 4GB Physical Address Space

Traditional Address Translation Virtual Address TLB Physical Address 1 4 2 5 3 Operating System s Page Fault Handler Process Page Table 2

Virtualized AddressSpaces 0 4GB Virtual Address Space 0 Physical Address Space Guest Page Table 4GB 0 VMM PhysMap Machine Address Space 4GB

Virtualized Address Spaces w/ Shadow Page Tables 0 4GB Virtual Address Space 0 Shadow Pa age Table Guest Page Table Physical Address Space 4GB 0 VMM PhysMap 4GB Machine Address Space

Virtualized Address Translation w/ Shadow Page Tables Virtual Address TLB Machine Address 1 5 2 6 4 3 Shadow Page Table Guest Page Table 3 PMap 2 A

Issues with Shadow Page Tables Guest page table consistency Rely on guest s need to invalidate TLB Performance considerations Aggressive shadow page table caching necessary Need to trace writes to cached page tables

Virtualized Address Spaces w/ Nested Page Tables 0 4GB Virtual Address Space 0 Physical Address Space Guest Page Table 4GB 0 VMM PhysMap Machine Address Space 4GB

Virtualized Address Translation w/ Nested Page Tables Virtual Address TLB Machine Address 1 3 2 Guest Page Table 2 PhysMap By VMM 3

Issues with Nested Page Tables Positives Simplifies monitor design No need for page protection calculus Negatives Guest page table is in physical address space Need to walk PhysMap multiple times Need physical-to-machine mapping to walk guest page table Need physical-to-machine mapping for original virtual address Other Memory Virtualization Hardware Assists Monitor Mode has its own address space No need to hide the VMM

Interposition with Memory Virtualization Page Sharing Virtual Virtual Physical Physical VM1 VM2 Machine Read-Only Copy-on-write

I/O Virtualization Guest Virtual Device Driver Virtual Device Driver Virtual Device Driver Virtual Device Model Virtual Device Model Virtual Device Model Abstract Device Model Device Interposition Compression Bandwidth Control Record / Replay Overshadow Page Sharing Copy-on-Write Disks Encryption Intrusion Detection Attestation Device Back-ends Remote Access Cross-device Emulation Disconnected Operation Multiplexing Device Sharing Scheduling Resource Management H.W. Device Driver H.W. Device Driver Hardware

I/O Virtualization Implementations Emulated I/O Passthrough I/O Hosted or Split Hypervisor Direct Guest OS Guest OS Guest OS Device Driver Device Driver Device Driver Device Emulation Host OS/Dom0/ Parent Domain Device Emulation Device Emulation I/O Stack Device Driver I/O Stack Device Driver Device Manager VMware Workstation, VMware Server, Xen, Microsoft Hyper-V, Virtual Server VMware ESX VMware ESX (FPT)

Issues with I/O Virtualization Need physical memory address translation need to copy need translation need IO MMU Need way to dispatch incoming requests

Backup Slides

Brief History of VMware x86 Virtualization x86-64 Intel VT-x Intel EPT AMD-V AMD RVI 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009... VMware founded ESX 2.0 (vsmp) ESX Server 1.0 Workstation 2.0 Workstation 1.0 ESX 3.0 ESX 3.5 Workstation 5.5 (64 bit guests) ESX 4.0

PassthroughI/O Virtualization Guest OS Device Driver Virtualization Layer I/O MMU Guest OS Device Driver Device Manager VF VF VF I/O Device PF PF = Physical Function, VF = Virtual Function Guest OS Device Driver High Performance Guest drives device directly Minimizes CPU utilization Enabled by HW Assists I/O-MMU for DMA isolation e.g. Intel VT-d, AMD IOMMU Partitionable I/O device e.g. PCI-SIG IOV spec Challenges Hardware independence Migration, suspend/resume Memory overcommitment