Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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.

share|improve this question
add comment

7 Answers

up vote 5 down vote accepted

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.

share|improve this answer
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 2:42
show 2 more comments

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.

share|improve this answer
    
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
add comment

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/

share|improve this answer
add comment

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).

share|improve this answer
1  
Assuming you have hardware support for it. –  David Pashley Oct 22 '09 at 8:45
    
Happy 10K Day, btw :) –  squillman Oct 22 '09 at 13:55
    
@David: Yeah, I was assuming that the OP had the appropriate hardware, or (a) he wouldn't be considering KVM, and (b) Windows won't run on Xen without the same hardware support. @squillman: Thanks. –  womble Oct 22 '09 at 21:38
add comment

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 ).

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.