Hypervisoren im Vergleich

Virtualisierung – ist KVM das bessere Xen?

17.11.2010 von Andrej Radonic
Spätestens seit Red Hat seine Strategie für die Virtualisierung auf KVM (Kernel-based Virtual Machine) ausgerichtet hat, gilt dieser recht neue Hypervisor in der Open-Source-Szene als Nachfolger von Xen. Was macht KVM interessant, und ist es besser als Xen?

Spätestens seit Red Hat seine Strategie für die Virtualisierung auf KVM (Kernel-based Virtual Machine) ausgerichtet hat, gilt dieser recht neue Hypervisor in der Open-Source-Szene als Nachfolger von Xen. Was macht KVM interessant, und ist es besser als Xen?

War Xen bis vor kurzem noch derjenige offene Hypervisor, der die meisten Hersteller - von IBM über Sun bis Oracle - hinter sich vereinte, ist das Feld der Open-Source-Hypervisor in den letzten Monaten in Bewegung geraten. Neben einem klaren Commitment der Linux Foundation für KVM hat allen voran Red Hat den Stein ins Rollen gebracht. Einstmals einer der großen Player in der Xen-Entwicklergemeinde, hat sich das Unternehmen durch den Aufkauf des KVM-Herstellers Qumranet vollständig der Kernel-based Virtual Machine als Grundlage für seine Server-Virtualisierung RHEV (Red Hat Enterprise Virtualization) verschrieben.

Xen-Architektur
Foto: Radonic

Novell sprang auf den fahrenden Zug auf und nahm KVM neben Xen in SLES 11 auf; zudem wird dort ein eigener Hypervisor auf Basis von KVM entwickelt: AlacrityVM. IBM bewegt sich ebenfalls von Xen auf KVM zu. Citrix setzt mit XenServer konsequent weiterhin auf die Open-Source-Virtualisierungsmaschine Xen und stellte dies mit der soeben veröffentlichten Version 5.6 unter Beweis. Bei Oracle bleibt Xen derzeit Bestandteil von Oracle Linux, Bekenntnisse in Richtung KVM sind nicht verlautbart worden. Da aber Oracle Linux von Red Hat abgeleitet ist, könnten auch hier die Würfel in absehbarer Zeit für KVM fallen.

Das etwa 250 köpfige Xen-Entwicklerteam hat unbeeindruckt von politischem Geplänkel eine sehr umfassende Erweiterung des Hypervisors in Form der Version 4 herausgebracht und adressiert darin viele gerade für den Enterprise-Betrieb relevanten Themen - von Security bis hin zu erhöhter Ausfallsicherheit sowie Kompatibilität.

Desktop-Virtualisierung
Ralf Gegg, VMware: "Kunden wollen in der Konzeption, beim Test und während der Implementierung von Client-Virtualisierung-Infrastrukturen unterstützt werden"
Iris Musiol, Oracle: "Schlanke Endgeräte entkoppeln den persönlichen Desktop vom starren Arbeitsplatz."
Emanuel Pirker, Stratodesk: TCO spielt eine sehr wichtige Rolle."
Jens Lübben, Citrix: "2011 wird Desktop-Virtualisierung hohe Wellen schlagen"
Michael Korp, Microsoft: "Virtualisierung als Ergänzung und Erweiterung des klassischen Desktops"
Karl Heinz Warum, Wyse: "Konsequente Weiterentwicklung von Client/Server-Strukturen hin zum Server-based Computing"
Hermann Ramacher, ADN: "Fast keine Einschränkungen bei der Desktop-Virtualisierung"
Michael C. Reiserer: "User owned devices"

David gegen Goliath

Was KVM für die Community und die Betriebssystemhersteller so interessant macht, sind vor allem Aspekte der Architektur sowie der Wirtschaftlichkeit der Entwicklung. Xen begann 2006, den Weg für Server-Virtualisierung in der Linux-Welt zu ebnen. Sein Erfolg begründete sich auf dem Bare-Metal-Hypervisor, der mittels Paravirtualisierung eine performante Virtualisierung ermöglichte, und gleichzeitig auch vollvirtualisierte Gäste vermittels der damals neuen CPU-Virtualisierungsfeatures ermöglichte. Xen erreicht dies mit einem verhältnismäßig hohem Aufwand: Der Hypervisor benötigt für das Virtualisieren von Gästen (domU) eine privilegierte Linux-VM (dom0) mit einem speziell gepatchten Linux-Kernel. Aufgrund des hohen Pflegeaufwandes ist dieser Linux-Kernel auf einem eher alten Stand und Xen wurde nie in den Mainstream-Linux-Kernel integriert.

