Getting Your Feet Wet With VMWare

by bob on February 12, 2007

If I’ve learned anything about Microsoft operating systems, your biggest enemy is what I call “system lint” — the accumulation of detrius that gets stuck in the plumbing when you do too many installs / uninstalls / upgrades. My last development box, a Dell Dimension that’s now pushing four years old, was beginning to suffer from this fate, and nothing dismays me more than spending many tedious hours installing dozens of packages and updates and add-ons to get to a usable system, moving all my settings and data over, etc.

Because I’m not a sysadmin type of geek, I tend to buy well-endowed, bleeding-edge machines to stave off obsolecense, and then keep them for a long time. I also try to keep the installed suite of software as simple and stable as I can, including Visual Studio and named instances of SQL Server 2000 and 2005 to support all my current projects. The new hardware is a Falcon Northwest 2.66 gHz Core Duo (conservatively overclocked to 2.87 gHz) with 4G of RAM and 700G of storage in a RAID5 configuration. By the time my next acquisition cycle comes around in about 2010 or 2011, this computer will be looking lame compared to the 16 core boxes that will likely be typical by then, but it should serve my purposes just the same.

Alas … one of my new clients writes software that integrates with TimberLine Accounting Software, which means I am faced with loading up my machine with icky things like Pervasive Database and Timberline itself (likely in multiple versions each for different clients), the ponderous COM-based API for talking to TimberLine from external applications, and (so far) three third-party libraries, with a fourth on the way.

I decided it was high time to get my feet wet with virtual machines (VMs). Yeah, I know, I’m a bit behind the times; I’m perfectly aware that virtualization has been hot, hot, hot during the past year or so. I have a couple of colleagues using VMs already. But I find that waiting until there is a compelling need usually means that (1) I have enough motivation to work through the pain of the learning curve and (2) the technology has had time to mature a bit.

Being a small business, I use a fairly unscientific product evaluation and testing process: the product under consideration must be affordable, and must Just Work. If none of the available options can Just Work then I’d better have a really compelling need to put up with the least of the available evils.

First out the gate was Parallels, the newer kid on the block. In the Mac world, Parallels is the only virtualization technology for running Windows on top of Mac OS/X and it works, by all accounts, quite well. Parallels Desktop is the version for hosting guest operating systems on the PC, and it’s a free download.

I found Parallel’s install simple and intuitive, but the first thing I did with it was to create a VM with 1G of RAM and tried to do a fresh install of Windows 2003 on it. It hung during the part of the install were drivers are loaded. I emailed tech support about this issue and never heard back from them. So much for Parallels. Brutal, I know, but it’s the way I do these things.

Next up was VMWare, on the theory that it’s a more mature product, and because I just heard about their ability to copy physical machines to virtual machines. One of the things I wanted to do was to take the basic XP SP2 install I already had on my dev machine and clone it to a VM — the idea is to have a VM called “BaseXP” and then copy that whenever I needed an XP box to handle something funky, such as the particular combination of Pervasive, Timberline and API for a particular end-user installation. And this new VMWare utility promised to be able to do that. If it works, I should be able to fire up a VM for the client I’m currently working on, and have a test environment for that particular combination of esoteric products. If something goes wrong with the setup in one of those VMs, I simply go back to a copy of BaseXP and start over … no need to reinstall Windows, Office, Visual Studio, or any of my other basics.

VMWare is Balkanized into several products and it took a few minutes of studying to figure out what I needed for my purposes (all of which, thankfully, was a free download, so long as I can content myself with self-support via knowledge base). The components are:

VMWare Server is an enormous 150 meg download, but the installation is very straightforward (don’t forget to grab as many free serial #s as you need before starting the download — the link is right on the download page). Next I ran the much smaller and equally simple VMWare Converter install, and fired up the Converter.

The free version of Converter is more than enough for the small shop. Its paid version is mostly for those in large enterprises who want to generate multiple VMs at a time.

My physical machine already occupied 50G of space and had quite a few apps installed, so I was frankly skeptical this was going to work. But I fired it up, asked a few questions, told it what I needed my VM to look like (1G of RAM, 100G of hard drive space since I work with large files), bridged networking … and sent it on its way.

What happened took nearly seven hours, but was otherwise nothing short of amazing. Without disturbing my ability to run other software while it churned away, Converter built my VM, including its virtual hard disk file, and the sucker JUST WORKED.

This morning morning when I booted my VM I saw the familiar Windows boot logo. The number of unexpected things was non-zero, but manageable: Windows and Office both needed to be activated online because of “extensive hardware changes” — both operations took seconds, no questions asked, and both the new and old (virtual and physical) installations still work and seem properly licensed. (If there had been licensing problems I was equipped with extra XP and Office licenses courtesy of my Microsoft Action Pack subscription).

Also, although I’d specified 1G of RAM for this VM, it ended up getting set up with 2.5G — I had to manually change it back to what I wanted. I also had to re-state my desire for a static IP for the VM. Once I did that, Internet access worked and I could browse my local network fine. In fact I mounted an ISO file as a CD across the network to install the VMWare Tools into the VM — this is a suite of drivers and utilities that optimizes peformance for the guest OS you’re running. For example once those were installed I was able to increase the virtual display size up to and including full screen on my 2560 x 1600 monitor.

The first time you boot a Windows XP VM it’s a little confusing because various programs are run automatically to complete the configuration and there is a short delay before that happens. There are a couple of reboots of the VM, and then you’re up and running.

Think of it: Converter performed the miracle of copying a running machine including its installed applications onto another “machine” such that it’s runnable. For free. That’s truly useful and remarkable.

I pared down my BaseXP VM, removing a few apps I don’t want in there and copies of data that I don’t care to replicate. It should be ready for action now.

VMWare lets you start out with a small virtual disk file that grows dynamically, but you have to assign a maximum drive size and you are never allowed to increase it. If you run out of space you must attach another virtual drive or use Converter to move over to a VM with more space. And of course you need all this space available on your host’s hard drive for the virtual disk drives you create.

This is looking very promising. I’ll report in this space of any other challenges as I replicate my “BaseXP” VM, and over time as I create VMs for Windows Server and probably a Linux distro or two … and yes, even a Vista installation one day. With Converter the way it is, I may well eventually convert my physical XP to a VM, install some Linux distro as my host OS so I can see all of my 4G of RAM instead of just 3G of it, and run all Windows instances as guests within Linux. But I’ll have to build some confidence in VMWare, first, and get a sense of how adequate the VM performance will be.

{ 2 comments… read them below or add one }

Alex February 25, 2007 at 11:27 am

Interesting about VMware Server, I had no idea it actually *ran* VMs.

As to only seeing 3GB, does this apply?

http://blogs.msdn.com/oldnewthing/archive/2006/08/14/699521.aspx

Bob replies: Not exactly. That post is regarding server versions of Windows. 32-bit client versions of Windows (most notably, Windows XP and 32-bit Vista) are limited to 3G of total addressable memory. Frankly I’m not sure whether some of that ends up going to memory-mapped devices as well; all I’m saying is that if you open the System control panel applet in XP, you will never see more than 3G of system RAM reported, no matter how much is actually installed.

Inez Wells March 9, 2007 at 6:12 pm

This blog is really superb!!! Thank you for you work! Good Luck.

Leave a Comment

Previous post:

Next post: