Virtualisierung Flashcards

1
Q

Plattformvirtuaisierung

A

Plattformvirtualisierung:

  • -Virtualisierung eines Basissystems zum Betrieb eines gegebenen Betriebs- oder Laufzeitsystems
  • -Multiplexing des Basissystems zum (eventuell gleichzeitigen) Betrieb mehrerer Betriebs- oder Laufzeitsysteme
  • -Die Infrastruktur zur Virtualisierung wird Virtual Machine Monitor (VMM) oder Hypervisor genannt, die virtuelle Plattform entsprechend Virtual Machine (VM)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Virtualisierung Popek & Goldberg:

A

Popek und Goldberg: Eine virtuelle Maschine ist ein effizientes, isoliertes Duplikat einer realen Maschine, wenn folgende Bedingungen gelten:

  1. Äquivalenz
  • -Ein Programm verhält sich äquivalent zur direkten Ausführung
  • -Tolerierte Abweichungen sind geringere Verfügbarkeit an Ressourcen und geändertes zeitliches Verhalten
  1. Isolation
  • -VMs die zusammen auf einer realen Plattform laufen, sollten effektiv voneinander isoliert sein
  • -VMM hat die komplette Kontrolle über die Hardwareressourcen
  • -VMs können nicht auf Ressourcen zugreifen, die nicht zugewiesen wurden
  • -VMM kann unter bestimmten Umständen die Kontrolle über zugewiesene Ressourcen wieder entziehen
  1. Effizienz
    * - Der weitaus größere Teil an Instruktionen des virtuellen Prozessors muss direkt, ohne Intervention des VMMs, auf dem realen Prozessor ausgeführt werden. Letzte Anforderung ist nicht zwingend und es hängt davon ab, zu welchem Zweck Virtualisierung eingesetzt wird
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Kritische Punkte bei der Virtualisierung

A
  • -Ausführung durch die CPU: VMM emuliert eine CPU bzw. stellt eine virtuelle CPU zur Verfügung, In homogenen Umgebungen kann der Prozessor oft direkt verwendet werden
    • Zugriff auf Speicher mittels der Memory Management Unit (MMU): VMM muss den virtuellen Speicher emulieren (oder HW-Unterstützung)
    • Zugriff auf Geräte: VMM muss Zugriffe an Geräte weiterleiten
    • Reaktion von Endgeräten (I/O) wird in Form von Interrupts vermittelt: VMM muss die Interrupts in das System weiterleiten
    • Zugriff auf Betriebssystem-Elemente unter Verwendung von Traps: VMM muss Software-Interrupts an die entsprechende Stelle weiterleiten und die Verwaltung von Interrupt-Tabellen virtuell gestatten
    • Exceptions müssen behandelt werden können z. B. bei Division durch Null
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Ebenen der Virtualisierung

A
  1. Instruction Set Architecture (ISA) bzw. Interface
  • -Schnittstelle der Hardware zum Betriebssystem und zu den Anwendungen
  • -System-Virtuelle Maschinen virtualisieren das ISA
  1. Application Binary Interface (ABI)
  • -Schnittstelle zum Betriebssystem, die Applikationen bzw. Prozesse nutzen
  • -Prozess-Virtuelle Maschinen beschränken sich auf die Virtualisierung der ABI
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

System-Virtualisierung

A
  1. Vollständige Virtualisierung
  • -Keine Anpassung des Gastsystems nötig
  • -Unterstützung von fremder Hardware: Emuliert ISA auf fremder Hardware-Plattform, Beispiele: VMware Workstation, QEMU, Bochs
  1. Hybrid-Betrieb Beispiel: Linux läuft nativ und Windows wird in einer virtuellen Maschine ausgeführt
  2. Hardware-basierte Virtualisierung
  • Wenn die gleiche ISA virtualisiert wird kann zur Optimierung die ISA direkt verwendet werden (Beispiel: VMware (z. B. Linux/Windows auf x86))
  • –> Vorraussetzung: Hardware-Unterstützung von Virtualisierung bzw. Schutz gewisser Einheiten durch die VM
  1. Paravirtualisierug:
  • Trennung von Host- und Gastbetriebssystem,
  • Gastsystem muss definierte Schnittstelle implementieren (Erleichtert Kontrolle des Gastsystems, Direkter Zugriff auf Hardware kann verhindert werden)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Virtualisierung auf Ebene des ABI

A

= Stellt unifizierte Laufzeitumgebung unter evtl. verschiedenen Betriebssystemen zur Verfügung –> Beispiele: Betriebssystem-Virtualisierung (z.B. Docker) oder High Level Language Virtual Machines, neuerdings auch WebAssembly

