Why would I want to do this?
- virtualisation is good for the environment - ok, I'm only half serious expressing it this way, but it is true, if I can virtualise my servers I can use less physical machines and therefore use less electricity. I can also use less space for them.
- virtualisation gives you the capability of making snapshots - this is an image of your entire server at a moment in time. This gives you somewhere to roll back to easily (someone is going to hate me for saying this, but it is a bit like using Windows System Restore and creating restore points).
- virtualisation makes backups easier - you can backup the harddrive container and you've backed up the entire server
So what did I do?
I installed TinyCoreLinux (TinyCoreLinux website) on my harddrive as it is a really stripped down version of linux. Then I installed VirtualBox on top of that (VirtualBox OSE is available as a package to automatically install on TinyCore) and then I created a harddrive image of FusionPBX by installing the Centos ISO version of FusionPBX (see my first blog entry for the download link) into a virtual server in VirtualBox. Note that if you use the Centos ISO you really should give it a minimum of 384Mb of RAM or you'll probably have issues with response time and sound quality. I also set it up using a bridged ethernet adapter rather than the default NAT adapter as this will simplify life.
Then I copied the fusionpbx and freeswitch directories (and all their subdirectories) from my live FusionPBX server into the virtual server in order to give myself a real situation to test it with. And then I turned off my live FusionPBX server and changed the IP address on the virtual server so that it was using the IP address of the real server and then I could use it with all my existing phones and configuration without any more work.
But does it work?
Would I be telling you this if it didn't? (Actually I probably would tell you so that you wouldn't waste time trying the same thing) The good news is that it works. My usage of this is for a home VOIP phone system and it does this well. I probably wouldn't use it in VirtualBox running on TinyCore for a real production phone system, but I'd be willing to try it on a PC that supported Hyper-Threading using Proxmox VE or Vmware ESX.