Virtualization techniques

Similar documents
Full and Para Virtualization

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

Virtualization. Types of Interfaces

Virtual Machines. COMP 3361: Operating Systems I Winter

Virtualization. Pradipta De

VMware Server 2.0 Essentials. Virtualization Deployment and Management

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

Chapter 5 Cloud Resource Virtualization

Virtualization for Cloud Computing

Virtualization. Jia Rao Assistant Professor in CS

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

Hypervisors and Virtual Machines

Cloud Computing CS

Virtualization Technology. Zhiming Shen

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

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Virtualization. Jukka K. Nurminen

RPM Brotherhood: KVM VIRTUALIZATION TECHNOLOGY

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

Virtualization in Linux KVM + QEMU

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

Enterprise-Class Virtualization with Open Source Technologies

Introduction to Virtualization & KVM

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

Nested Virtualization

Cloud Architecture and Virtualisation. Lecture 4 Virtualisation

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

Compromise-as-a-Service

Virtualization VMware Inc. All rights reserved

Comparing Free Virtualization Products

Introduction to Virtual Machines

Basics of Virtualisation

Comparing Virtualization Technologies

Virtualization and Performance NSRC

Jukka Ylitalo Tik TKK, April 24, 2006

Distributed systems Techs 4. Virtualization. October 26, 2009

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

2972 Linux Options and Best Practices for Scaleup Virtualization

Virtualisation M2 P7 2015

Distributed Systems. Virtualization. Paul Krzyzanowski

kvm: Kernel-based Virtual Machine for Linux

Virtualization and the U2 Databases

IOS110. Virtualization 5/27/2014 1

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

Hybrid Virtualization The Next Generation of XenLinux

The Art of Virtualization with Free Software

COS 318: Operating Systems. Virtual Machine Monitors

Virtualization. Michael Tsai 2015/06/08

CSE 501 Monday, September 09, 2013 Kevin Cleary

Virtualization. Dr. Yingwu Zhu

Virtualization in a Carrier Grade Environment

Hardware Based Virtualization Technologies. Elsie Wahlig Platform Software Architect

matasano Hardware Virtualization Rootkits Dino A. Dai Zovi

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

Virtual machines and operating systems

Virtualization with Windows

COS 318: Operating Systems. Virtual Machine Monitors

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

Intro to Virtualization

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

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

Satish Mohan. Head Engineering. AMD Developer Conference, Bangalore

KVM KERNEL BASED VIRTUAL MACHINE

PARALLELS SERVER BARE METAL 5.0 README

Table of Contents. Server Virtualization Peer Review cameron : modified, cameron

Enabling Technologies for Distributed Computing

Virtualization Technologies

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

Knut Omang Ifi/Oracle 19 Oct, 2015

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

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

How To Virtualize A Computer System

Enabling Technologies for Distributed and Cloud Computing

A quantitative comparison between xen and kvm

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

Virtual Hosting & Virtual Machines

Xen and the Art of. Virtualization. Ian Pratt

x86 Virtualization Hardware Support Pla$orm Virtualiza.on

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

Intel Virtualization Technology Overview Yu Ke

PROCESSOR VIRTUALIZATION ON EMBEDDED LINUX SYSTEMS

Virtual Machines. Virtualization

GUEST OPERATING SYSTEM BASED PERFORMANCE COMPARISON OF VMWARE AND XEN HYPERVISOR

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

MODULE 3 VIRTUALIZED DATA CENTER COMPUTE

Performance tuning Xen

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

VIRTUALIZATION 101. Brainstorm Conference 2013 PRESENTER INTRODUCTIONS

The Xen of Virtualization

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

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

Virtualization analysis

Virtualization and Other Tricks.

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

BHyVe. BSD Hypervisor. Neel Natu Peter Grehan

Survey On Hypervisors

Virtualization in Linux

Virtualization. Introduction to Virtualization Virtual Appliances Benefits to Virtualization Example Virtualization Products

Introduction to Virtual Machines

Operating Systems Virtualization mechanisms

Transcription:

Virtualization techniques Samia Bouzefrane & Ivan Boule Conservatoire National des Arts et Métiers http://cedric.cnam.fr/~bouzefra 1

Outline Introduction History Virtualization categories Virtualization in more details Full Virtualization Virtualization of the CPU Virtualisation of memory & MMU Para-virtualization Hardware-assisted virtualization 2

Introduction 3

Definition Virtualization, in computing, refers to the act of creating a virtual (rather than actual) version of something, including but not limited to a virtual computer hardware platform, operating system (OS), storage device, or computer network resources. Source: Wikipedia http://en.wikipedia.org/wiki/virtualization 4

Advantages Sharing physical resources (CPU, RAM, Disk) Simplify maintenance Reduce the cost in terms of energy and hosting Deployment and administration are centralized Flexibility to manipulate VMs that are files easy to migrate and to store 5

