7 – Virtualisierung

Grundsätzliches zu Virtualisierung, Cloud Computing

Definitionen

Virtualisierung bezeichnet in der Informatik die Erzeugung von virtuellen (d.h. nicht physikalischen) Dingen wie einer emulierten Hardware, eines Betriebssystems, Datenspeichers oder Netzwerkressource. Dies erlaubt es etwa, Ressourcen von Computern transparent zusammenzufassen oder aufzuteilen, oder ein Betriebssystem innerhalb eines anderen auszuführen. Quelle: www.wikipedia.de

Definitionen

Virtualisierung ermöglicht die Abstraktion von Hardware, Software und Netzen. Im übergreifenden Sinn werden mit Virtualisierung Software- oder Hardware-Techniken bezeichnet, welche eine Abstraktionsschicht zwischen dem Benutzer (oder Applikationen oder Schnittstellen) einerseits und physischen Ressourcen wie z.B. Hardwarekomponenten eines Rechners andererseits, implementieren. Quelle: www.itwissen.info

Kurz: Virtualisierung bezeichnet Methoden, die es erlauben, Ressourcen eines Computers zusammenzufassen oder aufzuteilen.

Schichtung

Schichtung

Einsatzzwecke

Einsatzzwecke

Virtuelle Betriebsumgebung

Eine virtuelle Maschine (VM) entsteht durch Virtualisierung einer realen Maschine

  • Mehrere VMs mit unter Umständen auch verschiedenen Betriebssystemen sind auf derselben Hardware möglich

Virtuelle Betriebsumgebung

Es gibt eine Software, welche eine virtuelle Maschine erzeugt (Hypervisor)

  • Eine virtuelle Maschine kann einen vollwertigen „PC im PC“ darstellen

  • Ein Betriebssystem kann installiert werden (Gast-BS)

    • Dieses Gast-BS kann wie ein normales BS verwendet werden (Installation von Software, etc.)
    • Ideal zum Testen von Software
  • Eine virtuelle Maschine kann aber auch nur bestimmte Teile eines Systems nachbilden

    • Einem Programm wird eine Umgebung zur Verfügung gestellt, die alles beinhaltet, was das Programm braucht
    • z.B. JAVA Virtual Machine

Virtuelle Betriebsumgebung

Hypervisor / Virtual Machine Monitor (VMM)

  • Der Hypervisor ist ein Stück Soft- oder Hardware, das virtuelle Maschinen bereitstellt
  • Er setzt die Zugriffe der VMs auf die Hardware entsprechend um
  • Man unterscheidet Typ-1- und Typ-2-Hypervisor

Virtualisierungskonzepte

Virtualisierungsmethoden und -plattformen

Virtualisierungskonzepte

Paravirtualisierung

  • Funktionalitäten des Gast-BS werden gezielt verändert (Kernel-Anpassungen)

  • Gast-BS „weiß“, dass es sich in einer virtuellen Umgebung befindet

  • Gast-BS kann direkt mit dem Hypervisor interagieren und benötigt keine Hardware-Emulation

  • Bewertung

    • Gute Performance
    • Gastsysteme nicht beliebig wählbar
    • Hoher Aufwand für Kernel-Entwickler

KVM

KVM

Hardware-unterstützte Virtualisierung

  • Neue Prozessortechnologien, die CPUs besitzen einen Befehlssatz, der Virtualisierung direkt unterstützt (Intel-VT, AMD-V)

  • Modifikation des Gast-BS soll vermieden werden und direkt durch Hardware gelöst werden

  • Hypervisor soll durch hardwarebasierte Speicherverwaltung entlastet werden

  • Bewertung

    • Gast-BS müssen nicht modifiziert werden
    • Gastsysteme frei wählbar
    • Intel und AMD haben keinen gemeinsamen Standard, dies kann zu Problemen bei der Migration von Gastsystemen führen
    • Virtualisierungsplattform muss diese Technologien unterstützen

Hardware-Emulation

  • Innerhalb einer VM wird die Standardhardware eines Rechners komplett oder teilweise simuliert

  • Ein Emulator erzeugt entsprechende Softwareschnittstellen, die vom Gast-BS angesprochen werden können

  • Der Emulator sorgt dafür, dass Befehle die an die simulierte Hardware gerichtet sind für die physische Hardware des Hostsystems umgewandelt werden

  • Bewertung

    • Flexible Wahl der Gast-BS
    • Performanceverlust durch hohen Virtualisierungsaufwand

