Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

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'm currently in charge of 2 really big servers (128GB Ram & 32 8-code Xeon CPU each) at my university running Ubuntu 12.04. Students are suppose to use them for big data analysis. We want every user to be able to use all resources, however, things is getting a bit messy. Users can install whatever they like at their home directories (e.g. Tomcat) but they're starting to complain about issues like ports being taken by others.

Someone suggested we do some sort of virtualization (e.g. LXC) and give users access to containers. Other say we do somthing like AWS and make users create the resources they need for their work.

Any suggestions?

share|improve this question
up vote 4 down vote accepted

Virtualization is a great way to give everyone their own "sandbox". LXC definitely is an option but you could also just use VMWare ESXi or Citrix XenServer. Both have commercial variations but they also have single-server free licenses.

The reason using ESXi or XenServer might work better is the ease of being able to take snapshots or cloning systems. So if someone wants to try something, you can take a snapshot, let them install whatever and (after it breaks everything), rollback.

share|improve this answer
XenServer is basically fully free now and there is a project where users can self-service. – ETL Mar 9 '14 at 21:53

If you choose to do virtualization, I would advise you to stick with KVM and virt-manager for easy creation / management of your VMs. KVM is a first class citizen on Ubuntu, performance is great (phoronix benchmarks show KVM performing better than Xen on Ubuntu 12.04), support is great, it just works and is very reliable.

OpenStack is a great piece of software, but adds lots of complexities you may not want to deal with now.

If you follow this route, a few tips that have worked for me: 1. Use the virtio devices for network and disk on your VMs; 2. Plan your networking well, I would say maintain the host as the gateway, DHCP server and firewall for all VMs, use Shorewall to handle the task; 3. Build and configure a base VM with ubuntu server using the virtual kernel (apt-get install linux-virtual) and keep it untouched. Everytime you need to setup a new VM for a student all you have to do is clone this base install, change /etc/hostname and /etc/hosts to give the VM a unique name and off you go.

I suggest you just give KVM and virt-manager a quick try before you embark on a full new installation of VMWare, XenServer or whatever which will take hours of work. You can test KVM+virt-manager in a few minutes changing almost nothing on your current ubuntu set-up, it is the easiest way to try virtualization and if you do not like it you will still have your servers running just like they always did.

share|improve this answer

sounds like you might want to consider having a look at openstack. i know there's an ubuntu implementation of it over at

i don't know much about the ubuntu version, but certainly the rhel offering should allow you to allow students to spin up their own instances of applications that they need, all handily jailed and with their resource usage controlled by cgroups, etc. it will also allow students to interact with the service via a browser, and will force them to choose services from a predetermined set of offerings rather than letting them hack up their own versions.

hope this helps, drew

share|improve this answer

LXC or Docker would be a good starting point. Unlike OpenStack, VMware or Xen/KVM you won't need to build a massive amount of infrastructure around it, i.e. its not a massive project.

And it will achieve the goal of having a separate TCP/IP stack per user so they won't port conflict.

You can template Docker machines so some of the comments in other answers are false.

AWS is a shout too but there are cost implications and you'll have two redundant bits of hardware so I'd cover that off first.

share|improve this answer

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.