Inhaltsverzeichnis
Virtualisierung
- Container-Virtualisierung
- Voll-Virtualisierung
- HyperVisor-Frame-Work
- libvirt - wer XML mag…
CPU-Virtualisierung: Intels Vanderpool (Prozessorflag vmx) oder AMDs Pacifica (Prozessorflag svm)
AMD-V (Virtualisierungstechnik Pacifica) ist seit Juni 2006 Bestandteil der Athlon-64-Prozessoren (ab Windsor-Kern / Sockel AM2), der Turion-64-Prozessoren (nur Sockel S1), der Opteron-Prozessoren (Sockel AM2 und Sockel F) und der Phenom-Prozessoren. siehe: http://de.wikipedia.org/wiki/AMD_Virtualization
Hat man einen Intelprozessor mit Core-Architektur, ist die Wahrscheinlichkeit recht groß, dass man eine CPU mit Hardware-Virtualisierung besitzt. Leider kann man bei Intel an der Modellbezeichnung nicht direkt erkennen ob Hardware-Virtualisierung unterstützt wird, da es zu viele Ausnahmen gibt. siehe: http://de.wikipedia.org/wiki/Intel_VT
Bei Intel hat die Hardware-Virtualisierung einen kleinen Schönheitsfehler. Aus Historischen und Kompatibilitätsgründen muss bei Intel die Speicherzugriffstabelle für alle Prozesse sichtbar sein, das hat zur Folge, dass es theoretisch möglich ist, dass eine VM eine andere VM zum Absturz bringen kann!
Ob Ihr Prozessor die Hardware-Virtualisierung unterstützt, können sie an den Prozessorflag erkennen. Das Hardwareerkennungsskript überprüft auch dieses.
Allerdings ist zu beachten, dass die Hardware-Virtualisierung bei einem neu gekauften Rechner im BIOS immer abgeschaltet ist! Diese Option muss also erst eingeschaltet werden.
GPU Passthrough
siehe: QEMU+KVM
Prozessvirtualisierung / Container
Typische Vertreter dieser Kategorie:
- Solaris-Zones
- BSD-Jails
- OpenVZ
- Linux-VServer.
- LinuX Containers (LXC)
BSD jails
CPU-Virtualisierung wird nicht benötigt.
OpenVZ (Virtuozzo / Proxmox)
CPU-Virtualisierung wird nicht benötigt.
Linux-VServer ist etwas ähnliches, hinkt in der Entwicklung mittlerweile aber hinter OpenVZ her.
LXC (LinuX Containers)
- Container: isolierte Umgebung innerhalb des Systems
- Minimal: Isolation von Filesystem, Prozessliste und IPC
- Optional: CPUsets, Load, max. Memory
- System- oder Anwendungscontainer
- verfügbar seit Kernel 2.6.27, volle Funktionen seit 2.6.29
LinuX Containers (LXC) ist zwar nicht so ausgereift wie OpenVZ, aber dennoch eine leistungsfähige Lösung, wenn es um das Erstellen virtueller Container geht. Der Nachteil von OpenVZ ist jedoch, dass es nicht im Mainline-Kernel enthalten ist. Das bedeutet, dass man einen Kernel aus dem OpenVZ-Projekt verwenden muss. Dies muss nicht unbedingt ein Problem darstellen, es sei denn, man führt eine nicht unterstützte Linux-Distribution aus. Zudem darf man sich nicht daran stören, dass Upstream-Sicherheitsfixes erst mit einer gewissen Verzögerung ankommen.
Paravirtualisierung
KVM
CPU-Virtualisierung ist für den Betrieb zwingend erforderlich.
KVM/QEMU wird z.Z. am besten von Linux und IllumOS unterstützt und ist momentan die beste freie Virtualisierungslösung. FreeBSD unterstützt z.Z. nur VirtualBox (früher QEMU) vernünftig.
Bestandteile der KVM sind die Kernel-Module kvm.ko (das aber auch unter älteren Linux-Versionen laufen soll) sowie die hardwarespezifischen Module kvm-intel.ko oder kvm-amd.ko. KVM selbst nimmt keine Emulation vor, sondern stellt nur die Infrastruktur dazu bereit; ein modifiziertes QEMU ist derzeit die einzige Möglichkeit, diese zu nutzen. Nach dem Laden des Moduls arbeitet der Linux-Kernel selbst als Hypervisor für virtuelle Maschinen. Als Gastsysteme unterstützt KVM Linux (32 und 64 Bit), Windows (32 und 64 Bit), Haiku OS, AROS, ReactOS, FreeDOS, Solaris und diverse BSD-Derivate. KVM läuft auch auf SMP-Hostsystemen, SMP-Gastsysteme sind ebenfalls möglich. Die Unterstützung für Paravirtualisierung ist mittlerweile in KVM vorhanden.
VMware (ESX)
VMware mag ich nicht! Es soll hier nur der Vollständigkeit wegen genannt werden, immerhin ist es ein "Klassiker" mit eigener Virtualisierungstechnik (Full Virtualization with Binary Translation).
XEN
CPU-Virtualisierung beschleunigt die VMs.
XEN wird von Linux, NetBSD und FreeBSD unterstützt.
Zur Zeit kann man hier nur das CD-Image von der Webseite benutzen, das manuelle einrichten ist ein Grauß!
oVirt
oVirt is a virtualization management framework constisting of a small host image, the oVirt Node, that provides the libvirt service to host virtual machines, and a robust vm management software stack, controlled by a web-based management interface, the oVirt Server. This stack provides pxe and other automated vm boot / appliance solutions; various vm operations, task, vnc, and other access; and a secure authentication based on freeIPA.
Native Virtualization
Bekannte Vertreter dieser Virtualisierungsmethode sind VirtualBox, VMware-Player, VMware-Server, VMware-Workstation und Parallels Desktop/Workstation. Die Ausführungsgeschwindigkeit der Gast-Systeme ist bei dieser Methode hoch.
VirtualBox
VirtualBox ist eine Emulationssoftware, die mit grafischer Oberfläche für den Desktop besonders gut geeignet ist und recht gut funktioniert. Es gibt jedoch auch die Möglichkeit, VirtualBox von der Kommandozeile aus zu bedienen.
QEmu/KQemu
QEMU unterstützt bis zur Version 0.11 den optionalen Beschleuniger KQEMU und damit die Native Virtualization.
Hardware-Emulation
Bochs
CPU-Virtualisierung wird nicht benötigt.
Bochs ist ein freier x86- und AMD64-Emulator und Debugger, der den Bedingungen der LGPL unterliegt.
Der ist sehr langsam, da hier sogar die (Intel-) CPU emuliert wird und deshalb macht er nur Sinn, wenn man eine andere Architektur emulieren will/muss. An sonsten ist es ein tolles teil, das auch wirklich gut funktioniert.
QEMU+KVM
CPU-Virtualisierung wird nicht benötigt.
QEMU ist einer der ersten freien Emulatoren gewesen, die auch funktioniert haben. Mit KQEMU konnte es auch noch deutlich beschleunigt werden. Jetzt sollte man allerdings auf QEMU+KVM umsteigen.
