I present at conferences, in training classes and during consulting engagements, so I spend a lot of time perfecting demos in my home office so they will function as I intend when I'm travling. As a result, I've come to adore VMware's Workstation software as my go-to tool. VMware Workstation's desktop virtualization has helped me build the right Windows environments for teaching, training and presenting throughout the United States.
At least until lately. You see, VMware Workstation works great when you're demonstrating something in the Windows operating system. But Workstation doesn't help with the creation of Hyper-V environments. The technical reasons for this limitation are complex and too detailed for most users. The important point is that with today's technology, it is not possible to run a type-one hypervisor on top of another. The net effect is that I can't run Hyper-V on top of VMware Workstation no matter how much I want to.
Lately, I've presented quite a bit on Microsoft Hyper-V virtualization. This wouldn't have been a problem in Hyper-V's early days, when IT pros were still figuring out its basic functions. Back then, demonstrating the capabilities of a single Hyper-V host required a laptop that supported x64, hardware data
But these days, people want to see more than what I can display on a single Hyper-V host on a laptop. They need to see high availability with Windows failover clustering. They need to see management with Virtual Machine Manager. They need to understand how Live Migration feature and cluster-aware disk resources interrelate. All these needs are great, but satisfying them on the road is an absolute pain in the neck. A major source of this pain is the need for domain services to support the cluster as well as VMM's functionality. And this is a problem.
Well, at least until lately.
After what seemed like a ridiculous amount of time spent dreaming up a workable solution to demo all these capabilities, I found one. With the following steps, I'll explain how I've built a fully functional two-laptop solution that runs clustered Hyper-V as well as VMM.
Step one: Network together two laptops of equal configuration. Laptops of equal configuration are likely to have equivalent processors. While this isn't necessarily a hard-and-fast requirement because of Hyper-V R2's new processor-compatibility feature, it eliminates concerns and conflicts. Connect these laptops with a crossover cable, and configure each one's networking so they can communicate with each other. This will be critical for the upcoming steps. Networking each laptop to a LAN during the build of this environment can provide greater access to needed resources. Just make sure to test that crossover cable at the conclusion of your build.
Step two: Install iSCSI target software that supports Hyper-V and Windows failover clustering. Windows failover clustering requires shared storage, which usually arrives through some hardware system. For demo environments, you can easily create the same thing with software. I use StarWind Software's free version of iSCSI Target, which supports all the technologies needed for this environment in a nice, no-cost package.
Step three: Install the Hyper-V role and create a domain controller. Both VMM and the failover cluster feature require domain services. In this instance, those domain services will be hosted by a virtual machine on one host that is not configured for high availability. Create that domain controller (DC), and host it on one of the laptops. Alternatively, you can do a physical-to-virtual (P2V) migration of an existing domain controller. In either case, make sure that that DC is not configured for high availability because timing issues during subsequent reboots will cause the entire environment to fail. We discuss this problem in greater detail below.
Step four: Install Windows failover clustering and create a cluster. Once the DC and both laptops are joined in a trust relationship, create your Hyper-V cluster. Create that cluster using its standard installation procedures.
Step five: Install VMM and its prerequisites on one laptop. Installing VMM requires a number of prerequisites (such as SQL and the Windows Automated Installation Kit). Install all these components and VMM on your server. Then you can create virtual machines (VMs) and make them highly available. Do not enable the DC for high availability because it will reconfigure the DC's VM to operate as a cluster resource. Since starting a cluster requires the presence of domain services, this creates a catch-22: The cluster can't start because the DC isn't up, and the DC can't start because the cluster isn't up.
Completing all these steps should enable you to demonstrate of Hyper-V's capabilities anywhere. In my build, I started with VMM's native P2V feature to snap an online copy of my home-office's DC rather than create one anew. You'll find that VMM's console strongly suggests not doing this because of known problems with Update Serial Numbers Rollback. But in the case of a single domain controller, this problem shouldn't affect your demonstration environment.
Good luck, and happy Hyper-demoing!
This was first published in July 2009