By Joel Snyder
Network World, 10/27/03
Original Article on Network World Web Site
Early this year I got to meet Diane Greene, CEO and one of the founders of VMware, maker of one of my favorite lab tools.
Most CEOs aren't my cup of tea. They get picked for those spots based on leadership potential, vision and ability to attract piles of cash from venture capital firms. All this is great for them, but not very interesting for a techie like me, who is down here in the trenches, getting dirty writing code.
When I met Greene we spent a half-hour talking about the internals of the company's flagship host-emulation software, VMware. We chatted about the ugly part of emulating a CPU without breaking things, restarting instructions, register models and memory management. Fascinating stuff. I came away impressed. But the last thing she said to me stuck: "Don't just test our software, use our software."
I did and that is why she is my hero. Her software lets me run multiple emulated Intel virtual machines on top of one physical machine, with each virtual machine running its own copy of whatever operating system I want.
In the lab, we've traditionally used removable hard drives to handle our need to run several operating systems on the same machines. We'll create a "master" for an operating system and then use Symantec's Ghost (another great lab tool) to clone it onto hard drives. For every new product tested, we slide in a hard drive, boot it up and give each vendor a clean slate to run on. But this setup limits us to testing one vendor's product at a time.
In our recent anti-spam test, the limitations posed by our typical technique was a showstopper. I needed to have 16 products running at once. I borrowed two copies of VMware's GSX server, put 3G bytes of memory in two of our dual-CPU lab systems, created eight virtual machines on each server, and voilà, I had 16 speedy, perfectly isolated virtual systems running a mix of Windows and Linux. With a tool like VMware, my job became a whole lot easier - and I did it all in 4U of rack space.
One of the fears about emulated systems is that they will be slow. That wasn't my experience. During configuration and installation, VMware "felt" as fast as the underlying hardware running without VMware. If I put it in full-screen mode, it was easy to forget that I was running on an emulator. The virtual machines never knew what was happening to them. They happily got their own IP addresses, crashed, rebooted, wrote to private disk space and went on about their business without any conflicts.
Of course, VMware isn't perfect. It takes a lot of memory (but so does Microsoft Office). My applications weren't badly behaved, thrashing the disk or paging a lot, which would have made things uncomfortable. I wasn't testing performance or some special I/O subsystem or encryption board for which direct access to the hardware would have been critical. It's not the ultimate answer to every testing problem. But it saved me from having to buy 16 systems, power them, find KVM ports, air condition them and stack them somewhere.
Diane: When's your birthday? I want to send you flowers.