Debian – the perfect setup for a small Linux virtual server

debiankvm-virtualizationlvmvirtualizationxen

I have my own email server, and it serves a couple of dozen users. I need to replace it right now, and I want the replacement to be a virtual server image running under a hypervisor.

My plans for the new server system include the following:

  • Run only free, open-source software.

  • Run at least three virtual images: email server, HTTP server, and SSH server. I plan to run a web-email system (such as SquirrelMail).

  • Hypervisor OS will be Debian Stable (which, right now, is Debian 5.0 "lenny"). Guest OSes will also be Debian Stable.

  • Software RAID using the two hard drives in a mirroring (RAID 1) configuration.

I need to get the hypervisor and the email guest image up and running as soon as possible, because I am worried that my old server may be about to have a hardware failure. (It is rebooting itself about three times a day!)

This is my golden opportunity to set things up right for the future. What is the perfect setup? How should I configure my system?

My major questions:

  • Should I use KVM? I was planning to use Xen but I have seen, in other ServerFault questions, some people recommending KVM as the best choice for the future. I need something stable and reliable now, and I need to get it working quickly… if Xen is more stable or if KVM is tricky, I can go with Xen for now. (Debian will not soon drop support for Xen!)

  • Should I use LVM with my hypervisor, or leave that out? I tend to like things to be as simple as possible, and LVM seems like it would add another whole layer of complexity; but on the other hand, I think it is stable and mature by now, and perhaps the flexibility will be valuable if the needs of my virtual server images change.

  • Is there some GUI or web-based tool I can use to administer KVM/Xen? My current email server doesn't even have X11 on it; I only administer it via SSH.

  • Any other advice or tips would be gratefully accepted.

In case you want to know about my hardware, here are the important basics:

  • AMD BE-2300 chip (dual-core; does support AMD-V virtualization instructions)

  • 4 GB RAM

  • two identical 250 GB Seagate hard drives

Best Answer

Honestly, I don't see what benefit you would get using any virtualization technology.

  • You are still using one server, there is no reduction in hardware use.
  • As you have only this one server, the possible benefit of being able to migrate virtual machines (maybe even while running) doesn't apply.
  • The amount of work necessary to keep the virt. servers running actually increases, as you have to do the base administration for the hypervisor plus every image, while not having enough machines to gain much by automating common tasks. Also, you will have the supervisor as an additional layer that requires your attention.
  • Meanwhile, the benefit of having web and mail services on different machines is quite small with such a small userbase, and you will still need the same amount of care to keep them safe and sound, even when logically separeted.

In my opinion, virtualization is a cool technique which doesn't fit everywhere, and going virtual just because everyone does isn't a good idea (again, in my opinion).