14

I'm building a fresh workstation and want to use Linux alongside Windows. This seems like a good opportunity to get acquainted with with either Xen or KVM.

So I face a choice. In favour of using Xen I see a type 1 hypervisor with very clear delineation between domains. KVM on the other hand seems to be ahead in terms of currency with the latest kernel(s).

I googled "xen vs kvm" and pulled apart the first page of results. I've also been through several Server Fault searches and now have a jumble of facts bouncing around my head, not all of which will be current.

In short I'm not really sure which way to jump. What really matters to me is:

  • stability, both in the hypervisor and in the guests
  • reasonable performance, particularly for the Windows guest
  • strong guest isolation
  • ease of management
  • USB pass-through to guests

With all that in mind, which do you think is the better option?


Update - several months later.

For the benefit of anyone with the same questions in the near future, this is how it all played out in the end:

  • I started with Xen on OpenSuse 11.2, several days before 11.3 was due. I found the suse update channels to be very slow (dunno if that was just an issue for me specifically or not). I got Xen up and running quickly but had a lot of grief with the guest's network adapters.
  • Ubuntu 9.10 was released as I was doing this so I decided to give that a try. The system itself was wonderful and KVM just plain worked out of the box. However I had the occasional stability issue that I felt might have been related to KVM (other suspects at the time were Compiz and NFS).
  • To see if the stability issue was tied to KVM I decided to try VirtualBox and found it to be even easier to use with a nice interface and surprisingly good performance.
  • The stability issue hasn't gone away yet so I guess KVM wasn't at fault but at the moment I'm staying with VirtualBox because it just feels nicer to use and has some good features combined with good performance.

This where I'm at today. Hope this is useful to someone.

LRE
  • 645
  • 7
  • 16

7 Answers7

9

Ease of management is achieved by using libvirt which will present the same interface whether you use Xen or KVM. Stability is very much a function of the underlying distribution - Xen only works well with certain (generally older) kernels, whereas KVM is mainline and so gets fixes with every release.

TRS-80
  • 2,564
  • 17
  • 15
  • agreed, the use of libvirt based tools like virt-install, virt-clone, virsh, and some of the not so well known ones found at libguestfs.org (a redhat project) have been invaluable for our use. virt-clone itself is worth its weight in TRS-80s ;-) – faultyserver Oct 22 '09 at 21:15
6

I would go with XEN. Two main reasons. First, you can get it installed and configured painlessly by installing OpenSUSE 11, and you get a GUI to administer it as well. But all the technical stuff is still there at the shell prompt so that you can learn the innards of XEN as and when you want to. Second reason is that XEN is the top choice of companies who provide VPS hosting, and if you think that you might someday want to use your knowledge to get a job, XEN is a better bet. If you are thinking of the career enhancing effect, make sure to look at the innards of XEN, the network virtualization on Linux (which is not part of XEN but useful for building testbeds of routed VMs) and the XEN api. There are various XEN management packages which take care of management for you, but in specialised scenarios, it is always good to be able to write some scripts (probably in Python) to do your own management/monitoring/reporting.

XEN meets all your bullet points and has been around for longer which is why it is the choice of hosting folks.

Note that you might want to also check out OpenVZ which is completely different from XEN but also gets used a lot by VPS hosting companies. Since OpenVZ uses a container model of virtualisation, you can actually run OpenVZ inside a XEN guest.

While you are doing this, think about your disk storage. You probably want volume management, which is also included in OpenSUSE with a nice GUI, so that you can assign hard disk partitions or volumes to the guest OS. For instance, you could even set it up so that a Windows partition can be booted from, or used by the XEN guest.

Michael Dillon
  • 1,809
  • 13
  • 16
  • 2
    VPS hosting's top choice is OpenVZ, since it provides the best VPS density. Xen s slowly becoming a legacy hypervisor - it was adopted at the time because there was nothing better, but now it's leaving the scene because KVM is the real natural choice for a Linux based hypervisor – dyasny Oct 22 '09 at 12:20
  • 2
    funny you should mention OpenVZ inside Xen. That's actually something I've been thinking about. – LRE Oct 22 '09 at 20:16
  • How do you run Windows inside OpenVZ on linux? That's one of the OP's requirements. – womble Oct 22 '09 at 21:40
  • You don't run Windows inside OpenVZ, you run it inside XEN. But the OP did not ask for a VM to run windows, but for advice on how to get better acquainted with either XEN or KVM. Given that this is ServerFault, I don't think it is a stretch to think that the OP might want to run a few more VMs and do some tinkering. – Michael Dillon Oct 22 '09 at 23:26
  • accepted due to being well thought-out & thorough. The prevailing view seems to be KVM though so I'm still not totally sure which way to go ;-) – LRE Oct 29 '09 at 02:42
  • 1
    Xen is not exactly going away, in fact, it the foundation of nearly all modern cloud computing infrastructures and is growing in popularity very, very rapidly. KVM has only JUST released in production in Red Hat with 5.4 and is still very nascent. – Scott Alan Miller Jan 21 '10 at 22:32
  • Popularity is not a good metric for deciding what technology to use. For instance, people often count the number of VPSes deployed on OpenVZ and use that to say it is the most popular, however for a person who wants to learn a technology, and earn money with that knowledge, XEN is better because there are more deployments in the enterprise and in hosting businesses. Also many OpenVZ deployments are one or two man hosting companies. – Michael Dillon Feb 19 '10 at 21:17
5

RedHat and Canonical (Ubuntu) both are choosing KVM as the virtualization method going forward. I fired up a KVM server with RedHat 5.4 and had no issues running it running the server or guests in a desktop environment. It seems to me the market is starting to favor KVM.

https://wiki.ubuntu.com/UbuntuWeeklyNewsletter/Issue76

http://www.redhat.com/virtualization-strategy/

CosmicQ
  • 123
  • 5
2

For a workstation, I'd take KVM. I use it for my development VMs on my laptop and it works marvellously. I use Xen extensively in the datacentre, but I don't like it for workstation use, it's architecture is just a bit weird for that, and has caused hardware support hassles for me in the past (admittedly, it was fairly far in the past).

womble
  • 95,029
  • 29
  • 173
  • 228
2

The answer is : Depending on your needs. I've found that KVM is not very good if you want to use VM's as desktops since it lacks 3D acceleration abilities, sound can be tricky etc. I've used Xen in the past, but i categorize both as "server virtualization" software. If you're gonna test server vm's on your workstation , i'd go with KVM - the clear advantage of it is not requiring a custom kernel or whatsoever. Windows runs just fine and the whole technology is stable enough for day-to-day use and even for production use in data centers. However i'd recommend VirtualBox if you intend to use your VM's as desktops ( i.e. running some programs on windows that can't be run on linux ).

sh1ny
  • 535
  • 3
  • 6
0

I successfully got KVM to run vista business on my laptop (ubuntu 9.04 64bit), but had trouble with the graphics acceleration being terrible. Luckily, I found that if I used tsclient to connect locally to the RDP server in vista, then I got perfect graphics.

Xen is pretty good on a server, but I'm not sure I'd willingly use it on a desktop, plus, it can't run windows very well (if at all?), I seem to recall.

KVM is also a hell of a lot easier to set up.

Tom O'Connor
  • 27,440
  • 10
  • 72
  • 148
0

RHEV is about to come out - KVM based server and desktop virtualization. It's much easier to manage than Xen, very stable, uses Linux based tools to handle all aspects of virtualization.

dyasny
  • 18,482
  • 6
  • 48
  • 63