[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Xen vs. KVM on Debian squeeze



P. J. McDermott <pjm@nac.net> wrote:
> I'd like to set up virtualization on a home server with a Debian
> GNU/Linux squeeze amd64 host and squeeze and wheezy amd64 guests.

I'd recommend KVM and libvirt/VMM.


> The server has two 3.0-GHz CPU cores (an AMD CPU with the AMD-V/SVM
> virtualization extensions) and 2.0 GiB of RAM (which I'm planning to
> either double or triple).

My home server's running a single twin-core AMD Turion II N40L at 1.5GHz
but has 8GB memory. No problems running several servers (at the moment),
and has enough clout for me to be seriously considering a virtualised
Windows 7 instance, too.


> So I need a virtualization infrastructure that offers efficient CPU and
> I/O virtualization and allows guest systems to gain or forfeit virtual
> memory as their loads require (pooling my limited RAM as efficiently as
> possible).

I have relatively small memory allocations to the guests (~2GB) but with
the balloon driver installed in case I need to tweak on the fly. I figure
that a less-used guest will get pushed out to the host's swap if things
start getting squeaky.


> I'm not sure I like the idea of "freeing" memory by swapping, but at
> least it's a simple design and easy to set up.  Is there a newer method
> in KVM (in Debian squeeze or squeeze-backports) of automatically growing
> and shrinking guest systems' virtual memory space in RAM, preferably
> without using swap?

I had originally understood that this is what the balloon driver allowed,
but I haven't found a way of controlling it automatically based on the
host's available memory.

Ah, http://aglitke.wordpress.com/2011/03/03/automatic-memory-ballooning-with-mom/
might be worth following through.


> All things considered, I'm leaning slightly toward qemu-kvm, because it
> looks like it'll do what I need in a simple and familiar way; but I'm
> concerned about the performance of the CPU and I/O virtualization and
> the page swapping.

What I like about KVM/libvirt is that it (now) handles LVM as a volume
pool, so I don't need to use large files in the filesystem to hold
guests' backing store.

What I don't like about KVM is its dependence on the backing store
being an entire virtual disk, complete with partition table, etc. It
makes growing filesystems an absolute pain (LVM resize, guest shutdown,
fdisk/parted on partition file, resize guest filesystem, restart guest),
but I don't do it too often. I also keep the filesystem layouts for my
guests' primary disk as simple as possible (typically the "everything
in one big filesystem" approach).

What I do like about KVM is its ability to run non-aware guests. I have
lost track of whether Xen would let me run an instance of Windows 7,
for example.

If you do go for KVM/libvirt, I would recommend the virtualised disk
and network devices. Empirically they work well, and gut feel (i.e. not
quantitatively) suggests that at worst they won't be any slower than
emulations of physical devices and actually might be a little faster
and/or more efficient.

Chris


Reply to: