COS 318: Operating Systems. Virtual Machine Monitors



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

COS 318: Operating Systems. Virtual Machine Monitors

Virtualization. Dr. Yingwu Zhu

Full and Para Virtualization

A Deduplication File System & Course Review

Virtualization. Types of Interfaces

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Virtualization. Jia Rao Assistant Professor in CS

Virtualization. Pradipta De

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

Introduction to Virtual Machines

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

Virtualization Technology. Zhiming Shen

Chapter 5 Cloud Resource Virtualization

nanohub.org An Overview of Virtualization Techniques

COM 444 Cloud Computing

Virtual Machines. COMP 3361: Operating Systems I Winter

MODULE 3 VIRTUALIZED DATA CENTER COMPUTE

Virtualization. Jukka K. Nurminen

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

Basics of Virtualisation

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

Distributed and Cloud Computing

Chapter 14 Virtual Machines

The Xen of Virtualization

Virtual Machines.

Distributed Systems. Virtualization. Paul Krzyzanowski

Cloud Computing CS

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

Cloud Computing #6 - Virtualization

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

Virtual Machines. Virtualization

OS Virtualization. CSC 456 Final Presentation Brandon D. Shroyer

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

An Introduction to Virtual Machines Implementation and Applications

Virtualization for Cloud Computing

Virtualization. Michael Tsai 2015/06/08

Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors

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

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

System Virtual Machines

Clouds Under the Covers. Elgazzar - CISC Fall

Xen and the Art of. Virtualization. Ian Pratt

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

Virtual machines and operating systems

Hypervisors and Virtual Machines

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

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

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Analysis on Virtualization Technologies in Cloud

Virtualization and the U2 Databases

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

Enabling Technologies for Distributed Computing

PERFORMANCE ANALYSIS OF KERNEL-BASED VIRTUAL MACHINE

Virtualization Technologies (ENCS 691K Chapter 3)

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

Chapter 2 Addendum (More on Virtualization)

IOS110. Virtualization 5/27/2014 1

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

Development of Type-2 Hypervisor for MIPS64 Based Systems

The future is in the management tools. Profoss 22/01/2008

Computing in High- Energy-Physics: How Virtualization meets the Grid

How To Virtualize A Computer System

Enabling Technologies for Distributed and Cloud Computing

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

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

Virtualization VMware Inc. All rights reserved

Knut Omang Ifi/Oracle 19 Oct, 2015

COS 318: Operating Systems

Memory Resource Management in VMware ESX Server

Chapter 6, The Operating System Machine Level

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

Networking for Caribbean Development

CSE 544 Principles of Database Management Systems. Magdalena Balazinska Fall 2007 Lecture 5 - DBMS Architecture

Virtualization in Linux

The Microsoft Windows Hypervisor High Level Architecture

Survey On Hypervisors

VMkit A lightweight hypervisor library for Barrelfish

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

opensm2 Enterprise Performance Monitoring December 2010 Copyright 2010 Fujitsu Technology Solutions

kvm: Kernel-based Virtual Machine for Linux

12. Introduction to Virtual Machines

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

The Art of Virtualization with Free Software

Rackspace Cloud Databases and Container-based Virtualization

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

x86 ISA Modifications to support Virtual Machines

GUEST OPERATING SYSTEM BASED PERFORMANCE COMPARISON OF VMWARE AND XEN HYPERVISOR

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

Virtual Computing and VMWare. Module 4

Virtualization is set to become a key requirement

Hardware Based Virtualization Technologies. Elsie Wahlig Platform Software Architect

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

WHITE PAPER Mainstreaming Server Virtualization: The Intel Approach

2972 Linux Options and Best Practices for Scaleup Virtualization

Parallels Virtuozzo Containers

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Oracle Database Scalability in VMware ESX VMware ESX 3.5

Xen and the Art of Virtualization

Servervirualisierung mit Citrix XenServer

Transcription:

COS 318: Operating Systems Virtual Machine Monitors Andy Bavier Computer Science Department Princeton University http://www.cs.princeton.edu/courses/archive/fall10/cos318/

Introduction Have been around since 1960 s on mainframes used for multitasking Good example VM/370 Have resurfaced on commodity platforms Server Consolidation Web Hosting centers High-Performance Compute Clusters Managed desktop / thin-client Software development / kernel hacking 2

