Virtualization Technology. Zhiming Shen

Similar documents
Virtualization Technology. Zhiming Shen

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

COS 318: Operating Systems. Virtual Machine Monitors

Virtual Machines. COMP 3361: Operating Systems I Winter

Full and Para Virtualization

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Virtual machines and operating systems

Virtual Machine Monitors. Dr. Marc E. Fiuczynski Research Scholar Princeton University

COS 318: Operating Systems. Virtual Machine Monitors

Virtualization. Types of Interfaces

x86 Virtualization Hardware Support Pla$orm Virtualiza.on

Virtualization. Pradipta De

Virtualization. ! Physical Hardware. ! Software. ! Isolation. ! Software Abstraction. ! Encapsulation. ! Virtualization Layer. !

Cloud Computing #6 - Virtualization

Virtualization. Jia Rao Assistant Professor in CS

Virtualization. Jukka K. Nurminen

Hypervisors. Introduction. Introduction. Introduction. Introduction. Introduction. Credits:

CS 695 Topics in Virtualization and Cloud Computing. More Introduction + Processor Virtualization

Chapter 5 Cloud Resource Virtualization

The Xen of Virtualization

Virtualization. Explain how today s virtualization movement is actually a reinvention

Cloud^H^H^H^H^H Virtualization Technology. Andrew Jones May 2011

Virtualization VMware Inc. All rights reserved

Hypervisors and Virtual Machines

Nested Virtualization

Hardware Based Virtualization Technologies. Elsie Wahlig Platform Software Architect

Basics in Energy Information (& Communication) Systems Virtualization / Virtual Machines

Virtualization. Dr. Yingwu Zhu

Intel Virtualization Technology Overview Yu Ke

Xen and the Art of Virtualization

Models For Modeling and Measuring the Performance of a Xen Virtual Server

Virtual Machines. Virtualization

Knut Omang Ifi/Oracle 19 Oct, 2015

System Virtual Machines

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

Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16

Hybrid Virtualization The Next Generation of XenLinux

Introduction to Virtual Machines

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

OS Virtualization Frank Hofmann

OSes. Arvind Seshadri Mark Luk Ning Qu Adrian Perrig SOSP2007. CyLab of CMU. SecVisor: A Tiny Hypervisor to Provide

Basics of Virtualisation

Distributed Systems. Virtualization. Paul Krzyzanowski

COM 444 Cloud Computing

kvm: Kernel-based Virtual Machine for Linux

Virtualization Technologies

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies. Virtualization of Clusters and Data Centers

An Introduction to Virtual Machines Implementation and Applications

Virtualization for Cloud Computing

Understanding Full Virtualization, Paravirtualization, and Hardware Assist. Introduction...1 Overview of x86 Virtualization...2 CPU Virtualization...

Chapter 16: Virtual Machines. Operating System Concepts 9 th Edition

VMkit A lightweight hypervisor library for Barrelfish

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Virtualization and the U2 Databases

How To Understand The Power Of A Virtual Machine Monitor (Vm) In A Linux Computer System (Or A Virtualized Computer)

Virtualization. Clothing the Wolf in Wool. Wednesday, April 17, 13

Distributed and Cloud Computing

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

RPM Brotherhood: KVM VIRTUALIZATION TECHNOLOGY

Virtualization. P. A. Wilsey. The text highlighted in green in these slides contain external hyperlinks. 1 / 16

Introduction to Virtualization

Windows Server Virtualization & The Windows Hypervisor

Jukka Ylitalo Tik TKK, April 24, 2006

Outline. Outline. Why virtualization? Why not virtualize? Today s data center. Cloud computing. Virtual resource pool

Practical Applications of Virtualization. Mike Phillips IAP 2008 SIPB IAP Series

OS Virtualization. CSC 456 Final Presentation Brandon D. Shroyer

Mesovirtualization: Lightweight Virtualization Technique for Embedded Systems

Xen and the Art of. Virtualization. Ian Pratt

Virtualization Technology. Zhonghong Ou Data Communications Software Lab, Aalto University

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

ARM Virtualization: CPU & MMU Issues

EE282 Lecture 11 Virtualization & Datacenter Introduction

Virtual Machines.

Cloud Computing CS

BHyVe. BSD Hypervisor. Neel Natu Peter Grehan

Brian Walters VMware Virtual Platform. Linux J. 1999, 63es, Article 6 (July 1999).

WHITE PAPER Mainstreaming Server Virtualization: The Intel Approach

Cloud Computing. Dipl.-Wirt.-Inform. Robert Neumann

The Microsoft Windows Hypervisor High Level Architecture

Enabling Intel Virtualization Technology Features and Benefits

Virtualization for Future Internet

MIT IAP Course Lecture #1: Virtualization 101

FRONT FLYLEAF PAGE. This page has been intentionally left blank

nanohub.org An Overview of Virtualization Techniques

Advanced Computer Networks. Network I/O Virtualization

Introduction to Virtual Machines

Leveraging Thin Hypervisors for Security on Embedded Systems

New Virtualization Techniques. Lic. Matías Zabaljáuregui

KVM KERNEL BASED VIRTUAL MACHINE

Compromise-as-a-Service

Security Challenges in Virtualized Environments

Survey On Hypervisors

PROCESSOR VIRTUALIZATION ON EMBEDDED LINUX SYSTEMS

Virtualization in Linux KVM + QEMU

Lecture 2 Cloud Computing & Virtualization. Cloud Application Development (SE808, School of Software, Sun Yat-Sen University) Yabo (Arber) Xu

Operating System Structures

Introduction to Virtualization & KVM

Virtualization is set to become a key requirement

Operating System Organization. Purpose of an OS

COMP9242 Advanced Operating Systems S2/2013 Week 8: Virtualization

Transcription:

Virtualization Technology Zhiming Shen

Virtualization: rejuvenation 1960 s: first track of virtualization Time and resource sharing on expensive mainframes IBM VM/370 Late 1970 s and early 1980 s: became unpopular Cheap hardware and multiprocessing OS Late 1990 s: became popular again Wide variety of OS and hardware configurations VMWare Since 2000: hot and important Cloud computing Docker containers

IBM VM/370 Robert Jay Creasy (1939-2005) Project leader of the first full virtualization hypervisor: IBM CP-40, a core component in the VM system The first VM system: VM/370

IBM VM/370 Virtual machines Conversatio nal Monitor System (CMS) Specialized VM subsystem (RSCS, RACF, GCS) Mainstream OS (MVS, DOS/VSE etc.) Another copy of VM Hypervisor Hardware Control Program (CP) System/370

IBM VM/370 Technology: trap-and-emulate Problem Application Privileged Kernel Trap Emulate CP

Virtualization on x86 architecture Challenges Correctness: not all privileged instructions produce traps! Example: popf Performance: System calls: traps in both enter and exit (10X) I/O performance: high CPU overhead Virtual memory: no software-controlled TLB

Virtualization on x86 architecture Solutions: Dynamic binary translation & shadow page table Hardware extension Para-virtualization (Xen)

Dynamic binary translation Idea: intercept privileged instructions by changing the binary Cannot patch the guest kernel directly (would be visible to guests) Solution: make a copy, change it, and execute it from there Use a cache to improve the performance

Dynamic binary translation Pros: Make x86 virtualizable Can reduce traps Cons: Overhead Hard to improve system calls, I/O operations Hard to handle complex code

Shadow page table

Shadow page table Guest page table Shadow page table

Shadow page table Pros: Transparent to guest VMs Good performance when working set is stable Cons: Big overhead of keeping two page tables consistent Introducing more issues: hidden fault, double paging

Hardware support First generation - processor Second generation - memory Third generation I/O device

