VirtualBox - use in small office and backing up
Solution 1:
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.
Solution 2:
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!