What would be the best virtualization solution for this particular use-case?

Solution 1:

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.