Virtualization in 2013 http://www.itcandor.com/server-2013/ 6

History 7

IBM 370 model Virtual memory generalized in 1973 (http://fr.wikipedia.org/wiki/ibm_360_et_370) 8

Some significant dates VM introduces in the 60 s IBM/370 models 1979 : chroot (version 7 Unix) 1982 : chroot (BSD) chroot environment allows to create a separate file system 1999 : VMware (virtualization for x86) 2000 : FreeBSD Jail (*BSD) 2003 : Xen (Linux) 2005 : Solaris Zones 2005/2006 : Intel-VT et AMDV (hardware-assisted virtualization) 2006 : OpenVZ (Linux) 2007 : KVM (Linux) 2008 : LxC (Linux) 2008 : HyperV (Microsoft) 9

Principles of virtualized systems Run distinct OSs on the same physical machine Share and partition the machine resources between the guest OSs CPU Physical Memory & MMU (Memory Management Unit) Input/output devices By design, an OS has a complete control on the physical resources of the machine 10

Virtualization categories 11

Virtualization categories Virtualization by isolation (container) Full virtualization Para-virtualization Hardware-assisted virtualization 12

Isolation Instanciation of multiple «user spaces» on the same kernel, isolated from each other thanks to name spaces Virtualization of the applications (not the systems) 13

Isolation http://patg.net/containers,virtualization,docker/2014/06/05/docker-intro/ 14

Example of containers Jails OpenVZ LxC : Linux Containers/Dockers https://www.docker.com/whatisdocker/ 15

Docker Namespaces: isolation at each level Mount namespaces: mount file systems (chroot) Pid namespaces: Pid of processes are attached to Pid namespaces IPC namespaces: IPC are defined in each namespace Network namespaces: @IP, routing table UTS namespaces: domain name, hostname User namespaces: not implemented yet 16

Images in Dockers Example of image A minimum kernel (ex. Ubuntu) Application called Geany Eache Docker image has a unique ID Binary image contains a basic OS (ex. Centos, Ubuntu, etc.) 17

Docker Container Docker Container Is a directory Hosts a binary image Docker Daemon: is a daemon that manages containers See http://cedric.cnam.fr/~bouzefra/cours/exercice_sur_les_dockers.pdf 18

Full Virtualization Provides a virtual environment (interfaces and resources) to represent a real architecture The guest OS executes within a Virtual Machine The guest OS is not aware to be virtualized No modification of the source code of the guest OS If the virtualized architecture is different from the physical one, we call it emulation. 19

Hosted/Standalone Virtualization Hosted Virtualization Hosted VM Monitor (VMM) runs on top of a native OS VMware WKS, Microsoft VirtualPC, QEMU, UML (User Mode Linux) Standalone Virtualization VMM directly runs on bare hardware VMware ESXi, IBM/VM, Xen, VLX, KVM 20

Hypervisor design: two approaches http://blogs.technet.com/b/chenley/archive/2011/02/09/hypervisors.aspx 21

Para-virtualization Achieves a collaboration between the hypervisor and the guest OS As a consequence: the guest OS source code is modified to call directly the hypervisor (hypercalls) to execute the privileged instructions 22

Para-virtualization http://networksandservers.blogspot.fr/2011/11/para-is-english-affix-of-greek-origin.html 23

Hypercalls http://networksandservers.blogspot.fr/2011/11/para-is-english-affix-of-greek-origin.html 24

Hardware-assisted virtualization called also : Accelerated virtualization Hardware support: Intel VT-x or AMD-V for x86 processors since 2006 Virtualization support for x86 used by VMware Workstation, Xen, Linux KVM, Microsoft Hyper-V. 25

Virtualization in more details 26

Hosted/Standalone Virtualization Hypervisors of type 1 and type 2 rely on Full virtualization Virtualization of the CPU (instructions, interruptions) Virtualization of the memory (memory access, MMU: memory management unit) Virtualization of the devices The same physical resources are shared between the guest OSs Execute native/unmodified OS binary images 27

Full CPU virtualization 28

Full CPU virtualization VMM manages a CPU context for each VM saved copy of CPU registers representation of software emulated CPU context VMM includes a VM scheduler Round robin Priority based 29

Full CPU Virtualization Relationships between a VMM and VMs similar to relationships between native OS and applications Guarantee mutual isolation between all VMs Protect VMM from all VMs Directly execute native binary images of Guest OS's in non privileged mode VMM emulates access to protected resources performed by Guest OSs 30

CPU Virtualisation Run each Guest OS in non privileged mode 31

Hardware-Sensitive instructions Interact with protected hardware resources Privileged Instructions Cannot be directly executed by Guest OS's Must be detected and faked by VMM Dynamic Binary Translation of kernel code Done once, saved in Translation Cache Example: Vmware 32

Privileged Instructions Virtualization Only allowed in supervisor mode Ex: cli/sti to mask/unmask interrupts on Intel x86 When executed in non privileged mode CPU automatically detects a privilege violation Triggers a privilege violation exception Caught by VMM which fakes the expected effect of the privileged instruction Ex: cli/sti VMM does not mask/unmask CPU interrupts records «interrupt mask status» in context of VM 33

Full memory virtualization 34

MMU CPU includes a Memory Management Unit (MMU) Isolated memory addressing spaces Independent of underlying physical memory layout Virtual Memory managed by OS kernel Provides a virtual address space to each process 4 GB on most 32bit architectures (Intel x86, PowerPC) Manages virtual page physical case mappings Manages «swap» space to extend physical memory 35

MMU & Virtual Address Space 36

Intel x86 MMU 37

Memory Virtualization/1 Machine Physical Memory (RAM) Physical memory available on the machine Guest OS Physical Memory Part of machine memory assigned to a VM by VMM Σ Guest Physical Memory can be > Machine Memory VMM uses «swap» space Guest OS Virtual Memory Guest OS manages virtual address spaces of its processes 38

Memory Virtualization/2 Guest OS manages Guest Physical Pages Manages MMU with its own page entries Translates Virtual Addresses into Guest Physical Addresses (GPA) VMM transparently manages Machine Physical Pages Guest Physical Address Machine Physical Address VMM dynamically translates Guest Physical Pages into Machine Physical Pages 39

Memory Virtualization/3 40

Memory Virtualization/4 VMM maintains Shadow Page Tables Copies of Guest OS translation tables VMM catches updates operations of translation tables performed by a Guest OS Write protect all guest OS page tables Emulates operation in shadow page table Updates effective MMU page table entry, if needed 41

Para-virtualization principles 42

Para-virtualization OS adaptation to avoid binary translation overhead Requires access to OS source code Include drivers of virtual devices Examples Xen User Mode Linux (UML) 43

Para-virtualization Guest OS only uses Virtual I/O Devices Frontend driver in Guest OS Backend driver in VMM Avoid extra I/O data copies of Full Virtualization VMM multiplexes VM Virtual Devices on physical devices Virtual Ethernet Virtual Disks Example: Linux guest OS uses paravirt_ops to replace the privileged instructions of the guest OS by hypercalls (like in Xen). 44

Virtual I/O Devices 45

Paravirtualization Example: Xen Objectives Support more than 100 VM Share resources of Server machines Intel IA32, x86-64 and ARM architectures Special first Guest OS called Domain 0 Run in privileged mode Have access (and manages) all physical devices Modified version of Linux, FreeBSD 46

Hardware-Assisted Virtualization 47

Hardware-Assisted Virtualization Support of Virtualization in Hardware Run unmodified OS binaries With minimal virtualization overhead Simplify VMM development Examples KVM (Intel-VT, AMD-V) VMware (Intel-VT) 48

Hardware-Assisted Virtualization CPU virtualization AMDV Intel VTx (x86), Intel VTi (Itanium) architectures ARM CortexA15 MMU virtualization Intel Extended Page Tables (EPT) AMD Nested Page Tables (NPT) 49

Intel VT-x Architecture Support unmodified Guest OS with no need for paravirtualization and/or binary code translation Simplify VMM tasks & improve VMM performances Minimize VMM memory footprint Suppress shadowing of Guest OS page tables Enable Guest OS to directly manage I/O devices Without performance lost While enforcing VM isolation and mutual protection 50

Intel VT-x Architecture 51

Intel VTx CPU Virtualization Two additional CPU mode transitions From VMX root-mode to VMX non-root mode Named VM Enter From VMX non-root mode to VMX root mode Named VM Exit VM entries & VM exits use a new data structure Virtual Machine Control Structure (VMCS) per VM Referenced with a memory physical address Format and layout hidden New VT-x instructions to access a VMCS 52

VMX instructions 53

Intel VTx Extended Page Tables VMM controls Extended Page Tables EPT used in VMX non-root operation Activated on VM Enter Desactivated on VM exit EPTP register points to Extended Page Tables Instanciated by VMM Saved in VMCS Loaded from VMCS on VM entry 54

MMU Virtualization : Intel VT-x 55

DMA virtualization : Intel VT-d 56

References Lecture of Dominique Rodriguez, UE SMB204, CNAM. http://www-igm.univmlv.fr/~dr/xpose2008/virtualisation/techniques.html http://www.vmware.com/files/pdf/vmware_paravirtualizatio n.pdf Intel documentation Magazine MISC n 42, «La virtualisation: vecteur de vulnérabilité ou de sécurité?» Mars/avril 2009. Dino A. Dai Zovi, Hardware Virtualization Rootkits, Matasano, http://dator8.info/2010/16.pdf 57