ITEO
IT Engineering & Operations HSLU FS19
IT Engineering & Operations HSLU FS19
-
- 1 / 60
-
Cartes-fiches
Virtualisierung im Datacenter
Welches sind die Process Control Structures?
Prozess Location
- Ein Prozess enthält ein oder mehrere Programme zum ausführen.
- Ein Prozess muss mindestens genug Memory aufweisen um das Programm und dessen Daten zu halten.
- Die Ausführung des Programmes involviert typischerweise einen Stack der verwendet wird um die Ausführung von Prozeduraufrufen und das Mitgeben von Parametern zu diesen ermöglicht.
Prozess Attributes
- Jeder Prozess verfügt über eine Anzahl von Attributen die verwendet werden um dem OS die Kontrolle über diesen Prozess zu ermöglichen.
- Die Sammlung des Programms, Daten, Stack und Attributen wird als Prozess Image bezeichnet.
- Der Standort vom Prozess Image hängt vom verwendeten Memory Management Schema ab.
Virtualisierung im Datacenter
Auf welche Arten können Prozess unterbrochen werden?
Hardware Interrupt:
kommen von externen Events wie zB. I/O Device oder Clock (meldet die vergangene Zeit). HW Interrupt sind asynchron.
Hardware Trap:
HW Traps sind synchron oder asynchron und stehen in Beziehung zum momentan in Ausführung befindlichen Prozess. HW Traps sind zB. Division durch NULL oder Indirektion durch einen invaliden Pointer.
Software-initiated Trap:
werden vom System verwendet um einen Event zu forcieren wie zB. so schnell wie möglich ein Prozess re-scheduling oder Netzwerkpacket Verarbeitung zu erzwingen. SW iniziierte Traps setzen ein Flag das immer ge-checked wird wenn
der Prozess sich auf ein Exit aus dem Kernmodus vorbereitet.
Virtualisierung im Datacenter
Welches sind die Gründe für HW-Virtualisierung?
- Ressourcen Optimierung
- Konsolidierung
- Maximierung der Uptime
- Schutz der Applikation von Serverausfällen
- Einfache Migration wenn Anforderungen wechseln
- Schutz der Investitionen in existierende „legacy Systems“
Virtualisierung im Datacenter
Welche verschiedenen Arten von HW Virtualisierung gibt es?
Beschreibe diese.
Direct Execution
- x86 kennen 4 Levels von Privilegien.
- User Level Programme laufen nicht Privilegiert Ring 3
- Das OS braucht HW Zugriff Ring 0
- Ein Virtualisierungsschicht muss unter Ring 0 gelegt werden!
oder..
- Es braucht eine Schnittstelle vom Hypervisor mit speziellem Befehlssatz
Full Virtualization mit Binary Translation
- Kombination zwischen direkter Ausführung und binary translation.
- User Level Code wird direkt ausgeführt.
- Nicht ausführbarer kontrollkritischer Code wird übersetzt (nur beim ersten mal) und im Cache abgelegt.
- Übersetzter Kernel Code ersetzt nun nicht virtualisierbare Instruktionen.
- Keine HW Unterstützung nötig.
- Gast OS ist voll abstrahiert, hat keine Ahnung dass es in einer VM läuft.
OS Unterstützte (Para) Virtualisierung
- Para (griechisch = neben) bezieht sich auf Kommunikation zwischen Gast OS und Hypervisor um die Geschwindigkeit zu erhöhen.
- Kernel vom OS muss modifiziert werden um nicht virtualisierbare Instruktionen mit Hypercalls zu ersetzen die direkt mit dem VirtualizationLayer Hypervisor kommunizieren.
- Der Hypervisor stellt Hypercall Interfaces zur Verfügung.
- Keine unmodifizierte Gast OS!
HW unterstützte Virtualisierung
- Neuer CPU Modus eingeführt.
- Erlaubt Ausführung unterhalb Ring 0.
- Privilegierte und sensitive Calls trapen automatisch zum Hypervisor ohne binary translation.
- Der Gast Status wird in virtual machinecontrolstructures abgespeichert.
- CPUs seit 2006 erhältlich.
Virtualisierung im Datacenter
Welche Eigenschaften zeichnen ein OS Virtualisierung aus?
Was kann sie und was nicht?
Eigenschaften
- verwendet keinen Hypervisor.
- also kein „Trap and Emulate“.
- braucht daher auch nur ganz wenige zusätzliche Prozessorzyklen (zB: mapping von UID zu vUID).
- verwendet nur einen Kern
Was kann sie
- Stellt eine feingranulare Kontrolle der individuellen Prozesse und Applikationen zur Verfügung.
- Erlaubt die Isolation von Applikationen.
- Transparente Migrationen von Applikationen* möglich. Im Gegensatz zum Hypervisor der nur ganze OS Instanzen migriert
Was kann sie nicht
- Keine „fremden“ OS möglich. Nur gleiche OS können virtualisiert werden. Beispiel: kein Windows Programme möglich auf Linux Kern.
- Zonen müssen auf dem selben Patch Level laufen wie OS/Kern. § Anforderungen an SysAdmin steigen (bei Hypervisor auch)
- Ressource Management muss eingeschaltet werden
Virtualisierung im Datacenter
Welches sind die formalen Anforderungen an einen Hypervisor?
Gleichheit
- Jedes Programm ausgeführt in einer virtuellen Maschine verhält sich genau so wie auf der original Maschine direkt ausgeführt.
Effektivität
- Wann immer möglich sollten die Instruktionen nicht auf dem virtuellen Prozessorsondern direkt auf dem physischen Prozessor ausgeführt werden (ohne Intervention von der VMM).
- harmlose Instruktionen werden von der Hardware direkt ausgeführt.
Ressourcenkontrolle
- VMM hat die komplette Kontrolle über Ressourcen wie Memory, I/O der Peripheriegeräte, aber nicht unbedingt über Prozessoraktivität.
- Es muss für jedes Programm unmöglich sein die System Ressourcen zu beeinflussen (z.B. verfügbares Memory). Der Verteiler (Allocator) des Kontroll-Programmes muss bei jedem dieser Versuche aufgerufen werden.
Virtualisierung im Datacenter
Was sind die Vorteile von Virtualisierung?
- Workload Isolation
- Aufteilung in kleinere Systeme
- Workload Consolidation
- Zusammenfassung mehrer Systeme auf einer Hardware (Hardwareausnützung)
- Workload Migration
- Wechsel eines Systems von einem Host auf einen anderen
- Workload Embedding
- gleiche Applikationen auf gleichem System laufen lassen
- gleichen Kernel oder Ressourcen nützen
- gut möglich bei gleichem Betriebsystem
Virtualisierung im Datacenter
Wie wird ein Prozess erzeugt?
- Prozess wird erzeugt durch den Kernel system call, fork()
- Alloziere einen freien Platz in der Prozesstabelle fuer den neuen Prozess
- Vergib eine einzigartige Prozess ID fuer den Child Prozess
- Mach eine Kopie vom Parent-Prozess Image mit der Ausnahme vom gesharten Memory
- Inkrementiere die Zähler für jedes File das vom Parent besitzt wird um anzuzeigen, dass ein zusätzlicher Prozess diese Files auch besitzt
- Füge den Child Prozess der ready to run Queue zu
- Retourniere die ID Nummer vom Child Prozess zum Vater Prozess und den Wert 0 zum Child Prozess