KVM setzt auf eine schlankere Strategie:

1. Der Name ist Programm: KVM als "Kernel-based Virtual Machine" ist als Modul direkt in den Linux-Kernel integriert. Ein separater Hypervisor und eine separate virtuelle "Partition" für den Betrieb virtueller Maschinen sind nicht erforderlich. Der Linux-Kernel selbst stellt Scheduling, Memory Management, Treiber usw. zur Verfügung. Im Gegensatz zu Xen (Typ 1 Hypervisor) ist KVM als "Hosted Hypervisor" vom Typ 2.

KVM-Architektur
Foto: Radonic

2. KVM setzt direkt auf der CPU-Unterstützung für Virtualisierung (Intel VT und AMD SVM) auf und wurde von vorne herein im Hinblick auf moderne "virtualisierungsorientierte" Hardware konzipiert. Dadurch kommt es mit weniger Code aus. Zweiter Bestandteil von KVM neben den Kernelmodulen ist QEMU, eine wohlbekannte Emulationssoftware. Diese ist zuständig für die virtualisierte Bereitstellung von Geräten in den Gästen und bietet gleichzeitig die Ablaufumgebung der VMs.

KVM präsentiert sich somit weniger komplex als Xen und kann immer in Verbindung mit dem aktuellsten Linux-Kernel genutzt werden. Die Integration in den Mainstream-Linux-Kernel garantiert dabei eine gewisse Zukunftssicherheit des Produkts. Zudem kann die Hypervisor-Technologie mit deutlich geringerem Aufwand weiterentwickelt werden und profitiert gleichzeitig sehr stark von Weiterentwicklungen bei der Hardware.

Impressionen vom Channel-Kongress Virtualisierung
Eingang zur Alten Kongresshale
Michael C. Reiserer: "Komplexe Lizenzlage in virtualisierten Systemen"
Adam Hufnagel, Produktmanager bei Controlware: "VMware ist bei uns gesetzt."
Volkmar Rudat, Vice President Product & Solution Management Large Platforms bei Siemens Enterprise Communications Group: "Enge Partnerschaft mit VMware"
Udo Schneider, Solution Architect bei Trend Micro: "Zeitgesteuerte Scans unbedingt notwendig"
Steve Janata, Senior Advisor bei der Experton Group: "Servervirtualisierung ist kein Alleinstellungsmerkmal mehr."
David Weyand, System Engineer bei Ingram Micro, stellte den Besuchern des Channel-Sales-Kogresses das Produktportfolio von VMware vor.
Angela Jokubeit, Ingram Micro, konnte alle Fragen der interessierten Fachhaendler beantworten
Fachändler fachsimpeln
Das kühle Bier am späten Nachmittag haben sich alle verdient
Bianca Kasper, ChannelPartner, sorgte für gute Stimmungu unter den Besuchern
Die Diskussionsrunde zu Virtualisierungsprojekten; v.l.n.r.: Udo Schneider, Trend Micro; Adam Hufnagel, Controlware; Steve Janata, Experton; Ronald Wiltscheck, ChannelPartner
Applaus
Das Publikum zeigte sich stets sehr interessiert
Der Moderator
Der Workshop mit Trend Micro
Volmar Rudat, SEN, vor versammeltem Publikum
Udo Schneider, Trend Micro, in Aktion
70er-Jahre-Charme der alten Kongresshalle München
Am Ingram Micro-Stand war immer etwas los
Das warme Mittagsbuffet
Fachhändler wollen virtualisierte Welten sichern helfen
Das Frühstücksbuffet
Gut besuchter Trend Micro-Stand
Hohe Besucherfrequenz am Ingram Micro-Stand
Horst Hamrik und Michael Gerisch, Trend Micro
Interessierter Fachhändler am Siemens Enterprise Networks-Stand
Kaffeepause
Immer an Neuigkeiten interessiert
Natascha Moessler.ChannelPartner. Steve Janata, Experton Group
Volkmar Rudat, Siemens Enterprise Networks. im Gespräch mit einem interessierten Fachhändler
Die Raucherecke
Ein SEN-Mitarbeiter erklärt den Besuchern des Channel Sales Kongresses Virtualisierung der UC-Anlagen von Siemens

