views:

835

answers:

5

After having had a dev PC HD corrupt, I'm considering the idea of making my development environment be fully Virtual PC based.

The core items would be: - XP Pro 32 - IIS - VS2003 - VS2008 - SQL Server 2005 - Office 2003

Primary source would reside on a server in SVN with only a clocal copy on the VPC. This would be for Windows based web and desktop development.

Assuming that the host machine has decent performance and provides for hardware virtualization, are there any known gotchas with such a setup, ie main pros and cons. Any performance issues or other issues that make this a good or bad idea?

I'd like to go this route so I can create a full backup VPC that can be put on a new PC if one fails and is repalced or copied to a laptop as needed for offsite work, etc. With the new Virtual PC features of Win7 this seems like it may be even better goign forward too.

Would like to get some feedback on this before we go down that road...

+5  A: 

I wouldn't recommend Virtual PC because the performance is pretty disappointing compared to VMWare.

I've used a virtual development machine inside VMWare Workstation and VMWare Fusion on Mac for quite a while, and it works very well. It feels as if you're running on a dedicated machine.

My recommendations are:

  • Use a 64-bit OS as your host OS (Vista x64, Windows 7 64-bit, Mac OS X Leopord)
  • Have at least 6GB of RAM on your physical machine
  • Allocate 3GB of RAM to your VM for 32-bit, or more for a 64-bit guest OS
  • Pre-allocate the diskspace for your guest OS (no auto-grow)

Another advantage is that you can take your VM from a Windows-based VMWare Workstation to a Mac-based VMWare Fusion (and the other way around) without any problems.

Philippe Leybaert
Thanks. May have to consider VMWare if it is faster. Only issue would be the added cost for every PC I want to be able to run the image on. Does the license allow multiple installs on multiple PCs for a single user?
schooner
The license doesn't allow that, but you can install VMWare Player, which is free. To create your image, you need VMWare Workstation or Fusion though, but you'll only need one license
Philippe Leybaert
So does the player have all the features of Workstation, in terms of running the image once it is created? ie would I be able to run the guest OS and all the development tools fully in the free player on another PC or are there some limitations or performance issues?
schooner
The full products offer a little more "tweaking" control, but other than that it should be about the same.
Philippe Leybaert
Try virtualbox. It's free no matter what, supports most OS's both as host and guest, and also lets you move VM's from one installation to another.
Console
Does VMWare Player allow you to save the state at the end of each session, ie keeps any file changes, etc, or does it always revert to the initial point eahc run? IE if I use it to make code chanegs on an app in VS would those be lost each time? Can you install items into the guest OS and maintain that going forward?
schooner
+3  A: 

One thing you might have to consider is the lack of support for multiple monitors within the VM. I really like using multiple monitors, one for my source, the rest for all the rest. As far as I know, this is not possible in Virtual PC. Aside from that I can't think of anything that should hold you back, it's something I have been considering as well.

Regards,

Sebastiaan

Sebastiaan Megens
VMWare does support multiple monitors for a VM, but it's not perfect yet (it's either all monitors, ore one, which is annoying if you have 3 or 4 monitors)
Philippe Leybaert
Interesting! I'll have a look and see if the free version also supports it. Thanks!
Sebastiaan Megens
A: 

I actually run three development environments (and many test environments) under Ubuntu host in Windows guest virtual machines - it's very good for keeping things separated and for being able to restore test environments to a known point. It's also handy since the backup is a simple directory copy on the host and you don't have to worry about recovering settings or re-installing applications. etc.

I prefer VMWare over Virtual PC for both performance and usability (keep in mind that's my opinion). You don't need the VMWare Workstation product to create a VM - check out EasyVMX here for a way to create easy VMs.

The one thing you'll miss though is VMWare tools which only comes with the Workstation product, not the player. But VMWare has this for download here - I'm unsure of the legality of this even though it's an official download from VMWare, you may only be able to use it if you have the paid product.

I actually have a license for Workstation, it's just an earlier version and I prefer the latest Player.

paxdiablo
+2  A: 

I have been running multiple virtual development environments in MS Virtual PC and Virtualbox for 2 years now. I am doing mostly asp.net applications, some of the solutions are relatively large and use large databases which I also run inside the VM.

My observations based on this:

  • It is a good idea for exactly the reasons you mention and it works fine. Go for it!
  • 768 megs of ram for the VM is enough, but more is better.
  • Have a Multi-core CPU.
  • Install the virtual machine additions for the guest OS. (This is basically like installing the proper drivers for your "virtual" hardware, and seems to be more important for performance than having hardware virtualisation support).
  • If possible, have the VM disk image on a separate physical disk from the host OS.
  • Use Virtualbox. It's free, and being developed rapidly. It might already be the best.
  • If you can satisfy the above, performance is no issue. Multiple Visual studio instances, IIS, SQL, Office, works just fine.
  • Running multiple copies of the same guest OS when it is a member of a domain/AD is tricky. If you need to do this you should read up on the sysprep.exe tool. Basically you can't just make a copy of the virtual disk, you need to take some special precautions.

Virtual PC is very convenient and it was what I used for starters, but I have to say that virtualbox seems to have overtaken it now. It was a bit rough in the beginning but the last few versions have really gotten there. Virtualbox is fully free, and it has better features than VPC2007 - the main one that made me switch was the support for high resolutions. Virtualbox runs fullscreen on my 1920x1080 no problem.

It can also run virtual PC images, so switching was just a matter of installing virtualbox and adding my existing virtual PC disks to it. An added benefit is that I can run the virtual images just as easily on my new mac as on the old pc.

The commercial options are not (anymore) worth what they cost, IMHO.

Console
+1 for Virtual Box
ceretullis
+1  A: 

VirtualBox from Sun is also a good choice. I am writing this from a Vista laptop with a virtualised Ubuntu dev environment.

One thing that Virtual Box is great for is having a seamless mode in which the guest OS application windows are presented as just windows on the host system, with a single common background (you get 2 status bars - one for Windows and one for Linux).

The Z-orders don't interpolate (ie all guest windows appear on the same Z plane in the host Window system, with their own Z-order within that plane) which can make it a bit odd, but you get used to it.

It is particularly useful if you need to build across many environments. VirtualBox is getting better and I now have an OpenSolaris environment and a FreeBSD one as well.

It is free as in beer which can be handy.

Gordon Guthrie
How is VirtualBox performance wise compared to VMWare and VirtualPC? Does it utilize hardware virtualization?
schooner
Dunno to be honest. On my dev machine it is responsive enough. Don't really know about the details of virtualisation technologies either.
Gordon Guthrie
Virtual Box does utilize hardware virtualization when it is available. The performance is pretty darn good, though I haven't used either VMWare or VirtualPC in many years.... so can't make a direct comparison.
ceretullis

related questions