Virtualization Technologies



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

Full and Para Virtualization

Virtualization. Types of Interfaces

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

Virtualization. Pradipta De

Virtual Machines. COMP 3361: Operating Systems I Winter

COS 318: Operating Systems. Virtual Machine Monitors

OPEN SOURCE VIRTUALIZATION TRENDS. SYAMSUL ANUAR ABD NASIR Warix Technologies / Fedora Community Malaysia

Cloud Computing CS

Virtualization Technology. Zhiming Shen

Virtualization. Jukka K. Nurminen

Nested Virtualization

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

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

IOS110. Virtualization 5/27/2014 1

Enabling Technologies for Distributed Computing

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

Enabling Technologies for Distributed and Cloud Computing

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

RPM Brotherhood: KVM VIRTUALIZATION TECHNOLOGY

Virtual machines and operating systems

Introduction to Virtualization & KVM

Virtualization. Jia Rao Assistant Professor in CS

Virtualizing a Virtual Machine

Virtualization. Dr. Yingwu Zhu

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

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

Virtualization and the U2 Databases

Clouds Under the Covers. Elgazzar - CISC Fall

Basics of Virtualisation

Networking for Caribbean Development

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

Distributed and Cloud Computing

Tom Eastep Linuxfest NW April 26-27, 2008 Bellingham, Washington

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

Advanced Computer Networks. Network I/O Virtualization

A cure for Virtual Insanity: A vendor-neutral introduction to virtualization without the hype

Toward Exitless and Efficient Paravirtual I/O

Enterprise-Class Virtualization with Open Source Technologies

Hypervisors and Virtual Machines

CS 695 Topics in Virtualization and Cloud Computing and Storage Systems. Introduction

SCO Virtualization Presentation to Customers

Virtualization for Cloud Computing

The Xen of Virtualization

Chapter 14 Virtual Machines

CS 695 Topics in Virtualization and Cloud Computing. Introduction

Virtualization. Michael Tsai 2015/06/08

Installing & Using KVM with Virtual Machine Manager COSC 495

Virtualization VMware Inc. All rights reserved

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

Virtualization Concepts And Applications. Yash Jain DA-IICT (DCOM Research Group)

Hypervisor Software and Virtual Machines. Professor Howard Burpee SMCC Computer Technology Dept.

The Art of Virtualization with Free Software

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

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

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

Introduction to Virtual Machines

Compromise-as-a-Service

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

Intel Virtualization Technology Overview Yu Ke

Masters Project Proposal

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

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

Cooperation of Operating Systems with Hyper-V. Bartek Nowierski Software Development Engineer, Hyper-V Microsoft Corporation

Comparing Free Virtualization Products

How To Create A Cloud Based System For Aaas (Networking)

CSE 501 Monday, September 09, 2013 Kevin Cleary

Distributed Systems. Virtualization. Paul Krzyzanowski

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

Xen and the Art of Virtualization

Knut Omang Ifi/Oracle 19 Oct, 2015

Hyper-V R2: What's New?

VMware Server 2.0 Essentials. Virtualization Deployment and Management

KVM: Kernel-based Virtualization Driver

Data Centers and Cloud Computing

kvm: Kernel-based Virtual Machine for Linux

RCL: Software Prototype

Xen and the Art of. Virtualization. Ian Pratt

OS Virtualization Frank Hofmann

Virtualization and Other Tricks.

Chapter 5 Cloud Resource Virtualization

Virtualization in a Carrier Grade Environment

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

ELI: Bare-Metal Performance for I/O Virtualization

Virtual Machines.

Virtual Machines. Virtualization

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

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

Comparing Virtualization Technologies

VIRTUALIZATION 101. Brainstorm Conference 2013 PRESENTER INTRODUCTIONS

Pete s All Things Sun: Comparing Solaris to RedHat Enterprise and AIX Virtualization Features

COM 444 Cloud Computing

Intro to Virtualization

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

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

Cloud Computing #6 - Virtualization

evm Virtualization Platform for Windows

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

Module I-7410 Advanced Linux FS-11 Part1: Virtualization with KVM

Performance tuning Xen

Transcription:

12 January 2010 Virtualization Technologies Alex Landau (lalex@il.ibm.com) IBM Haifa Research Lab

What is virtualization? Virtualization is way to run multiple operating systems and user applications on the same hardware E.g., run both Windows and Linux on the same laptop How is it different from dual-boot? Both OSes run simultaneously The OSes are completely isolated from each other 2

Uses of virtualization Server consolidation Run a web server and a mail server on the same physical server Easier development Develop critical operating system components (file system, disk driver) without affecting computer stability QA Testing a network product (e.g., a firewall) may require tens of computers Try testing thoroughly a product at each pre-release milestone and have a straight face when your boss shows you the electricity bill Cloud computing The modern buzz-word Amazon sells computing power You pay for e.g., 2 CPU cores for 3 hours plus 10GB of network traffic 3

What s new in that? We ve been doing it for decades! Indeed an OS provides isolation between processes Each has it s own virtual memory Controlled access to I/O devices (disk, network) via system calls Process scheduler to decide which process runs on which CPU core So what s the hype about? Try running Microsoft Exchange requiring Windows and your internal warehouse mgmt. application requiring Linux simultaneously on the same server! Or better yet, try to persuade competing companies to run their processes side-by-side in Amazon s cloud (had it not been virtualized) Psychological effect what sounds better? You re given your own virtual machine and you re root there do whatever you want You can run certain processes, but you don t get root, call our helpdesk with your configuration requests and we ll get back to you in 5 business days 4

Two types of hypervisors Definitions Hypervisor (or VMM Virtual Machine Monitor) is a software layer that allows several virtual machines to run on a physical machine The physical OS and hardware are called the Host The virtual machine OS and applications are called the Guest Type 1 (bare-metal) Type 2 (hosted) VM1 VM2 Guest Guest VM1 VM2 Process Hypervisor Host Hypervisor Hardware OS Hardware Host VMware ESX, Microsoft Hyper-V, Xen VMware Workstation, Microsoft Virtual PC, Sun VirtualBox, QEMU, KVM 5

Bare-metal or hosted? Bare-metal Has complete control over hardware Doesn t have to fight an OS Hosted Avoid code duplication: need not code a process scheduler, memory management system the OS already does that Can run native processes alongside VMs Familiar environment how much CPU and memory does a VM take? Use top! How big is the virtual disk? ls l Easy management stop a VM? Sure, just kill it! A combination Mostly hosted, but some parts are inside the OS kernel for performance reasons E.g., KVM 6

How to run a VM? Emulate! Do whatever the CPU does but in software Fetch the next instruction Decode is it an ADD, a XOR, a MOV? Execute using the emulated registers and memory Example: addl %ebx, %eax is emulated as: enum {EAX=0, EBX=1, ECX=2, EDX=3, }; unsigned long regs[8]; regs[eax] += regs[ebx]; 7

How to run a VM? Emulate! Pro: Simple! Con: Slooooooooow Example hypervisor: BOCHS 8

How to run a VM? Trap and emulate! Run the VM directly on the CPU no emulation! Most of the code can execute just fine E.g., addl %ebx, %eax Some code needs hypervisor intervention int $0x80 movl something, %cr3 I/O Trap and emulate it! E.g., if guest runs int $0x80, trap it and execute guest s interrupt 0x80 handler 9

How to run a VM? Trap and emulate! Pro: Performance! Cons: Harder to implement Need hardware support Not all sensitive instructions cause a trap when executed in usermode E.g., POPF, that may be used to clear IF This instruction does not trap, but value of IF does not change! This hardware support is called VMX (Intel) or SVM (AMD) Exists in modern CPUs Example hypervisor: KVM 10

How to run a VM? Dynamic (binary) translation! Take a block of binary VM code that is about to be executed Translate it on the fly to safe code (like JIT just in time compilation) Execute the new safe code directly on the CPU Translation rules? Most code translates identically (e.g., movl %eax, %ebx translates to itself) Sensitive operations are translated into hypercalls Hypercall call into the hypervisor to ask for service Implemented as trapping instructions (unlike POPF) Similar to syscall call into the OS to request service 11

How to run a VM? Dynamic (binary) translation! Pros: No hardware support required Performance better than emulation Cons: Performance worse than trap and emulate Hard to implement hypervisor needs on-the-fly x86-to-x86 binary compiler Example hypervisors: VMware, QEMU 12

How to run a VM? Paravirtualization! Does not run unmodified guest OSes Requires guest OS to know it is running on top of a hypervisor E.g., instead of doing cli to turn off interrupts, guest OS should do hypercall(disable_interrupts) 13

