Lecture 34 Virtualization Part 1

CS 423 – Operating Systems Design Lecture 34 – Virtualization – Part 1 Klara Nahrstedt Fall 2011 Based on slides by Andrew S. Tanenbaum; Mendel Rosen...
Author: Jason Reed
26 downloads 1 Views 3MB Size
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

CS 423 - Fall 2011

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 

CS 423 - Fall 2011

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 CS 423 - Fall 2011

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 

CS 423 - Fall 2011

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.

CS 423 - Fall 2011

Selected Timeline of x86 Virtualization Technologies Xen v1 Linux w/ Paravirtualization 1998

2002

VMware Founded

One Million VMware Users

2003

2004

Xen v3 Windows w/ Hardware Assist 2005/2006

2007

1st generation Hardware Assist

Source: VMware, “Understanding Full Virtualization,2007 Para-virtualization, and CS 423 - Fall 2011 Hardware Assist”, 2007.

Virtualization Layer with Hypervisor Application Application OS

VMM

Application Application OS

VMM

Application Application OS

VMM

Enhanced Functionality

Base Functionality (e.g., scheduling) HYPERVISOR

Hardware CS 423 - Fall 2011

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 

CS 423 - Fall 2011

Challenges of x86 Hardware Virtualization (x86 privileged architecture without virtualization) Ring 3

User Applications Direct Execution Of User And OS Requests

Ring 2

Ring 1 Ring 0

OS

Host Computer System Hardware

CS 423 - Fall 2011

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 !!!

CS 423 - Fall 2011

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 CS 423 - Fall 2011

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

CS 423 - Fall 2011

Technique 1- Full Virtualization using Binary Translation Ring 3 User Mode

Ring 2

Ring 1 Kernel Mode

User Applications

Ring 0

Guest OS VMM

Host Computer (Host Operating System) System Hardware

CS 423 - Fall 2011

Direct Execution Of User Requests

Binary Translation Of OS Request

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. CS 423 - Fall 2011

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 CS 423 - Fall 2011

Technique 2 - OS Assisted Virtualization or Paravirtualization Ring 3

User Applications

Ring 2

Direct Execution Of User Requests

Ring 1 Ring 0

Para-virtualized Guest OS (e.g., Modified Linux) Virtualization Layer (microkernel)

Host Computer System Hardware CS 423 - Fall 2011

‘Hypercalls’ to Virtualization Layer replace Non-virtualizable OS instructions

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 CS 423 - Fall 2011

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

CS 423 - Fall 2011

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 Ring 3

Non-root Mode Privilege Levels

User Applications

Ring 2

Direct Execution Of User Requests

Ring 1 Ring 0

Root Mode Privilege Levels

OS Requests Trap to VMM Without Binary Translation or Paravirtualization

Guest OS VMM

Host Computer System Hardware CS 423 - Fall 2011

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 1st 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 CS 423 - Fall 2011

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 1st generation hardware-assisted implementation CS 423 - Fall 2011

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

CS 423 - Fall 2011