Virtualisierung ist eine Technik, mit der die Ressourcen eines physischen Computers – Prozessor, Arbeitsspeicher und Speicherplatz – so aufgeteilt werden, dass mehrere unabhängige, virtuelle Umgebungen darauf gleichzeitig laufen können.
Ohne Virtualisierung läuft auf einem physischen Server meist nur ein Betriebssystem mit seinen Anwendungen. Virtualisierung schiebt eine zusätzliche Softwareschicht dazwischen, die die physische Hardware nachbildet und in mehrere voneinander abgeschottete virtuelle Maschinen aufteilt. Jede virtuelle Maschine verhält sich für die darauf laufende Software wie ein eigenständiger Computer, obwohl sich mehrere solche virtuellen Maschinen dieselbe physische Hardware teilen.
Eine spezielle Verwaltungssoftware, der Hypervisor, läuft direkt auf der physischen Hardware oder auf einem bestehenden Betriebssystem und teilt Prozessor, Arbeitsspeicher und Speicherplatz kontrolliert zwischen mehreren virtuellen Maschinen auf. Jede virtuelle Maschine erhält ein eigenes, vollständiges Betriebssystem und ist von den anderen virtuellen Maschinen auf demselben physischen Rechner isoliert – ein Ausfall oder Fehler in einer virtuellen Maschine beeinträchtigt die anderen im Regelfall nicht. Diese Aufteilung erlaubt es, die vorhandene Hardware deutlich effizienter auszulasten, als wenn jede Aufgabe einen eigenen physischen Server benötigen würde.
Auf einem einzigen physischen Server laufen mithilfe von Virtualisierung gleichzeitig drei virtuelle Maschinen mit unterschiedlichen Betriebssystemen für Webserver, Datenbank und interne Testumgebung – unabhängig voneinander, obwohl sie sich dieselbe Hardware teilen.
Virtualisierung wird eingesetzt, um Serverhardware effizienter auszulasten, Testumgebungen schnell und isoliert bereitzustellen, ältere Anwendungen auf neuer Hardware weiterzubetreiben und als technische Grundlage für viele Cloud-Computing-Angebote, die Rechenressourcen flexibel zuteilen.
Virtualisierung ist nicht dasselbe wie Cloud Computing: Virtualisierung ist eine Basistechnik, die Cloud-Anbieter intern nutzen, während Cloud Computing das übergeordnete Bereitstellungs- und Abrechnungsmodell für Rechenressourcen beschreibt. Zudem bedeutet Virtualisierung nicht automatisch geringeren Ressourcenverbrauch – jede virtuelle Maschine benötigt weiterhin eigene Rechenleistung und Arbeitsspeicher, auch wenn Hardware insgesamt besser ausgelastet wird.
Nicht zu verwechseln mit Container (Software): Container isolieren Anwendungen auf Betriebssystemebene und teilen sich dabei den Betriebssystemkern, während virtuelle Maschinen jeweils ein vollständiges, eigenes Betriebssystem mitbringen und dadurch stärker isoliert, aber auch ressourcenintensiver sind. Ebenfalls abzugrenzen ist Cloud Computing: Es beschreibt das Bereitstellungsmodell für Rechenressourcen über das Netzwerk, das häufig auf Virtualisierung als technischer Grundlage aufbaut, aber deutlich mehr umfasst als reine Hardwareaufteilung.