KVM in der Praxis

Aber ist KVM dadurch das bessere Xen? Was spricht heute für KVM, was dagegen?

Installation und Handling

KVM präsentiert sich bereits bei der Installation sehr schlank und einfach: es sind im Wesentlichen die Kernel-Module zum bestehenden System dazu zu installieren sowie Qemu und Management-Tools einzurichten. Damit kann im Gegensatz zu Xen auch ein bereits vorhandener Linux-Server nachträglich zum Virtualisierungssystem aufgerüstet werden. Bei Xen ist immer eine komplette Neuinstallation notwendig, da es sich um ein Bare-Metal System handelt.

Auch beim Handling finden sich Linux-Administratoren sofort zurecht: Jeder Gast bzw. jede virtuelle CPU verhalten sich wie ganz gewöhnliche Linux-Prozesse und können so beispielsweise auch über normale Kommandos wie z.B. top, kill usw. kontrolliert und gesteuert werden. Dies gilt auch für die Gerätelandschaft, speziell für Speichergeräte - da hier die normalen Linux-Treiber genutzt werden. Eine Umgewöhnung ist nicht nötig.

Da Gastsysteme vollständig virtualisiert werden, sind Modifikationen in selbigen nicht erforderlich. KVM unterstützt jedoch bei Bedarf auch die Paravirtualisierung von I/O-Schnittstellen (Netzwerk, Festplatte, Memory Ballooning, VGA). Hierzu nutzt es die standardisierte virtio-Schnittstelle des Linux-Kernels. Der Vorteil dieser Treiber ist der geringere Overhead und die höhere Performance.

Management

Beim Management zeigt sich der junge Charakter von KVM noch von seiner eher unpraktischen Seite. KVM ist zwar in vielen Linux-Distributionen als eine Sammlung von Paketen bereits an Bord. Zum Standard gehört hier z.B. bei Ubuntu (welches ebenfalls von Xen zu KVM umgeschwenkt ist) der grafische virt-manager sowie die Kommandozeilen-Toolbox virsh. Beide laufen auf Basis des hypervisorübergreifenden Schnittstellenpakets libvirt (welches sich auch auf Xen versteht). Remote Management ist damit möglich, jedoch keine "Orchestrierung" ganzer Pools virtueller Maschinen mit weitergehenden Funktionen wie Failover, High Availability und dergleichen.

Hier springen Drittprojekte sowie Softwarehersteller in die Bresche, typischerweise allesamt Open Source (wenngleich teilweise kostenpflichtig):

• Convirture (ehemals ConVirt, ehemals XenMan) verwaltet Pools von Xen- und KVM-Servern parallel unter einer grafischen Weboberfläche.

• oVirt: libvirt-basierende Web-GUI für das Management virtualisierter Server

• Ganeti: Cluster Virtual Server Management Software von Google

• Enomaly: Cloud Computing Plattform für KVM und Xen

• openQRM: Data-Center Management Plattform mit Xen, KVM, VMware und Linux VServer als Basis für virtualisierte Server

Aufbauend auf KVM als Virtualisierungs-Engine sind inzwischen verschiedene Komplettlösungen für Server-Virtualisierung am Markt angekommen:

• RHEV (Red Hat Virtualization): das Lösungspaket enthält Komponenten für HA, Scheduling, Migration, Energieverwaltung sowie für Monitoring. Pikanterweise hat die Open Source-only Schmiede derzeit nur ein Windows-basierendes Management-System. Dieses benötigt einen Windows 2003 Server sowie eine Windows-Workstation für die Nutzung der grafischen Konsole. Nicht nur, dass dies völlig unverständlich erscheint, es erhöht die Kosten des Gesamtsetups und es stellt auch noch einen Single Point of Failure dar, so dass man die Konstruktion insgesamt in Frage stellen darf. Eine reine Open-Source-Lösung soll jedoch in Arbeit sein.

• Proxmox VE: Out-of-the-Box Virtualisierungsplattform für KVM und openVZ

Convirture Management-GUI mit Xen- und KVM-Hosts

