For those of you who have been keeping up to date with my posts on /r/homelab you will know I recently posted an updated diagram and in it dropped the news I had migrated Danny my Big DL380 G7 server from oVirt/KVM to Hyper-V with Windows Server 2016 Datacenter and in this post I am going to explain why exactly.
Lets start with when I first got Danny. At the time I had used 3 Hypervisors. Hyper-V, ESXI and XenServer and Hyper-V never appealed to me to be honest as it was a lot of work in server 2012 R2 and ESXI was too limited on the free plan so I put XenServer on it to match my other VM host. shortly after that Citrix decided to nerf the XenServer free edition so seeing as the DL380 at the time had very few VM's hosted I thought what the heck and tried to find an alternative that worked for me.
I looked at all the options but concluded the following
- Hyper-V server core was too much to learn and I had a bad experience
- Proxmox was popular but I tend to avoid popular stuff as its usually boring to go with the flow. but also its Debian based and my Linux knowledge is entirely RHEL
- ESXI was still limited with the free edition and plagued with driver issues
And that is when I almost gave up. but then I found oVirt. a RHEL hypervisor using KVM with a nice interface. 4.2 fresh and I was keen.
What happened to oVirt?
Ultimately oVirt worked quite well.it had its quirks especially in the networking stack causing me a lot of weird debugging sessions but once it was up it was nice and stable.
But it had some flaws mainly it was a pain to backup and really was not designed for single host usage. oVirt is designed to use a SAN with multiple hosts in a datacenter environment not a small homelab. I was using something total overkill and I spent a lot of time chasing after it rather than using it to the best of it's abilities.
And the final killer was for me the need for more Windows VM's and licensing Windows is a pain. I was running out of Dreamspark keys and did not want to spend 3x the amount I paid for the server to get more. I had a Windows Server 2016 Datacenter license key leftover from my dreamspark keys. I stupidly activated my 2012 R2 datacenter key on a Microserver :| but decided to keep the 2016 key back till I found a server powerful enough to make use of the unlimited Windows VM's license.
So I decided to go with Hyper-V on Windows Server 2016 Datacenter as it entitled me to an unlimited amount of VM's with licensing included so I could spin up a new Windows server without fear of running out of my free keys.
Before I installed Windows though I did some upgrades. I got 2x more 146Gb SAS drives to bump the storage up by like 300Gb and an extra 8Gb DIMM as I knew this server would be taking over my Exchange server which needs 8Gb min to run. but it looks like I will need even more RAM as I have used up all 32Gb in the server now.
I also had to export my VM's from oVirt. to do this you can select the VM in oVirt and export it to an export domain. in my case the export domain was a local path on the server so once exported I copied it over to my desktop via SFTP which gave me some massive QCOW2 images. which I then converted with QEMU-IMG to VHDX files. for Linux servers this worked well and all I had to do after migrating the VM's was reinstall the kernel to get them booting again.
But for Windows servers I decided to use the Disk2VHD tool instead which worked wonderfully and it also took care of prepping the VM's to go into a Hyper-V server so it would not BSOD on import.
once I had exported all my VM's I shut the server down :( and preceded to re-create my RAID array with the new drives added and also took the opportunity to update the BIOS/iLO to the latest versions as they was a few years out of date and it looks like HP is giving the DL380 G7 updates for free at the moment. Installing Windows was a snap on a DL380 G7. it even recognized the P410 RAID card without drivers. Neat.
Once installed I gave the server a name, activated and installed the Hyper-V role. I am not going to go into full detail on how I did this as Hyper-V is still kina clunky to use. If Microsoft is listening can you please for the love of god make some sort of role system so I can give users permissions within the Hyper-V manager instead of having to use local users and groups and making users administrators of the whole machine. its not very convenient and causes a lot of weird errors especially with connecting to VHD/ISO folders.
How has it been coping.
I have been running Hyper-V now for over a week and I have had zero issues. it has allowed me to move to Exchange 2016 and also setup an ADFS server to replace my old simpleSAMLPHP setup that barely worked. I couldn't be happier with the results. Hyper-V is still hardly the best Hypervisor on the market I think Microsoft really need to improve the situation for roles outside of a SCCM environment. but once you figure out the quriks its really nice.
Windows Admin Center makes it even easier to work with giving you a web interface to manage it and it is a snap to install.
Windows Admin Center can also manage Hyper-V VM's alongside the actual host server.
This has come in handy when I needed to restart my Exchange server remotely from my phone over a VPN. Thanks Windows update for locking up my VM.
But most of the time I am using the Hyper-V manager on Windows 10 which does a decent enough job. I find it quicker to use than the oVirt UI or Windows Admin Center but its not as featured as XenCenter. but at least its not using the simply awful VNC console it has a very decent console instead :D
After all of that I am happy to say that I have not regretted the move and it has gone butter smooth from the very start. I can see my lab going full Hyper-V in the feature. only one server remains running XenServer and that server is slowly being phased out VM by VM.