Virtualisierungstechnologien im Überblick
0Hardware Emulation
Bei der Hardware Emulation werden sämtliche Hardware-Komponenten (CPU, Chipsatz, I/O-Karten, …) emuliert. Die CPU Emulation übersetzt Hardware-Instruktionen von der emulierten auf die native CPU (z.B. Emulation von PowerPC, ARM, SPARC, MIPS, … auf x86). Dies führt zu einem großen Overhead und dadurch auch zu einer Performanceeinbuße. Gast-Betriebssysteme können ohne Anpassungen betrieben werden.
Beispiele für Hardware Emulation:
Hardware Virtualisierung
Ähnlich wie bei der Hardware Emulation werden zahlreiche Hardware-Komponenten emuliert (Chipsatz, I/O-Karten, …). Die CPU wir allerdings nicht emuliert, manche CPU Instruktionen werden aber abgefangen und angepasst. In den Gastsystemen kann somit nur die CPU Architektur verwendet werden, die auch Hostsystem physisch vorhanden ist. Die Performance ist dafür deutlich höher als bei der Hardware Emulation.
Gast-Betriebssysteme können ohne Anpassungen betrieben werden.
Beispiele für Hardware Virtualisierung:
- VMware vSphere, VMware Workstation, VMware Server
- Parallels Workstation
- MS Virtual PC for Windows, MS Virtual Server
- VirtualBox
- XEN ab Version 3 mit Hardware Virtual Machine (HVM), setzt Intel-VT/AMD-V CPU voraus
Paravirtualisierung
Bei der Paravirtualisierung findet keine Hardware Emulation statt. Stattdessen bietet der Host ein spezielles API für den Hardware Zugriff. In den Gastsystemen kann nur die CPU Architektur verwendet werden, die auch im Hostsystem physisch vorhanden ist. Gast-Betriebssysteme (Kernel) müssen angepasst werden, das ABI (Application Binary Interface) bleibt aber unverändert.
Beispiele:
- XEN
- VMware vSphere (etwa für bestimmte Linux-Gastsysteme über die Paravirt Ops Schnittstelle – siehe http://www.vmware.com/products/vsphere)
Betriebssystemvirtualisierung
Auch hier findet keine Emulation statt. Es gibt nur einen einzigen Kernel für den Host und die Gastsysteme. Somit kann als Gastbetriebssystem auch nur das gleiche Betriebssystem wie am Host verwendet werden (z.B. nur Linux auf Linux, unterschiedliche Distributionen sind aber möglich). Diese Technologie hat einen sehr geringen Overhead, da keine Emulation stattfindet und Syscalls nur durch einen und nicht zwei Kernel gehen. Gastsysteme können innerhalb von Sekunden gestartet werden.
Beispiele:
- Linux-VServer
- OpenVZ, Virtuozzo
- Sun Solaris Containers
- FreeBSD Jails
Weitere Weblinks: