Lecture 34 Virtualization Part 1

Similar documents
Full and Para Virtualization

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

Virtualization. Types of Interfaces

Virtualization for Cloud Computing

COS 318: Operating Systems. Virtual Machine Monitors

Virtualization. Jukka K. Nurminen

Virtualization. Pradipta De

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

COM 444 Cloud Computing

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

Virtual Machines. COMP 3361: Operating Systems I Winter

Virtualization. Dr. Yingwu Zhu

IOS110. Virtualization 5/27/2014 1

Virtualization and the U2 Databases

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

The Xen of Virtualization

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

Virtualization Technology. Zhiming Shen

Cloud Computing #6 - Virtualization

Virtual Machines. Virtualization

Basics of Virtualisation

Virtualization. Michael Tsai 2015/06/08

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

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

What is virtualization

Virtualization: Concepts, Applications, and Performance Modeling

Hypervisors and Virtual Machines

Chapter 5 Cloud Resource Virtualization

COS 318: Operating Systems. Virtual Machine Monitors

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

Distributed Systems. Virtualization. Paul Krzyzanowski

Enabling Technologies for Distributed Computing

International Journal of Advancements in Research & Technology, Volume 1, Issue6, November ISSN

Virtualization. Jia Rao Assistant Professor in CS

WHITE PAPER Mainstreaming Server Virtualization: The Intel Approach

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

Cloud Computing CS

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Virtualization Technologies and Blackboard: The Future of Blackboard Software on Multi-Core Technologies

Chapter 14 Virtual Machines

Distributed and Cloud Computing

Servervirualisierung mit Citrix XenServer

Regional SEE-GRID-SCI Training for Site Administrators Institute of Physics Belgrade March 5-6, 2009

kvm: Kernel-based Virtual Machine for Linux

Enabling Technologies for Distributed and Cloud Computing

Jukka Ylitalo Tik TKK, April 24, 2006

Introduction to Virtual Machines

9/26/2011. What is Virtualization? What are the different types of virtualization.

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

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

GUEST OPERATING SYSTEM BASED PERFORMANCE COMPARISON OF VMWARE AND XEN HYPERVISOR

The XenServer Product Family:

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

Virtual machines and operating systems

The Art of Virtualization with Free Software

Anh Quach, Matthew Rajman, Bienvenido Rodriguez, Brian Rodriguez, Michael Roefs, Ahmed Shaikh

VIRTUALIZATION 101. Brainstorm Conference 2013 PRESENTER INTRODUCTIONS

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

Virtualization Technologies (ENCS 691K Chapter 3)

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

Virtualization Overview

Virtualization with Windows

x86 ISA Modifications to support Virtual Machines

Chapter 2 Addendum (More on Virtualization)

Hybrid Virtualization The Next Generation of XenLinux

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

Compromise-as-a-Service

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

Introduction to Virtualization & KVM

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

Developing a dynamic, real-time IT infrastructure with Red Hat integrated virtualization

MODULE 3 VIRTUALIZED DATA CENTER COMPUTE

Data Centers and Cloud Computing

Virtualization benefits Introduction to XenSource How Xen is changing virtualization The Xen hypervisor architecture Xen paravirtualization

Virtual Machines.

Virtual Machines Fact Sheet

Nested Virtualization

Virtualization Technologies

Introduction to Virtual Machines

Virtualization: Hypervisors for Embedded and Safe Systems. Hanspeter Vogel Triadem Solutions AG

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

Virtual Servers. Virtual machines. Virtualization. Design of IBM s VM. Virtual machine systems can give everyone the OS (and hardware) that they want.

OS Virtualization. CSC 456 Final Presentation Brandon D. Shroyer

Virtual Machine Security

Satish Mohan. Head Engineering. AMD Developer Conference, Bangalore

Virtualization is set to become a key requirement

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

KVM: A Hypervisor for All Seasons. Avi Kivity avi@qumranet.com

Parallels Virtuozzo Containers

Virtualization VMware Inc. All rights reserved

RPM Brotherhood: KVM VIRTUALIZATION TECHNOLOGY

Survey On Hypervisors

Virtualizing Exchange

Cloud Architecture and Virtualisation. Lecture 4 Virtualisation

Intel Virtualization Technology (VT) in Converged Application Platforms

Xen and the Art of. Virtualization. Ian Pratt

Introduction to Virtualization

Intro to Virtualization

SUSE Linux Enterprise 10 SP2: Virtualization Technology Support

A quantitative comparison between xen and kvm

Transcription:

CS 423 Operating Systems Design Lecture 34 Virtualization Part 1 Klara Nahrstedt Fall 2011 Based on slides by Andrew S. Tanenbaum; Mendel Rosenblum slides and talk at ASPLOS Keynote Impact of Virtualization on Computer Architecture and Operating Systems, White Paper Understanding Full Virtualizatoin, Paravirtualization, and Hardware Assist, 2007 VMware

Administrative MP4 is out Deadline December 2 + bonus days if you have left any Interviews for Linux projects Monday, December 5 Interviews of Android projects Monday, December 5 Android Competition on Tuesday, December 6 final 6 projects selected for competition

Introduction Virtualization as a concept known over the last 40 years (IBM/370) 1998 VMware figures out how to virtualize x86 platform Solution Combination of binary translation and direct execution on the processor that allowed multiple guest OSes to run in full isolation on the same computer with affordable overhead Dynamic partitioning and sharing available physical resources such as CPU, storage, memory and I/O devices

What is Virtualization? A hypervisor running four virtual machines. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Benefits of Virtualization Energy (Multiple Heterogeneous Jobs on the same machine Performance (Bandwidth, High Utilization) Reliability, Robustness, Security (Isolation) Scale Sharing of resources Simplification of software development and testing Enabling server consolidation Enhancement of data center agility and business continuity

Benefits of Virtualization (2) Servers can run in extremely fault tolerant configurations on virtual infrastructures 24 x 7 x 365 with no downtime needed for backups or hardware maintenance.

Selected Timeline of x86 Virtualization Technologies Xen v1 Linux w/ Paravirtualization Xen v3 Windows w/ Hardware Assist 1998 2002 2003 2004 2005/2006 2007 VMware Founded One Million VMware Users 1 st generation Hardware Assist Source: VMware, Understanding Full Virtualization,2007 Para-virtualization, and Hardware Assist, 2007.

Virtualization Layer with Hypervisor Application Application OS Application Application OS Application Application OS VMM VMM VMM Enhanced Functionality Base Functionality (e.g., scheduling) HYPERVISOR Hardware

Virtualization Layer Software responsible for hosting and managing all virtual machines on virtual machine monitors Functionality of hypervisor (virtualization layer component) varies greatly based on architecture and implementation Each VMM running on hypervisor implements VM hardware abstraction and is responsible for running guest OS Each VMM has to partition and share CPU, memory, I/O devices

Challenges of x86 Hardware Virtualization (x86 privileged architecture without virtualization) Ring 3 User Applications Ring 2 Ring 1 Direct Execution Of User And OS Requests Ring 0 OS Host Computer System Hardware

Challenges of x86 Hardware Virtualization x86 OS is designed to run directly on bare metal hardware x86 OS assumes to fully own computer hardware x86 assumes direct access to memory and hardware to execute its privileged instructions (in Ring 0) Set of instructions that cause trap if executed in user mode Virtualizing x86 architecture requires placing virtualization layer under OS to create and manage VMs that deliver shared resource Some sensitive instructions can t be effectively virtualized as they have different semantics when they are not executed in Ring 0 Set of Instructions executed only in kernel mode - I/O change, MMU settings Difficulty in trapping and translating these sensitive and privileged instruction requests at runtime was challenge!!!

CPU Virtualization VMware developed binary translation techniques Allow VMM to run in Ring 0 for isolation and performance while moving OS to user level ring with greater privilege than applications in Ring 3, but less privilege than VMM (Virtual Machine Monitor) Using binary translation for full virtualization approach is de facto standard today No open standards to define and manage virtualization

Alternative Techniques for CPU Virtualization (handling sensitive and privileged instructions) Full virtualization using binary translation OS assisted virtualization or Paravirtualization Hardware-assisted virtualization (first generation) Virtualization in CPU

Technique 1- Full Virtualization using Binary Translation User Mode Ring 3 Ring 2 User Applications Direct Execution Of User Requests Kernel Mode Ring 1 Ring 0 Guest OS VMM Binary Translation Of OS Request Host Computer (Host Operating System) System Hardware

Full Virtualization - Type 2 Hypervisors Hosted architecture installs and runs virtualization layer (Type 2 Hypervisor) as an application on top of OS (e.g., Linux) Type 2 Hypervisor supports the broadest range of hardware configurations All sensitive instructions are replaced by calls to procedures that emulate these instructions No sensitive instructions issued by guest OS are ever executed by true hardware Sensitive instructions are caught and replaced with a call to a VMM procedure(s) that handle it. This technique is called binary translation. Sensitive instructions are turned into calls to hypervisor which then emulates them.

Full Virtualization Type 2 Hypervisor VMware can virtualize any x86 OS using Combination of binary translation and direct execution techniques Translation of kernel code to replace non-virtualize-able instructions with new sequences of instructions that have intended effect on virtual hardware User level code is directly executed on processor for high performance virtualization Each VMM provides each VM services of physical system, including virtual BIOS, virtual devices and virtual memory management Guest OS does not need any modification No need for any hardware assist or OS assist to virtualize sensitive and privileged instructions Hypervisor translates all OS instructions on fly and caches results for future use while user level instructions run unmodified at native speed. Best isolation and security for VM Simplified migration and portability

Technique 2 - OS Assisted Virtualization or Paravirtualization Ring 3 Ring 2 User Applications Direct Execution Of User Requests Ring 1 Ring 0 Para-virtualized Guest OS (e.g., Modified Linux) Virtualization Layer (microkernel) Hypercalls to Virtualization Layer replace Non-virtualizable OS instructions Host Computer System Hardware

Technique 2 - OS Assisted Virtualization or Para-virtualization Paravirtualization refers to communication between guest OS and hypervisor to improve performance and efficiency It involves modifying OS kernel to replace non-virtualizable instructions with hypercalls that communicate directly with virtualization layer hypervisor Hypervisor provides APIs to critical kernel operations Memory management, interrupt handling, time keeping

Paravirtualization (1) Figure 8-27. A hypervisor supporting both true virtualization and paravirtualization. Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Paravirtualization (2) Value of paravirtualization is in lower virtualization overhead Performance advantage of paravirtualization over full virtualization varies greatly depending on workload Its compatibility and portability is poor It introduces significant support and maintainability issues in production Requires deep OS kernel modifications Xen open source project is example of paravirtualization Virtualizes processor and memory using modified Linux kernel Virtualizes I/O using custom guest OS device drivers

Paravirtualization (3) Figure 8-28. VMI Linux running on (a) the bare hardware (b) VMware (c) Xen. VMI Virtual Machine Interface - Low Level Interface that interfaces with Hardware or hypervisor Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Technique 3 Hardware Assisted Virtualization Non-root Mode Privilege Levels Ring 3 Ring 2 Ring 1 User Applications Direct Execution Of User Requests Root Mode Privilege Levels Ring 0 Host Computer System Hardware Guest OS VMM OS Requests Trap to VMM Without Binary Translation or Paravirtualization

Hardware-Assisted Virtualization - Type 1 Hypervisors Hypervisor architecture (bare-metal) virtualization layer directly on clean x86 system Type 1 Hypervisor more efficient, greater scalability, robustness, performance When the operating system in a virtual machine executes a kernel-only instruction, it traps to the hypervisor if virtualization technology is present. VMware ESX Server, Citrix XenServer, Microsoft Virtual Server Type 1 hypervisor Tanenbaum, Modern Operating Systems 3 e, (c) 2008 Prentice-Hall, Inc. All rights reserved. 0-13-6006639

Hardware-assisted Virtualization (1) Hardware vendors develop new features to simplify virtualization techniques 1 st generation enhancements Intel Virtualization Technology (VT-x) AMD s AMD-V Both target privileged instructions with new CPU execution mode feature that allows VMM to run in new root mode below Ring 0 Privileged and sensitive calls are set to automatically trap to hypervisor, removing need for either binary translation or paravirtualization

Hardware-assisted Virtualization (2) Guest state stored in Virtual Machine Control Structures (VT-x) or Virtual Machine Control Blocks (AMD-V) Processors with Intel VT-x and AMD-V became available in 2005/2006 Due to high hypervisor-to-guest transition overhead and rigid programming model VMware s binary translation approach outperforms 1 st generation hardware-assisted implementation

Conclusion Virtualization concept embraced by industry and it is to stay here Virtualization - A lot of benefits CPU Virtualization Full Virtualization Paravirtualization Hardware-assisted Virtualization