Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek...

41
Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Virtualization Zoltan Micskei http://www.mit.bme.hu/~micskeiz Operating system (vimia219)

Transcript of Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek...

Page 1: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

Budapesti Műszaki és Gazdaságtudományi EgyetemMéréstechnika és Információs Rendszerek Tanszék

Virtualization

Zoltan Micskei

http://www.mit.bme.hu/~micskeiz

Operating system (vimia219)

Page 2: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

2

Virtualization

Central concept in computers

Virtualization: hiding the actual parameters of a resource from its users, e.g.o presenting a resource as separate logical ones,o presenting separate resources as one logical…

Virtual memory, virtual filesystem…

Page 3: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

3

The virtualization buzzwordMisused termonology

Computer virtualization

Packaged applications

Thin clients

Desktop products

Hiding the storage

structure

+ OS level virtualization:separate OS containers

Dymamic management,

lifecycle, templates…

Page 4: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

4

* taxonomy ~ structure for presenting relationships between concepts

Virtual machine taxonomy*

Source: J. Smith and Ravi Nair, “The architecture of virtual machines,” IEEE Computer, vol. 38, 2005, pp. 32-38.

VM sees an ABIVM sees a

hardware

Multiprog-rammed OS

Java, .NET…

Page 5: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

5

Virtual machine taxonomy (detailed)

Page 6: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

6

Platform virtualization Platform virtualization: virtualizing a full

computer, running multiple OS on one hardwareo Also known as: server, computer, hardware

virtualization..

Concepts:o Host machine = physical computero Guest machine = virtual computero Virtual Machine Monitor (VMM): program managing

the virtual machines

Page 7: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

7

History of platform virtualization ~1960 - IBM CP-40 system

o in the mainframe products x86 virtualization

o Seemed impossibleo 1997: Stanford, Disco projectso 1998: VMware solutiono 2000- Other solutions

Now: o has its own businesso becomes commodity

Page 8: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

8

Why is platform virtualization good?

Building test systems HW consolidation Legacy systems On-demand architectures High availability, disaster recovery Portable applications …

Page 9: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

9

Platform virtualization Two approaches:

Hardware

OS Virt. SW

App. OS OS

App. App.

Hardware

Virt. SW

Management OS

Management App.

OS OS

App. App.

Hosted Bare-metal

Mainly desktop productsL: VMware Workstation, Server,

Player, Oracle VirtualBox,MS VirtualPC, KVM, UML

Mainly server products: VMware ESX Server, Xen Enterprise, MS Hyper-V

HOST

GUEST

Neve:VMM – Virtual Machine Monitor

Hypervisor

Main component:VMM – Virtual Machine Monitor

Page 10: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

10

Use case: mobil virtualization

Page 11: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

Theoretical background

Page 12: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

12

RequirementsRequirements for a virtualization solution:

Equivalence: programs in a VM should perform indistinguishable from running on the hardware

Resource control: the VMM should handle all the physical resources

Efficiency: most of the VM’s instructions should run directly on the hardware

Gerald J. Popek, Robert P. Goldberg: Formal Requirements for Virtualizable Third Generation Architectures. Commun. ACM 17(7): 412-421 (1974)

Page 13: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

13

Main problem

The system must be protected from the guests

E.g.: HLT (Halt) instructiono Desirable: only the VM should stopo But all VMs would stop if executed

Solution: VMM monitors the guest instructionso Privileged instructions should be handled

Page 14: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

Theoretical background

• CPU virtualization•Memory virtualization• I/O virtualization

Page 15: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

15

Basic methods – Full emulation

HW

Emulator

Virtual machine

Virtual HW

Application

State of virtual HW

Pro:• Different CPU can be emulatedCon:• Slow

Full state of the virtual hardware is stored in the emulator

(registers, flags)

Every instruction isinspected by the VMM

Instruction is applied in the emulator, transforms the

instruction, executes

Page 16: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

16

Basic methods – Trap and emulateTrap: hardware exception handling, which

resumes execution after the handler

HW

Emulator

Virtual machine

Virtual HW

Application

State of virtual HW

Non-privileged instructions are directly executed on the hardware

Privileged or sensitive instructions cause a trap, VMM handles it

HW support is required:• protection modes (e.g. x86 ring)• VM runs in a lower mode

• Privileged instructions should case a trap when called from a non-privileged mode

Page 17: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

17

Issues with x86 virtualization Some architectures can be easily virtualized

o x86 cannot From ~250 instructions 17 violate the classical

requirements, e.g. POPF instruction: modifies EFLAGS register

o But if not executed in ring 0, doesn’t throw an exception

Privileged state can be detectedo OS can detected whether it’s running in a VM

Conclusion: the trap & emulate method cannot be used on the original x86

Page 18: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

18

Solutions for virtualizing x86

Binary translation (software)

Paravirtualization

