Virtualisierung
Virtualisierung trennt ein System von der Hardware, auf der es läuft. Statt eines Betriebssystems pro Rechner laufen mehrere virtuelle Maschinen auf einem Server, jede mit eigenem Betriebssystem und scheinbar eigener Hardware. Die Software, die das ermöglicht, heißt Hypervisor.
Der Gedanke ist alt: Großrechner teilten sich schon in den 1960er- und 1970er-Jahren in virtuelle Maschinen auf. Auf gewöhnlichen x86-Servern setzte sich Virtualisierung in den 2000er-Jahren durch, ab 2005 und 2006 mit Unterstützung direkt im Prozessor. Heute läuft der größte Teil der Server in Rechenzentren virtualisiert.
Warum virtualisiert wird
| Vorteil | Beispiel |
|---|---|
| Auslastung | statt zehn Servern mit je 10 % Last ein Server mit zehn virtuellen Maschinen |
| Trennung | ein abgestürztes oder kompromittiertes System betrifft die anderen nicht direkt |
| Schnelle Bereitstellung | ein neuer Server ist eine Kopie einer Vorlage, in Minuten statt Tagen |
| Unabhängigkeit von Hardware | virtuelle Maschinen lassen sich auf neue Server umziehen, ohne sie neu zu installieren |
| Ausfallsicherheit | fällt ein Server aus, startet die Maschine auf einem anderen neu oder wird im laufenden Betrieb verschoben |
| Snapshots und Sicherung | der Zustand einer Maschine lässt sich einfrieren und zurückspielen |
Der Preis: eine zusätzliche Software-Schicht, die selbst gepflegt und abgesichert werden muss, und Lizenzkosten für viele kommerzielle Hypervisoren. Außerdem teilen sich alle Maschinen auf einem Server dessen Leistung — rechnet eine stark, merken das die Nachbarn.
Arten der Virtualisierung
| Art | Was virtualisiert wird | Beispiel |
|---|---|---|
| Servervirtualisierung | ganze Rechner | virtuelle Maschinen auf einem Host |
| Container | nur die Laufzeitumgebung, der Betriebssystemkern wird geteilt | Anwendungen in Containern |
| Desktopvirtualisierung (VDI) | Arbeitsplatzrechner | Büro-PCs laufen im Rechenzentrum, der Mitarbeiter sieht nur den Bildschirm |
| Anwendungsvirtualisierung | einzelne Programme | Programm läuft gekapselt, ohne Installation |
| Speichervirtualisierung | Festplatten und Speichersysteme | viele Laufwerke erscheinen als ein Speicher |
| Netzvirtualisierung | Netze und Netzgeräte | VLAN, virtuelle Switches und Router, Overlay-Netze |
Im Alltag meint Virtualisierung meist Servervirtualisierung.
Virtuelle Maschine oder Container
| Virtuelle Maschine | Container | |
|---|---|---|
| Eigenes Betriebssystem | ja | nein, der Kern des Hosts wird geteilt |
| Trennung | stark, über den Hypervisor | schwächer, über Funktionen des Betriebssystems |
| Startzeit | Sekunden bis Minuten | Sekundenbruchteile bis Sekunden |
| Größe | Gigabyte | Megabyte |
| Andere Betriebssysteme | möglich | nur Systeme mit passendem Kern |
Container laufen in der Praxis oft selbst in virtuellen Maschinen, um die stärkere Trennung zu behalten.
Voraussetzungen im Prozessor
Moderne Prozessoren haben Erweiterungen für Virtualisierung. Sie erlauben dem Hypervisor, Gastsysteme direkt auf dem Prozessor laufen zu lassen, statt jeden Befehl nachzubilden. Auf Arbeitsplatzrechnern sind sie im BIOS oder UEFI oft abgeschaltet — die häufigste Ursache, wenn eine virtuelle Maschine nicht startet. Die Einstellung heißt je nach Hersteller etwa Virtualization Technology, VT-x, AMD-V oder SVM.
Im Rechenzentrum
Virtualisierung hat die Rechenzentren verändert. Weniger, aber leistungsstärkere Server bedeuten höhere Leistung pro Rack und damit höhere Anforderungen an Strom und Kühlung. Gleichzeitig sinkt der Gesamtverbrauch, weil weniger Server im Leerlauf laufen.
Cloud-Dienste beruhen auf Virtualisierung: Eine Instanz bei einem Cloud-Anbieter ist eine virtuelle Maschine auf dessen Servern. Auch ein virtueller Server beim Hoster ist eine.
Verwaltung vieler Hosts
Ab einer gewissen Größe wird nicht mehr der einzelne Hypervisor verwaltet, sondern ein Verbund. Dafür gibt es Verwaltungsplattformen, die Hosts, Speicher und Netze zusammenfassen und virtuelle Maschinen automatisch verteilen. Die bekannteste offene Plattform ist OpenStack, 2010 aus Projekten von Rackspace und der NASA entstanden. OpenStack ist selbst kein Hypervisor, sondern steuert Hypervisoren — meist KVM — und stellt darauf eine Cloud mit Selbstbedienung bereit. Betreiber eigener Clouds, Hoster und Forschungseinrichtungen setzen es ein.