Complete Server Setup with a Microsoft Surface and Hyper-V
For those reading my posts on the Microsoft Surface, I have mixed feelings about the device. It has a great form factor. An awesome set of inputs (keyboard, mouse and touch) all in one easy to carry form factor. Sure, I have had two Microsoft Surface Touch Cover failures in the first month, but I still think it is a great input combination. Windows RT is a good start, but there is still a lot locked down. For Office applications, it can do most of what you would want it to. For server administration, it is a bit lacking. There are a few things that I still cannot do on the Microsoft Surface which have limited my use. However, with Windows 8 Hyper-V I now have a solution that works well. Case and point, I installed Windows Server 2012 on a test machine while watching the San Francisco 49ers v. New Orleans Saints (American) football game using the Microsoft Surface. Let’s take a look at what made this possible.First, here are a few server admin tasks I have struggled with on the Microsoft Surface (Amazon link here) with Windows RT.
- SSH using Putty. I have been using Putty on Windows for as long as I can remember. When doing admin tasks on ServeTheHome and on Linux clients, I generally turn to Putty. We really need a Windows RT Putty client.
- KVM-over-IP. Most KVM-over-IP or iKVM solutions rely on JAVA. Windows RT limits the JAVA usage so these KVM solutions tend to have major issues.
- Use tools like Supermicro IPMIView and LSI MegaRAID Storage Manager. These do not yet have Windows RT variants and these tools help a ton.
- Keeping a persistent connection. The Microsoft Surface travels almost everywhere. To save power, the screen dims and much of the machine goes to a low power state. Not great if you need to keep a connection live. There are some workarounds like using screen with Linux, but that does not solve every time you need this to work.
Those are just some examples, and there are certainly others. One Sunday I was watching a football game and decided to give myself a challenge: Install Windows Server 2012 on a machine only interfacing with the Microsoft Surface. I just needed the machine to run, nothing fancy, but this is not something that is easy to do on the Microsoft Surface. That is when it dawned on me – Windows 8 Hyper-V is the answer!
Microsoft Surface Administrative Hyper-V Virtual Machine Setup
The basic setup is this: Microsoft Surface connects via Remote Desktop to a dedicated Windows 8 Hyper-V virtual machine on the desktop. The Windows 8 Hyper-V VM then is used to perform all of the server setup tasks. This works especially well since the tablet may turn off to conserve power. If you use MegaRAC or other remote disk mounting through the JAVA applet, normally a machine going to sleep will break the remote mount disk connection. Using an always-on VM changes this and makes life easier.
The first step is to create a virtual machine. For this, we are using a Window 8 Enterprise guest OS in a Windows 8 Hyper-V virtual machine. For those looking for a Windows 8 Hyper-V installation guide there is a link. One can see from this screenshot that dynamic memory is enabled. The Windows 8 Enterprise Hyper-V VM only consumes around 876MB of RAM when only the Microsoft Surface is connected and no applications are open.
The next step is to make the VM Microsoft Surface friendly. The Windows 8 and Windows RT start menus have been given a lot of media grief, but this is an example where it shines. The trick here is to “cut the fat” on the Windows 8 Start screen. Upon initial installation, the Microsoft Windows 8 start menu comes with mail applications news applications and etc. None of these are ideal. Instead, right click on the items that are unnecessary and unpin them from the Start menu. For important applications, such as putty.exe, you need to pin them to the Start menu manually. After everything is complete, it may look something like this:
For LSI MegaRAID Storage Manager, one does need to manually install a shortcut to the start up file with administrative privileges. You can go to %appdata%\microsoft\windows\Start Menu\Programs\ and place the shortcut there, and go properties -> advanced -> Check Run as Administrator to make this work flawlessly from the Start menu. For those wondering, the top and bottom borders are the Remote Desktop app’s commands on the Microsoft Surface Windows RT app.
Next, be sure to map drives as necessary. This significantly lowers the number of clicks needed to do administrative tasks. One great one is to setup a network share with just operating system images. You can see below that a Synology DS1812+ houses the network shares.
Now, when you use the Microsoft Surface to log into the Hyper-V VM, it will look something like this when applications are running:
That picture has a putty session open to a Ubuntu Server host. It also has Supermicro IPMIView 2.0 running with a ISO mounted to a physical server. Both items are otherwise difficult on the Microsoft Surface due to compatibility or the need for a persistent connection.
That’s all there is to it. Almost embarrassingly, this was not an obvious to-do at first. Once it was setup, it works very well! One cool thing with Windows 8 is that using Remote Desktop on a touch device works really well. Setting up a specialty VM on the desktop for the Microsoft Surface to use is a must do. The best part is that once things are setup and stable, it works flawlessly. Until I can get a Haswell Microsoft Surface Pro, and possibly even after, this is going to be a mainstay administrative VM. Bottom line, this setup allowed me to do everything from flash a motherboard’s BIOS to installing Windows Server 2012 and setting that up all from a Microsoft Surface while watching football.