I’m going to start this post with a small rant:
I’d love to see Microsoft come up with a better naming convention. Not only is the product name the length of a sentence, I have to look up the names for these products every time I use them to make sure I get all of the descriptors in the right order so I don’t get flamed in the comments. As these products get more granular and diverse, I’m sure it’s hard to come up with catchy naming schemes that work for everyone. That said, there has to be something between Viridian and Windows 2012 Server R2 Hyper-V Core.
Leaving Windows Server 2012 R2 Hyper-V Core for Windows Server 2012 R2 Standard
Anyway, to those of you that don’t have any experience with either of these products, this article may not seem like a big deal. However, those of us that have set up, managed and fought with setting up ad virtual network using Windows 2012 Server R2 Hyper-V Core have probably had great success and sound hair pulling frustrations along the way. Windows 2012 Server R2 Hyper-V Core is arguably the simplest headless hypervisor for the price (free). So much so that a movement bring tracked in the community moving from from long standing open source and commercial software to Windows 2012 Server R2 Hyper-V Core. As great as Windows 2012 Server R2 Hyper-V Core is, there is one massive flaw that keeps it from being a titan in the market, IMHO.
Headless and Wandering
Windows 2012 Server R2 Hyper-V Core is a free product offered by Microsoft. The caveat is that each virtual machine must be licensed individually. On boot, the Hyper-V UI provides a Powershell management window and a terminal window. No GUI, no management tools… it’s like Microsoft’s version of what they think Linux session looks like… without the freedom, flexibility or ability to manage configuration.
In lieu of management tools, a suite of powershell cmdlets is sufficient to manage most of the aspects of the virtual machines.
RSAT and the Infinite Sadness
By far, the easiest and most convenient way to manage the server and virtual machines is from another machine on the network. With a Windows 8 machine, an install of Remote Server Administration Tools can provide the ability to remotely manage the host OS as well as compatible virtual machines. Once you jump through permissions hoops, this works well for many administration needs. However, there is one glaring omission.
Wherefore art thou Device Manager
My current Windows 2012 Server R2 Hyper-V Core server is sitting on an ASUS motherboard. ASUS makes great hardware but they’re notorious for using drivers outside of the Windows-native domain. This requires a sometimes painful series of installs and configurations after any OS re-install… provided everything plays nice. With Windows 2012 Server R2 Hyper-V Core, ran into an issue with my network adapter driver. The native drivers wouldn’t handle the adapter and the ASUS drivers didn’t recognize the OS version. Thankfully, I found a suggestion to get things up and running online, but it certainly didn’t leave me with a warm fuzzy feeling that everything was going to be fine.
Then I installed a separate network card, in hopes to bypass the embedded network issue. Sadly, I encountered the same problem and couldn’t get a driver to install. I fired up my Windows 8 instance and launched the RSAT MMC snapin hoping to get a handle on devices. To my surprise, I got the unfortunate message:
Make sure that this computer is on the network, has remote administration enabled, and is running the “Plug and Play” and “Remote registry” services.
I immediately checked all of the services, firewalls and permissions. Everything was set as it should be. I jumped online and found pages and pages of rants about this nebulous (and inaccurate) error message. In fact, there is no way to manage devices on a Windows 2012 Server R2 Hyper-V Core through any management interface. Command line tools such as pnputil can work in a pinch, but they’re not the most intuitive, inclusive, or informative. I’ve found myself using more of the guess and check method for installing drivers which muddies up the installed driver pool and could negatively impact things like boot performance.
It was when I installed a new SATA expansion card (which also needed third party drivers) that I got tired of hacking through windows command line tools and moved on.
Server 2012 Standard
The next step up on the server ladder from Windows 2012 Server R2 Hyper-V Core is Windows 2012 Server R2 Essentials. Unfortunately, Hyper-V isn’t offered as a feature on Windows 2012 Server R2 Essentials, only Windows 2012 Server R2 Standard and above. I’m not sure if there’s a marketing reason to exclude a free software feature on a paid server, but such is Microsoft. On to Server Standard it is. From the first boot, I launched Device Manager to see I had a half dozen devices without drivers. It made me chuckle because I only knew about 2 of them. Being the good geek that I am, my cache of drivers was nearby and I began resolving the unknown devices. The whole thing was settled in under an hour, roughly half the time it took me to negotiate the LAN driver install on Windows 2012 Server R2 Hyper-V Core.
Server Standard carries a little more overhead than Windows 2012 Server R2 Hyper-V Core, but considering the convenience, time and frustration savings it was well worth the upgrade. The icing on the cake is being able to manage the server from it’s own console rather than a remote Windows 8 installation. This means I have one less machine to set up which takes away resources from the pool. I know there are folks out there like hacking Windows command line, and I applaud them. I’m a developer. Thus, I want to work with the VMs without spending hours and hours trying to manage and configure the host server. It’s for this reason, Windows Server 2102 R2 Standard is the best choice for my needs.