Betriebssystem-Virtualisierung:

  • -Oft werden mehrere Betriebssystem-Instanzen inklusive des gleichen Kernels verwendet um verschiedene Dienste bereitzustellen
  • -Um Ressourcen zu sparen und hohe Effizienz zu erlangen ermöglicht Betriebssystem-Virtualisierung die gemeinsame Nutzung eines Kernels und dennoch eine isolierte Ausführung
  • -Verwendung des gleichen Kernels erfordert auch nur sehr geringe ’Kontextanpassungen’ und kann entsprechend hohe Performanz bieten
    • Beispiel: VServer – aktuell aber vor allem Docker

Anforderungen:

  • -Einsatz von Mechanismen zur Umsetzung von Ressource- und Sicherheitscontainern für Isolation

High Level Language (HLL)VMs:

  • -Virtualisiert (in der Regel) keine reale Maschine
  • -Entwurf gemeinsam mit der Applikationsumgebung für die HLL
  • -Vorteile: Portabilität, zugeschnitten auf HLL -Beispiele: Java VM, JavaScript und .NET CLI -Wird aktuell relevanter im Kontext Cloud Computing durch Function-as-a-Service (bspw. unter Verwendung von WebAssembly)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Betriebssystem-Virtualisierung: linux VServer

A

Linux VServer Projekt:

  • -Beispiel für eine Umsetzung von Betriebssystem-Virtualisierung
  • -Nutzt und erweitert existierenden Ansätze zur Isolation auf Betriebssystem-Ebenen
  • -Hohe Performanz durch geringen Zusatzaufwand bei der Virtualisierung
  • -Geringer Ressourcenverbrauch durch die gemeinsame Nutzung von Betriebsmitteln
  • -Verwendung im Kontext von PlanetLab und kommerziellen Anbietern

Übersicht

  • -Dedizierte virtuelle Machine für Management des Gesamtsystems
  • -Alle Betriebssystem-Instanzen nutzen den gleichen Kernel

Kernidee von VServer

  • -Erweiterung existierender Mechanismen (in Linux) für die Isolation und Beschränkung von virtuellen Maschinen (auch als Contexts bezeichnet)
  • -Eine virtuelle Maschine ist durch eine Gruppe von Prozessen gegeben, die einem Context zugeordnet sind
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Betriebssystem-Virtualisierung: Isolation

A

Beschränkung des CPU-Verbrauchs:

  • -Verwendung eines Token Bucket Filters (TBF)
    • –Jede VM hat ein zugeordneten Bucket
    • –Der Bucket wird entsprechend einer individuellen Rate gefüllt
    • –Pro Time-Tick wird das Kontingent einer aktiven VM um eine Einheitreduziert
    • –Ist der Bucket einer VM leer, wird sie angehalten bis wieder ein Mindestfüllstand erreicht ist
  • -Als Erweiterung zur strikten Beschränkung gibt es die Option, einen Teil der CPU-Zeit für eine VM fest zu reservieren oder/und einen Anteil der freien CPU dynamisch zuzuordnen

Beschränkung der Ein-/Ausgaben

  • -Netzwerkbandbreite
    • –Verwendung eines Hierachical Token Bucket (HTB) Ansatzes, der die Einstellung einer reservierten Mindestdatenrate (reserved rate) und einer optionalen zusätzlichen Datenrate (share) ermöglicht
    • –Es können Untergruppen innerhalb eines Buckets gebildet werden
  • -Rate der Lese-/Schreibzugriffe auf persistenten Datenspeicher
    • –Faire Zuteilung des Zugriffs auf alle VMs durch den Completely Fair Queuing I/O Scheduler (CFQ)
    • –Jede VM verfügt über eine eigene Warteschlange; die Warteschlangen werden im Round-Robin-Verfahren abgearbeitet
  • -Limits für Datenspeicher
    • –Persistenter Speicher: Maximale Anzahl an Blocks bzw. Inodes
    • –Begrenzung des Hauptspeichers macht nicht immer Sinn, da Überbuchung notwendig sein kann!
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Isolation und Beschränkung für Sicherheitszwecke

A
  • Isolation von Prozessen:
    • -Globaler Namensraum für alle Prozesse
      • – (Ein Wertebereich für die PIDs aller VMs.)
    • -Filter zur Trennung von Prozessen verschiedener VMs
    • -Erweiterung von Kernel-Strukturen, um Abbildung auf Namensraum einzelner VMs zu ermöglichen
      • – z. B. nötig für init-Prozess
    • -Existenz einer Spectator-VM, die alle Prozesse sieht
    • Globaler Namensraum ermöglicht im Prinzip einfache Prozessmigration innerhalb eines Rechners
      • – Bindung an VM wird geändert und Informationen zur Ressourcennutzung aktualisiert
  • Isolation auf Netzwerkebene:
    • -VMs teilen sich die Netzwerkinfrastruktur
    • -Prozesse innerhalb einer VM werden auf bestimmte Netzwerk-Adressen beschränkt
    • -IPADDR_ANY und localhost muss speziell behandelt werden
      • – Pakete werde markiert und nur an die entsprechenden VMs zugestellt
  • Isolation auf Dateisystemebene:
    • -Standard Linux chroot() ist nicht sicher
    • -Markieren eines Verzeichnisses mit einem Flag (Chroot Barrier)
    • -Verhindern, dass diese Markierung überschritten wird Verwendung von Linux Capabilites
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Xen

