Servervirtualisierung

Servervirtualisierung bezeichnet Software- oder Hardware-Techniken, die dazu dienen, mehrere Instanzen eines oder verschiedener Betriebssysteme auf einem einzigen Rechner gleichzeitig nebeneinander zu betreiben. Die einzelnen Instanzen werden als virtuelle Maschine (VM) oder virtuelle Server bezeichnet und verhalten sich in der virtuellen Umgebung identisch zum "normalen" Betrieb direkt auf der Hardware. Der Gast wird aus Sicht des Basis-Betriebssystems ( Host oder Wirt) von der Hardware abgekoppelt und kann somit wie ein Softwareobjekt flexibel unabhängig von der darunterliegenden Hardware behandelt werden.


Modell der Servervirtualisierung

Modell der Servervirtualisierung

Je nach Architektur wird auf Hardwareebene eine Partitionierung vorgenommen (z. B. LPAR) oder mittels einer speziellen Software ( Virtual Machine Monitor, Hypervisor) eine vollständige oder teilweise virtuelle Hardwareumgebung für die einzelnen virtuellen Maschinen nachgebildet. Die meisten Virtualisierungsansätze basieren auf einer speziellen Softwareschicht, die zumeist als Virtual Machine Monitor (VMM) oder Hypervisor bezeichnet wird.

Der VMM- oder Hypervisor-Layer ermöglicht es mehreren verschiedenen Betriebssystemen, sich die Hardware-Ressourcen eines Rechners zu teilen, indem die verfügbaren Kapazitäten von RAMs, Prozessoren, I/O, DMA-Controller und alle übrigen relevanten Komponenten transparent auf die Gastsysteme aufgeteilt werden. Unabhängig von der Architektur müssen Servervirtualisierungslösungen folgende Anforderungen erfüllen (formuliert von Popek und Goldberg 1974):

  • Äquivalenz: Das virtualisierte System muss exakt dasselbe Verhalten an den Tag legen wie bei Ausführung direkt auf der Hardware (nicht virtualisiert).
  • Isolation: Es muss eine sichere Isolation der virtualisierten Systeme (VM) untereinander gewährleistet sein, so dass die Datensicherheit, Vertraulichkeit und Konsistenz von Daten und Zuständen garantiert ist. Eine instabile Virtual Machine (VM) darf eine andere VM nicht zum Absturz bringen.
  • Kontrolle: Die Rechnerressourcen wie z.B. RAMs und CPUs (inkl. Core und Thread) müssen auf kontrollierte Weise den virtuellen Maschinen einzeln zugewiesen werden können.
  • Effizienz: Die virtuelle Maschine darf aufgrund der Virtualisierung keinen unangemessenen Overhead produzieren, sondern sollte annähernd so schnell laufen wie auf der blanken Hardware ("bare metal").
Insbesondere die Effizienzanforderung stellt eine große Herausforderung beim Design von Servervirtualisierungslösungen dar, so dass zum einen sehr viele sehr unterschiedliche architektonische Ansätze existieren, die zum anderen mit unterschiedlichen Eigenschaften und verschiedener Performance agieren. Zwei sinnvolle Klassifizierungsansätze sind die Betrachtung, was virtualisiert wird (Hardware, Betriebssystem, usw.) oder wie die Position der virtualisierenden Schicht in Relation zur virtualisierten Hardware ist. Bei letzterem unterscheidet man:

Hypervisor-Architekturen

Hypervisor-Architekturen

Hypervisor Typ 1: Der Hypervisor läuft direkt auf der Hardware und die Virtual Machine (Gäste) nutzen die Ressourcen, welche vom Hypervisor bereitgestellt werden. Hypervisor Typ 2: - Der Hypervisor läuft auf einem Betriebssystem, welches z.B. die I/O-Ressourcen ( Speicher, Netzwerk) bereitstellt.

Aus eher praktischer Perspektive im Hinblick auf konkrete Produkte betrachtet existieren folgende wesentliche Ansätze, die in der Literatur zum Teil uneinheitlich benannt und definiert sind:

  • Vollständige Virtualisierung: Eine vollständige Virtualisierung kann durch Virtualisierung einer kompletten Hardwareumgebung erfolgen;
  • Prozessor-unterstützte vollständige Virtualisierung: Die Prozessor-unterstützte vollständige Virtualisierung findet auf Basis spezialisierter CPU-Technologien (Intel VT, AMD-V) statt;
  • Virtualisierung des Betriebssystems: Die Betriebssystemvirtualisierung basiert auf einer einzigen Betriebssystem-Instanz;
  • Paravirtualisierung: Bei der Paravirtualisierung wird das Gastbetriebssystem so modifiziert, dass es mit der Hardware über die Virtualisierungsschicht interagiert.

    Servervirtualisierungsansätze im Überblick

    Servervirtualisierungsansätze im Überblick

    Servervirtualisierung verspricht eine Reihe von Vorteilen: Höhere Flexibilität bei der Nutzung der (virtuellen) Server und ihrem Betrieb, da diese schneller installiert, modifiziert und auch gesichert werden können. Kosteneinsparungen durch bessere Ausnutzung der vorhandenen Rechnerhardware, da sich mehrere Betriebssysteminstanzen einen Rechner teilen können. Aufgrund der sicheren Isolierung sowie schneller Bereitstellung werden virtualisierte Umgebungen gerne für Tests und Entwicklung eingesetzt. Ein Schwachpunkt ist der Single-Point-of-Failure: fällt ein Rechner aus, sind davon in der Regel viele virtuelle Maschinen auf einmal betroffen. Daher kommt bei der Implementierung von Servervirtualisierung Mechanismen für Backup, Failover bzw. High Availability besonders große Bedeutung zu.

Informationen zum Artikel
Deutsch: Servervirtualisierung
Englisch: server virtualization
Veröffentlicht: 11.06.2012
Wörter: 615
Tags: #Betriebssysteme
Links: Absturz, Architektur, BS (Betriebssystem), Betriebssystemvirtualisierung, CPU (central processing unit)