First generation: Intel VT-x & AMD SVM Eliminating the need of binary translation Host mode Guest mode Ring3 Ring2 Ring1 Ring0 VMRUN VMEXIT Ring3 Ring2 Ring1 Ring0

Second generation: Intel EPT & AMD NPT Eliminating the need to shadow page table

Third generation: Intel VT-d & AMD IOMMU I/O device assignment VM owns real device DMA remapping Support address translation for DMA Interrupt remapping Routing device interrupt

Para-virtualization Full vs. para virtualization

Xen and the art of virtualization SOSP 03 Very high impact (data collected in 2013) Citation count in Google scholar 6000 5000 5153 4000 3000 2286 2000 1000 461 1093 1219 1222 1229 1413 1796 0 Disco (1997) A fast file system for UNIX (1984) SPIN (1995) Exokernel (1995) Coda (1990) Log-structured file system (1992) The UNIX time-sharing system (1974) End-to-end arguments in system design (1984) Xen(2003)

Overview of the Xen approach Support for unmodified application binaries (but not OS) Keep Application Binary Interface (ABI) Modify guest OS to be aware of virtualization Get around issues of x86 architecture Better performance Keep hypervisor as small as possible Device driver is in Dom0

Xen architecture

Virtualization on x86 architecture Challenges Correctness: not all privileged instructions produce traps! Example: popf Performance: System calls: traps in both enter and exit (10X) I/O performance: high CPU overhead Virtual memory: no software-controlled TLB

CPU virtualization Protection Xen in ring0, guest kernel in ring1 Privileged instructions are replaced with hypercalls Exception and system calls Guest OS registers handles validated by Xen Allowing direct system call from app into guest OS Page fault: redirected by Xen

CPU virtualization (cont.) Interrupts: Lighweight event system Time: Interfaces for both real and virtual time

Memory virtualization Xen exists in a 64MB section at the top of every address space Guest sees real physical address Guest kernels are responsible for allocating and managing the hardware page tables. After registering the page table to Xen, all subsequent updates must be validated.

I/O virtualization Shared-memory, asynchronous buffer descriptor rings

Porting effort

Evaluation

Evaluation

Conclusion x86 architecture makes virtualization challenging Full virtualization unmodified guest OS; good isolation Performance issue (especially I/O) Para virtualization: Better performance (potentially) Need to update guest kernel Full and para virtualization will keep evolving together

Microkernel vs. VMM(Xen) Virtual Machine Monitor (VMM): software which transforms the single machine interface into the illusion of many. Each of these interfaces (virtual machines) is an efficient replica of the original computer system, complete with all of the processor instructions -- Robert P. Goldberg. Survey of virtual machine research. 1974 Microkernel: "... to minimize the kernel and to implement whatever possible outside of the kernel -- Jochen Liedtke. Towards real microkernels. 1996

Are Virtual Machine Monitors Microkernels Done Right? Steven Hand, Andrew Wareld, Keir Fraser HotOS 05 VMMs (especially Xen) are microkernels done right Avoid liability inversion: Microkernels depend on some user level components Make IPC performance irrelevant: IPC performance is the key in microkernels Treat the OS as a component Hard for microkernels to support legacy applications

Are Virtual Machine Monitors Microkernels Done Right? VMMs (especially Xen) are microkernels done right. Really?? Look at L4Linux! Gernot Heiser, Volkmar Uhlig, Joshua LeVasseur ACM SIGOPS 06 Avoid liability inversion: Microkernels depend on some user level components Make IPC performance irrelevant: Xen performs IPC performance is the key in microkernels the same number of IPC! Hard for microkernels to support legacy applications Treat the OS as a component Xen also relies on Dom0!

Discussion What is the difference between VMMs and microkernels? Why do VMMs seem to be more successful than microkernels?

Conclusion (again) Virtualization: creating a illusion of something Virtualization is a principle approach in system design OS is virtualizing CPU, memory, I/O VMM is virtualizing the whole architecture What else? What next?