41
Virtualisierung Seminarvortrag SS 2005 Niels Burkhardt

Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

  • Upload
    phamtu

  • View
    215

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Virtualisierung

SeminarvortragSS 2005

Niels Burkhardt

Page 2: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 2Virtualisierung

Inhalt

Einleitung

– Wofür?

– Voraussetzungen

Klassifizierung

– Emulation, ABI, Virtuelle Maschinen

Virtuelle Maschinen

– Aufbau

– Eigenschaften

– Aufteilung der Befehle

– VMM Module

Page 3: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 3Virtualisierung

InhaltSpeichermanagement

– Shadow page tables

– Nested page tables

x86 und Virtualisierung

– Probleme der Architektur

– Eine Lösung: Intel VT

I/O

– Möglichkeiten der Virtualisierung

– I/O IBM zSeries

Ausblick

Quellenangabe

Page 4: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 4Virtualisierung

Eine Einleitung

Page 5: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 5Virtualisierung

Was ist Virtualisierung?

“Virtualization is a framework or methodology of dividing the resources of a computer into multiple execution environments.”[1]

Dies kann erreicht werden durch:

● Partitionierung von Hardware und Software

● Time-sharing

● Teilweise oder komplette Maschinen-Simulation

● Emulation

Page 6: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 6Virtualisierung

Wofür?

● Betrieb unterschiedlicher Betriebssysteme– z.B. Linux/Windows

● Serverkonsolidierung– Mehrere Server zu einem vereinen

● Erhöhung der Sicherheit– System für Büroarbeit/System für Internet

● Entwicklersysteme– gleichzeitiger Betrieb mehrerer Testumgebungen

Page 7: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 7Virtualisierung

Voraussetzungen [2]

● zwei Prozessor Modi● eine Methode für nicht privilegierte Programme

privilegierte Systemroutinen aufzurufen● Speicherschutz und -zuteilungs Mechanismen

wie Paging oder Segmentierung● asynchrone Interrupts (I/O)

Page 8: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 8Virtualisierung

Klassifizierung

Page 9: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 9Virtualisierung

Klassifizierung

Emulation:● Nachbildung eines kompletten Instruktionssatzes● erfordert Interpretation der Befehle● Vorteil: flexibel● Nachteil: langsam● Beispiele: Bochs[10], PearPC[11]

Hardware

Betriebssystem

Emulator

Emulation ABI virtuelle Maschinen

Page 10: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 10Virtualisierung

Klassifizierung

Nachbildung des ABI(Application Binary Interface)● ermöglicht es, Programme auf einem anderen

Betriebssystem auszuführen● der Befehlssatz des Prozessors ist der gleiche● Beispiel: Wine [9]

Betriebssystem

ABI-”Übersetzung”

Anwendung

ABI

Emulation ABI virtuelle Maschinen

Page 11: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 11Virtualisierung

Klassifizierung

Virtuelle Maschinen● ein Host-System● mehrere Gast-Systeme● Gast und Host haben gleichen Befehlssatz

● Virtual Machine Monitor (VMM)● Virtual Machine (VM)

Emulation ABI virtuelle Maschinen

Page 12: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 12Virtualisierung

Virtuelle Maschinen

Page 13: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 13Virtualisierung

Virtuelle Maschine

Definition:

“A “virtual machine” is a fully protected and isolated copy of the underlying physical machine’s hardware. Thus, each virtual machine user is given the illusion of having a dedicated physical machine.”[3]

Page 14: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 14Virtualisierung

Aufbau

VMM/Hypervisor

Hardware

VM 1 VM 2 VM 3 VM N

Unix Windows...

Page 15: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 15Virtualisierung

notwendige Eigenschaften

● Effizienz● Transparenz● Isolierung der VMs● Kontrolle der Ressourcen durch den VMM

Page 16: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 16Virtualisierung

Aufteilung der Maschinenbefehle

sensitive Befehle● Veränderung des

Prozessorzustandes● vollen Zugriff auf alle

Register

nicht sensitive Befehle● keine Veränderung des

Prozessorzustandes● eingeschränkte Rechte● keinen Zugriff auf

