Welcome!

SYS-CON UK Authors: Salvatore Genovese, Jamie Matusow

Related Topics: .NET, Virtualization

.NET: Blog Post

Step-by-Step: Building a Hyper-V Server 2012 Cluster - Part 1 of 2

Hyper-V Server 2012 provides an Enterprise-Ready Private Cloud Foundation!

Overhead at one of my recent IT Pro events:

The FREE Hyper-V Server 2012 sounds AWESOME! With the same features and scalability as the Hyper-V role in the full Windows Server 2012 OS, I could really use this to virtualize my application workloads very cost effectively.  But … I need high availability too!

HOW EASY IS IT TO CONFIGURE HYPER-V SERVER 2012 IN A CLUSTER?

- Kris”

Great question, Kris! Configuring our FREE Hyper-V Server 2012 in a highly available cluster can be really easy.  In this article, I’ll step through the configuration of a Hyper-V host cluster configuration that uses Hyper-V Server 2012 so that you'll have the details to step through this process in your own lab environment.

In Part 2 of this article series, I’ll finish up with the steps needed to provision and test a highly available virtual machine within your new cluster.

Let’s start with a common scenario …

In this article, we’ll be building a small 2-node Hyper-V Server 2012 host cluster, but the same steps below can be applied to much larger cluster configurations – the FREE Hyper-V Server 2012, like Windows Server 2012, supports up to 64 physical nodes and up to 8,000 virtual machines per cluster.

To build the operating system on each of the Hyper-V hosts, we can leverage the Getting Started Guide to perform the following basic post-installation configuration tasks using the SConfig.cmd script:

  • Set static IP address information on each NIC
    • I’d recommend at least three (3) physical NICs for each cluster host as follows:
      • One NIC for cluster management and storage
        • Connect to a local storage subnet and do not set a default gateway address
        • Note that NIC teaming should not be used for storage networks using iSCSI.  Instead, if more bandwidth and/or resiliency is needed than a single NIC can provide, consider using multiple NICs or iSCSI HBAs with MPIO configured.
      • One NIC or NIC Team for live migration traffic
        • Connect to a local live migration subnet and do net set a default gateway address
      • One NIC or NIC Team for client network traffic to/from the VMs.  
        • Connect to your client network, configure default gateway and DNS info on this NIC or NIC team.
    • Note: If you are interested in leveraging NIC teaming on your Hyper-V hosts to create high bandwidth resilient network connections for live migration and client network traffic interfaces, see this study guide on configuring NIC teaming from our “Early Experts” study group.
  • Set a desired computer name on each host
  • Join each host to an Active Directory domain
    • Note that Active Directory is required for normal operation of Failover Clustering in Hyper-V Server 2012 and Windows Server 2012.  However, the product team has enhanced clustering a bit so that a cluster can now be brought online in disaster recovery situations where Active Directory may not be available on the network.
  • Enable Remote Management and Remote Desktop

Once you’ve gone through these steps, you should now have two standalone Hyper-V hosts that are ready to be configured as part of a cluster.

But wait! I need Shared Storage, Don’t I?

Yes, indeed – for Hyper-V Host Clusters you’ll need to provide shared storage in one way or another that each Hyper-V host can access for storing highly available VM’s.  Commonly, shared storage between Hyper-V hosts in a cluster can be provided via:

  • Fibre Channel (FC) SAN Arrays
  • iSCSI SAN Arrays
  • SAS JBOD Enclosures with SAS Expanders
  • SMB 3.0 Shared Folders on a Windows Server 2012 file server or, preferably, by a Windows Server 2012 clustered file services role for continuous storage availability.

If you already have an investment in FC or iSCSI SAN storage, Windows Server 2012 and Hyper-V Server 2012 will certainly continue to support those array options as shared storage solutions – in fact, with new features, like support for Offloaded Data Transfer (ODX), newer intelligent SAN arrays can perform amazingly better than ever with Windows Server 2012 and Hyper-V Server 2012!

However, if you haven’t invested yet in an intelligent SAN array for shared storage, SAS and SMB 3.0 can be cost-effective shared storage alternatives worth your consideration for a Hyper-V host cluster.

SAS? SMB? I don’t recognize those as shared storage options for VMs!

Support for shared SAS enclosures and SMB 3.0 shared folders as shared storage options for VMs in a cluster is new with Windows Server 2012 and Hyper-V Server 2012.  Both options can provide cost effective alternatives to more expensive intelligent SAN arrays.

  • SAS enclosures are supported as shared storage in a failover cluster via our new Storage Spaces subsystem in Windows Server 2012 and Hyper-V Server 2012.  Along with OEM partners, we’ve demonstrated SAS solutions based on Storage Spaces that have achieved ~1 Million IOPs using commodity storage components.
  • SMB 3.0 has been enhanced in Windows Server 2012 and Hyper-V Server 2012 for large amounts of random IO in big files, such as what you’d typically find with VM’s hosted in a shared folder, and continuous availability of shared folders when configured in a Windows Server 2012 file services cluster.  In fact, when leveraging hardware that supports SMB Direct, our testing has shown that SMB storage traffic can be within 2% of the performance of direct attached storage!

Both of these options can simplify shared storage configurations tremendously by leveraging commodity storage components over easily configured interfaces.

It’s SMB 3.0 for ME!

I already have a Windows Server 2012 Failover Cluster that supports a number of clustered File Services roles in my environment, so I’ll be using SMB 3.0 shared folders as shared storage locations for my Hyper-V host cluster in this article.  I’ll create two “continuously available” shared folders on one of my clustered File Services roles as follows:

  • \\CAFSC01\HVCVMWitness – this clustered shared folder will be used as a witness by the new Hyper-V host cluster. A witness is a special resource that is used when a physical cluster node fails to determine which node is the “surviving” node to which clustered resources should failover.  In particular, it’s important to use a witness resource when you have an even number of physical nodes within your cluster, as we do in this 2-node cluster scenario.
  • \\CAFSC01\HVCVMStorage – this is a shared folder that I will use as a storage location for highly available virtual machines that I provision in the Hyper-V host cluster.

Note that each of your Hyper-V Server 2012 computer accounts in Active Directory will need to be granted Full Permissions to each of these shared folders and the underlying NTFS folder structure.

Let’s Build Our Hyper-V Host Cluster!

OK … now that we’ve got the basic infrastructure needs addressed, let’s start off by installing the Failover Clustering feature on each Hyper-V host and configuring an external Virtual Network Switch for VM network traffic.  Then we can move on to validating and configuring our new cluster.

Note: We can configure a Hyper-V host cluster remotely by using the Failover Cluster Manager GUI tool from a remote Windows Server 2012 management host or a Windows 8 admin client with the Remote Server Admin Toolkit (RSAT) installed.  However, in this article, I’ll make the assumption that you’ll be doing all of the cluster configuration from the Hyper-V Server 2012 host consoles directly using PowerShell … It’s really very easy!

On our Hyper-V Server 2012 consoles, we can configure our new Hyper-V host cluster by using a bit of PowerShell as follows:

  1. Install the Failover Clustering feature on each Hyper-V Server 2012 host using the Install-WindowsFeature cmdlet:

    Install-WindowsFeature –Name Failover-Clustering –IncludeManagementTools
  2. Configure an external virtual network switch on each Hyper-V Server 2012 host.  Be sure to use exactly the same virtual switch name on each host.  You can use the Get-NetAdapterName cmdlet first to verify the name of each network adapter to make sure you select the correct NIC for binding to the new virtual switch.

    Get-NetAdapterName

    Now that I know the name of my network adapter, I’m going to use the New-VMSwitch cmdlet to configure a new external switch named KEMLABNET01.

    New-VMSwitch “KEMLABNET01” –NetAdapterName “Ethernet 2” –AllowManagementOS:$True
  3. Next, let’s validate the configuration of our Hyper-V Server 2012 hosts to make sure they are compatible with a cluster configuration by using the Test-Cluster cmdlet.  For my new cluster, my individual Hyper-V host computer names are KEMLABHV06 and KEMLABHV07.

    Test-Cluster –Node KEMLABHV06,KEMLABHV07

    The output of the Test-Cluster cmdlet will be written to:

    C:\Users\[username]\AppData\Local\Temp\1\Validation Report [Date] at [Time].xml.mht

    Ultimately, we want to review this report and make sure that the cluster validation tests passed on each of our hosts.
  4. Now that we’ve validated our host configurations, we can create our new cluster with the New-Cluster cmdlet.  I’m going to name my new cluster KEMLABHVC01.

    New-Cluster –Name KEMLABHVC01 –Node KEMLABHV06,KEMLABHV07 –StaticAddress 192.168.249.40

    The output from the New-Cluster cmdlet will be logged to:

    C:\Windows\Cluster\Reports\Create Cluster Wizard [Cluster_Name] on [Date] at [Time].mht

    After creating your new cluster, it’s a good idea to review this report to ensure that no unexpected errors occurred.
  5. After our new cluster is created, our final step is to configure our file share witness with the Set-ClusterQuorum cmdlet:

    Set-ClusterQuorum –Cluster KEMLABHVC01 –NodeAndFileShareMajority \\CAFSC01\HVCWitness

That’s it! Our new Hyper-V host cluster is now built!

To test the status of our new cluster, we can use the Get-ClusterGroup cmdlet:

Get-ClusterGroup

This command should show that our Cluster Group resource group is online on one of our nodes.  Note that the Available Storage cluster resource group may show as Offline because in our configuration above, we aren’t using any shared disk storage – just SMB 3.0 shared folders!

What’s Next? Your Turn!

Now, you try it!

  • Download our FREE Hyper-V Server 2012 installation bits
  • Complete the process outlined above to build out your own Hyper-V Host Cluster

In Part 2 of this article series, I’ll step through provisioning and testing new virtual machines that are highly available on our new Hyper-V host cluster.

In the meantime …

Be sure to check out our “Early Experts” study group and our new “Virtualizer Quest" at http://aka.ms/EarlyExpertsVirtualizer.  The Virtualizer Quest includes structured study guides that walk through configuring the other new features associated with the Hyper-V role in Windows Server 2012 and Hyper-V Server 2012.

Along the way, you’ll be preparing for the new MCSA on Windows Server 2012 certification exams and be entered into a chance to win FREE MCSA Exam Vouchers in our December sweepstakes!

Are you ready to Cluster?

Did the article help you prepare for clustering Hyper-V hosts in your environment?  Be sure to leave your feedback, questions and comments below!

Keith

Build Your Lab! Build Your Lab! Download Windows Server 2012
Build Your Lab in the Cloud! Don’t Have a Lab? Build Your Lab in the Cloud with Windows Azure Virtual Machines
Join our "Early Experts" study group! Want to Get Certified? Join our Windows Server 2012 "Early Experts" Study Group

More Stories By Keith Mayer

Keith Mayer is a Technical Evangelist at Microsoft focused on Windows Infrastructure, Data Center Virtualization, Systems Management and Private Cloud. Keith has over 17 years of experience as a technical leader of complex IT projects, in diverse roles, such as Network Engineer, IT Manager, Technical Instructor and Consultant. He has consulted and trained thousands of IT professionals worldwide on the design and implementation of enterprise technology solutions.

Keith is currently certified on several Microsoft technologies, including System Center, Hyper-V, Windows, Windows Server, SharePoint and Exchange. He also holds other industry certifications from IBM, Cisco, Citrix, HP, CheckPoint, CompTIA and Interwoven.

Keith is the author of the IT Pros ROCK! Blog on Microsoft TechNet, voted as one of the Top 50 "Must Read" IT Blogs.

Keith also manages the Windows Server 2012 "Early Experts" Challenge - a FREE online study group for IT Pros interested in studying and preparing for certification on Windows Server 2012. Join us and become the next "Early Expert"!