
Was ist auf derselben Hardware schneller, Xen oder KVM?
Ich versuche, eine Virtualisierungstechnologie auszuwählen, die die beste Leistung bietet.
Hier sind einige Benchmarks, die ich zu diesem Thema gefunden habe: http://virt.kernelnewbies.org/XenVsKVM
Sie zeigen KVM als Gewinner, mit signifikanten Leistungsunterschieden – was der Vorstellung widerspricht, dass KVM ein Hypervisor vom Typ 2 ist und per Definition langsamer sein sollte als Hypervisoren vom Typ 1 (wie Xen) – oder das behaupten zumindest die Artikel im Internet.
Irgendeine Idee zu diesem Thema?
Antwort1
Dieser Benchmark vergleicht lediglich die Geschwindigkeit des nativen Betriebssystems mit einem einzelnen Gastbetriebssystem. Es ist kaum ein realitätsnaher Test. Ich glaube nicht, dass ich viel Gewicht darauf legen würde. Die meisten im KVM-Lager argumentieren, dass Xen zu viele Interrupts und Hops zwischen Kernel und Benutzerbereich erfordert, aber die meisten der realitätsnäheren Benchmarks, die ich gesehen habe, haben das nicht wirklich bewiesen und Xen scheint etwas schneller zu sein als KVM.
Leider habe ich keinen Link zur Hand, der das belegt. Aber ich kann sagen, dass KVM sich schnell verbessert und in puncto Funktionsumfang und Stabilität schnell aufzuholen scheint.
Welcher Ansatz ist besser? Das Xen-Lager wird argumentieren, dass ein wirklich leichtgewichtiger Hypervisor erforderlich ist, um Virtualisierung sicher und schnell zu machen. Einige Anbieter beginnen auch, Xen in der Firmware zu unterstützen, was auch schön ist. Das KVM-Lager wird argumentieren, dass KVM einfacher ist und dass Linux ein guter Hypervisor sein kann.
Letztendlich ist noch unklar, welche Richtung sich durchsetzen wird. Xen hat sicherlich einen Vorsprung und bereits einen guten Marktanteil. Aber es ist noch nicht im Hauptkernel enthalten. Hoffentlich ändert sich das bald, und in den letzten Monaten wurde auf der Kernelliste sicherlich viel darüber gesprochen. Red Hat ist jetzt im KVM-Lager und wird es als bevorzugte Virtualisierungsplattform vorantreiben. Red Hat Linux 5.4, das in Kürze herauskommt, wird es als erstes enthalten. Das wird also wahrscheinlich Geschäfte anziehen, die noch keine Virtualisierungsplattform eingeführt oder sich dafür entschieden haben.
Was die Tools angeht, verwenden sowohl Xen als auch KVM libvirt und QEMU und die damit verbundenen Tools. Sie nutzen also viele der gleichen Tools, wie beispielsweise virt-manager.
Wir verwenden Xen bei der Arbeit und es funktioniert gut für uns. Aber ich habe mir KVM angesehen, da ich einige Probleme mit der USB-Weiterleitung und PCI-Passthrough hatte, die ich mit Xen nicht lösen konnte. Ich bin nicht sicher, ob KVM darin besser ist, aber ich denke, ich werde es herausfinden, wenn ich es ausprobiere. Bei der Untersuchung meiner USB-Probleme ist mir aufgefallen, dass die Dokumentation von KVM im Vergleich zu der von Xen besser zugänglich und übersichtlicher ist. Aber es gibt keine perfekte Virtualisierungsplattform, also müssen Sie herausfinden, was für Sie sinnvoll ist.
Antwort2
Ich persönlich würde mich für die Virtualisierung auf der Grundlage von Benutzerfreundlichkeit, Support, Zuverlässigkeit und Eignung für die von Ihnen verwendeten virtuellen Maschinen entscheiden.
Die Datenübertragungsraten von Xen-Netzwerken scheinen so gut zu sein wie die von echter Hardware, aber ich hatte auch einige Probleme mit Xen und vLans und mehreren Ethernet-Karten. Ich habe keine Erfahrung mit KVM, würde aber auch vorschlagen, dass Sie VMware ESX(i) in Betracht ziehen.
Antwort3
Sehr interessante Informationen zum Thema finden Sie in der folgenden Präsentation:Quantitativer Vergleich von Xen und KVM
Die Person, die dies getan hat, ist ein Xen-Experte, aber der Vergleich scheint ziemlich fair.
Antwort4
FWIW: Die Antwort hängt ganz von Ihren aktuellen und zukünftigen Anforderungen ab.
Ja, ich weiß, das ist keine hilfreiche Antwort. Leider stimmt es. Ihre Wahl der Virtualisierung wird so ziemlich alles beeinflussen, was Sie danach tun, also müssen Sie sich ein paar Fragen stellen.
(1) Ist Ihnen der Unterschied zwischen 97% der nativen Leistung und 96% der nativen Leistung (aus der Luft gegriffene Zahlen) wirklich so wichtig?
(1a) Wenn einer der beiden Ansätze besser beim Festplattenzugriff ist (was eigentlich voraussetzt, dass Sie entweder eine wahnsinnig gute Datenbank verwenden oder sich den zusätzlichen RAM nicht leisten können) und der andere besser bei der Netzwerkverbindung abschneidet, was ist Ihnen wichtiger?
(2) Sind Sie sicher im Umgang mit den Tools, die die beiden Lösungen bieten?
(3) Macht es einen Unterschied, ob einer von beiden (mehr oder weniger) nativ für aktuelle Linux-Kernel ist und der andere nicht?
(3a) Wissen Sie, oder haben Sie jemals ... äh ... werden Sie jemals ein anderes Betriebssystem unter Virtualisierung ausführen müssen? Es muss nicht Windows sein. Es könnte FreeBSD oder sogar Haiku oder was auch immer sein. (Xen gewinnt hier wahrscheinlich, aber ich schlage vor, Sie prüfen das.)
Im Großen und Ganzen sehe ich KVM als Linux-Antwort auf Solaris-Zonen. (Ich hätte lieber Solaris-Zonen, aber ich sehe die Parallele.) Ich sehe Xen als ausgereifte Hypervisor-Technologie mit Unterstützung für mehrere Betriebssysteme, aber wenn Sie nicht mehrere Betriebssysteme benötigen, ist das nicht so wichtig.
Um ganz ehrlich zu sein, kann man (unter Berücksichtigung der oben genannten Vorbehalte) in beiden Fällen nicht viel falsch machen. Ich bevorzuge Xen, weil ich in Cambridge studiert habe. Wenn ich jedoch für RH arbeiten würde, würde ich wahrscheinlich KVM bevorzugen.