Kontrollregister

Page 17: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 17Virtualisierung

Auswirkungen

● VMM muss alle Befehle ausführen können● VM darf keine sensitiven Befehle ausführen● falls eine VM einen sensitiven Befehl ausführt,

muss es zu einer Exception kommen

Page 18: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 18Virtualisierung

VMM Module

Dispatcher

AllocatorInterpreter

VMM

Exception/Trap

VM

Page 19: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 19Virtualisierung

Speichermanagement

Page 20: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 20Virtualisierung

Speichermanagement

Shadow page tables● VM verwaltet eigene Pagetables● VMM pflegt anhand der VM tables shadow

pagetables, die parallel vorhanden sind● shadow tables werden für eigentliche Umsetzung

genutzt

Page 21: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 21Virtualisierung

Speichermanagement

Segment Table Entry

Page Table Entry

PseudorealeAdresse

Virtual CR CR

Segment Table Entry

Segment Table Entry

Page Table Entry

Page Table Entry

reale Adresse

Shadow Page TablesGast Host

Page 22: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 22Virtualisierung

Speichermanagement

Nested page tables (AMD)● Umsetzung von virtuellen Adressen der VM in

“VM reale Adressen”● diese werden über eine zweite Umsetzung in

physikalische übersetzt● die Memory Management Unit (MMU) muss

erweitert werden

Page 23: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 23Virtualisierung

Speichermanagement

CRVirtual CR

Segment Table Entry

Page Table Entry

PseudorealeAdresse

Segment Table Entry

Page Table Entry

realeAdresse

Page 24: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 24Virtualisierung

Speichermanagement

Problem mit TLB (Translation Look Aside Buffer)● bei jedem Kontextwechsel muss TLB gelöscht

werden

=> Einführung eines tagged TLB ● Software-Managed TLB muss nicht unbedingt

erweitert werden

Page 25: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 25Virtualisierung

x86 und Virtualisierung

Page 26: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 26Virtualisierung

Probleme der x86-Architektur

● diese Architektur ist nicht virtualisierbar● einige sensitive Befehle lösen keine Exception aus● Studie: 18 Befehle nicht virtualisierbar [4]

z.B. MOVE from CRn

Quelle: Intel

Page 27: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 27Virtualisierung

Intel VT(Vanderpool)[7]

neuer Prozessormode: VMX operation

VMX operation

VMX root operation VMX non-root operation

Entries

Exits

VMM VM 1

VMXON VMXOFF

VM 2

Page 28: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 28Virtualisierung

Intel VT

VM-Entries:● VMLAUNCH● VMRESUME

VM-Exits:● Interrupts/Exceptions● VMCALL

VMM

VM

VMLAUNCHVMCALL VMRESUMEException

Page 29: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 29Virtualisierung

Intel VT

● VMXON m64● VMXOFF● VMCLEAR m64● VMPTRLD m64● VMPTRST m64

VMCS

VMCS Pointer

Page 30: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 30Virtualisierung

Intel VT - VMCS

VM Control Structure (VMCS)● 4 KB Region im Speicher● verwaltet Übergänge (entries/exits)● event injection emuliert Interrupts● VMREAD r/m64,r64● VMWRITE r/m64,r64

Page 31: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 31Virtualisierung

Intel VT - VMCS

6 logische Gruppen● guest-state area● host-state area● VM-execution control fields● VM-exit control fields● VM-entry control fields● VM-exit information fields

Page 32: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 32Virtualisierung

I/O

Page 33: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 33Virtualisierung

I/O

direktes Zuordnen der Ressourcen● Jedes Device wird einer festen VM zugeordnet● einfache Verwaltung der Devices durch VMM● Interrupts können direkt an VM weitergegeben

werden● aber: Zugriffsschutz für Input/Output Befehle bei

DMA (Direct Memory Access) (siehe Pacifica)● aber: oft mehr VMs als Devices

Page 34: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 34Virtualisierung

I/O

virtuelle Resourcen● Jedes Device wird durch VMM emuliert● keinen direkten Zugriff auf physikalische Devices

VM

VMM

Festplatte

Datei

