Xen .vs. KVM

For anyone looking at getting into virtualisation and wondering about these two technologies, here’s a brief run-down of the differences between the two which should hopefully give you an idea of where to aim.

[tr]
[td] [/td]
[td]Xen[/td]
[td] [/td]
[td]KVM[/td]
[/tr]
[tr]
[td]1.[/td]
[td]Runs on pretty much any hardware[/td]
[td] [/td]
[td]Needs a CPU with hardware virtualisation support, probably something manufactured within the last three years[/td]
[/tr]
[tr]
[td]2.[/td]
[td]Tied to a specific kernel, in particular you will be limited to 2.6.18 or 2.6.22[/td]
[td] [/td]
[td]Runs on the stock Linux kernel, built into and supported by Ubuntu 9.10 for example[/td]
[/tr]
[tr]
[td]3.[/td]
[td]Been around for a while, lots of support available, all the gotcha’s have been found and there are fixes for many of them[/td]
[td] [/td]
[td]Is much newer and still under pretty active development, new gotcha’s appearing together with new fixes. This is a far more ‘dynamic’ environment[/td]
[/tr]

[tr]
[td]4.[/td]
[td]Typically wants to run on a dedicated server, not a good desktop platform[/td]
[td] [/td]
[td]Is happy to run as a desktop platform with VM’s in the background[/td]
[/tr]

[tr]
[td]5.[/td]
[td]Only supports ‘windows’ when your CPU has virtualisation features and needs a different config style[/td]
[td] [/td]
[td]Only runs at all if your CPU has virtualisation features, but then treats Linux/Windows equally [/td]
[/tr]

[tr]
[td]6.[/td]
[td]Typically needs to be configured by hand[/td]
[td] [/td]
[td]Typically supplied with and configured by GUI[/td]
[/tr]

[tr]
[td]7.[/td]
[td]Marginally faster in terms of performance / overhead, but not much in it[/td]
[td] [/td]
[td]Faster in terms if IO and attached device drivers[/td]
[/tr]

[tr]
[td]8.[/td]
[td]Poor / buggy support for new kernel features and filesystems[/td]
[td] [/td]
[td]Current kernels == as good as is available on non-virtualised systems[/td]
[/tr]

[tr]
[td]9.[/td]
[td]Is happy to tune memory usage and attached devices on a running system[/td]
[td] [/td]
[td]These features are under development and work in certain circumstances, but changing the memory on a running instance is for example far more ‘hit and miss’[/td]
[/tr]

[tr]
[td]10.[/td]
[td]Handles SMP pretty well[/td]
[td] [/td]
[td]Instances with n-way SMP configured have a nasty habit of running slower than single core / non-SMP instances[/td]
[/tr]

[tr]
[td]11.[/td]
[td]Has some nice tools for system monitoring (xentop for example)[/td]
[td] [/td]
[td]Is limited to ‘libvirt’ and not so good, also subject to excessive system ‘load’ for no apparent reason (this is a current ‘bug’)[/td]
[/tr]

Any other thoughts welcome … I’ll try to update this table with any important points once someone points out I’ve missed them off … :slight_smile:

If there are any VMWARE users out there who also use KVM or XEN, a KVM .vs. VMWARE or XEN .vs. VMWARE would be quite interesting … ??