[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
KVM im Test
[Thread Prev] | [Thread Next]
- Subject: KVM im Test
- From: Markus Hochholdinger <Markus@xxxxxxxxxxxxxxxxx>
- Date: Thu, 25 Mar 2010 15:59:12 +0100
- To: uugrn@xxxxxxxxxxxxxxx
Hallo zusammen, wie hier sicher alle wissen betreibe ich ja seit geraumer Zeit mehrere Xen-Cluster (http://shell.uugrn.org/~mh/UUGRN-Real_Virtuality.pdf). Mittlerweile sind es 22 dom0s die von mir (mit-)verwaltet werden und es gibt sogar Leute die mein Setup nutzen und es selbst verwalten. Da KVM in letzter Zeit sehr viel Aufmerksamkeit erregt hatte und Xen-dom0-Support noch immer nicht im vanilla Linux-Kernel vorzufinden ist habe ich mir mal den aktuellen Entwicklungs-Stand von KVM in Hinblick auf mein Xen-Setup angeschaut. Der konkrete Auftrag war dann sogar noch dass ich die Tauglichkeit fuer Windows 2008 testen sollte - was man nicht alles tut... Fuer meine KVM-Tests habe ich Debian squeeze verwendet mit Kernel 2.6.32 und qemu-kvm 0.11. Ich habe zwei Stueck Hardware (Pentium D 3GHz) fuer die Tests gehabt auf welchen ich zuerst mein Standard-Setup (Xen-Cluster) mit Debian lenny eingerichtet habe und Performance-Tests durchgefuehrt habe. Hier habe ich allerdings nur Linux-domUs (Gaeste) getestet, da die Unterstuetzung von HVM bei Debian lenny nicht so toll ist (z.B. keine Live-Migration moeglich). Dadurch konnte ich direkte Aussagen zwischen Xen und KVM auf derselben Hardware treffen! Wenn man einen KVM-Gast betreibt sollte man aufjedenfall die virtio-Treiber fuer Festplatten und Netzwerkkarten in den Gaesten verwenden, ansonsten ist die Performance natuerlich sehr schlecht und quasi gleichlangsam wie mit dem reinen qemu (ohne Kernel-Modul). Ich habe kurze Tests mit aktiviertem KSM (Kernel Samepage Merging) durchgefuehrt, allerdings habe ich sehr schnell bemerkt dass dies die Performance erheblich bremst. Bestimmt wird es nett sein wenn man ein oder zwei mal am Tag den ksmd den Speicher "komprimieren" laesst, fuer meine Tests habe ich das aber nicht verwendet. Sehr eigenartig ist die Verwendung von Linux als Hypervisor. Wenn jeder Gast einfach nur EIN Prozess ist und genauso Swap nutzen kann wie jeder andere Prozess auch. Da muss man doch sehr aufpassen dass man in keine OOM-Situation kommt, sonst kann es sein dass der "oom-killer" einen Gast "beendet" weil dieser ja viel RAM belegt! Ein direktes Resultat von diesem Speichermanagement ist, dass man Speicher "over-commitment" machen kann und dabei nichteinmal gewarnt wird! Die Gaeste allokieren den Speicher auch erst, wenn sie diesen benoetigen. Bei Xen gibt man beim Start einer domU den maximalen RAM an welche eine domU im Betrieb belegen darf, dieser RAM muss beim Start (oder bei einer Live-Migration auf dem Zielsystem) verfuegbar sein! Ein Speicher "over-commitment" ist bei Xen (momentan) nicht moeglich. Man kann sich nun darueber streiten ob das gut oder schlecht ist. Persoenlich finde ich den Ansatz von Xen stabiler aber halt auch unflexibler. Zur Verwaltung der KVM-Gaeste habe ich libvirt verwendet. Es gibt ein grafisches Frontend, virt-manager, aber das ist aus meiner Sicht maximal zum "Kucken" und "Schieben" tauglich. Beim Erstellen eines neuen Gastes mit virt-manager ist z.B. per Default eine virtuelle Soundkarte dabei und die Festplatten werden MIT caching angesprochen. Mir war es wichtig die Gaeste unter KVM moeglichst mit denselben Bedingungen wie unter Xen zu betreiben. Ich habe es dann auch geschafft mit einem KVM-Gast denselben Durchsatz fuer Festplatte und Netzwerk zu bekommen wie bei einer Xen domU. Allerdings hat KVM eine hoehere CPU-Last auf die Hardware dabei erzeugt als bei Xen. Im Skalierungstest ist Xen bisher ungeschlagen. Bei Xen skaliert der Durchsatz quasi proportional zur Anzahl der domUs die Durchsatz machen. (Mein bisher groesster Test waren 64 laufende domUs auf einer, nicht dieser, Hardware.). Bei KVM habe ich schon bei ca. 8 gleichzeitig laufenden Gaesten einen sehr starken Einbruch bemerkt (OK, die darunter liegende Hardware ist schon etwas aelter). Auch die CPU-Last eines "idle" Gastes war bei KVM hoeher als bei Xen, wobei hier die Performance-Warte nichtmehr soweit auseinander sind wie bei meinem letzten Test vor ueber einem Jahr mit KVM. Mein Resultat daraus ist, dass man aus Performance-Sicht KVM schon betreiben kann, muss allerdings ein bischen mehr in Hardware inverstieren als bei Xen. Was mich sehr ueberrascht hat war die Stabilitaet von KVM! Mir hat es nur einmal einen Gast zerlegt, aber das war beim Speichertest. Ich habe dabei auf der Hardware, welche 8GB RAM zur Verfuegung hat, zwei Gaeste mit 8GB RAM gestartet und danach in den Gaesten jeweils den Speicher allokiert. Da ich nur ca. 4GB Swap konfiguriert hatte, hat mir der oom-killler dann einen Gast "entsorgt". Hier sieht man auch wieder die Gefahren die Speicher "over-commitment" in sich birgt! Ich hatte KEINEN einzigen Ausfall bei Tests mit der Live-Migration! Gefuehlt wuerde ich sagen dass die Live-Migration bei KVM ein Tick stabiler ist wie bei Xen, was wohl aber daran liegt dass KVM per default nicht alle CPU-Features durchreicht, waehrend Xen in der domU alle CPU-Features verfuegbar macht. Daher muss man bei Xen aufpassen welche Hardware man einsetzt bzw. dass man auf der Hardware mit dem kleinsten gemeinsamen Nenner nur die domUs startet. Auf der anderen Seite kostet diese Stabilitaet Performance, da KVM im Gast dann nicht alle CPU-Features zur Verfuegung stellt. Ein fuer mich wichtiger Test war noch das Entfernen und Hinzufuegen von virtuellen Festplatten im Betrieb. Hier hat KVM leider total versagt. In Theorie ist es moeglich (http://www.linux-kvm.org/page/Hotadd_pci_devices#Add_a_disk). In der Praxis kann ich im Betrieb eine virtuelle Festplatte entfernen, kein Problem. Ich kann im Betrieb eine neue virtuelle Festplatte hinzufuegen, auch kein Problem. ABER ich kann nicht eine Festplatte entfernen und dieselbe wieder hinzufuegen! Dabei beendet sich der Gast sofort! Es gab dazu etwas auf der Mailingliste von kvm das ich jetzt aber spontan nichtmehr finde. Wie es aussah hatte das keinen interessiert. Mein Resultat daraus war, dass KVM fuer die Virtualisierung von Windows 2008 robust und performant genug ist. Ich wuerde es auch ohne zu zoegern fuer die Desktop-Virtualisierung einsetzen. Fuer den Betrieb von virtuellen Linux-Servern bin ich allerdings durch Xen doch ganz schoen verwoehnt. Deshalb werde ich erstmal fuer die Linux-Server-Virtualisierung bei Xen bleiben, vorallem da Debian squeeze wohl doch dom0-Support haben wird: http://womble.decadent.org.uk/blog/debian-linux-packages-the-big-bang-release -- Gruss \|/ eMHa (o o) ------------------------------------------------------oOO--U--OOo-- Markus Hochholdinger e-mail mailto:Markus@xxxxxxxxxxxxxxxxx .oooO www http://www.hochholdinger.net ( ) Oooo. ------------------------------------------------------\ (----( )- Ich will die Welt veraendern, \_) ) / aber Gott gibt mir den Quelltext nicht! (_/ -- UUGRN e.V. http://www.uugrn.org/ http://mailman.uugrn.org/mailman/listinfo/uugrn Wiki: https://wiki.uugrn.org/UUGRN:Mailingliste Archiv: http://lists.uugrn.org/