Thursday, September 27, 2012

VMWare vs. Hyper-V on the Desktop

This is a "review" in my own words, based entirely on my own personal experiences.  I have not been compensated or rewarded in any way whatsoever by anyone for what I write (although, I sure wouldn't mind it if someone wanted to compensate me for my stupid ramblings).  So, here goes...

I upgraded my computer to Windows 8, and decided to add the Hyper-V "role" because my CPU supports Second Level Address Translation (SLAT).  There were (ok, ARE) two main reasons I wanted to try out Hyper-V 3.0:

  1. Hyper-V is included with Windows 8 at no additional charge
  2. VMware Workstation 8.x has been annoying as shit to me for too long

Annoying?  Really?  Yes!  I run VMware Workstation 8.x on a Windows 7 SP1 64-bit machine with 16 GB of memory, and a separate, dedicated internal hard disk for my guest machines.  Even so, I've been dealing with problems such as hanging when trying to power-down guest machines (especially 64-bit guest machines), and issues with guest machines not opening after installing incremental updates such as 8.0.4, etc.

So, after reading articles like this one on TechNet, this one on Windows IT Pro, and this one on 4SysOps, and hearing podcasts give glowing reviews about how awesome Hyper-V 3.0 is, I decided I have to give it a try.  I have been using VMware Workstation since the first public release.  I've also used GSX Server, VMware Server, VMware Player, ESX Server, but never used any of the vSphere product line.  I've never used Virtual Server or Hyper-V either, so I've been kind of immersed in the world of VMware for a long time.

When I finished loading up and configuring my Windows 8 desktop, I added Hyper-V and started kicking the tires.  By the way, if you want to run Hyper-V 3.0 and VMware Workstation 8.x "side by side" on Windows 8, it can be done, but you need to configure a few things.  Here's a rather good rundown on how to do that.

A Little Background

Keep in mind that one of my primary job functions is software "packaging", "re-packaging" and testing software installation and configuration "deployments".  These are basically fancy terms for preparing some crappy software from a half-assed software vendor so that it can be installed "silently" on thousands of computers over a single night.  By "silent" I am referring to making a pre-configured installation that doesn't display any dialog forms or require any user input.  They just install quietly and hopefully all is well on the other end when the user shows up and double-clicks the shiny new shortcut in the morning.

A fairly typical "setup" for doing this sort of work involves building several virtual machines (aka "guest" computers), or "VM's" to suit a variety of environmental conditions to support the packaging process.  This often includes having one VM that is set for "host-only" networking (can't connect to any outside resources, remote servers, the Internet, nothing at all), another that is set for NAT, and another set for Bridged mode, which mimics being a "real" computer directly on the network LAN with it's own IP address.

The "host-only" VM is helpful for ensuring the desktop environment within the VM is isolated and protected from outside influences and manipulation.  This includes anti-virus scanning, firewall issues, Group Policy, outside scripts and programs, unplanned remote connections, and pretty much anything that could possible interfere with a "clean" state analysis and state capture. (note: a "state capture" is when you capture two states of the configuration and compare them to identify every single change that occurred in between).  Outside influences and ruin attempts to capture a clean system state when dealing with complicated software installation and configuration analysis.

The "NAT" or "Bridged" VM is helpful for testing the final deployment package to ensure it (A) installs properly on a computer that is configured identical to a "real" production computer, and (B) provides a non-production target that won't impact anyone else if it crashes, fails or needs to be rebooted multiple times.

Absolute Essential Features

There are some basic features that are critical to have available within each of these VM configurations:

  • Snapshots
  • Client/Host Integration (i.e. clipboard, shared folders, etc.)
  • Dynamic ISO mounting
Both VMware Workstation 8.x and Hyper-V 3.0 support all three of these features, however, there are some HUGE differences that really surprised me.

Snapshots

A "snapshot" is simply a captured state of a virtual guest machine that allows you to return to it at a later time, after, say, you've hosed it up really bad and need to get "back" to a point where it was in good shape.  VMware Workstation supports making multiple (read: limited only by available disk space) snapshots.  Hyper-V 3.0, as far as I can tell, only allows you to maintain one snapshot per virtual guest machine.

VMware Workstation gives you a fairly decent little GUI dialog form to browse your library of snapshots to help you organize and decide which to use at any given point in time.  It also makes it easier to "clone" a guest machine to create another by selecting a particular snapshot to make the clone from.

As far as I can tell, Hyper-V 3.0 not only limits you to one snapshot per guest machine, but provides no GUI interface for dealing with the snapshot, nor does it provide a "cloning" feature.


Client/Host Integration

One of the features I rely upon heavily is the ability to copy objects (files, folders, etc.) from my physical computer environment into my virtual guest machines, and do the same in reverse.  This isn't just a "nice feature".  This is a MUST.  I need to quickly copy files into my "host-only" virtual guest in order to perform installations, run configuration changes, collect diagnostic and state information, and extract the results back out to other environments to support the repackaging process and the testing process.

VMware Workstation provides two features to help with this:  Guest Isolation and Shared Folders.  Hyper-V 3.0 offers a "text-only" clipboard, and only in one direction:  Host-into-Guest.  Not useful for my needs at all.


The "Shared Folders" feature is a feature in VMware Workstation that lets you connect a network location inside the virtual guest machine to a physical folder or share, either on the physical host (the computer running VMware Workstation), or a UNC share path on a remote server.  Hyper-V 3.0 does not offer this feature.

Mounting ISO Files

This term refers to controlling the use of the CD/DVD drive within a virtual guest computer by configuring it to open a .ISO file rather than connect to the physical CD/DVD drive on the physical host computer.  Both Hyper-V 3.0 and VMware Workstation (and the "free" VMware Player product) support mounting .ISO files to the virtual CD/DVD drive.

Conclusion

We've all heard the Microsoft gets things right by version 3.0, but not in this case.  Yes, it's "free", sort of, but does not kick VMware Workstation off the playground?  Maybe if you just like to play around in virtual machines, which it handles just fine.  But if you do serious work that requires any of the features I've discussed above, the answer is NO.  I simply cannot dump VMware Workstation right now, it does what I need, while Hyper-V 3.0 does not.  In fact, I may have to consider upgrading to VMware Workstation 9.

Am I giving up on Hyper-V 3.0?  No.  I will keep using it, because I want to gain familiarity with it and learn some new tricks (I'm not dead yet, after all).  I may follow-up on this as I learn new things along the way.

What would change my mind?  If Hyper-V 3.x (or 4.x) were to provide the following features I would probably switch over:
  • Drag-and-Drop clipboard between host and guest
  • Shared Folders
  • Multiple Snapshots
  • A GUI snapshot manager
Until that happens however, I will continue to play around with Hyper-V but I can't rely on it for getting my daily work done on time.
Post a Comment