seminarvortrag ss 2005 -...
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