How to run a VM? Paravirtualization! Pros: No hardware support required Performance better than emulation Con: Requires specifically modified guest Same guest OS cannot run in the VM and bare-metal Example hypervisor: Xen 14

Industry trends Trap and emulate With hardware support VMX, SVM 15

I/O Virtualization We saw methods to virtualize the CPU A computer is more than a CPU Also need I/O! Types of I/O: Block (e.g., hard disk) Network Input (e.g., keyboard, mouse) Sound Video Most performance critical (for servers): Network Block 16

Side note How does a NIC (network interface card) driver work? Transmit path: OS prepares packet to transmit in a buffer in memory Driver writes start address of buffer to register X of the NIC Driver writes length of buffer to register Y Driver writes 1 (GO!) into register T NIC reads packet from memory addresses [X,X+Y) and sends it on the wire NIC sends interrupt to host (TX complete, next packet please) Receive path: Driver prepares buffer to receive packet into Driver writes start address of buffer to register X Driver writes length of buffer to register Y Driver writes 1 (READY-TO-RECEIVE) into register R When packet arrives, NIC copies it into memory at [X,X+Y) NIC interrupts host (RX) OS processes packet (e.g., wake the waiting process up) 17

I/O Virtualization? Emulate! Hypervisor implements virtual NIC (by the specification of a real NIC, e.g., Intel, Realtek, Broadcom) NIC registers (X, Y, Z, T, R, ) are just variables in hypervisor (host) memory If guest writes 1 to register T, hypervisor reads buffer from memory [X,X+Y) and passes it to physical NIC driver for transmission When physical NIC interrupts (TX complete), hypervisor injects TX complete interrupt into guest Similar for RX path 18

I/O Virtualization? Emulate! Pro: Unmodified guest (guest already has drivers for Intel NICs ) Cons: Slow every access to every NIC register causes a VM exit (trap to hypervisor) Hypervisor needs to emulate complex hardware Example hypervisors: QEMU, KVM, VMware (without VMware Tools) 19

I/O Virtualization? Paravirtualize! Add virtual NIC driver into guest (frontend) Implement the virtual NIC in the hypervisor (backend) Everything works just like in the emulation case except protocol between frontend and backend Protocol in emulation case: Guest writes registers X, Y, waits at least 3 nano-sec and writes to register T Hypervisor infers guest wants to transmit packet Paravirtual protocol: Guest does a hypercall, passes it start address and length as arguments Hypervisor knows what it should do Paravirtual protocol can be high-level, e.g., ring of buffers to transmit (so NIC doesn t stay idle after one transmission), and independent of particular NIC registers 20

I/O Virtualization? Paravirtualize! Pro: Fast no need to emulate physical device Con: Requires guest driver Example hypervisors: QEMU, KVM, VMware (with VMware Tools), Xen How is paravirtual I/O different from paravirtual guest? Paravirtual guest requires to modify whole OS Try doing it on Windows (without source code), or even Linux (lots of changes) Paravirtual I/O requires the addition of a single driver to a guest Easy to do on both Windows and Linux guests 21

I/O Virtualization? Direct access / direct assignment! Pull NIC out of the host, and plug it into the guest Guest is allowed to access NIC registers directly, no hypervisor intervention Host can t access NIC anymore 22

I/O Virtualization? Direct access / direct assignment! Pro: As fast as possible! Cons: Need NIC per guest Plus one for host Can t do cool stuff Encapsulate guest packets, monitor, modify them at the hypervisor level Example hypervisors: KVM, Xen, VMware 23

I/O Virtualization? Emerging standard SR-IOV! Single root I/O virtualization Contains a physical function controlled by the host, used to create virtual functions Each virtual function is assigned to a guest (like in direct assignment) Each guest thinks it has full control of NIC, accesses registers directly NIC does multiplexing/demultiplexing of traffic 24

I/O Virtualization? Emerging standard SR-IOV! Pros: As fast as possible! Need only one NIC (as opposed to direct assignment) Cons: Emerging standard Few hypervisors fully support it Expensive! Requires new hardware Can t do cool stuff Example hypervisors: KVM, Xen, VMware 25

Industry trends on I/O virtualization SR-IOV is the fastest Also, the most expensive Paravirtual I/O is cheap But much worse performance Companies (Red Hat, IBM, ) are looking at paravirtual I/O, trying to optimize it Winner still unknown 26

Advanced topics Memory over-commit Nested virtualization Live migration 27

The end! Questions? Alex Landau lalex@il.ibm.com 28