Da erst solche Komplettlösungen den breiten Markt erschließen können, ist davon auszugehen, dass in nächster Zeit weitere solcher Produkte entstehen werden, was die Popularität von KVM weiter fördern dürfte. Insgesamt wird dabei allen voran Red Hat gefordert sein, ein Ökosystem von KVM-Drittherstellern zu schaffen, welches eine Gesamtlandschaft für diesen Hypervisor schafft, um ihn Enterprise-ready zu machen.

Unterstützte Gastsysteme

Im Gegensatz zu QEMU unterstützt KVM nur Gast-Systeme mit x86-Architektur. Die Zahl unterstützter Systeme ist ähnlich groß wie bei Xen. Sämtliche wichtigen Windows-Varianten sind dabei: 2000, XP, Vista, Windows Server 2003 und 2008. Darüber hinaus natürlich Linux, Solaris, BSD, FreeBSD und einige eher exotische wie z.B. ReactOS.

Technische Features

Alle Funktionen, die man von einem modernen Hypervisor erwartet, sind an Bord: Detaillierte Konfiguration von Gästen (Speicher, virtuelle CPUs), dynamische Speicherverwaltung, welche den Shared Memory des Linux-Systems nutzt (Kernel Same-page Merging = KSM), bis hin zur Live Migration von Gästen. Geräte am PCI-Bus und an USB-Anschlüssen können - auch hotplugfähig - an Gäste durchgereicht werden.

Performance

Bislang existieren recht wenige Performancemessungen und -vergleiche. Insgesamt zeichnet sich ab, dass KVM im Schnitt eine mit Xen vergleichbare Performance aufweist, mit etwas unterschiedlichen Ausprägungen: Bei der CPU-Performance hat Xen etwas die Nase vorn. Insbesondere dürfte damit der paravirtualisierte Betrieb von Linux, BSD oder Solaris hier die höchste Geschwindigkeit liefern. Bei der IO-Performance ist KVM etwas schneller, so dass zum Beispiel gerade der Windows-Gastbetrieb profitiert.

Sicherheit

Sicherheit kann gerade im Enterprise-Umfeld zum Prüfstein für KVM werden, da hier aufgrund der Kernel-nahen Implementierung (jeder Gast ist ein Linux-Prozess) die Gast-Isolation geringer ist als bei Bare-Metal Hypervisoren. Demgegenüber kann Xen eine höhere Gastisolation vorweisen und darüber hinaus von Hardware-Sicherheitsfeatures (z.B. TPM) Gebrauch machen. Das sVirt-Projekt soll SELinux im Hinblick auf die spezifischen Virtualisierungsanforderungen an Security erweitern, um KVM zu härten.

KVM-Architektur

Die Kernel-based Virtual Machine setzt auf die Vollständige Virtualisierung (Typ-2-Hypervisor) und läuft unter Linux ab Kernel-Version 2.6.20. Bestandteile sind die Kernel-Module kvm.ko, die hardwarespezifischen Module kvm-intel.ko oder kvm-amd.ko und die Gerätedatei /dev/kvm. Nach dem Laden der Module arbeitet der Linux-Kernel selbst als Hypervisor. KVM selbst stellt keine virtuelle Hardware zur Verfügung, dies übernimmt QEMU. Viele Linux-Distributionen bieten QEMU und KVM als ein Paket (qemu-kvm) an.

Während Xen, Hyper-V und ESXi Typ-1 Virtual Machine Monitors (VMMs) sind, bei denen der Hypervisor in Ring 0 der CPU läuft, hält sich bei KVM, Virtual Server, VirtualBox, Parallels, VMware Workstation, etc., der VMM in Ring 3 wie eine Applikation auf. Aufgrund seiner Fähigkeit, Hardware-Virtualisierungsfeatures der CPU zu nutzen, entspricht die Performance von KVM jedoch eher derjeniger der Typ1-Hypervisor.

Schichten und Komponenten von KVM:

• Die CPU-Virtualisierung wird durch Features des Prozessors bereitgestellt (Intel VT bzw. AMD-V).

• Der Speicher wird durch KVM virtualisiert.

• IO wird durch einen QEMU-Prozess je Gast virtualisiert.

KVM wird manchmal scherzhaft auch als CPU-Beschleuniger für QEMU bezeichnet. Die Gäste würden auch ohne KVM und nur mit QEMU laufen, jedoch erheblich träger.

KVM versus Xen auf einen Blick

KVM

Xen

Hardware

Setzt Intel VT / AMD-V voraus

Läuft auf fast jeder aktuellen Hardware, auch ohne Virtualisierungsfeatures

Reifegrad / Stabilität

Noch nicht völlig ausgereift, viele Releases, keine als stabil markierten Versionen. Noch kein breiter Rechenzentrums-Einsatz

Sehr ausgereift, sehr stabil. Verlässliches Release-Konzept, Regressionstests. Breiter Einsatz in Rechenzentren und Private und Public Clouds.

Architektur

Läuft mit und in jew. aktuellem Standard-Linux-Kernel (ab 2.6.20), mit vielen Distributionen verfügbar.

Vollständige Virtualisierung, dadurch keine Modifikationen für Gastsysteme nötig.

Auch Desktop-Betrieb möglich.

An einen spezifischen, älteren Linux-Kernel (seit Xen 4 ist es 2.6.31, bei Xen 3 2.6.18) gebunden.

Paravirtualisierung (Modifikationen am Gast-Kernel nötig) sowie Vollständige Virtualisierung (setzt Intel VT/AMD-V voraus).

Setzt dedizierte Hardware voraus, daher nur Servereinsatz.

Features

Gute Grundlage durch Linux-Kernel.

Gast-Funktionen teilweise noch im Ausbau begriffen.

Mit Xen 4 großer Funktionsumfang, z.B. Support für VHD-Dateiformat, integrierte HA-Features, USB 2.0 Direktzugriff.

Performance

Schnell, vor allem gute IO-Performance

Schnell, vor allem gute CPU-Performance.

Gastsysteme

Linux, Windows, Solaris, BSD, FreeBSD, MS-DOS und andere

Linux, Windows, Solaris, BSD, FreeBSD, und andere

Management

Noch begrenzt. Wenige Drittanbieter.

Mächtige Basis-Tools, große Auswahl an Dritt-Tools

Enterprise-Lösungen

RHEV

Citrix XenServer, Oracle

Zukunftssicherheit

Hoch

Fraglich

Sicherheit

Gast-Isolation geringer als bei Bare-Metal Hypervisor

Hochgradige Gastisolation, Nutzung von Hardware-Sicherheitsfeatures (z.B. TPM)

Fazit

KVM ist durch seine Ansiedlung im Kernel schlank und schnell und erbt direkt alle Fähigkeiten des Linux -Betriebssystems. Auch wenn KVM im direkten Feature-Vergleich mit Xen und anderen Open-Source-Hypervisoren für die Virtualisierung wie VMware ESXi momentan nicht in allen Punkten gleichziehen kann, so scheint dies bei der Geschwindigkeit der Entwicklung nur eine Frage der Zeit. Vorausgesetzt, man findet seinen eigenen Mix aus Host-Linux, KVM-Version und Management-Tools, kann man den Hypervisor bereits heute erfolgreich betreiben.

Weder Xen noch VMware weisen dabei so gewichtige Vorteile auf, dass diese nicht in kurzer Zeit von KVM wieder aufgewogen werden könnten. Die Tatsache, dass es nur auf neueren Chips mit eingebautem Virtualisierungs-Support läuft, dürfte heutzutage zu vernachlässigen sein. Schon eher dürfte - vor allem aus Sicht des Produktivbetriebs - der teilweise noch experimentelle Charakter und das Fehlen eines verlässlichen Release-Modells problematisch sein.

Viele heutige Virtualisierungsumgebungen laufen auf Xen und haben derzeit vermutlich keinen zwingenden Grund, auf KVM zu migrieren (es sei denn es handelt sich um zahlende RHEL-Anwender). Solche, die neu in Server-Virtualisierung einsteigen, sollten auch KVM als Alternative evaluieren. Potenzielle Umsteiger werden dabei derzeit eher noch abwarten, bis "runde" Gesamtlösungen aus abgespecktem Host-System mit KVM sowie integriertem Management erscheinen, welche explizit Enterprise-Bedürfnisse adressieren.

Wie es mit Xen weitergeht, wird unter anderem von den im Xen-Team verbliebenen großen Softwareherstellern wie Citrix und Oracle abhängen. Xen wird schwerlich in nächster Zukunft in der Bedeutungslosigkeit untergehen, jedoch sollten Unternehmen bei strategischen Virtualisierungs-Entscheidungen die weitere Entwicklung genau beobachten. (cw/wh)