[ubuntu-za] To virtualise or not to virtualise

Matthew French matthew at gillyweed.co.za
Tue Oct 27 21:30:02 GMT 2009

On 27 Oct 2009, at 10:03 PM, Charl Wentzel wrote:
> My virtual server is on order and I will start setting it up early  
> next
> week.
> a. Which of these servers can I safely virtualise on one server, e.g.
> can the firewall be a virtual machine or should it always be a  
> separate
> physical machine?

(You haven't mentioned which virtual machine software you will use. I  
am going to assume kvm since you are using Ubuntu, although VMWare  
would probably apply to these points as well.)

You should be able to safely virtualise all of these systems on one  
server - so long as you size the server properly. Pay special  
attention to the amount of memory you have.

I know of no specific reason why running a firewall in a virtual  
machine should make a difference. There is a small increase in the  
risk profile where it might be possible for a hacker to escape from  
the virtual machine, but they would probably need access to the  
firewall, at which point everything is compromised anyway.

There is also a risk that a hacker could gain control over the  
physical server by conventional means, in which case all the virtual  
machines would be in danger.

> b. Should the servers be virtualised as is, or should I split them up
> further, e.g. Domain Server, SAMBA server and Web Server?

Whichever makes management and maintenance easier. Adding more virtual  
machines just because you can is probably overkill. A separate  
firewall definitely makes sense, separate Windows boxes probably makes  
sense, and then an application/file server completes the picture.

I am assuming the physical server (the host) is another operating  
system running all of these in virtual machines and that you aren't  
using one of the application servers as a host for the virtual machines.

> c. I would like to start with Ubuntu JeOS (just enough OS) and build  
> the
> Linux Servers up from there, rather that doing full Ubuntu Server on
> each.  Is this a good idea or are there hidden security risks?

I don't believe JeOS makes a difference to security either way, but it  
is optimized for virtual machines so should make the initial setup  
less painful. You will need to apt-get the software you want to  
install so probably best to set aside some time to waiting for  
downloads. Unless you have a 24mbps ADSL line handy... :)

> d. Since there is likely to be more than one Ubuntu server (and some
> desktops in the future), I would like to set up apt-cache-ng.  Does it
> matter which server this goes on to?... obviously not the Win 2008
> Server :-)

Probably makes most sense to put it on the file server, since this  
will have plenty of disk space available.

Another option is to use squid as a transparent proxy, running on the  
firewall. This is reasonably safe if you don't expose squid to the  
outside world, and IME the convenience far outweighs the risk. It also  
has the benefit that all those other annoying Windows/anti-virus/game  
updates are also cached and it can do wonders for general Internet  

> e. They've show interest in an LTSP server.  My guess is that should  
> be
> a completely separate server?

You are probably right - since LTSP is a kind of desktop  
virtualization which you don't want competing for resources with the  
server applications. Although the great thing about virtual machines  
is that you can easily set up a virtual LTSP server to see if it  
works, and when performance does become an issue _then_ you can set up  
a new box.

> I gut is that there must be some rule of thumb here, e.g.
> Number of Virtual servers <= number of CPU cores.  Are there such
> guidelines?

None that I have seen. The problem is knowing the workload of the  
systems involved. Some systems spend 99% of their time being idle, and  
others are fully utilized during the working day.

As I have mentioned, you must make sure you have enough memory. Better  
to have spare RAM than short-change the servers. Disk space  
requirements are marginal - 4Gb is enough for many applications and  
for file servers you should already know how much you need.

For CPU's I would have at least 2 cores - one to do the processing and  
the other to do the management. Even with busy servers it can be quite  
difficult to overload modern CPU's. But quad core processors are so  
cheap these days it might be easier to get one of these. Unless your  
applications are really being hammered I don't see any benefit to more  
than four cores.

One other important issue to consider is that with virtual servers you  
have all your eggs in one basket. So if the server fails then you lose  
everything at once. Obviously RAID is not negotiable - Linux software  
RAID is quite capable if you don't want to pay for a RAID controller,  
but you must have redundant disks. A UPS that can talk to the physical  
server is also a good idea - even if it keeps the server running just  
long enough for it to shut down cleanly.

Installing smartmon and lmsensors on the physical box to monitor for  
disk failures and excessive temperatures might also be a good idea.

You also need a plan B - if the server should melt down, how do you  
bring the virtual machines back to life. The great thing about virtual  
machines is that you can just copy the disk images and fire them up  
somewhere else without having to configure hardware or drivers -  
depending on which VM technology you are using of course. The problems  
are: do you have something to restore from and something to restore  
to? And how long can the business run without any hardware?[1]

Oh, and one other minor point: if you are running an NTP server to  
keep the clock in sync, you need to run it on the physical server, not  
the virtual machines. The virtual machines will get their time from  
the hardware but probably won't be able to reset the hardware time.

Hope this helps,

- Matthew

[1] A common scenario in South Africa is all the computers get stolen.  
So don't assume you will always have something around.

More information about the ubuntu-za mailing list