A
  • -Virtual Machine Monitor (VMM) für die x86-Architektur
  • -Ursprünglich von der University of Cambridge entwickelt
  • -Open Source unter der GNU General Public License (GPL2)
  • -Seit 2007 von Citrix Systems übernommen
  • -Lange Zeit basis für Amazon EC2
  • -Motivation: Entwicklung eines sehr kleinen und effizienten VMM mittels Paravirtualisierung –>Leistungseinbußen in verschiedenen Szenarien von nur 2-3%
  • -Trennung: Hypervisor, Betriebssystem und Anwendung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Xen Hypercalls

A
  • -Verarbeitung ähnlich zur Behandlung von Systemcalls
  • -Aufrufparameter werden in dedizierten Registern abgelegt
  • -Auslösen eines Interrupts (z. B. 82h) oder (in aktuellen Versionen)
  • -Aufruf einer speziellen Call-Adresse einer vom Hypervisor freigegebenen Seite
  • -Sprung in den (privilegierten) Hypervisor zur Interrupt-Behandlungsroutine
  • -Verarbeitung des Calls
  • -Rückkehr in die Anwendung
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Xen Priviligierte Domäne: Dom o

A
  • -Direkt nach dem Booten des Hypervisors wird die privilegierte Domäne Dom 0 gestartet
  • -Dom 0 übernimmt die Verwaltung von Geräten:
    • Entsprechend besitzt Xen keine Netzwerktreiber oder ähnliches
  • -Dom 0 multiplext für alle unpriviligierten Domänen (DomUs) die Hardware:
    • Nötig, da Geräte normalerweise nicht für den direkten Zugriff verschiedener VMs ausgerichtet sind,
    • Multiplexen erfolgt mittels Split Driver
  • -Dom 0 vermittelt privilegierte administrative Operationen an den Hypervisor (z. B. Erzeugung einer neuen virtuellen Maschine
  • -Dom 0 ist zuständig für den Betrieb wichtiger Dienste
  • xend– Verwaltungsschnittstelle zum Hypervisor
  • xenstored– Verwaltung der systemweiten Registry
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Xen Architekturüberblick

A

Bild

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Xen Split Device Driver

A
  • Split Driver vermittelt zwischen VM und realer Hardware in Dom 0
  • Kommunikation mittels Shared Memory
    • Zugriff auf Shared Memory wird durch Xen Grand Tables reguliert
    • Dom 0 veröffentlicht den gemeinsamen Speicher mittels XenStore, einer Registry vergleichbar zum Linux procfs - Jede VM kann den XenStore einsehen und besitzt einen eigenen Namensraum
  • Unabhängig von der realen Netzwerkkarte kann immer der gleiche Split Driver verwendet werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Zusammenfassung & Status Xen

A
  • Durch Hypercalls und Split Driver einfache und effiziente Virtualisierung von verschiedenen Betriebssystemen
  • Speziell im Linux-Umfeld starke Konkurrenz durch KVM
  • Verwendet im Kontext von IaaS-Clouds
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Vergleich Xen und VServer

A

Isolation von Fehlern

  • Sowohl Xen als auch VServer basieren auf der Trennung von Addressräumen
  • Xen als VMM ist relativ kompakt aber angewiesen auf eine vollständige privilegierte Domäne
  • Unter der Annahme das Subsysteme ausserhalb der virtuellen Maschinen fehlerfrei sind bleibt die Frage der komplexeren Schnittstelle –> ! Hier ist XEN im Vorteil da nur relativ kleine Schnittstelle zur privilegierten Domäne benötigt wird

Isolation und Beschränkung von Ressourcennutzung

  • Beide Systeme verwenden komplexe oft sehr ähnliche Mechanismen um Ressourcen entweder zu reservieren, nach Bedarf zu verteilen oder eine Kombination daraus anzubieten

Isolation für Sicherheitszwecke

  • In beiden Systemen ist eine Abschottung als auch ein Austausch von Informationen möglich
  • Für beide Systeme sind Schwachstellen bekannt geworden um an geschützte Informationen zu kommen

Fazit: Keines der beiden Systeme besitzt zwingende Vorteile entsprechend
sollte eine Verwendung vom Anwendungsfall abhängig gemacht
werden