views:

484

answers:

9

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?

+7  A: 

I have been using VMWare for three years now, and it is really good. My host is the bare bones XP64 and I have a development VM and an "office" vm that I bring up at the same time. It doesn't help creating VM's with a lot of memory alocated in my experience, stay within the 3gb limit or you might have bad performance (YMMV).

Otávio Décio
+3  A: 

Frankly, Virtualbox will probably get you up and running with the least hassle, but it doesn't support virtualized SMP. Failing that, VMWare Server is free, as is ESXi (whichi s more of a pain to configure unless you have some experience with ESX), and VirtualPC is a serviceable option.

If you aren't planning to install anything on the host OS, run it on Server 2k8 with Hyper-V machines (which gives you the option of natively booting from the VHD files also). For my part, I don't tend to treat virtual machines as if they're my desktop. Install whatever you want on the host OS, and leave the VMs to run the services the machines run right now. After all, if you wanted to run your desktop in a VM, you could have done that with RDP on an ESX box anyway.

As for the 15k drives? Uhh... ok. I hope they're SAS (not Velociraptors), since you're going to want a lot of cheap secondary storage for snapshots, images which are not performance critical (anything but the SQL servers), and Velociraptors don't have quite the same reliability.

phresus
The 15K drives are seagate SAS drives. My assumption was I could also add some el-cheapo 1T drives to offload infrequenty used images, and then move them back onto the faster drives as needed.
EJB
Pretty much, yeah, though the cheapo 1TB drives aren't slow enough to make it worthwhile to repeatedly move. I mean, continuous build server, database servers, 15k disks are good. VS2005 on XP? Speed isn't critical at all.
phresus
I second the ESX suggestion - no need for a host OS AFAIK
ck
A: 

I use VMWare open source server (The newest free one) and it is extremely easy to use and setup. And it doesn't use as many resources as some of the other ones do.

Jeremy Reagan
+5  A: 

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.

ChrisA
You raise a good question - is installing beta software(line windows 7) in a VM image completely safe?, i.e. could *never* screw up you production setup?
EJB
VM image doesn't have access to the host OS - in fact, the whole point of VM is to convince the guest OS that it's running on real hardware. You could *give* it access to e.g. shared folders on the host machine, but by default the guest OS is isolated inside the VM.
Piskvor
+4  A: 

Microsoft Virtual PC is hard to beat for free. The obvious disadvantage to VMware is the price tag. The pros and cons of VMware and Ms VPC are pretty well outlined in other answers, but here's a few additional points:

  • Be aware that if Vista is your host environment ensure that you are running Enterprise, Ultimate or Business. MS does not allow running of VPC on Vista Home Basic or Home Premium. VMware is not limited by this restriction. It is not a technical limitation, but rather a licensing limitation.
  • Running your daily productivity apps in a VM can make backups easier, but it does slow down boot time as you have to boot your host, then boot the VM. Incremental backups are hard as any backup software running on the host would see the VM disk as just a big file and would not be able to see what has and has not changed. It would therefor back the whole blob up. That can get costly in terms of backup storage. For incremental backups you might find Drive Snapshot easier: http://www.drivesnapshot.de/en/
  • As a solution for running testing platforms, systems you need to roll back to known good state, or rarely used systems you just can't beat a VM.

I recommend starting experimenting with Ms VPC for your test machines and get used to it. Then you can later decide if you want to go totally virtualized. Going totally virtual from day 1 could be painful and you might find that you wish you had not done it.

JD Long
VMWare server is free now. There's no reason to pay for the industrial strength offerings if you just need some test environments.
ChrisA
Hmmm... I was under the impression that the free license of VMWare server just allowed you to use appliances made by others. That works great for Linux distros but I think it becomes a limitation with Windows. There is probably a work around, however.
JD Long
A: 

Remember that many virtualization platforms lack good support for OpenGL/DirectX/3D. If you need to run/test those types of apps, you may have to upgrade to a not-free version.

Many times, the apps can "run" with software 3D emulation, but the performance will be unbearable. This is a common problem if you are using OpenGL acceleration to perform graphics or animation (such as a scientific app) or if you are building extensions to a 3D application like ArcGIS Explorer.

Personally, I would not run my day-to-day environment on a VM as I tend to use apps that perform poorly in a VM, the two biggest offenders being Desktop Search and 3D-based apps. However, if you are using the stanard suite of office products and not pushing the system in any way (disk, in particular), then you should be fine.

James Schek
A: 

Check out the VMware record/replay feature (awesome video demo over at http://is.gd/eJOe ) which is great for debugging. It's not included in any of the free products, so you'll have to shell out for a license but it's well worth it considering you also get pretty good DirectX support as well.

sascha
+1  A: 

I set up a virtual machine on my Vista Os and running xp simultaneously. Its great as some apps don't work in 64bit (ie. those old 16bit apps.). You can try Microsoft Virtual PC 2007 its most probably the most user friendly. It's what I use. You can try Virtualbox too. You can set up a partition and allocate space to the new operating system for this to work. Or use a spare formatted secondary drive if you have one and allocating 10gig will do adequately I would hope.

CGF
A: 

Also, I'd suggest looking-into VMware's ESXi - it's a stripped-down, free edition of their full ESX product. It's a bare-metal hypervisor installation, so it's not going to see the level of performance hits that a hosted solution like Parallels, Virtual PC, or VMware's own Server tool sees.

Some effort is requried to build the VMs, and for that I'd recommend using the VMware Server (also free) tool to build your VMs.

Once they're built, they can be run on ESXi.

warren