Fog Creek Software
Discussion Board




Ghost vs. VMWare

Anyone besides us recently dump VMWare for Ghost?  Since Ghost 2003 supports storing images on plain-vanilla servers and NTFS partitions (which Ghost 2002 did not) we pretty much quit using VMWare for our testing.

Advantages:

Not running in any sort of emulated environment - 100% native hardware.

Disadvantages:

The 5 or so minutes it takes to Ghost an image over to the target machine.

Any comments?

Mitch & Murray (from downtown)
Monday, February 03, 2003

That sounds like a pretty big disadvantage. I can test four or five configurations with VMWare in the time it takes you to create one image.

Joel Spolsky
Monday, February 03, 2003

Yes, but you are doing it in an emulated hardware environment ...

Mitch & Murray (from downtown)
Monday, February 03, 2003

5 min to lay down a new Ghost image? Seems like it takes longer than that to me, but maybe the images you're using are quite small.

Well, Ghost can certainly be used for testing environments, and you're right that there are advantages to avoiding the emulation layer, especially for certain test needs. However, there is a handy feature in VMWare that Ghost does not provide, though you'd work around it by having to repeatedly lay down a number of new images. If the time to do so isn't really trivial, it'll add up quickly. The feature in question is the ability VMWare has to set the disk modes {persistent | undoable | non-persistent }. This lets you finely control whether any writes to the virtual disk you just made are retained across guest OS reboots. An example of when this was very handy and quite a time saver was in testing a workflow in a web app where we checked the client for a certain install of flash, then if they didn't meet the min, the user could choose to install flash or not and they'd see one set of pages, if they didn't install, they'd see a different set. This required some repetition to get through the various scenarios, and setting the disk to undoable or in my case non-persistent allowed me to trash the changes made with a flash install upon VM reboot and allow me to return exactly back to the previous state.

As I said, you can do this in particular with Ghost images, but it would have to be awfully fast to be quicker than simply restarting the VM guest OS.

Other features of VMWare you can't get with Ghost:

1) ability to run > 1 virtual machine on one physical machine. For one client, I have to set up 22 different environments. I don't have that many physical machines nor the space for that many in the my lab. VM Ware lets me run two or three on one box. There's no actual hard limit -- that's just how the resources on the box work out.

2) ability to explicitly control network connectivity. Not that you can't turn network connections on or off in a real machine you've laid down with Ghost, but it's quite easy (just a checkbox config change) to completely isolate a guest OS, which can make it a very safe platform for experimenting with dangerous/unknown software or virus contaminated software -- you can permit the host box to still be connected to the network, while having the guest OS completely isolated.

3) ability to explicitly control the amount of resources (memory and diskspace) available to a virtual machine. You want to try something out on a W98SE box with 64 MB RAM and a tiny disk drive? Well, that's easy to configure in VM Ware, and it doesn't require opening any boxes to remove chips.