Betriebssystemvirtualisierung

  • Innerhalb des Host-BS werden isolierte Bereiche erzeugt, auch Virtual Environment (VE) oder Container genannt

  • In einem VE ist kein eigenständiges Betriebssystem installiert, es verwendet die Kernel-Bibliotheken und Geräte-Treiber des Hostsystems

  • Einige Individualdaten müssen für den Container definiert werden, z.B. Dateisystem, IP-Adresse, Hostname, Benutzer

  • Bewertung

    • Gute Performance durch geringen Virtualisierungsaufwand
    • Wenig Speicherbedarf, da kein komplettes BS installiert wird
    • Keine freie Wahl des Gast-BS (gebunden an das Hostsystem)

Docker

Quelle: http://collabnix.com/a-comparative-study-of-docker-engine-on-windows-server-vs-linux-platform/

Virtualisierungskonzepte

PV HWV HWE Container
Performance + o - ++
Gast-BS Flexibilität + ++ -
Hardwareunabhängigkeit + - ++ +
Verbreitung + ++ + ++

Zusammenfassung

  • Gängige Desktop-Systeme wie VirtualBox oder VMware verwenden Hardware-unterstützte Virtualisierung in Kombination mit teilweiser Hardware-Emulation.
  • Gängige Server-Systeme verwenden PV bzw. Container zur Bereitstellung von virtuellen Servern bzw. virtuellen Applikationen

Was bringt Virtualisierung?

Vorteile

  • Bessere Ausnutzung von Hardware
  • Vereinfachte Administration von Hardware
  • Vereinfachte Bereitstellung von Systemen
  • Höhere Sicherheit durch zusätzliche Abstraktionsschicht
  • Optimierung von Software-Tests
  • Vereinfachte Abwärtskompatibilität
  • Einfache Skalierung je nach Bedarf

Nachteile

  • Leistungsverlust
  • Ausfall von realer Hardware zieht Ausfall von mehreren virtuellen Systemen nach sich
  • Overhead durch Verwaltung der virtuellen Maschinen
  • Hardware, die leistungsfähig genug ist, ist teuer

Ein flexibles Werkzeug

  • Physikalische Hardware ist immer individuell

Ein flexibles Werkzeug

  • Physikalische Hardware ist immer individuell
  • Virtualisierung gleicht die Unterschiede an

Ein flexibles Werkzeug

  • Hohe Ausfallsicherheit
    • Virtuelle Maschine kann auf jeder Hardware betrieben werden
    • Schneller Wiederinbetriebnahme
  • Einfache Wartung und Skalierung
  • Servertausch ohne aufwändige Neuinstallation
  • Hardwareanpassung ohne Downzeiten
  • Tests und Installationen ohne Risiken auf virtuellem Testsystem

Ein flexibles Werkzeug

Leistungsverlust möglich

  • Leistungsbedarf Betriebssystem und Virtualisierungsschicht bis zu 30%

  • Stark abhängig von Typ und Anwendung des Gastsystems

  • Verlust unterschiedlich je nach Komponentenauslastung

  • Prozessor

    • Arbeitsspeicher
    • Festplatte
    • Netzwerk

Ein flexibles Werkzeug

Optimierung: Speziallösung mit nur ca. 10% Leistungseinbuße

Cloud Computing - Definition

Cloud Computing is a style of computing in which massively scalable IT-related capabilities are provided “as a service” using Internet technologies to multiple external customers. Gardner

Cloud Computing - Definition

Cloud Computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. National Institute of Standards and Technology

Der Gartner Hype Cycle 2012

Der Gartner Hype Cycle 2015

Infrastructure as a Service (IaaS)

Stellt gemanagte Infrastruktur als virtuelles System zur Verfügung

  • Rechenleistung
    • Speicher
  • Benutzer hat volle Kontrolle über das virtuelle System
    • Betriebssystem
    • Software
    • Admistratorrechte
  • Beispiele
    • Elastic Compute Cloud (Amazon)
    • IBM IaaS
    • Fujitsu IaaS

Platform as a Service (PaaS)

Stellt Virtuelle Plattform wird zur Verfügung gestellt

  • “Plattform” unterschiedlich definiert
  • Betriebssystem
    • Entwicklungsplattform (.NET, …)
  • Der Benutzer hat die Möglichkeit die Plattform je nach Möglichkeit zu konfigurieren
  • Beispiele
    • App Engine (Google)
    • Windows Azure (Microsoft)

Software as a Service (IaaS)

Es wird Zugriff auf eine einzelne Anwendung in der Cloud zur Verfügung gestellt

  • Zugriff möglich über…
  • … Webbrowser
    • … Remote Desktop
  • Der Benutzer kann nur die einzelne Anwendung konfigurieren
  • Beispiele
    • Office 365 (Microsoft)
    • Docs (Google)

Dienstmodelle des Cloud Computing

Dienstmodelle des Cloud Computing

Managed “Server” IaaS PaaS SaaS
Applications x x x x
Runtimes x x
Database x x
Operating System x x
Virtualization x
Server x
Storage x
Networking x

Pro und Contra

alt

Amazon IaaS

Microsoft Azure

Microsoft Azure