Hardware

Page 35: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 35Virtualisierung

zSeries I/O System

● I/O System aus dem Mainframebereich● Optimiert auf hohen Durchsatz durch

– hohe Bandbreite vom L2 zum Hauptspeicher

– große Anzahl I/O Hubs

– große Anzahl von E/A Adaptern

– Offloading der E/A Operationen weg von der CPU(s)

● I/O System ist virtualisierbar

Page 36: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 36Virtualisierung

zSeries I/O SystemPU 1(SAP)

L1

PU 2(CPU 1)

L1

PU n(CPU n-1)

L1 I/O Hub

I/O Hub

I/O Adapter

I/O Adapter

I/O Adapter

Shared L2

CacheCoherenceNetwork

1st order SAN (System AreaNetwork)

Communication Network

(LAN,WAN,...)

2nd order SAN

(Storage AreaNetwork)

I/O Hub

Main StorageCards

I/OControllerDevice(s)

I/OControllerDevice(s)

...

...

to/from otherSMPs in a Sysplex

Page 37: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 37Virtualisierung

zSeries I/O System

Virtualisierung durch● strikte Trennung der I/O-Architektur von den

CPUs● Kanäle(Channel), Unterkanäle(Subchannel) und

Kanalprogramme(Channel Programs)● Kanalprogramm wird von System Assist

Processors (SAP) abgewickelt● Kanäle können einzelnen Betriebssystemen

zugeordnet werden

Page 38: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 38Virtualisierung

Ausblick

● Virtualisierung schon lange in Mainframes eingesetzt

● Wird im Augenblick auch für kleinere Server und Desktops interessant

● IBM POWER Hypervisor [13] und rHypervisor für Linux/Aix/Unix [14]

● Intel und AMD haben Erweiterungen angekündigt (VT [7] bzw. Pacifica [8])

● Xen - “Paravirtualisierung” für x86 [12]

Page 39: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 39Virtualisierung

Quellenangabe

[1] www.kernelthread.com/publications/virtualization

[2] R. Goldberg. Architectural Principles for Virtual Computer Systems. Ph.D. thesis, Harvard University,Cambridge, MA, 1972

[3] R.J. Creasy. The Origin of the VM/370 Time-Sharing System. IBM Journal of Research and Development 25, September 1981

[4] J. S. Robin, C. E. Irvine. Analysis of the Pentium's Ability to Support a Secure Virtual Machine Monitor. In Proceedings of the 9th USENIX Security Symposium, Denver, CO, August 2000

[5] H. Lehmann, W. G. Spruth. Eigenschaften einer modernen Ein-/Ausgabe-Architektur, IBM Böblingen, 2003

[6] J. v. Buttlar,W. G. Spruth. Virtuelle Maschinen: zSeries- und S/390-Partitionierung, Informatik Forsch. Entw., 2004

Page 40: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 40Virtualisierung

Quellenangabe[7] Intel Vanderpool Technology for IA-32 Processors (VT) Specification, Order

Number C97063-002, April, 2005, http://www.intel.com/technology/computing/vptech/

[8] AMD64 Virtualization Codenamed “Pacifica” Technology. May 2005, http://www.amd.com/us-en/assets/content_type/ white_papers_and_tech_docs/33047.pdf

[9] Wine homepage. http://www.winehq.com

[10] Bochs homepage. http://bochs.sourceforge.net/

[11] PearPC homepage. http://pearpc.sourceforge.net/

[12] Xen homepage. http://www.cl.cam.ac.uk/Research/SRG/netos/xen/architecture.html

[13] IBM POWER Hypervisor.

http://www-1.ibm.com/servers/eserver/openpower/virtualization/index.html

[14] IBM rHypervisor. http://www.research.ibm.com/hypervisor/

Page 41: Seminarvortrag SS 2005 - ra.ziti.uni-heidelberg.dera.ziti.uni-heidelberg.de/pages/student_work/seminar/ss05/Niels_Burkhardt/... · Virtualisierung Seite 5 Was ist Virtualisierung?

Seite 41Virtualisierung

Vielen Dankfür die Aufmerksamkeit