One thing I get asked a lot, is why I care so much about nested virtualization and the use case of such technology.

To understand nested virtualization we first need to look at traditional server virtualization.

Traditional Virtualization overview

In a traditional virtualization solution, the physical hardware is abstracted and presented to a guest operating system. The Virtual Machines (VM) are guests of the physical server and communicates with the physical hardware via the hypervisor.

Image 1

One physical server, hosts isolated Guest VMs

To provide high availability to the virtualizations solution we add clustering, Storage Area Networks (SAN) and duplicate of dependent peripheral configurations like network hardware and its configuration etc. The physical servers and attached configurations becomes a virtual datacenter that hosts the virtual machines. If we transition from one hypervisor vendor to another we need to convert the workload VMs to fit the new hypervisor. The conversion is sometimes a time-consuming and an expensive job that involves a lot of coordination.

This is something that we nowadays are quite familiar with.

Why nested virtualization then?

What if you wanted a copy of that configuration for testing or development purposes? How do you evolve and enhance your implementation? Do you have the possibility to test changes without impact to your production environment?

To install a virtual datacenter involves quite a lot of hardware that can be expensive and hard to move around.

You might need different configurations, developers for instance often have the need for many isolated environments with different settings. Building physical environments for each could be really expensive.

Nested Virtualization overview

In a nested virtualization solution, the physical hardware is abstracted and presented to a guest hypervisor VM as configurations. The guest hypervisor VM is a guest of the physical server.

The Guest VMs within the Guest hypervisor is unaware of the fact that the hypervisor is virtual and acts in the same way as if the hypervisor was installed in physical hardware.

To provide high availability to the virtualizations solution we use the same setup as in a traditional virtualization solution but we are able to emulate quite a lot of the periferal solutions such as SAN, Networks etc

Further possibilities with nested hypervisors

In a cloud solution, if a cloud vendor supports nested virtualization the format of the workload VM becomes irrelevant.

In a DevOps world the need to quickly build entire configurations becomes even more necessary. No more we can’t afford to have an expensive test environment J

What If we could build those configurations in Azure! the possibilities involved becomes mind blowing.

Microsoft Nested Virtualization

Microsoft has released a preview of nested virtualization in Windows 10 Insider Preview Build 10565

At the moment only Windows 10, Hyper-V is possible to nest but I expect that to change in the near future. Imagine the Host Hypervisor in Image 2 as a Nano Server with Hyper-V. The Guest Workload VMs as Docker/Windows Containers and full OS VMs. The future looks really interesting J

How to get started

How do I start exploring the possibilities with nested virtualization?

In my lab I installed a Windows 10 host hypervisor with two Windows 10 Guest Hypervisors. Within each guest hypervisor I installed a Guest VM workload with Windows Server 2016 Technical Preview 3

I tried to get the nesting to work in Windows Server 2016 Technical Preview 3 as well but I get an error message in the event log and the Hyper V Service wont start. “This device is not working properly because Windows cannot load the drivers required for this device. (Code 31)”

In a PPT from Microsoft https://t.co/ZqCkN16MIr the roadmap for System Center is reviled. The Windows Server 2016 Technical Previews has previously been released at the same time as System Center, so I hope I we will see Windows Server 2016 Technical Preview 4 in November as well.

I’m a big fan of Kanban in my work to visualize the work that are being performed. I recently re-read The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win http://itrevolution.com/books/phoenix-project-devops-book/ and decided that Kanban can help me on a personal level as well.

Said and done I looked around on internet and tried out a various set of software but they didn’t do what I wanted and added things that I consider unnecessary work (Installing this and that integrating it with 3:d party and it was a complete mess). I use Outlook and the calendar every day to plan my work so why not use that. No extra work to keep it running besides the normal day to day outlook tasks.Thanks and resources used are referenced at the end of the article.

When I receive an email I need to look in to I flag that e-mail or leave it unread, yep that’s how I roll J

The flow I use is to flag the e-mail and then color coding it to reflect the projects I’m working on.

In my Kanban Board I drag the flagged e-mail to either “Ideas” or “To Do”.