4) ability to use a box for more than one purpose. For example, I have a bank of QA boxes feeding to a lesser number of monitors/keyboards/mice through several KVM switches. These QA boxes are all identical, and are correctly set up to serve as load boxes when we do performance testing (the test software requires specific OS for it's remote load agents), so that I can crank up a high number of virtual users. I have taken several of these boxes and installed VMWare on them which I normally use for functional testing. So, these boxes do double-duty for me as platforms for functional testing, then when it's time to do performance testing, I just shut down the VMWare and fire up the performance testing software - the VMWare software isn't loaded into memory and as load agents, they don't burn diskspace, so the install of VMWare lying on their drives as a dead image has no affect on thier use as load agent boxes. The performance testing master control box does not have VMWare loaded on it.

In addition, since I may have several different client's projects in the lab at the same time, if I were using Ghost, I'd easily lose that particular box to any use except for say functional testing on client #1's project. Again, this relates to much better flexibility and utilization of our hardware resources using VMWare than we could ever get with a Ghost-only system.

The only odd-ball boxes in the mix are the MAC's. I've got I-Mac's on OS 8x, plus G-4's on OS 9 and OS X. Those I'm stuck using as physical boxes (bummer). I'd asked on this board a couple of months ago about MAC emulators, but those aren't very satisfactory as it turns out. Fortunately, the MAC's seem to segregate the installs of different versions of software such that they don't interfere with each other like they would on a wintel box -- it's nothing to have IE 4.5 (POS - don't ask) and IE 5x both installed on the MAC and they don't seem to bother each other at all; quite unlike they would on a wintel box.

There's probably more, but those come to mind right away.

Please don't misunderstand me -- I think Ghost is a great tool. But like all tools, there are things it's good at and things it's not. For a number of things, VM Ware offers more capabilities, or offers the same with less effort. Maybe VMWare's strong points aren't particularly valuable to you in your situation, but I'd be dead in the water without it, and only having Ghost -- good as it is -- would absolutely not serve my requirements in our lab.

FWIW, we do use Ghost to image our real, physical boxes, and I've got some standard images for the bank of QA boxes (hmm - reminds me that I ought to update those images one of these days here soon ). But for test environments, I use VMWare on that bank of QA boxes. At only 300 USD per copy for VMWare Workstation, the several copies we bought paid for themselves and then some in time and hardware saved on the very first project we worked on. Frankly, I wouldn't want to be without either Ghost or VMWare, just like I want both my linux box and my W2K workstation--right tool for the particular job.

Cheers,

anonQAguy
Monday, February 03, 2003

"At only 300 USD per copy for VMWare Workstation, the several copies we bought paid for themselves ..."

Thats 300$ per host machine, as I understand it each instance of the guest O/S needs a licence too ... i.e. a w2k box with an NT guest would require licences for both w2k and nt.

How would that work for say 1 host w2k licence and 10 NT guests? would you need 10 NT licences? What if you only use one NT guest at a time, or 5 whilst testing - is that 1 w2k licence and 5 NT licences?

Pete Robinson
Tuesday, February 04, 2003

You need an OS licence for each copy you run, whether this is on a "real" machine or on a VMWare virtual machine.
An MSDN OS (or higher) subscription (around 400$) should cover many scenarios.

Just me (Sir to you)
Tuesday, February 04, 2003

Fair points, Pete -

In our case, our office already had MSDN's we were using for test and development, so that was not a decision cost for us in getting VMWare. We'd been installing those OSs on physical boxes to make our test platforms, so it was effectively no different license-wise for us to use the MSDN to create the guest OS virtual machines for testing. We had/have OS licenses to meet our testing needs--we just didn't have the boxes, space, and the QA dept didn't have the time to do the required shuffling.

It's important to remember that VMWare isn't really designed to save you software costs; you'll still need to obtain the software you're going to run as the guest OSs. VMWare saves you hardware costs and tons of effort if you--like us--have to rapidly and frequently reconfigure to different testing environments.

anonQAguy
Tuesday, February 04, 2003

Oh - and yes Pete, you have it right.

We have several licenses of VMWare (workstation), each installed on a real, physical box. One license of VMWare / box. I can run as many virtual machines off any of those individual VMWare licenses as the physical box can push.

OS costs are an entirely separate issue as I just described.

Side note - Actually, it's kind of spooky to run several VMs at the same time windowed -- I run on a W2K physical box, then may have a W95(yech) VM, a Redhat VM, and an NT4 VM all up and doing things at the same time, and alt-tab from one to the other from the physical box. VMWare also has limited clipboard (text) support across the virtual 'barrier'. They've done a nice job handling context switching across the virtual barrier as well--click in a VM and your keystrokes and mouse clicks goto the VM. Run to the edge of the windowed VM and after a slight drag, you pop back to the context of the physical box. We usually mount common drives from the VM's, so we can do things like save screen shots of defects to include as attachments to our CRs (defect tracking software client is on the physical machine). You can get yourself confused, though, sometimes; between the KVM switches and the VM's running, sometimes you have to stop and try to remember  "wait--what the hell machine am I on?", especially if you're running a VM full-screen. Running a W2K VM full-screen on a W2K physical box, I have actually lost track and forgotten that I wasn't on the 'real' box.

anonQAguy
Tuesday, February 04, 2003

VMWware turn out to work pretty well with Ghost.

Let's say you start small (because you didn't buy that dual Xeon server yet), install Windows 2000 into
a partition on a multi-partition UIDE drive. Back it up using ghost.

And one day, Perot Consulting pops in and buys out 49% of your stocks in exchange for your soul. Put in a SCSI drive in your lovely Xeon server, restore onto the only NTFS partition on that mirrored hot-swappable disk. Voila!

This is all pointless if you can convert VMware virtual-disk-on-files to hard drive partitions of course. So can you? I think this would be a cool trick, because otherwise you have to chase the Norton Ghost license upgrade treadmill.

Is a hard drive partition dedicated to a VMWare virtual machine still faster than virtual-disk-on-files now days? Anyone?

Li-fan Chen
Wednesday, February 05, 2003

VMWare virtual machines don't use their own physical disk partitions. VMWare creates a file on the physical machine which emulates a physical drive from within the emulated VM. In fact, the last time I used VMWare, I seem to remember that it uses several different files and mounts them all together into a single virtual disk.

And, if I remember correctly, there is no way to create a VMWare virtual OS from an existing OS installation, no matter what partition the OS is installed to. Likewise, you can't take a virtual OS installation and create a stand-alone OS on any partition. If you could, that would make my life somewhat easier.

Benji Smith
Wednesday, February 05, 2003

Actually, I found this quote and pasted it directly from VMWare 3's help files:

From the section on "Selecting a Disk Type" under "Creating a New Virtual Machine"

"Existing Physical Disk: An existing physical disk or raw disk is a partition on a physical IDE or SCSI drive connected to the host computer. You use raw disks if you want VMware Workstation to run one or more guest operating systems from existing disk partitions. Raw disks may be set up on both IDE and SCSI devices. At this time, however, booting from an operating system already set up on an existing SCSI disk or partition is experimental. If an existing partition is empty, you can install an operating system in the partition. If the host is a dual-boot or multi-boot system, then bootable partitions on the host computer can also be booted within the virtual machine. If you select this option, you can also choose to hide the type of read-only disk partitions from other operating systems."

The primary option (not shown above) is to use the Virtual Disk arrangement Benji described.

I've never tried the existing disk option (note the mention of this being experimental), and it would run counter to my needs, so I doubt I will. I'd interpret this quote to mean that it is possible to also set up VMWare to use an actual physical partition. Not sure, again, whether this would enable interesting gymnastics between Ghost and VMWare or not.

And Benji's description of how VMWare works is correct--when you look at the files comprising a VM you've created on the physical host machine, you'll see one or more files representing the disk the VM uses internally, a configuration file(can edit from VMWare's UI or directly in text editor), and an nvram file. You may see additional files depending upon how large you set up the VM's 'disk' to be.

These VM files can be handled (stored, copied, moved, backed up) exactly like normal files from the host box, plus winzip crunches them down pretty well. In fact this is how I manage our VM library--I set up our standard VMs, zip them, and burn them to CDs. The only problem there has been that the VMs for Windows XP, even zipped, don't fit on a CD, so they stay on a network share that's on our normal backup rotation. All in all, quite convenient. If I need a special version of W98SE, for example, I take one of our standard W98SE VM's from the CD, unzip it to the physical box, fire it up and do whatever mods I need to it. Makes it nice to do comparative evaluations of the effects of some patch, for example, or other configuration changes because you know you started from machines that were exact clones of each other, so there's your experimental control. If the physical box can handle it, you can do this side-by-side on the same physical box, run the VMs in windows, and get screen shots from the physical box of the differences displayed in the two VMs.

anonQAguy
Wednesday, February 05, 2003

Benji I think you must have been using a very very old version of VMWare.. all of the scenarios you've just described are possible with VMWare..

it IS possible to mount physical partitions, and it is possible to modify Windows 2000 or Linux to boot up into the virtual machine when they were initially installed to boot on the physical machine, they might not be fun to do, but it's possible.

And I believe the company responsible for the software will only more configurations and possibilities available in the future (well at least with their high end products like  the GSX and ESX servers)...

Please check www.vmware.com for the documentation that describes these procedures.

Li-fan Chen
Thursday, February 06, 2003

anonQAguy: backups and restores of Windows 2000-based NTFS partitions WORKS using Ghost 2000 and up for Windows 2000 installations created within VMWare. And you can boot into the virtual or physical version.

Again, I agree with caution, just because it never fails for me doesn't mean you should use it in production. Try it if you ever get bored, but you probably don't need the experiental odd feature anyway.

VMWare is great, but I personally think it will take more years of improvement before it becomes truely awesome for the most power-hungry people.

Li-fan Chen
Thursday, February 06, 2003

*  Recent Topics

*  Fog Creek Home