Hypervisor
Ein Hypervisor ist eine Funktion, die Betriebssysteme und Anwendungen von der zugrundeliegenden Computerhardware abstrahiert (isoliert). Diese Abstraktion ermöglicht es der zugrundeliegenden Host-Hardware, eine oder mehrere virtuelle Maschinen (VM) unabhängig als Gäste zu betreiben, so dass sich mehrere Gast-VMs die physischen Rechenressourcen des Systems, wie Prozessorzyklen, Memory und Netzwerkbandbreite, effektiv teilen können.
Ein Hypervisor wird von jemandem verwendet, der den Speicherplatz auf einem Server konsolidieren oder mehrere isolierte Anwendungen auf einem einzigen Server ausführen möchte. Hypervisoren werden in der Regel von Virtualisierungssoftware wie vCenter Server unterstützt.
Arten von Hypervisoren
Hypervisoren werden traditionell als Softwareschicht implementiert - wie VMware vSphere oder Microsoft Hyper-V - aber Hypervisoren können auch als in die Firmware eines Systems eingebetteter Code implementiert werden. Es gibt zwei Haupttypen von Hypervisoren: Typ-1- und Typ-2-Hypervisoren.
Typ-1-Hypervisoren
Hypervisoren des Typs 1 werden direkt auf der Systemhardware ohne zugrunde liegende Betriebssysteme oder andere Software eingesetzt. Diese Hypervisoren werden als Bare-Metal-Hypervisor bezeichnet und sind der gängigste und beliebteste Hypervisor-Typ für Unternehmensrechenzentren. Beispiele hierfür sind vSphere und Hyper-V.
Typ-2-Hypervisoren
Hypervisoren des Typs 2 werden als Softwareschicht über einem Host-Betriebssystem ausgeführt und werden in der Regel als gehostete Hypervisoren bezeichnet, zum Beispiel VMware Workstation Player oder Parallels Desktop. Gehostete Hypervisors sind häufig auf Endgeräten wie PCs zu finden.
Einsatzgebiete für Hypervisoren
Hypervisoren sind für jeden Systemadministrator oder Systembetreiber wichtig, da die Virtualisierung eine entscheidende Ebene für die Verwaltung und Kontrolle des Rechenzentrums und der Unternehmensumgebung darstellt. Die Mitarbeiter müssen nicht nur wissen, wie der jeweilige Hypervisor funktioniert, sondern auch, wie man damit verbundene Verwaltungsaufgaben wie VM-Konfiguration, Migration und Snapshots durchführt.
Auch die Rolle eines Hypervisors wird immer wichtiger. Storage-Hypervisoren werden beispielsweise zur Virtualisierung aller Speicherressourcen in der IT-Umgebung verwendet, um zentralisierte Speicherpools zu erstellen, die Administratoren bereitstellen können, ohne sich darum kümmern zu müssen, wo sich der Speicher physisch befindet. Heute sind Speicher-Hypervisoren ein Schlüsselelement des softwaredefinierten Storage (SDS). Netzwerke werden ebenfalls mit Hypervisoren virtualisiert, so dass Netzwerke und Netzwerkgeräte vollständig über Software erstellt, geändert, verwaltet und zerstört werden können, ohne dass physische Netzwerkgeräte berührt werden müssen. Wie bei dem Speicher taucht auch die Netzwerkvirtualisierung in umfassenderen softwaredefinierten Netzwerk- oder softwaredefinierten Rechenzentrumsplattformen auf.
Geschichte
In den frühen bis mittleren 1960er und 1970er Jahren wurden die ersten Formen von Hypervisoren entwickelt. Im Jahr 1966 brachte IBM sein erstes produktives Computersystem auf den Markt, das IBM System/360-67, das eine vollständige Virtualisierung ermöglichte. Außerdem begann IBM 1967 mit der Produktion seines CP-40-Systems. Dieses System lief auf einem modifizierten S/360-40-System, das Virtualisierungsfunktionen bot. Dieses System ermöglichte auch die gleichzeitige Ausführung mehrerer Benutzeranwendungen, was vorher nicht möglich war. Das Control Program/Cambridge Monitor System von IBM kam 1968 auf den Markt und hielt sich bis in die 1970er Jahre.
Im Jahr 1970 brachte IBM das System/370 auf den Markt, das zwei Jahre später, 1972, die Unterstützung für virtuellen Speicher hinzufügte. Seitdem ist die Virtualisierung ein Merkmal aller Systeme. Etwa zu dieser Zeit begannen immer mehr Community-Mitglieder mit Open-Source-Projekten, um virtuelle Systeme mit Hypervisoren weiterzuentwickeln.
IBM führte 1985 den Hypervisor Processor Resource/System Manger ein, der logische Partitionen verwalten konnte. Mitte der 2000er Jahre begannen weitere Betriebssysteme wie Linux, Unix und Windows, Hypervisoren zu unterstützen. Zu dieser Zeit kamen Hypervisoren mit besserer Hardware, Kosten und Konsolidierungsmöglichkeiten auf den Markt. Im Jahr 2005 begannen die Anbieter, die Virtualisierung von x86-Produkten zu unterstützen.
Vorteile
Hypervisoren bieten mehrere Vorteile für das Rechenzentrum eines Unternehmens. Erstens kann die Fähigkeit eines physischen Host-Systems, mehrere Gast-VMs auszuführen, die Auslastung der zugrunde liegenden Hardware erheblich verbessern. Während physische (nicht virtualisierte) Server möglicherweise nur ein Betriebssystem und eine einzige Anwendung hosten, virtualisiert ein Hypervisor den Server und ermöglicht es dem System, mehrere VM-Instanzen - jede mit einem unabhängigen Betriebssystem und einer Anwendung - auf demselben physischen System zu hosten und dabei weitaus mehr der verfügbaren Rechenressourcen des Systems zu nutzen.
VMs sind außerdem sehr mobil. Die Abstraktion, die in einem Hypervisor stattfindet, macht die VM auch unabhängig von der zugrunde liegenden Hardware. Herkömmliche Software kann eng an die zugrunde liegende Serverhardware gekoppelt sein, was bedeutet, dass eine Verlagerung der Anwendung auf einen anderen Server eine zeitaufwändige und fehleranfällige Neuinstallation und Neukonfiguration der Anwendung erfordert. Im Vergleich dazu macht ein Hypervisor die zugrundeliegenden Hardwaredetails für die VMs irrelevant. Dadurch können VMs zwischen lokalen oder entfernten virtualisierten Servern - mit genügend verfügbaren Rechenressourcen - fast nach Belieben verschoben oder migriert werden, ohne dass die VMs dabei beeinträchtigt werden.
VMs sind außerdem logisch voneinander isoliert, auch wenn sie auf demselben physischen Rechner laufen. Eine VM kennt keine anderen VMs und ist nicht von ihnen abhängig. Ein Fehler, ein Absturz oder ein Malware-Angriff auf eine VM überträgt sich nicht auf andere VMs auf demselben oder anderen Rechnern. Das macht die Hypervisor-Technologie extrem sicher.
Und schließlich ermöglichen Snapshots die sofortige Rückkehr einer VM zu einem früheren Zustand. Obwohl Snapshots - oder Checkpoints, wie Microsoft sie nennt - nicht als Ersatz für Backups gedacht sind, können Snapshots als Schutzmechanismus dienen, insbesondere bei der Durchführung von Wartungsarbeiten an einer VM. Wenn ein Administrator ein Upgrade des Betriebssystems einer VM durchführen möchte, kann er vor der Durchführung des Upgrades einen Snapshot erstellen. Schlägt das Upgrade fehl, kann der Administrator den Snapshot wiederherstellen, um die VM sofort in den vorherigen Zustand zu versetzen.
Zusammenfassend kann man sagen, dass die wichtigsten Vorteile von Hypervisoren folgende sind:
- Geringere Kosten durch bessere Hardware-Auslastung.
- Die Möglichkeit, eine laufende VM schnell und einfach auf einen anderen Host zu migrieren, ohne die VM offline zu nehmen.
- Ein Bare-Metal-Hypervisor bietet Hardware-Isolierung für VMs. Ein Angreifer kann eine kompromittierte VM nicht dazu verwenden, eine benachbarte VM anzugreifen - zumindest nicht mit Hilfe des Hypervisors.
- Bare-Metal-Hypervisoren enthalten in der Regel eine Snapshot-Funktion, mit der VMs sofort auf einen früheren Zustand zurückgesetzt werden können, ohne dass ein Backup wiederhergestellt werden muss.
Container vs. Hypervisor
Container mögen wie Hypervisoren erscheinen. Hypervisoren hosten jedoch kernelbasierte VMs, die eine Umgebung schaffen, die eine Sammlung physischer Maschinen imitiert. Jede VM enthält ihr eigenes unabhängiges Betriebssystem. Im Gegensatz dazu können Container einen Betriebssystem-Kernel, das so genannte Basis-Image, gemeinsam nutzen. Jeder Container führt eine separate Anwendung oder einen Microservice aus, ist aber von dem zugrunde liegenden Basis-Image abhängig.
Microsoft bietet zwei verschiedene Container-Optionen an. Es ist möglich, eine traditionelle Container-Architektur auf Windows Server aufzubauen, aber es gibt auch die Option, eine Hyper-V-Container-Bereitstellung zu erstellen, die als hybride Umgebung fungiert. Dabei wird eine VM als Basis für die Container-Infrastruktur verwendet.
Kubernetes hat sich zum Standardwerkzeug für die Verwaltung von Linux-Containern in privaten, öffentlichen und hybriden Cloud-Umgebungen entwickelt. Kubernetes ist ein von Google entwickeltes Open-Source-System, das ursprünglich im Jahr 2015 eingeführt wurde. Kubernetes kann die Planung, Bereitstellung, Skalierung und Wartung von Containern über Cluster-Knoten hinweg automatisieren.
Sicherheitsaspekte
Der Hypervisor-Sicherheitsprozess umfasst die Gewährleistung der Sicherheit des Hypervisors während seines gesamten Lebenszyklus, einschließlich der Entwicklung und Implementierung. Verschafft sich ein Angreifer unbefugten Zugang zum Hypervisor, zur Verwaltungssoftware oder zur Software, die die virtuelle Umgebung orchestriert, kann er potenziell auf alle in den einzelnen VMs gespeicherten Daten zugreifen. Weitere mögliche Schwachstellen sind gemeinsam genutzte Hardware-Caches, das Netzwerk und der potenzielle Zugriff auf den physischen Server.
Zu den gängigen Sicherheitspraktiken für Hypervisors gehören:
- Begrenzung der Benutzer in einem lokalen System
- Begrenzung der Angriffsflächen durch Ausführen von Hypervisors auf einem dedizierten Host, der keine zusätzlichen Rollen übernimmt
- ständige Aktualisierung der Systeme durch Einhaltung der bewährten Verfahren für die Patch-Verwaltung
- Konfigurieren des Hosts als Teil einer bewachten Struktur
- Aktivieren der VM-Verschlüsselung, um zu verhindern, dass böswillige Administratoren Zugriff auf VMs erhalten
- Verschlüsselung des Speichers, auf dem sich die VMs befinden, durch Verwendung von BitLocker oder einer anderen ähnlichen Verschlüsselungsoption
- Verwendung einer rollenbasierten Zugriffskontrolle (RBAC) zur Begrenzung der administrativen Privilegien
- Verwendung eines dedizierten physischen Netzwerkadapters für den Verwaltungsverkehr
- Verwendung eines dedizierten physischen Netzwerkadapters für den VM-Migrationsverkehr
- Verwendung eines dedizierten physischen Netzwerkadapters für den Cluster-Datenverkehr
Hypervisor-Anbieter und Markt
Es gibt heute mehrere große Hypervisors, die von kostenlosen Plattformen bis hin zu teuren Produkten der Enterprise-Klasse reichen. Dies sind die am weitesten verbreiteten Hypervisors:
- Citrix Hypervisor
- Linux KVM (Kernel-basierte VM)
- Nutanix AHV (Acropolis Hypervisor)
- Microsoft Hyper-V
- Oracle VM Server
- Oracle VM VirtualBox
- VMware ESXi