R – Virtualization questions

virtual-pcvirtualizationvmware

I have never used virtualization, and am trying to get up to speed. My new desktop is coming today and I specifically bought it to try and run all my needs on a single machine (i.e. a vista desktop, a xp desktop, vs 2005, vs20008, windows servers, sharepoint, sql server 2000/2005/2008 etc). In the past I always bought and setup separate physical machines in my home office for each of these apps. (which is why my basement is sometimes confused with a small data-center.)

None of these virtual servers I setup will have a heavy load, just want them "on-line" for development and testing.

So my question is, which free virtualization is the easiest(quickest, least painful) to get setup? and if my needs should change, is there any path to change from one tool to another? (i.e. how important is it to make sure I make the 'right' decision first?)

Second, since I likely will be running a 64Bit Vista as the 'base' OS (unless someone convinces me otherwise), do you basically not install anything on that OS, but instead install everything 'inside' a VM? Even my 'primary' development environment? (even my email, office suite etc?) From the messages I have been reading here, it seems the ability to move and backup your entire 'image' is a big plus, which I am not clear if that is possible for apps that are running directly on the 'host'.

The machine is a dual CPU quad core variety with 16G of ram and 15K hard drives – so it should handle anything.

BTW: There is probably less than a 5% chance that I will ever need to setup anything other than a Windows platform, so while it is nice to be able to setup a Unix/Linux box, its not a requirement.

So just to re-cap the question: which VM is going to have me up and running with the least amount of hassle, and should I really not install anything directly on the 'host' OS? Any other advice regarding getting my desktop VM strategy off to right start – any mistakes I really want to avoid that will bite me down the road?

Update 12/2011: After this original question, and all the helpful responses, I did end up going with VMware workstation and have not regretted it for a second. Its not free, but is is very cheap for all you get. I suspect the other products also would have worked.

If anyone reading this is considering virtualization, quite frankly it is awesome – what are you waiting for?. On my first VMware setup I kept my primary dev in the 'host' OS and only used VM's for my testing servers, but just 6 months ago I purchased a newer machine and now run nothing in the host OS (Windows 7),and run all my tools/desktops in one or more VM's. There is a slight (very slight) degradation in performance to use a VM for my primary desktop, but being able to have a completely run-able backup available at all times far, far outweigh the negatives – I can even take my primary desktop on my laptop if/when I hit the road.

Best Answer

I've made extensive use of Microsoft Virtual PC, and more recently VMware, to set up test environments with various combinations of installed applications.

MS VPC is the least hassle to set up of the two. It really is incredibly easy - create the VM is just point and click on a few settings, then you attach the OS DVD preferably as an ISO file, and away you go (you need a licence for every copy of the operating system that you install). Don't forget to install the Virtual Machine Additions after you've got the Operating system on, since that makes mouse pointer integration a lot less clunky.

You can back up the whole computer just by copying the VHDD file.

The only limitation I've come across with MS VPC, is that you can't install a 64 bit guest OS if the host OS is 32 bit.

This is not a limitation of VMware, however, which is why I've started using that. I've created a machine with Windows 2003 Server x64 as guest, running under XP Pro x86, and it's fine, including the effects of the compiler switches in a .NET application.

The VMWare console is a little clunky, but functional, and once it's all set up, again, it's a breeze to use.

You'll never look back.

Just one thing - expect to spend a lot of time downloading and installing Windows updates. My VM count is 14, now, and the updates are a bit of a faff, especially if I've restored one and it goes back a way. One of them is the Windows 7 beta, and that runs pretty well.

As to converting one to the other... you can in theory use VMWare's converter (also free) to suck in and virtualise a whole physical computer (I've done this once, and it does work), and I see no reason why that couldn't be a MSVPC. You can't go the other way.

I don't run my normal desktop in a virtual machine. I want my normal dev environment to be as fast as possible, and performance does take quite a hit. I understand that VMware performs better than MS VPC in this respect, but I can't confirm this.