Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I do software (mostly web) development, and I work alone, so I have to cope with a lot of sysadmin-type work, in order to setup different stacks of web/application/database/source-control servers, let alone my own dev environment.

Lately I've been obsessing over finding a way to virtualize these different concerns, to make my setup more manageable. Ideally I'd log into a thin development client (with my Xsession, emacs and ssh), have the servers run headless, and use them like in the real world. I'm aiming at getting it all under version control eventually too...

I also have a couple of concerns on top of that :
Performance, as I don't have a killer machine, having a fully virtualized OS for each server would probably slow it to a crawl.
And portability, i.e. be able to reuse those configs with as little tweaking as possible when I move them to a vps or other local boxes.

Considering this, I've basically narrowed it down to os-level virtualization.

OpenVZ seemed like the way to go, but then i found out about LXC and Linux V-Server, and now I'm confused.

So anyway, sorry for the long rant, but I wanted to ask you guys if you had any experience with these virtualization solutions, and maybe could give some insights on what could best suit my needs here ?

cheers !

share|improve this question
up vote 1 down vote accepted

They are similar forms of virtualisation - at the OS level only. This has several advantages over full virtualisation.

  • Small overhead - For low-powered machines, I would recommend using either one. I have half a dozen virtual machines running on a 400MHz VIA Samuel 2 system with only 256Mb of RAM under OpenVZ. You will only use the same amount of resources as when running the apps under a single machine. Multiple instances of an app on different machines actually share resources.
  • File access - Transferring files between the host node with the VM and between VMs is trivial as they all share the same file-system on the host. So, I can just inspect and manipulate the VM files from the host node directly. This will come in really handy for development purposes.
  • Backup image - As the file-system is shared, you can just run rsync on the VM directories to back up any machine. You can also easily replicate one machine by simply making a copy of the directory.

The difference between OpenVZ and VServer seems to be just different flavours of a similar thing. You can easily move your VMs between the two systems as detailed on their websites. LXC looks newer when compared to the other two more mature systems.

share|improve this answer
indeed, these containers look really ideal for my purpose, I will look in more detail at both VServer and OpenVz. I guess LXC is bound to become the go to solution at some point in the future since it's in the mainlaine, but resources are still scarce, so I'll probably dismiss it for now – julien Dec 19 '09 at 2:27

I have had excellent luck with KVM for similar situations. Yes, it's a full machine virtualization solution, but if the kernel is idle in a KVM, it doesn't use any resources except RAM. (For any virtualization solution, you want to add as much RAM as possible)

Note that headless Linux with Apache, Mysql or similar can run with 256 MB of RAM or so, as long as the load is you and a test script, not a full production site.

share|improve this answer
interesting, that'd sure be a lot less overhead compared to setting up on of the solutions i described. lots to choose from ! – julien Dec 19 '09 at 0:12

Your Answer


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.