Friday, June 14, 2013

Windows 8 Hyper-V vs VMWare Workstation 9


Server Build

I have been an avid user of VMWare Workstation 9 for many years.  It has been an indispensable tool in my line of work.  It really is best of the class for the workstation line of products.  In fact, it now powers the majority of computers used by my family.

Last year after a video card failure and replacement, my wife and I decided we wanted to do away with the four desktops in our home and narrow it down to one single desktop.  I was very excited to hear that she was on board, since she generally cringes when I mention purchasing computer equipment.  Feeling giddy as a boy at Christmas time, I began research the Internet for the best CPUs, motherboards, hard disks, etc.  After a bit of research I managed to build a really nice system for $950 that included a 128gb SSD drive, a 3 TB enterprise hard disk built for video monitoring systems, an I7-3770K processor, and 16gb RAM, and a nice ASUS motherboard to go with it.

It was around that time that Windows 8 was being released to manufacturers.  Wanting to test it out before I purchased it, I snagged a copy through my MSDN account and installed it on my new hardware.  It installed smoothly and worked flawlessly with my ASUS motherboard.  Once I had my operating system all set up, I had a decision to make regarding my virtualization platform:  VMWare Workstation 9 or Hyper-V?

The fact that I recently upgraded my VMWare Workstation license to 9 was the determining factor.  I installed VMWare Workstation.  Now, I just needed a way to run virtual machines in the background.  It was not at first obvious, but VMWare Workstation 9 supports this out-of-the-box.

Shared Virtual Machines

Sitting in the Library browser on the left side of the VMWare Workstation main screen is a feature called "Shared VMs."  A shared virtual machine has the following features:

  • It can run in the background
  • It can automatically start up with the system
  • It can automatically shut down with the system
It loses the following features:
  • Copy and paste
  • Drag-and-drop
  • 3D graphic support
  • Sound card support

Virtual Machines

After a bit of trial and error, I was able to figure out how shared vms work.  I then proceeded to set up my domain controller as a guest virtual machine.  Once the domain controller was up and running, I actually joined the host to the domain.  I questioned whether this would work very well.  But, with the domain controller starting up automatically with the system, this worked out very nicely.

Throughout the next few months, I then proceeded to set up eight or so more virtual machines that were used by various family members for various tasks.  The majority of them were my development lab.  I like to dedicate a virtual machine to each major project I work on.

Challenges

As time went on, I noticed that the virtual machines would periodically slow way down to do heavy disk I/O.  I would be in the middle of working on a virtual machine, and then it would start running very slowly.  It happened frequently enough, that I begin to grow frustrated.  Soon, I learned one cause of this was Windows Update.

Periodically, the virtual machines required a little extra RAM than what I had allotted for them to use.  This was especially true for Windows Update.  Since the RAM was not available, they would start thrashing the hard disk as RAM would be stored in the page file.

On top of this, the VMWare Workstation console would randomly lock-up on me as I was using it.  When that happened, I used Task Manager to end task the console.  This worked two to three times.  By the third time, I could no longer connect.  It would just time out.  The only fix I found for this was to restart the host.

Hyper-V

At last, in an effort to gain performance, I decided to ditch VMware in favor of Hyper-V.  I converted my virtual machines to Hyper-V.  The process was very drawn out and took an entire weekend.  Once they were converted, I set up some of them to start automatically with the host.

Boy was there a difference in performance!  I could now run six virtual machines at a time without any noticeable performance decrease.  All six of them had near instantaneous response speeds.  The RAM would increase or decrease automatically for each virtual machine, depending on the needs of that machine.

Challenges

Things were going so well that, at last, I decided to delete my old VMWare virtual machine images.  It was about that time that my wife decided to watch a Blu-Ray movie on the host.  PowerDVD reported to her that our graphic hardware was not sufficient to play the movie.  Scratching my head in confusion, it finally occurred to me that the only change in configuration was that I had installed Hyper-V.

VMware Wins Again

Curious, I removed Hyper-V from the computer and restarted.  PowerDVD was happy to the play the movie.  So, I started benchmarking various programs with Hyper-V enabled/disabled.  It turns out that performance decreases drastically when a host is turned into a Hyper-V server.  Knowing that my wife would insist that the Blu-Ray player worked, I than began the slow and painful process of converting my virtual machines back to VMWare.