Hardware-assisted virtualization

Page 19: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

19

Binary translation

most of the instructions run directly

privileged instructions translated runtime

doesn’t need source caches translated code guest OS not aware of

virtualization

Page 20: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

20

Binary translation – example

vEPC mov ebx, eax

cli

and ebx, ~0xfff

mov ebx, cr3

sti

ret

mov ebx, eax

mov [VIF], 0

and ebx, ~0xfff

mov [CO_ARG], ebx

call HANDLE_CR3

mov [VIF], 1

test [INT_PEND], 1

jne

call HANDLE_INTS

jmp HANDLE_RET

start

Guest Code Translation Cache

Source: Carl Waldspurger, Introduction to Virtual Machines

Page 21: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

21

Paravirtualization Modifying the source of the guest OS Replacing “problematic” instructions Hypercall: calling the VMM directly

Page 22: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

22

Hardware-assisted virtualization ~2005: Intel Virtualization Technology (VT-x)

and AMD AMD-V HW support: root mode, VMCS

o Instructions: VMCALL, VMLAUNCH trap & emulate

now works

Page 23: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

23

What is the best? Answer changes constantly

o Depends on the environment, workloado BT used to be more matures, but..

Most products mix several techniques

2009. Comparing Hardware Virtualization Performance Utilizing VMmark v1.1

2008. VMware: Paravirtalization + BT is better than pure BT

2006. VMware: BT is better than HW assisted virtualization

Page 24: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

Theoretical background

• CPU virtualization• Memory virtualization• I/O virtualization

Page 25: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

25

Memory virtualization (software)

VM1 VM2Guest: virtual memory

Guest: „physical” memory

Machine: physical memory

Guest page tables

VM allocation page tables

Instead of double translation: shadow page tables

ISSUE: synchronization

Page 26: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

26

Memory virtualization (paravirtualization)

Also uses shadow page tables

Modifying the guest OS source code

When the OS modifies it’s page tables, it should notify the VMM also

Page 27: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

27

Memory virtualization (hardware) HW support in the recent CPUs

o AMD Rapid Virtualization Indexing , Intel Extended Page Tables

Nested page tableo Storing guest physical -> machines physical translationo Traversed by HW address translation

Tagging TLB entries

Great performance increase:o 2008. 04., KVM: MMU paravirtualization is deado 2009., VMware:

Performance Evaluation of AMD RVI Hardware Assist, 42% improvement in some cases

Page 28: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

Theoretical background

• CPU virtualization• Memory virtualization• I/O virtualization

Page 29: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

29

Handling I/O devices (software)

VMM

Virtual machine

Unmodified driver

Emulated virtual HW

Emulating the whole real communication

Guest OS

HW manager

I/O device

Page 30: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

30

Handling I/O devices (paravirtualization)

Special package installed in the VM:o VMware Tools, Virtual PC Additionso Always install these!

VMM

Virtual machine

Paravirt. driver

Guest OS

HW manager

Simplified calls,communication through

shared memory

I/O device

VMM

Virtual machine

Unmodified driver

Emulated virtual HW

Guest OS

HW manager

I/O device

Page 31: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

31

Handling I/O devices (hardware)

Hardware supporto Intel VT-d, AMD IOMMUo PCI standard extensions: I/O Virtualization (IOV)

I/O deviceso can be shared between VMso can be directly assigned to one VM

Page 32: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

Products and companies

Page 33: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

33

Playershttp://www.virtualization.info/radar/

Page 34: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

34

Players ESXi, vSphere…open source hypervisorXenServer, XenAppVirtual PC, Hyper-V, System CenterSolaris Containers, Oracle VM, VirtualBoxKernel based Virtual Machine (KVM)mainframe, powerVM…

Page 35: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

DEMO

35

Resource pools

VM maps

Performance graphs

Live Migration – moving VMs between hosts on the fly

Centralized management

Page 36: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

36

Cloud computing

???

Page 37: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

37

Cloud computing

Cloud

Page 38: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

38

Types of cloud computing

• Getting a VM• Amazon EC2, RackSpace…IaaS• Getting a runtime environment• Java container, .NET, database…

• MS Azure, Google AppEngine…PaaS

• Getting a service• Google Docs, SalesForce CRM…SaaS

Page 39: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

39

Future (?): Mirage OS

Page 40: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

40

More information Ole Agesen et al.: The

evolution of an x86 virtual machine monitor, SIGOPS Oper. Syst. Rev. 44, 4 (December 2010)

P. Barham et al.: Xen and the Art of Virtualization, SIGOPS Oper. Syst. Rev. 37, 5 (October 2003)

Page 41: Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Virtualization Zoltan Micskei micskeiz.

41

Summary

Virtualization: became commodity

Conflicting terminology Many competing vendors

Operating systemso Core functions implemented in the hypervisoro Purpose of general OS?