K Blog

Blogging like nobody reads it is easy when it's true...

September 2008 - Posts

Moving from ESX to Hyper-V - Part 1

So, I have my ESX server humming away nicely here -- it does what I need it to do, and I don't have too many complaints.  However, with the release of Hyper-V, I think it is time to move over.

Why?  Is it because I am on the kool-aide?  Dogfooding?  Nope, I just think it will be better.

Put down your pitchforks folks, I'm serious.  I searched long and hard for an unbiased comparison of ESX and Hyper-V, and it simply doesn't exist.  You either get a VMWare or MS bias, which is a shame, because I just want my test server to work as well as it possibly can.  I have (free) licensing for both, and have no problems with the learning curve so I have no real reason to choose one over the other.  There is a perception that MVPs are supposed to instantly side with MS, and I can tell you right now it aint so -- if an MS product sucks at something, I tell them.  More importantly than that though, I tell them why.  So, with that out of the way, I present _my_ comparison of ESX and Hyper-V.  So far, the only meaningful reasons that I have seen for using ESX over Hyper-V are as follows;

Support for non MS guests
Live Migration over Quick Migration
Product maturity
That is it.  Performance wise, I have it on good authority that "there should be no performance reason for a user who is virtualizing Windows servers to choose ESX over Hyper-V", I am yet to test that out, but it was enough for me to have a go.

Now, Live Migration is great, if you are using it.  I only have one server, and Directly Attached Storage, so it is on zero value to me.  That doesn't mean I disregard this lacking feature overall, just that it isn't important to me now.  The same can be said for non MS guests; this is my test server, and I support MS environments pretty much exclusively.  As for product maturity, it is another very valid point, but one that is unimportant to me.  As I said earlier, I had an MS guy tell me it would all be fine, and I am sure I could bribe someone for his phone number so that I can hassle him to no end if it all goes pear shaped.

The problems I have had with ESX are pretty low.  First, I have had a few issues with VMDKs becoming corrupted.  I am not saying this couldn't happen in Hyper-V as well, but it sure took some of the shine off what I was expecting to be my love-affair with ESX.  The solution was usually always a host reboot (and/or some VMDK tools) but it really took away from the whole "realiability" angle I expected (I have one of these in production as well, and it is never fun rebooting 8 servers at once...).  Second, ESX had some unwieldy ways of doing things.  Moving ISOs from a workstation to the host took AGES, it was so bad that I would try and line up a few at once and do it overnight (this was using FastSCP - apparently the quick way of doing it).  Third was supportability, I had a stack of problems using a HP LTO3 drive attached to an ESX host that were a bear to fix.  Way more importantly, Microsoft do not currently support Exchange server in a virtualized environment (edit; I believe this is changing now).  Finally, it can be a bit of a pig to the linux unskilled.  Changing an IP address is usually answer with "reinstall ESX".  It sounds a whole lot worse than it actually is, but it is still something that I never liked (add to that, USB was a big ugly grey area).

So, my hope for Hyper-V is that I will a) have much faster access to moving things on and off the server, b) a similar speed to do everything I normally did on ESX (I have setup performance counters for seven days on my server, and I will compare them with identically configured servers on Hyper-V), selfishly c) something worthwhile to write about.

Down to planning for the actual move.

Currently, I have two critical production servers; DC-01, my Windows 2003R2 x32 DC/DNS/DHCP and EX-01, my Exchange 2003 server.  These must make it over perfectly, so I am going to spend the most time on them.  Additionally, I have a few less important servers; two CRM servers (CRM-01 and DB-01 (CRM3x32 and CRM4x64 respectively)) and an Exchange 2007 server that I was planning to migrate to (and had started...).  Everything else was test only, and for my sanity, will be skipped.  There is also a huge collection of ISOs that I don't want to have to transfer again - If I can keep them, great.

I am torn on the best approach; ideally I want to do as many different methods as possible to show what works best, practically I want to do as little work as possible to get it done.  That said, I mainly just want my mail back up and running - anything else is a bonus.  Currently, the server has two RAID5 arrays which means I may be able to move everything to the secondary array, install Hyper-V on the primary and then somehow get data back over.  So, I am going for a multi-pronged attack which will look something like this;

  1. Move all ISOs to secondary array
  2. Configure another machine on the network to receive mail while the Exchange server is down (which I will publish shortly)
  3. File backup of EX-01 (I have *never* done a backup of my Exchange server (as a proof of concept for "ultimate disaster recovery", more on that later) so I have a stack of transaction logs - I want to back all of this up exactly as it is, so that I can test it later if I need/want to.
  4. NTBackup of DC-01 and EX-01 - moving the BKF files over to a workstation off the server, this is my "Plan Z"
  5. Acronis Image of both servers to a virtual disk, which will then be copied over the network to a workstation
  6. Shutdown the servers and move all the VMDK files to the secondary array, and to a separate workstation - there is a tool which will convert the VMDK files straight over to VHD here <<LINK>>.  I am concerned about it, as "allegedly" Hyper-V does not support SCSI disks, and ESX does not support IDE.  Fun will no doubt ensue.
  7. Format and install of Windows 2008 x64 Core with the Hyper-V role to the primary array
  8. Install SCVMM and try first at a direct conversion of the VMDKs, with the option to fall back on my Acronis images, and then to a more standard disaster recovery.

All in all, I can't see too many problems -- then again, I haven't started yet...