seminarvortrag ss 2005 -...

Post on 25-Aug-2019

215 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Virtualisierung

SeminarvortragSS 2005

Niels Burkhardt

Seite 2Virtualisierung

Inhalt

Einleitung

– Wofür?

– Voraussetzungen

Klassifizierung

– Emulation, ABI, Virtuelle Maschinen

Virtuelle Maschinen

– Aufbau

– Eigenschaften

– Aufteilung der Befehle

– VMM Module

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

Seite 4Virtualisierung

Eine Einleitung

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

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

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)

Seite 8Virtualisierung

Klassifizierung

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

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

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

Seite 12Virtualisierung

Virtuelle Maschinen

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]

Seite 14Virtualisierung

Aufbau

VMM/Hypervisor

Hardware

VM 1 VM 2 VM 3 VM N

Unix Windows...

Seite 15Virtualisierung

notwendige Eigenschaften

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

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

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

Seite 18Virtualisierung

VMM Module

Dispatcher

AllocatorInterpreter

VMM

Exception/Trap

VM

Seite 19Virtualisierung

Speichermanagement

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

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

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

Seite 23Virtualisierung

Speichermanagement

CRVirtual CR

Segment Table Entry

Page Table Entry

PseudorealeAdresse

Segment Table Entry

Page Table Entry

realeAdresse

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

Seite 25Virtualisierung

x86 und 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

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

Seite 28Virtualisierung

Intel VT

VM-Entries:● VMLAUNCH● VMRESUME

VM-Exits:● Interrupts/Exceptions● VMCALL

VMM

VM

VMLAUNCHVMCALL VMRESUMEException

Seite 29Virtualisierung

Intel VT

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

VMCS

VMCS Pointer

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

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

Seite 32Virtualisierung

I/O

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

Seite 34Virtualisierung

I/O

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

VM

VMM

Festplatte

Datei

Hardware

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

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

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

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]

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

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/

Seite 41Virtualisierung

Vielen Dankfür die Aufmerksamkeit

top related