Providing HA for vCenter with Windows 2008 Failover Clustering

by Paul on January 25, 2010

During a recent project, I was tasked with providing high availability for VMware vCenter Server 4.0 using Microsoft Windows 2008 Failover Clustering. Putting aside the fact that the VMware best practice dictates using vCenter Server Heartbeat AND the fact that I am not as familiar with Windows 2008 Failover Clustering, I began to scour the Interwebs for some how to articles.

What I found were several great resources for using Microsoft Cluster Services in vSphere, Windows 2008 Failover Clustering, and clustering vCenter Server 4 with Windows 2003 Cluster Services. What I did not find was anything on using Windows 2008 Failover Clustering and vCenter 4. Hence this post: Providing HA for vCenter 4.0 with Windows 2008 Failover Clustering.

This article is a high level how-to on creating and configuring an HA cluster. In the works is a more detailed version of this post in PDF format. I am in the process of updating the screen grabs and will publish very soon.

Note: If you intend to use Linked Mode, be aware the this configuration is not supported.

Assumptions

This article assumes you are looking to cluster two Windows Server 2008 virtual machines using the Failover Clustering feature in Windows 2008 and install vCenter Server 4.0 on both nodes (active/passive configuration) to provide high-availability.  It is also assumed that the vCenter instance will connect to a remote SQL 2008 database which is not installed on this cluster instance. So let’s begin.

Getting Started

In this example, I will review at a high level the steps required to create a Windows 2008 Failover Cluster on a pair of virtual machines running on VMware vSphere 4.0.

My config:

  • 2 x ESX 4.0 Update 1a servers fully configured (Service Console, VMKernel, VM Networks, shared storage)
  • 1 x Microsoft SQL Server 2008 for vCenter database and VUM database
  • 2 x Windows Server 2008 Enterprise Edition 64bit virtual machines at VM Hardware version 7 configured as follows:
    • 2 vCPU
    • 4GB RAM
    • 80GB Hard Disk connected to LSI Logic Parallel controller (SCSI Controller 0:1)
    • 2 x VMXNET3 adapters (one public, one private)
    • 2 x RDM Hard Disks connected to LSI Logic SAS controller in Physical Mode (SCSI Controller 1:0 & 1:1)
      • 1GB quorum (Drive Q:)
      • 20GB Data repository for VUM (Drive U:)
  • A fully working implementation of DNS and Active Directory
  • Domain Admin accounts (for creating the cluster)

I’m going to skip the cluster creation process as it is pretty straight forward and is well documented on Technet.

Installing vCenter

Here is where the fun begins! Assuming the cluster creation went without error and the failover process works, we can begin the installation of vCenter server on the owner of the cluster (most likely Node A). Before you begin the installation, verify the following:

  • Databases for vCenter Server and VMware Update Manager exists on the existing SQL server
  • Install the latest SQL Server 2008 Native Client on each node
  • 32bit Data Source Name (DSN) resources are created for vCenter and VMware Update Manager
  • SQL sa account and password are available

To create the DSN on a 64bit version of Windows, run the following command: C:WINDOWSSysWow64odbcad32.exe. The default ODBC tool under Administrative Tools creates a 64bit DSN which is not compatible with vCenter Server 4.0.

Continue with the vCenter Server installation on the first node. Choose the default installation location. Install vCenter on the second node and when prompted, select Do not overwrite, leave my existing database in place.

Once the installs are complete, copy the SSL certs from the first node to the second node. Since you never know when Murphy will show up, create a backup copy of the second node’s SSL certs before you overwrite them.

Configuring Cluster Services

After vCenter is installed on both nodes, you will need to configure the cluster for the vCenter services. Launch the Failover Cluster Management tool and create an empty service or application and name it VMware vCenter Server. Add the following generic services to this new container:

  • VMware VirtualCenter Management Webservices
  • VMware Virtual Center Server

Before bringing the resources online, you first need to modify vCenter’s Runtime settings to reflect the new Management IP (cluster IP) and the vCenter Server Name (cluster name).

In the clustering vSphere guide, it mentions to export the registry for the primary vCenter server and import it to the secondary vCenter server. After the settings change, bring the cluster resources online and attempt a failover. All should work without any issue.

Test Failover

Test the failover process to verify each node can host the resources. If you are logged into vCenter with the vSphere Client, you may need to log back in as your session will drop.

The full detailed PDF version of this configuration will be available for download soon. The doc will provide detailed steps on the following topics:

  • Creating and configuring a Microsoft SQL Server 2008 virtual machine cluster for use with vCenter and VMware Update Manager
  • Clustering vCenter 4.0
  • Clustering VMware Update Manager

Links

Windows Server 2008 Failover Clustering – Technet
Checklist for creating Failover Cluster – Technet
Setup for Failover Clustering and Microsoft Cluster Service – VMware
VMware KB Article 1010550 – Setting up vCenter Server in a Microsoft Service Cluster
VIOPS: Clustering vCenter Server 4.0 using Microsoft Cluster Services

  • http://twitter.com/dpironet Didier Pironet

    Hi Paul,
    This is an excellent post!
    As far as I remember by default you need 2 different scsi cards (SCSI Controller 1:0 & 2:0) for quorum and data, don't you?
    Thx,

  • http://socialcloudnow.com/ Paul Richards

    Hi Didier,
    Thanks for the comment. You do need two separate SCSI cards for the VM; 1 for the VM's main VMDK (0:0) and then one for the shared disk (1:0). You can separate the quorum from the shared data disk but it isn't a requirement.

    On a side note:
    I plan to update the post with another means of configuring the service for clustering. One of the issues I've noticed is that when you initiate a failover, the process tends to take a couple of minutes. I had two clusters configured identically and I was able to repeat the delay.

    To summarize what I did: I detroyed the existing cluster and created a new one. Gave it a name like server1-2 and assigned a new IP to the cluster name.
    Then I right-clicked and created a new service / application for the cluster. This also required a network name and IP. I used my original name and IP address, then selected the vCenter Server service along with VMware VirtualCenter Management Webservices and completed the wizard.

    Configuring the VMs and DSNs and everything else is the same. And of course, you could always use vCenter HeartBeat :)

    Hope this helps,
    Thanks
    Paul

  • Seppe

    Where can I find the PDF + DOC ?

    • http://socialcloudnow.com/ Paul Richards

      I don’t recommend using this for HA in production environments. If you want to provide HA for vCenter, I suggest you look at vCenter Server Heartbeat. If you still want a PDF version, you can create one from this post using the green PRINT/PDF button at the bottom of the post.

      -Paul

  • http://www.integral-it.co.uk Integral IT

    This link is broken – http://communities.vmware.com/docs/DOC-11538 goes to a 404 page now.

Previous post:

Next post: