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 den Applikationen oder den Schnittstellen einerseits und den physischen Ressourcen wie z. B. Hardwarekomponenten eines Rechners andererseits, implementieren.
Diese Abstraktionsebene dient dazu, mehrere Ressourcen logisch zusammenzufassen, so dass sie sich dem Anwender als eine einzige Komponente präsentieren, so um beispielsweise mehrere Rechner als einen Rechner erscheinen zu lassen, oder umgekehrt eine Ressource aufzuteilen, so, dass der Anwender mehrere logische Komponenten zur Verfügung hat. So wie beispielsweise bei einer Festplatte mit mehreren Partitionen.
Die Virtualisierungsschicht verbirgt die Implementierungsdetails des genutzten Systems und koppelt die darüber liegenden Komponenten von der darunter liegenden Hardware ab. In der Praxis dient Virtualisierung dazu, Hardware und ihre Komponenten flexibler und effizienter nutzen zu können, z.B. können sich mittels Servervirtualisierung mehrere Betriebssysteme als virtuelle Maschinen ( VM) einen einzigen Rechner teilen und ihn gleichzeitig nutzen.
Virtualisierung kann auf den unterschiedlichsten Ebenen implementiert sein:
- Hardware-Partitionierung teilt einen Rechner auf Hardwareebene in mehrere virtuelle Maschinen auf.
- Grids fassen viele Rechner zu einem virtuellen Supercomputer zusammen.
- Speichersysteme können Storagebereiche logisch zusammenfassen oder aufteilen.
- Zentraleinheiten (Intel VT, AMD-V) können virtuellen Maschinen eigene Ablauf- und Speicherbereiche zuweisen.
- Betriebssysteme sowie spezielle Virtualisierungsschichten wie Virtual Machine Monitor ( VMM) oder Hypervisor stellen isolierte Laufzeitumgebungen bereit.
- Applikationsvirtualisierung lässt Anwendungen lokal installationsfrei in einer virtuellen Umgebung abgeschottet ablaufen.
- Applikationen stellen virtuelle Instanzen ihrer selbst bereit, z.B. Virtuelle Hosts bei Webservern.
- Bei virtuellen Laufzeitumgebungen werden Applikationen in einer virtuellen Maschine vom darunter liegenden Betriebssystem abgekoppelt und können so in unterschiedlichen Umgebungen ablaufen. Beispiel: Java Virtual Machine ( JVM).
- Desktopvirtualisierung abstrahiert vom normalerweise benötigten lokalen Rechnersystem, indem es den Desktop virtuell auf einem anderen Rechner ausführt wie bei Terminal-Services, Server Based Computing oder einen zentral abgelegten Desktop (nur) zur Laufzeit transparent auf das lokale System überträgt.
Nicht zuletzt ist Virtualisierung ein interessantes Instrumentarium zur Energiekostensenkung in Zusammenhang mit den Forderungen nach Green-IT. Durch eine optimale Auslastung ihrer Server durch Virtualisierung können Unternehmen ihre Serverfarmen wesentlich verkleinern und dadurch Energie einsparen.