I spent last week in Orlando, Florida, working at the Microsoft booth in the Storage Networking World. I delivered one of the demos there and my demo included the following technologies:
- Windows Unified Data Storage Server 2003 iSCSI Software Target
- Windows Server 2008 Core Install
- Windows Server 2008 iSCSI Initiator
- Windows Server 2008 Hyper-V
- Windows Server 2008 Failover Clustering
The main goal of the demo was to show how to configure highly available virtual machines.
We had two servers running Windows Server 2008 Core, both with the Hyper-V role installed and connected to an iSCSI Software Target, running WUDSS 2003. These two Windows Server 2008 Core servers were configured as a Failover Cluster using the iSCSI SAN as shared storage. We used a third Windows Server 2008 with a Full install to remotely manage the Failover Cluster and Hyper-V. Here's a little diagram of what it looked like:
To further simplify things, I created a single custom MMC (Microsoft Management Console) with all the snap-ins I needed during the demo, including:
Remote Desktop (to access the WUDDS Server GUI and the command-line UI in the two Hyper-V nodes)
Computer Management (two instances, one for each of the two Hyper-V nodes)
Failover Cluster Management
The demo steps included:
- Checking the WUDSS configuration
- Checking the Hyper-V Node 1 configuration via command line
- Checking the Hyper-V Node 1 configuration via remote Computer Management MMC
- Creating a new Virtual Machine on Node 1
- Making the Virtual Machine Highly Available
- Moving the Highly Available Virtual Machine to Node 2
Below are some screenshots I took during the event, showing the most relevent steps:
Checking the WUDSS configuration
The screenshot below shows the Management Server accessing the WUDDS box via a Remote Desktop. The WUDDS screen is just the center pane of the screen, with "Windows Unified Data Storage Server" on the title bar). It highlights the typical cluster configuration of a Microsoft iSCSI Software Target, exposing a set of LUNs to a set of Windows Servers. Note that we chose to identify the servers by IP address (we could also use other methods, like IQN, DNS name or MAC address). These two nodes are the two Hyper-V servers running Windows Server 2008 Core. It is also interesting to review the set of snap-ins included in the main custom MMC.
Checking the Node 1 configuration via command line
The next two screenshots show the Management Server accessing the Hyper-V node 1, running Windows Server 2008 Core. As expected, all we get is a command-line interface.
This first screenshot (Server Core UI is the green area only) shows network and firewall configuration, queried via netsh.exe.
This second screenshot (Server Core UI is the green area only) shows the built-in iSCSI initiator configuration (via iscsicli.exe) and the disks/volumes exposed to the server (via diskpart.exe).
Checking the Node 1 configuration via remote MMC
For those that prefer a GUI, the screenshot below uses a remote MMC to show the same disk and volume information, this time using a Computer Management MMC to connect to the Server Core box.
Creating a new Virtual Machine on Node 1
Next, we have a few screenshots showing how to create a Hyper-V Virtual Machine. We use a remote Hyper-V MMC to access node 1.
This first screen shows a step of the "New Virtual Machine Wizard" where you specify the location of the Virtual Machine configuration. Note that the folder used is in the E: drive, which is one of the iSCSI LUNs.
This second screen shows another step of the "New Virtual Machine Wizard" where you specify the location of the Virtual Hard Drive (VHD file) used. Again we use the E: drive here.
This third screen shows the final state with the VM fully configured. You can also see that we are managing Hyper-V via an MMC connected remotely to a Server Core box. Note that the Virtual Machine is still not running at this point.
Making the Virtual Machine Highly Available
Next we have a few screenshots showing the steps to make the VM highly available. We again use a remote MMC (this time the Failover Cluster Management MMC) to connect to the cluster (composed of the two Hyper-V nodes).
This first screen shows the "Configure a Service or Application" wizard (a.k.a. "High Availability Wizard") when we select the service to configure for high availability.
This second screen shows the moment in that wizard when we select the existing VM on node 1.
This third screen shows the final state, with the HA VM already started on node 1. You can verify that we are managing the Failover Cluster via a remote MMC. Note that the wizard automatically figured the dependency on the Cluster Disk E:.
Moving the Highly Available Virtual Machine to Node 2
The last set of screenshots shows how to move the VM from Node 1 to Node 2, by simply selecting the option to "Move service or application to another node". This starts the process to save the state of the VM on node 1, move the resources to Node 2 and restore the VM on node 2.
This first screen shows the VM being saved on node 1, right after we started the move.
This second screen shows a moment when the Cluster Disk is already online on node 2 and the VM is being restored.
This last screen shows the VM online on node 2, after the move is completed.
Note that the entire process takes just a few seconds and I actually had to repeat it a few times (moving the VM back and forth between nodes) to be able to capture all the screens. The messages would just fly off the screen before I could press "PrtScr", paste the image and come back for more.
Additional Comments and References
Please note that the configuration used was not fully fault tolerant. For instance, there was only one Ethernet switch. It was a demo, you know 🙂 . If you want to see more examples of configurations, including some that are fully fault tolerant, check my other post at: http://blogs.technet.com/josebda/archive/2007/12/07/high-availability-scenarios.aspx
Also note that is only one of the many ways to expose storage to a Hyper-V server and its child partitions. To see additional options, check my other two posts at http://blogs.technet.com/josebda/archive/2008/02/14/storage-options-for-windows-server-2008-s-hyper-v.aspx and http://blogs.technet.com/josebda/archive/2008/03/06/more-on-storage-options-for-windows-server-2008-s-hyper-v.aspx.
This is an updated and more detailed version of a post I created before the event, which is posted at http://blogs.technet.com/josebda/archive/2008/04/05/snw-demo-windows-server-2008-core-hyper-v-and-failover-clustering.aspx.