Super User is a question and answer site for computer enthusiasts and power users. 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 am building a web application for a family member and I need to learn Linux Administration, since I will be setting up the server myself.

I've heard a lot about virtualization on server, but I have a very basic question:

Why would I do it?

I mean, I can already install everything I need directly on Ubuntu 12.04, why is a good idea to create some sort of virtual machine to run another server on it.
For example, I would probably need to install something like virtualbox and then run lamp on it?

And what about other services, like SSH,FTP.. Can that be installed straight to Ubuntu or do(if I'll use virtualization) create virtual machines for every one of them?

I've been searching, but I can't figure it out, because most of articles are quite advanced, but I would like to get just a basic idea about that concept.

Thanks for all answers, I am very new to this.
Cheers!

share|improve this question
up vote 1 down vote accepted

In this specific usecase, it dosen't make any sense to do virtualisation. I used to run an ubuntu server VM on windows, before I got a dedicated box, and if you're running a linux system, there's little need to run these seperately. There's a few situations where you might want to consider virtualisation though

  1. You have NO idea what you're doing - good vm software will let you do snapshots (that is to say, you can roll back a VM to a previous state should you mess up badly) or clone

  2. You need to give more rights that you're comfortable with to a user - you could just have the user in a chroot jail, or a lighter 'container' VM that dosen't attempt to virtualise the whole system, but a full VM would work here too.

  3. You have a lot of IP addresses, and a need for many servers on the same port. Container type virtualisation would work here too, or you can run seperate instances of the OS on a VM host. Not the case here.

You're best off just running what you need on the server itself the moment you ask "why would I do it?" - if you are thinking "Maybe I need a environment where I can afford to make mistakes, and not muck up main main system" you need to look at VMs.

share|improve this answer
    
thanks! this is very helpful. – intelis Apr 1 '13 at 5:22
    
you dont need lots of ips for VMs you can have one for a reverse proxy into your vm containers – James Kirkby May 19 at 14:25
    
You'd still be running each with its own IP address and using nat. – Journeyman Geek May 19 at 15:10

In addition to intelis answer, there are a couple of additional reasons to consider (under KVM at least)

  1. Increased stability. I run multiple VM's on 1 box, and have, from time-to-time had problems with 1 service crashing the virtual box (memory issues). These issues were only confined to the 1 VM, so the rest of the services continued to run without interruption.

  2. Better security. By virtualizing various services, a compromise of a server running 1 set of services does not compromise your entire system, ie the compromise is limited to the VM.

  3. Control of resources - I can limit abuse and resource utilization of a particular system through Virtualization.

  4. Abstraction - By virtualizing my boxes, I can migrate them between machines, providing robustness against various failures and higher uptimes. I am also less dependant on hardware specifics, as some key drivers (disk, network for a start) are virtualized, so even if the underlying hardware changes (within limits), the VM's will still work without modification.

share|improve this answer
    
+1 for Abstraction – csi Oct 18 '13 at 16:31

You only really need visualization if your running multiple applications from one machine and want isolated environments, if you setting up a web app for a family member you'll be fine setting up a standard linux box deploying the site on a non root account and giving access to the family member to that account, without sudo access. SSH/FTP logins will be explicitly linked to them accounts.

If you want to use VMs for replicating production environments locally look at docker, its awsome

side note dont use FTP, its insecure

use a newer ubuntu LTS server like 14 or 16

share|improve this answer
1  
Its worth considering this question was asked in 2013, when 2012 was the LTS – Journeyman Geek May 19 at 15:10

Your Answer

 
discard

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.