Super User is a question and answer site for computer enthusiasts and power users. 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 an information technology instructor at a community college. I'm looking for a solution to provide students a virtual private server where they can have their own linux/whatever box to use for an entire semester.

We do not have a lot of public IPs, so the solution would need to utilize preferably one public IP. IBM? VMware? Virtuozzo? OpenVZ? What else is there and what do you recommend?

Free is preferred.

share|improve this question
Depends on what you looking for. I mean ... how much you want to manage the VMs. How much you want to restrict their access. I would also look at XEN. Xen provides real fast virtualization. – Shiki Oct 7 '11 at 12:05

Why do your students need public IP addresses--do their VPSes need to be visible outside the campus network? Why not have the students install their own VMs, which is potentially quite educational, instead of using a pre-generated VPS? If you use Free Software like VirtualBox or KVM or QEMU, they can even make copies of their VMs and carry them home on portable drives to play with.

Low-bandwidth VPS hosting from commercial players like Panix and Rimuhosting (to name two services I have used with great success) can cost as little as $15/month, if your students decide they want public visibility. You could even ask them if they offer educational discounts. You don't necessarily need to supply a public IP (which has a real cost) as part of your course.

The advantage of encouraging students to use a real hosting site: they can keep their personal servers at the end of the course.

share|improve this answer

There are a number of free/Free options, but any recommendation will very much depend on what you want the users to be able do with the VMs and what existing OS and virtualisation experience you have yourself or available locally, so you need to provide quite a bit more detail there in order to get truly useful answers. What OS(s) the VMs need to run is a vital bit of info, for instance.

With regard to IP addresses, do the VMs need to be publicly addressable? If not that you don't need any public addresses at all, just use your private range. If you private range is full then consider expanding it - this should be easy enough to do if your network uses DHCP to configure every hosts address (but a long job if everything has a static configuration).

If the student machines do need to be publicly accessibly then it depends what needs to be accessed from the public Internet. HTTP? SSH? For HTTP you can assign each machine a sub-domain (i.e. student0001.somedomain.tld) and have one machine, possibly the VM host, run something like nginx as a reverse proxy to pass each VM the right requests - that would only require one IP address for the whole lot (and a DNS entry for the sub-domain and a few lines of config on the reverse-proxy).

share|improve this answer

Firstly, this is no small undertaking at all. I recommend you possibly take out consultation and if you are in the UK, I am happy to help!

That being said, I would go about it via the following:

Why do people need their own VPS? Do they need internet access and do you need people to be able to reach them from outside the network? This will determine the need for public IP or private IP.

Heavily depending on usage and the amount of students, you need to choose what resources to give. Testing may be 256-512MB of ram and a 20GB hard drive - development or more could be 1-2GB of ram and 60+GB hard drive...

After this, do you want to keep them all on at the same time or a lot of work before people need them and switch on just what is required.

If you want some on at any one time, you may be able to get away with having a lot less equipment and some extra hard drives, it will be work intensive starting and stopping VM's, but, it will save thousands on hardware and not impossible.

If you want everything on at once, again, depending on the amount of students, this could mean a lot of hardware equipment.

In most situations I would create a new IP range for this project, you either want to reserve a few addresses in the subnet for the hypervisor on the machines themselves or a different subnet.

As for the Hypervisor itself, for a pay solution, ESX/VSphere is the superior solution - you could load it on to every machine and use features and load balancing across all the machines available to you. It is by far the most complete solution... but also the most expensive by far.

Next, my personal choice would be Microsoft Hyper-V Server which is free. Hyper-V server is amazing for scripting when combined with Powershell. If you have the hardware and environment all set up, you could set up all the machines with minimal work - that being said, *nix performance on Hyper-V can be problematic (depending on who you speak to).

Honestly, there isn't an easy answer and we need to know a lot more information to give you a serious answer, but, I hope this puts you on the right track.

share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .