Hyper-V Step-by-Step Guide: Hyper-V and Failover Clustering

This guide walks you through the steps required to set up Hyper-V™ and Failover Clustering to use these two technologies together.

Scenario overview

The Hyper-V role enables you to create a virtualized server computing environment using a technology that is part of the Windows Server® 2008 operating system. This solution is provided through Hyper-V. You can use a virtualized computing environment to improve the efficiency of your computing resources by utilizing more of your hardware resources.

The Failover Clustering feature enables you to create and manage failover clusters. A failover cluster is a group of independent computers that work together to increase the availability of applications and services. The clustered servers (called nodes) are connected by physical cables and by software. If one of the cluster nodes fails, another node begins to provide service (a process known as failover). Users experience a minimum of disruptions in service.

This guide shows you how to use these two technologies together to make a virtual machine highly available. You will do this by creating a simple two-node cluster and a virtual machine, and then failing over the virtual machine from one node to the other.

Requirements for using Hyper-V and Failover Clustering

To use the Hyper-V role on a failover cluster with two nodes, you need the hardware, software, accounts, and network infrastructure described in the sections that follow.

Hardware requirements for Hyper-V

Hyper-V requires an x64-based processor, hardware-assisted virtualization, and hardware data execution protection. You can identify systems that support the x64 architecture and Hyper-V by searching the Windows Server catalog for Hyper-V as an additional qualification. The Windows Server catalog is available at the Microsoft Web site http://go.microsoft.com/fwlink/?LinkId=111228.

Hardware requirements for a two-node failover cluster

You will need the following hardware for a two-node failover cluster:

Servers: We recommend that you use a set of matching computers that contain the same or similar components.Important

You should use only hardware components that are compatible with Windows Server 2008.

Network adapters and cable (for network communication): The network hardware, like other components in the failover cluster solution, must be compatible with Windows Server 2008. Your network adapters must be dedicated to either network communication or iSCSI, not both.
In the network infrastructure that connects your cluster nodes, avoid having single points of failure. There are multiple ways of accomplishing this. You can connect your cluster nodes by multiple, distinct networks. Alternatively, you can connect your cluster nodes with one network that is constructed with redundant switches, redundant routers, or similar hardware that removes single points of failure.Note

If you connect cluster nodes with a single network, the network will pass the redundancy requirement in the Validate a Configuration Wizard. However, the report from the wizard will include a warning that the network should not have single points of failure.

For Serial Attached SCSI or Fibre Channel: If you are using Serial Attached SCSI or Fibre Channel, in all clustered servers, the mass-storage device controllers that are dedicated to the cluster storage should be identical. They should also use the same firmware version.Note

With Windows Server 2008, you cannot use parallel SCSI to connect the storage to the clustered servers.

For iSCSI: If you are using iSCSI, each clustered server must have one or more network adapters or host bus adapters that are dedicated to the cluster storage. The network you use for iSCSI cannot be used for network communication. In all clustered servers, the network adapters you use to connect to the iSCSI storage target should be identical, and we recommend that you use Gigabit Ethernet or higher.Note

You cannot use teamed network adapters, because they are not supported with iSCSI.

Storage: You must use shared storage that is compatible with Windows Server 2008.
For a two-node failover cluster, the storage should contain at least two separate volumes (LUNs), configured at the hardware level. Do not expose the clustered volumes to servers that are not in the cluster. One volume will function as the witness disk (described later in this section). One volume will contain the files that are being shared between the cluster nodes. This volume serves as the shared storage on which you will create the virtual machine and the virtual hard disk. To complete the steps as described in this document, you only need to expose one volume.Note

If you plan to create and use more than one virtual machine, as a best practice, consider creating a separate volume for each virtual machine.

Storage requirements include the following:

To use the native disk support included in Failover Clustering, use basic disks, not dynamic disks.

We recommend that you format the partitions with NTFS (for the witness disk, the partition must be NTFS).

For the partition style of the disk, you can use either master boot record (MBR) or GUID partition table (GPT).

The witness disk is a disk in the cluster storage that is designated to hold a copy of the cluster configuration database. (A witness disk is part of some, not all, quorum configurations.) For this two-node cluster, the quorum configuration will be Node and Disk Majority, the default for a cluster with an even number of nodes. Node and Disk Majority means that the nodes and the witness disk each contain copies of the cluster configuration, and the cluster has quorum as long as a majority (two out of three) of these copies are available.

Deploying storage area networks with failover clusters

When deploying a storage area network (SAN) with a failover cluster, follow these guidelines:

Confirm compatibility of the storage: Confirm with manufacturers and vendors that the storage, including drivers, firmware, and software used for the storage, are compatible with failover clusters in Windows Server 2008.Important

Storage that was compatible with server clusters in Windows Server 2003 might not be compatible with failover clusters in Windows Server 2008. Contact your vendor to ensure that your storage is compatible with failover clusters in Windows Server 2008.

Failover clusters include the following new requirements for storage:

Because improvements in failover clusters require that the storage respond correctly to specific SCSI commands, the storage must follow the standard called SCSI Primary Commands-3 (SPC-3). In particular, the storage must support Persistent Reservations as specified in the SPC-3 standard.

The miniport driver used for the storage must work with the Microsoft Storport storage driver.

Isolate storage devices, one cluster per device: Servers from different clusters must not be able to access the same storage devices. In most cases, a LUN that is used for one set of cluster servers should be isolated from all other servers through LUN masking or zoning.

Consider using multipath I/O software: In a highly available storage fabric, you can deploy failover clusters with multiple host bus adapters by using multipath I/O software. This provides the highest level of redundancy and availability. For Windows Server 2008, your multipath solution must be based on Microsoft Multipath I/O (MPIO). Your hardware vendor will usually supply an MPIO device-specific module (DSM) for your hardware, although Windows Server 2008 includes one or more DSMs as part of the operating system.Important

Host bus adapters and multipath I/O software can be very version sensitive. If you are implementing a multipath solution for your cluster, you should work closely with your hardware vendor to choose the correct adapters, firmware, and software for Windows Server 2008.

Software requirements for using Hyper-V and Failover Clustering

The following are the software requirements for using Hyper-V and Failover Clustering:

Windows Server 2008 Enterprise or Windows Server 2008 Datacenter must be used for the physical computers. These servers must run the same version of Windows Server 2008, including the same type of installation. That is, both servers must be either a full installation or a Server Core installation. The instructions in this guide assume that both servers are running a full installation of Windows Server 2008.

If you do not want to install Windows Server 2008 Enterprise or Windows Server 2008 Datacenter on the test virtual machine, you will need the installation media for the operating system. The instructions in this guide assume that you will install Windows Server 2008 on the virtual machine.

You will need the following network infrastructure for a two-node failover cluster and an administrative account with the following domain permissions:

Network settings and IP addresses: When you use identical network adapters for a network, also use identical communication settings on those adapters (for example, Speed, Duplex Mode, Flow Control, and Media Type). Also, compare the settings between the network adapter and the switch it connects to and make sure that no settings are in conflict.
If you have private networks that are not routed to the rest of your network infrastructure, ensure that each of these private networks uses a unique subnet. This is necessary even if you give each network adapter a unique IP address. For example, if you have a cluster node in a central office that uses one physical network, and another node in a branch office that uses a separate physical network, do not specify 10.0.0.0/24 for both networks, even if you give each adapter a unique IP address.
For more information about the network adapters, see Hardware requirements for a two-node failover cluster, earlier in this guide.

DNS: The servers in the cluster must be using Domain Name System (DNS) for name resolution. The DNS dynamic update protocol can be used.

Domain role: All servers in the cluster must be in the same Active Directory domain. As a best practice, all clustered servers should have the same domain role (either member server or domain controller). The recommended role is member server.

Domain controller: We recommend that your clustered servers be member servers. If they are, you need an additional server that acts as the domain controller in the domain that contains your failover cluster.

Clients: As needed, you can connect one or more networked clients to the failover cluster that you create, and observe the effect on a client when you move or fail over the highly available virtual machine from one cluster node to the other.

Account for administering the cluster: When you first create a cluster or add servers to it, you must be logged on to the domain with an account that has administrator rights and permissions on all servers in that cluster. The account does not need to be a Domain Admins account, but can be a Domain Users account that is in the Administrators group on each clustered server. In addition, if the account is not a Domain Admins account, the account (or the group that the account is a member of) must be given the Create Computer Objectspermission in the domain.Note

There is a change in the way the Cluster service runs in Windows Server 2008, as compared to Windows Server 2003. In Windows Server 2008, there is no Cluster service account. Instead, the Cluster service automatically runs in a special context that provides the specific permissions and privileges that are necessary for the service (similar to the local system context, but with reduced privileges).

Connect and configure the networks that the servers in the cluster will use.

Note

If you want to include clients or a non-clustered domain controller as part of your test configuration, make sure that these computers can connect to the clustered servers through at least one network.

Follow the manufacturer’s instructions for physically connecting the servers to the storage.

Ensure that the disks (LUNs) that you want to use in the cluster are exposed to the servers that you will cluster (and only those servers). You can use any of the following interfaces to expose disks or LUNs:

The interface provided by the manufacturer of the storage.

An appropriate iSCSI interface.

Microsoft Storage Manager for SANs (part of the operating system in Windows Server 2008). To use this interface, you need to contact the manufacturer of your storage for a Virtual Disk Service (VDS) provider package that is designed for your storage.

If you have purchased software that controls the format or function of the disk, follow instructions from the vendor about how to use that software with Windows Server 2008.

On one of the servers that you want to cluster, click Start, click Administrative Tools, click Computer Management, and then click Disk Management. (If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.) In Disk Management, confirm that the cluster disks are visible.

If you want to have a storage volume larger than 2 terabytes, and you are using the Windows interface to control the format of the disk, convert that disk to the partition style called GUID partition table (GPT). To do this, back up any data on the disk, delete all volumes on the disk and then, in Disk Management, right-click the disk (not a partition) and click Convert to GPT Disk. For volumes smaller than 2 terabytes, instead of using GPT, you can use the partition style called master boot record (MBR).

Important

You can use either MBR or GPT for a disk that is used by a failover cluster, but you cannot use a disk that you converted to dynamic by using Disk Management.

If you purchased software that controls the format or function of the disk, contact the vendor for instructions about how to use that software with Windows Server 2008.

Check the format of any exposed volume or LUN. We recommend NTFS for the format (for the witness disk, you must use NTFS).

In this step, you install the Hyper-V role and the Failover Clustering feature.

Procedure 1: Install the Hyper-V role

In this procedure, you install the Hyper-V role on both servers.

To install the role

Click Start, and then click Server Manager.

In the Roles Summary area of the Server Manager main window, click Add Roles.

On the Select Server Roles page, click Hyper-V.

On the Create Virtual Networks page, if the network adapters are identical on both physical computers, select a physical adapter to create a virtual network that provides access to the physical network. If the network adapters are not identical, do not create a virtual network at this time. You can create the virtual network later by following the instructions in Step 4, Create a virtual network.

On the Confirm Installation Selections page, click Install.

The computer must be restarted to complete the installation. Click Close to finish the wizard, and then click Yes to restart the computer.

After you restart the computer, log on with the same account you used to install the role. After the Resume Configuration Wizard completes the installation, click Close to finish the wizard.

Procedure 2: Install the failover cluster feature

In this step, you install the failover cluster feature on both servers. The servers must be running Windows Server 2008.

To install the failover cluster feature on the servers

If you recently installed Windows Server 2008, the Initial Configuration Tasks interface is displayed. Under Customize This Server, click Add features. Then skip to step 3.

If the Initial Configuration Tasks interface is not displayed and Server Manager is not running, click Start, click Administrative Tools, and then clickServer Manager. (If the User Account Control dialog box appears, confirm that the action it displays is what you want, and then click Continue.)

In Server Manager, under Features Summary, click Add Features.

In the Add Features Wizard, click Failover Clustering, and then click Install.

Follow the instructions in the wizard to complete the installation of the feature. When the wizard finishes, close it.

Repeat the process for the second server.

Step 3: Create a virtual network

You will need to perform this step on both physical computers if you did not create the virtual network when you installed the Hyper-V role. This virtual network provides the highly available virtual machine with access to the physical network.

To create a virtual network

Open Hyper-V Manager.

From the Actions menu, click Virtual Network Manager.

Under Create virtual network, select External.

Click Add. The New Virtual Network page appears.

Type a name for the new network. Make sure you use exactly the same name on both servers running Hyper-V.

Under Connection Type, click External and then select the physical network adapter.

Click OK.

Step 4: Validate the cluster configuration

Before you create the cluster, we strongly recommend that you run a full validation test of your configuration. Validation helps you confirm that the configuration of your servers, network, and storage meets a set of specific requirements for failover clusters.

To validate the failover cluster configuration

To open the failover cluster snap-in, click Start, click Administrative Tools, and then click Failover Cluster Management. (If the User Account Controldialog box appears, confirm that the action it displays is what you want, and then click Continue.)

Confirm that Failover Cluster Management is selected and then, in the center pane under Management, click Validate a Configuration.

Follow the instructions in the wizard to specify the two servers. Run all tests to fully validate the cluster before creating a cluster.

The Summary page appears after the tests run. To view Help topics that will help you interpret the results, click More about cluster validation tests.

While still on the Summary page, click View Reportand read the test results. Or, to view the results of the tests after you close the wizard, see

SystemRoot\Cluster\Reports\Validation Report date and time.htm

where SystemRoot is the folder in which the operating system is installed (for example, C:\Windows).

As necessary, make changes to the configuration and rerun the tests.

Step 5: Create the cluster

To create a cluster, you run the Create Cluster wizard.

To run the Create Cluster wizard

To open the failover cluster snap-in, click Start, click Administrative Tools, and then click Failover Cluster Management. (If the User Account Controldialog box appears, confirm that the action it displays is what you want, and then click Continue.)

Confirm that Failover Cluster Management is selected and then, in the center pane under Management, click Create a cluster.

In this step, you create a virtual machine and reconfigure the automatic action that controls the virtual machine’s behavior when the Hyper-V Virtual Machine Management service starts.

Procedure 1: Create a virtual machine

In this step, you use the New Virtual Machine Wizard to create a virtual machine.

Important

You must choose the shared storage as the location to store the virtual machine and the virtual hard disk. Otherwise, you will not be able to make the virtual machine highly available. To make the shared storage available to the virtual machine, you must create the virtual machine on the physical computer that is the node which owns the storage.

To create a virtual machine

Open Hyper-V Manager. Click Start, point to Administrative Tools, and then click Hyper-V Manager.

If you are not already connected to the server that owns the shared storage, connect to that server.

From the Action pane, click New, and then click Virtual Machine.

From the New Virtual Machine Wizard, click Next.

On the Specify Name and Location page, specify a name for the virtual machine, such as FailoverTest. Click Store the virtual machine in a different location, and then type the full path or click Browse and navigate to the shared storage.

On the Memory page, specify the amount of memory required for the operating system that will run on this virtual machine. For example, specify 1024 MB to run Windows Server 2008.

On the Networking page, connect the network adapter to the virtual network that is associated with the physical network adapter.

On the Connect Virtual Hard Disk page, click Create a virtual hard disk. If you want to change the name, type new a name for the virtual hard disk. ClickNext.

On the Installation Options page, click Install an operating system from a boot CD/DVD-ROM. Under Media, specify the location of the media, and then click Finish.

Important

Do not start the virtual machine at this point. The virtual machine must be turned off so that you can make it highly available.

Automatic actions let you automatically manage the state of the virtual machine when the Hyper-V Virtual Machine Management service starts or stops. However, when you make a virtual machine highly available, the management of virtual machine state should be controlled through the Cluster service. In this step, you reconfigure the automatic start action for the virtual machine.

Important

Do not to intentionally shut down a node while a virtual machine is running on the node. If you need to shut down the node, take the virtual machine offline, and then shut down the node. Step 11: Modify the settings of a virtual machineshows you how to take a virtual machine offline.

To reconfigure automatic start action for the virtual machine

In Hyper-V Manager, under Virtual Machines, right-click FailoverTest and then click Settings.

In the left pane, click Automatic Start Action.

Under What do you want this virtual machine to do when the physical computer starts?, click Nothing and then click Apply.

Step 7: Make the virtual machine highly available

To make the virtual machine highly available, you run the High Availability Wizard.

To make a virtual machine highly available

To open the failover cluster snap-in, click Start, click Administrative Tools, and then click Failover Cluster Management. (If the User Account Controldialog box appears, confirm that the action it displays is what you want, and then click Continue.)

Right-click Services and Applications and click Configure a Service or Application.

The High Availability wizard opens. Click Next.

On the Select Service or Application page, select Virtual Machine from the list and then click Next.

On the Select Virtual Machine page, check the name of the virtual machine that you want to make highly available and then click Next.

Confirm your selection and then click Next again.

The wizard configures the virtual machine for high availability and provides a summary. To see the details of the configuration, click View Report. To close the wizard, click Finish.

To verify that the virtual machine is now highly available, you can check in either one of two places in the console tree:

Expand Services and Applications. The virtual machine should be listed under Services and Applications.

Expand Nodes. Select the node on which you created the virtual machine. Under Services and Applications in the Results pane (the center pane), the virtual machine should be listed.

To bring the virtual machine online, under Services and Applications, right-click the virtual machine and then click Bring this service or application online. This action will bring the virtual machine online and start it.

Step 8: Configure the virtual machine

In this step, you install Windows Server 2008 on the virtual machine you created in step 5. Then, you install the integration services, which improve performance and integration with the physical computer.

From the Virtual Machines section of the results pane, right-click the name of the virtual machine you created in step 4 and click Connect. The Virtual Machine Connection tool will open.

Proceed through the installation.

Note

When you are at the point where you need to provide input to complete the process, move the mouse cursor over the image of the setup window. After the mouse pointer changes to a small dot, click anywhere in the virtual machine window. This action “captures” the mouse so that keyboard and mouse input is sent to the virtual machine. To return the mouse input to the physical computer, press Ctrl+Alt+Left arrow and then move the mouse pointer outside of the virtual machine window.

After the operating system is set up, you are ready to install the integration services. From the Action menu of Virtual Machine Connection, click Insert Integration Services Setup Disk. If Autorun does not start the installation automatically, you can start it manually. From a command prompt, type:%windir%\support\amd64\setup.exe.

Step 9: Test a planned failover

To test a planned failover, you use Failover Cluster Management to move this service or application to another node.

To test a planned failover

From the console tree, select Services and Applications and then point to FailoverTest.

Right-click the virtual machine, point to Move this service or application to another node, and click the name of the other node.

You can verify that the move succeeded by inspecting the details of each node.

Step 10: Test an unplanned failover

To test an unplanned failover, you stop the Cluster service.

To test an unplanned failover

To open the failover cluster snap-in, click Start, click Administrative Tools, and then click Failover Cluster Management. (If the User Account Controldialog box appears, confirm that the action it displays is what you want, and then click Continue.)

From the console tree, select Nodes and then right-click the node that runs the virtual machine.

Select More Actions and then click Stop Cluster Service.

Click Stop the cluster service to confirm the action.

The virtual machine will be moved to the other node.

Step 11: Modify the settings of a virtual machine

If you need to modify the settings of a virtual machine, you must follow a specific order. This step walks you through this process by showing you how to modify the boot order in the virtual machine.

To reconfigure a virtual machine

In the Failover Cluster Management snap-in, expand Services and Applications if it is not already expanded.

Under Services and Applications, select FailoverTest.

In the results pane, right-click the virtual machine resource and then click Properties.

Click the Offline Actions tab, and then select Shut down. Click OK.

In the results pane, right-click Failover and then click Take this resource offline.

Open Hyper-V Manager. Under Virtual Machines, right-click FailoverTest and then click Settings.

In the left pane, click BIOS.

Under Startup order, click IDE and then click OK.

Switch back to the Failover Cluster Management snap-in.

In the results pane, right-click Failover and then click Bring this resource online.

Right-click Failover again, and then click Properties.

Click the Offline Actions tab, and then select Save. Click OK.

Step 12: Remove a virtual machine from a cluster

When you want to remove a virtual machine from a cluster, the procedure you need to use varies depending on whether you want to keep the virtual machine. This step illustrates both scenarios.

Scenario A: To remove a virtual machine from a cluster and retain the virtual machine

Use the Failover Cluster Management snap-in to take the virtual machine offline. Under Services and Applications, select FailoverTest. In the results pane, right-click Failover and then click Take this resource offline.

This is an optional step that shows you how to export the virtual machine. Exporting a virtual machine allows you to move the virtual machine to another server running Hyper-V, such as a non-clustered server. Switch to Hyper-V Manager and verify that FailoverTest is selected. Under Actions, click Export. Type or browse to specify a location in which to export the virtual machine, and then click Export.

In Hyper-V Manager, verify that FailoverTest is selected. Under Actions, click Delete.

Switch to the Failover Cluster Management snap-in. Expand Services and Applications, and then select FailoverTest. Right-click FailoverTest and then click Delete. This action removes the virtual machine from the cluster.

Important

The following steps show you how to delete a virtual machine and its files. Perform these steps only if you do not want to keep the virtual machine.

Scenario B: To remove a virtual machine from a cluster and delete the virtual machine

Use the Failover Cluster Management snap-in to take the virtual machine offline. Under Services and Applications, select FailoverTest. In the results pane, right-click Failover and then click Take this resource offline.

Switch to the Failover Cluster Management snap-in. Expand Services and Applications, and then select FailoverTest. Right-click FailoverTest and then click Delete. This action removes the virtual machine from the cluster.

Manually delete the virtual machine, and virtual hard disk from the shared storage.

Increased functionality and virtual machine control in the Windows Server 2008 Failover Cluster Management console for the Hyper-V role (KB 951308) is now available. The KB (http://support.microsoft.com/kb/951308O describes the changes in the hotfx that update the Failover Cluster Management console (the Cluadmin.msc file) and server components of the failover cluster, including:

Changes to the virtual machine view
After you install this update, the actions for virtual computers are “online,” “offline,” “start,” “stop,” “shutdown,” and “turnoff.”

Changes to virtual machine actionsAfter you install this update, the only action in the Failover Cluster Management console for the Hyper-V role is Move Virtual Machines. This action causes each virtual machine that is in the running state to move by using the “save state” shutdown option. If the virtual machine is not in the running state, it does not have to be shut down, and its state will not change during the move.

Allow for more than one virtual machine in a “Services or Applications” group
After you install this update, the Failover Cluster Management console allows for more than one virtual machine. The High Availability Role Wizard for virtual machines identifies virtual machines that have files on the same disk and enables those virtual machines to be configured for High Availability. Therefore, the virtual machines will be in the same Services and Applications group. If the Services and Applications group moves to another node, all the virtual machines in that group are also moved.

Add support for mount points or volumes without a drive letter
After you install this update, the High Availability Wizard can detect when files for a virtual machine are on a volume that is using a mount point or a GUID instead of a drive letter. Additionally, the High Availability Wizard moves the appropriate disks into the same Service or Application group as the virtual machine resource.

Changes to the virtual machine refresh action
After you install this update, a refresh of a virtual machine in a group refreshes all the virtual machines in that group.

Behavior changes if any node of the failover cluster has a disconnected virtual machine
Fixes the conditions that gave you the error: “An error was encountered while loading the list of available virtual machine. Value cannot be null. Parameter name: managementObject.”

Behavior change when you add a pass-through disk to a virtual machine
After you install this update, the Failover Cluster Management console correctly shows that the configuration change is not successful.

Behavior change when the parent differencing disk is not on shared storage
Differencing disks have parent and child relationships. When a differencing disk is configured, a parent disk is specified, and that parent VHD is required to be available for the child differencing disk to function. The parent and child VHDs must be on disks that are in the same Services or Applications group as the virtual machine resource.
Before you install this update, if the parent disk is not located correctly, the virtual machine may not start because not all the VHDs are located on the same failover cluster node. This update detects the location of the parent VHD and provides a warning if the parent VHD is not on a disk that is configured for shared storage.

Volume path copy
This update lets the path of a storage volume to be copied from the properties of the disk resource in the Failover Cluster Manager console. When you configure a virtual machine, the paths of the volumes must be specified for the disks that will be used. After you apply this update, the path can be copied from the properties of the disk in the Failover Cluster Manager console. This is useful when the path is very long, such as when a volume uses a GUID instead of a drive letter.
See Also:
824684 (http://support.microsoft.com/kb/824684/LN/) Description of the standard terminology that is used to describe Microsoft software updates
950050 (http://support.microsoft.com/kb/950050/) Description of the update for the release version of the Hyper-V technology for Windows Server 2008

There are many ways to implement Windows Server Failover Clustering with Hyper-V. I could actually find six unique methods to do it. Some of them will actually not give you a fully fault-tolerant solution, but most of them actually make sense in specific scenarios (even if only for demonstrations). In any case, just trying to understand and differentiate them will probably be a good exercise.