HyperXenBox at home

I needed another linux server ...

I needed to test some new hardware to stay up to date ...

I wanted to play with a new toy and I may be traveling soon, so it has to be compact. I decided on the Intel® NUC Kit D54250WYKH and ordered the parts off Newegg (instead of Amazon because Newegg was $50 less due to taxes).

First off, Kudos to Intel on the unboxing experience:

Now I have a compact, i5 based machine with an SSD and 16 GB of RAM. I've used VirtualBox in the past and recently I've been playing with clouds like Azure and EC2. So, why not make my own little cloud with this shiny new box? This way I don't have to worry about shutting down my virtualized servers when I want to run to a coffee shop with my laptop.

I wanted to expand my knowledge on the topic, so I looked into some more heavy-duty Hypervisors like: Xen, ESXi, and Hyper-V. It was a long weekend with lots of pain, tweaking, and it resulted in some realizations.

The two criteria that ultimately made the decision were: I need to be mobile and may have to rely on wireless, and I'd also like to use this box as an HTPC to play the occasional movie on my TV.

Xen

I've left this purposely vague, because it requires a bit of explanation. In short, Xen is still going through some changes involving Citrix's proprietary version (XenServer), XenServer.Org, XenProject, and XAPI. The short of it is that Citrix's XenServer has a great GUI management tool (XenCenter). I was really hoping for a GUI since this is just for my home lab.

Here's the problem: I need to be mobile and may need to rely on wireless. The version of Linux used by Citrix's XenServer uses a kernel that is too old to support my wireless card. I was able to install the XenProject's version of XenServer on a newer Linux distro, but this doesn't have a GUI management interface by default. On top of this, there is currently some shifting going on between the tool stacks used to admin Xen through the command line.

This only covers the wireless part, now what about connecting to a TV? Xen actually seems to have good support for this type of pass-through, but I wasn't able to get this far. Long story short, Xen left me feeling like I was in a store that was doing some serious remodeling.

Hyper-V

I started out with Hyper-V Server which is a stripped down version of Windows Server running only Hyper-V. The issue with Hyper-V is that it doesn't come with a GUI to administer it on the server itself; you have to connect remotely. What's more, it doesn't have any wireless capabilities built in. I can attest that installing drivers and the wireless services in the Server Core environment is no picnic, but it is doable. Next, it turns out that remotely controlling Hyper-V (pretty much) requires a Domain to be set up. Again, this is getting beyond the complexity of what I want for an initial home lab. I tried Windows Server 2012 + Hyper-V and the results were about the same

Though, I am happy to report that Hyper-V Server took under 500 MB of RAM and had little CPU overhead. The Windows Server 2012 + Hyper-V had similar requirements, which I was pleasantly surprised by.

The Choice

The weekend was nearing the end, and even though I knew after Xen that I would probably not be able to use any of the enterprise-grade Hypervisors for my home lab. On the bright side, I was able to play with an unused box to get a taste for them.

My ultimate decision was that if I wanted to be able to do HTPC and Virtualization with WiFi support, I'd probably be stuck with VMware Workstation or VirtualBox on a Linux host machine. A bit of research showed that both of these products seem to have closed the performance gap when compared to the Type 1 (bare metal) Hypervisors. Furthermore, VirtualBox seems to have closed some of the performance gap with VMware - one article I read showed only a ~10% difference in a few benchmarks.

So, I decided to use VirtualBox for now - and if I really need some extra features and performance I can pay to switch to VMware later.

Remember I said I wanted a nice GUI? Enter phpVirtualBox. This gets me closer to running a headless virtualization server because it's SUCH a nice web interface.

End Result:

Here's a screenshot of phpVirtualBox on my NUC with Xubuntu as the host OS, a Windows Server 2012 VM with IIS and an Ubuntu 14 LAMP server. All of that packed into this tiny box, and using less than 4GB of RAM!

I think I'll be giving Xen another try someday.

Comments