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;
- Move all ISOs to secondary array
- Configure another machine on the network to receive mail while the Exchange server is down (which I will publish shortly)
- 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.
- NTBackup of DC-01 and EX-01 - moving the BKF files over to a workstation off the server, this is my "Plan Z"
- Acronis Image of both servers to a virtual disk, which will then be copied over the network to a workstation
- 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.
- Format and install of Windows 2008 x64 Core with the Hyper-V role to the primary array
- 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...