Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I run a small office consisting of a 8 man development team and a couple of managers. We're thinking of moving to a hardware setup whereby we have 1 single powerful server running several VirtualBox VMs - one for Samba fileshare acting as DC, another LAMP box for development, another for IE testing....etc....probably 4 or 5 VMs in total. The two crucial ones are the Samba box that runs our network, and then the dev LAMP box that most of our development is carried out on.

The reason this sort of setup appeals to me is because I like the idea of being able to backup all the VMs overnight if necessary - and the restore should be quick and painless if we've got a barebones VirtualBox host.

I appreciate that for backing up the VMs will need to be powered down but I don't think that this is going to be a show-stopper. It may be that we decide to run Samba on the core host OS so there's no need to shut it down (we'll just sort out an rsync of the data).

So I'm just looking for some opinions on this "VM for everything" approach. Is this normal for businesses? Are there any clear issues with this or things that just won't be possible in comparison to physical boxes? Has anyone tried this and hit any major problems or has it worked out nicely?

Any opinions much appreciated.

Kind regards,

James.

share|improve this question

3 Answers 3

My first thought is that you shouldn't use Virtualbox as a server platform; it's great for desktop workstations, but as a server, you might want to look at the VMWare ESXi or hypervisor from XenSource, both free. I use it on a Dell 2950 (the ESXi solution), and you can copy things from the management interface on a Windows machine or run Veeam to copy it over. Also if you decide to up the management side with a budget you can upgrade (at a high price, admittedly) to allow for things like live migration between two servers and better backup options.

We're right now virtualizing 7 servers. There are some vendors that won't support virtualization...Exchange isn't supported, nor is Oracle, for example, but it can be done.

We had one system running with an SQL database (a point of sale) that gave horrible performance when running under VMWare Server (Linux host, Windows guest) and we couldn't keep it virtualized long enough to troubleshoot it due to the hardship it placed on the users, so it was put on a physical system again. ESXi is the bare-metal type-one hypervisor and may give enough of a performance boost to handle it though (no plans to try it out).

You may need to try it out to find out how well it works for your set of circumstances. We love it. It's lowered power requirements in our server room, we can back up the system state over the weekend, and it has helped monitor performance as well as helped with recovery plans should something happen to our server.

You can assemble relatively inexpensive ESXi systems following guidelines from sites like here and here. It is very picky about hardware support; you'll want to look at the HCL to make sure you have something that works out of box or the whitebox sites for things that were tested.

share|improve this answer

The short answer to the initial question is YES. Virtualization is becoming a de-facto "best practice" (as much as I hate the term) for businesses that need to have multiple networked applications or functions.

1- Generally, having only one server is not recommended. More typically, a company would split functionality between two servers, each with some headroom, so that a hardware issue does not completely bring the company to it's knees.

2- Virtualization is often implemented in conjunction with shared storage, particularly for critical applications or apps with lots of data. This allows for easy redundancy. This can also resolve any backup issues, if backups are done at the shared storage (via snapshots of some kind) rather than at the individual server.

3- A gradual approach is usually better .. get one server and put one function on it in a VM. Then get the second server and get redundant (and practice recovery). Then migrate functions into new VMs as necessary or desired.

4- Pretend it is another release of the software .. TEST, TEST, TEST. Test the apps, test the backup, test recovery, test the disk, test the virtualization tools, and so on.

5- The additional complexity of virtualization should not be discounted or underestimated. Seven functions virtualized on one server will not reduce administrative effort required; in fact it will likely increase it. Make sure you understand the administrative stuff: what to monitor, how to manage disk, etc.

Good luck!

share|improve this answer

VirtualBox is a great desktop virtualization solution it's not a great server solution. Hyper-V or ESX or XenServer are probably the route you should take.

Not to toot the Windows horn here, but I have the most experience with it. Hyper-V is a great hypervisor with simple and effective built-in backup using shadow copy. Supports snapshots and VM migration (not live, but you can move a VM from one host to another in 15-20 minutes depending on network and vhd size).

We are able to get huge density with Hyper-V, on a Dell 2950 with dual dualcore cpus, 32GB memory and large hard drives we see upwards of 25 Windows VMs (1GB memory and 1 cpu).

@tomjedrz makes a great point -- get two hardware boxes with headroom so you don't grind to a halt if one goes down.

At a high level, your approach is a perfectly acceptable solution, you just need to do some testing to make sure it will work in your environment.

share|improve this answer

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.