Why do we care? Manageability Ease maintenance, administration, provisioning, etc. Performance Overhead of virtualization should be small Isolation Activity of one VM should not impact other active VMs Data of one VM is inaccessible by another Scalability Minimize cost per VM 3

Virtual Machine Monitor (VMM) Resides as a layer below the operating system Presents a hardware interface to an OS Multiplexes resources between several virtual machines (VMs) Performance Isolates VMs from each other 4

VMM Types 5

Virtualization Styles Fully virtualizing VMM Para- virtualizing VMM 6

VMM Classification Type I Type II Fully-virtualized VMware ESX VMware Workstation Para-virtualized Xen User Mode Linux 7

VMM Implementation Should efficiently virtualize the hardware Provide illusion of multiple machines Retain control of the physical machine Subsystems Processor Virtualization I/O virtualization Memory Virtualization 8

Processor Virtualization Popek and Goldberg (1974) Sensitive instructions: only executed in kernel mode Privileged instructions: trap when run in user mode CPU architecture is virtualizable only if sensitive instructions are subset of privileged instructions When guest OS runs a sensitive instruction, must trap to VMM so it maintains control 9

x86 Processor Virtualization x86 architecture is not fully virtualizable Certain privileged instructions behave differently when run in unprivileged mode Certain unprivileged instructions can access privileged state Techniques to address inability to virtualize x86 Replace non-virtualizable instructions with easily virtualized ones statically (Paravirtualization) Perform Binary Translation (Full Virtualization) 10

I/O Virtualization Issue: lots of I/O devices Problem: Writing device drivers for all I/O device in the VMM layer is not a feasible option Insight: Device driver already written for popular Operating Systems Solution: Present virtual I/O devices to guest VMs and channel I/O requests to a trusted host VM running popular OS 11

I/O Virtualization VMM + Device Drivers VMM 12

Memory Virtualization Traditional way is to have the VMM maintain a shadow of the VM s page table The shadow page table controls which pages of machine memory are assigned to a given VM When guest OS updates its page table, VMM updates the shadow 13

VMware ESX Server Type I VMM - Runs on bare hardware Full-virtualized Legacy OS can run unmodified on top of ESX server Fully controls hardware resources and provides good performance 14

ESX Server CPU Virtualization Most user code executes in Direct Execution mode; near native performance Uses runtime Binary Translation for x86 virtualization Privileged mode code is run under control of a Binary Translator, which emulates problematic instructions Fast compared to other binary translators as source and destination instruction sets are nearly identical 15

ESX Server Memory Virtualization Maintains shadow page tables with virtual to machine address mappings. Shadow page tables are used by the physical processor ESX maintains the pmap data structure for each VM with physical to machine address mappings ESX can easily remap a machine page 16

ESX Server Memory Mgmt Page reclamation Ballooning technique Reclaims memory from other VMs when memory is overcommitted Page sharing Content based sharing Eliminates redundancy and saves memory pages when VMs use same operating system and applications 17

ESX Server- Ballooning 18

ESX Server Page Sharing 19

Real World Page Sharing 20

ESX Server I/O Virtualization Has highly optimized storage subsystem for networking and storage devices Directly integrated into the VMM Uses device drivers from the Linux kernel to talk directly to the device Low performance devices are channeled to special host VM, which runs a full Linux OS 21

I/O Virtualization VMM + Device Drivers VMM 22

VMware Workstation Type II VMM - Runs on host operating system Full-virtualized Legacy OS can run unmodified on top of VMware Workstation Appears like a process to the Host OS 23

Workstation - Virtualization CPU Virtualization and Memory Virtualization Uses Similar Techniques as the VMware ESX server I/O Virtualization Workstation relies on the Host OS for satisfying I/O requests I/O incurs huge overhead as it has to switch to the Host OS on every IN/OUT instruction. 24

Workstation I/O Virtualization VMM must be able to intercept all I/O operations issued by the Guest OS These are trapped by the VMM and emulated either in VMM or VMApp. Any access that interact with physical hardware have to be handled by VMApp I/O intensive workload performs poorly due to extra host switches between the Host and the VMM worlds 25

Workstation Virtualize NIC 26

Xen Type I VMM Para-virtualized Open-source Designed to run about 100 virtual machines on a single machine 27

Xen CPU Virtualization Privileged instructions are para-virtualized by requiring them to be validated and executed with Xen Processor Rings Guest applications run in Ring 3 Guest OS runs in Ring 1 Xen runs in Ring 0 28

Xen Memory Virtualization(1) Initial memory allocation is specified and memory is statically partitioned A maximum allowable reservation is also specified. Balloon driver technique similar to ESX server used to reclaim pages 29

Xen Memory Virtualization(2) Guest OS is responsible for allocating and managing hardware page table Xen involvement is limited to ensure safety and isolation Xen exists in the top 64 MB section at the top of every address space to avoid TLB flushes when entering and leaving the VMM 30

Xen I/O Virtualization Xen exposes a set of clean and simple device abstractions I/O data is transferred to and from each domain via Xen, using shared memory, asynchronous buffer descriptor rings Xen supports lightweight event delivery mechanism used for sending asynchronous notifications to domains 31

VMMs the only way to Virtualize? Alternative: Container-based OS (COS) Eg., Solaris 10, Linux-Vserver, OpenVZ Features VMM COS Multiple kernels Administrative power (root) Manageability Scalability Isolation Efficiency 32

PlanetLab (circa 2005) Usage 100 30 25 80 20 60 15 40 10 20 5 0 Number of Active Resident VMs VMs Typical Node (2.4GHz, 1GB, 100GB disk) ~250-300 configured VM file systems on disk 40-90 resident VMs with 1 process 5-20 active VMs using CPU 33

Container vs. Hypervisor Virtualization: What is the Trade-Off? Stephen Soltesz, Herbert Pötzl, Marc Fiuczynski, Andy Bavier, Larry Peterson. Container-based operating system virtualization: A scalable, high-performance alternative to hypervisors. EuroSys 2007 Herbert Pötzl and Marc Fiuczynski. Linux-VServer: Resource-Efficient OS-level Virtualization, Ottawa Linux Sym. 2007 34

Container Design GUEST 1 GUEST 2 GUEST n 35

Feature Comparison Hypervisor Container Multiple Kernels X Load Arbitrary Modules X Local Administration (root) All Live Migration OpenVZ Cross Version Migration X Zap 36

Linux-VServer Overview Resource Control Map Container to HTB for Network CFQ for Disk Logical Limits Processes Open FD Memory Locks Scheduler Single Level Security Token Bucket Isolation Filter Access preserves to Logical O(1) scheduler Objects Context ID Filter User IDs SHM & IPC address File system Barriers Optimizations File-level Copy-on-write 37

COS vs. VMM Summary COS=Linux-Vserver VMM=Xen Performance COS 1.25x 2x more efficient than VMM Scalability COS scales ~10x better Isolation COS almost as good as VMM 38

Summary Classifying Virtual Machine Monitors Type I vs. type II Full vs. para-virtualization Processor virtualization Memory virtualization I/O virtualization Containers vs. VMM 39

Review Topics OS structure Process management CPU scheduling Virtual memory Disks and file systems General concepts 40

Operating System Structure Abstraction Protection and security Kernel structure Layered Monolithic Micro-kernel Virtualization Virtual machine monitor 41

Process Management Implementation State, creation, dispatching, context switch Threads and processes Synchronization Race conditions and inconsistencies Mutual exclusion and critical sections Semaphores: P() and V() Producer & Consumer problems Scheduling problems Semaphore implementations Atomic operations: interrupt disable, test-and-set. Monitors and Condition Variables Deadlock detection and prevention 42

CPU Scheduling Allocation -- Non-preemptible resources Scheduling -- Preemptible resources FIFO Round-robin STCF Lottery 43

Virtual Memory Mechanisms Base and bounds Paging Segmentation Page and segmentation TLBs Page replacement LRU and clock Thrashing, working sets and WSClock 44

Disks and File Systems Disks Disk behavior Disk scheduling RAID Volume manager File access pattern and layout Directories and implementation File system performance Layout for performance Buffer cache File system reliability Crash recovery and logging NFS and NetApp file system Deduplication file system 45

Major Concepts Locality Spatial, temporal and working set Scheduling Optimal algorithms know future, but we use past instead Layering Synchronization, transactions, file systems, etc Caching Translation look aside buffer, VM, buffer cache, etc 46

Operating System as Illusionist Physical reality Single CPU Interrupts Limited memory No protection Raw storage device Abstraction Infinite number of CPUs Cooperating sequential threads Unlimited virtual memory Each address has its own machine Organized and reliable storage system Future courses Networking: COS 461 Security: COS 429 Advanced OS: COS 518 Parallel Arch & Prog. COS 598A 47