Exchange Server 2007 CCR on Windows Server 2008 Failover Cluster

I did a one day workshop on March 15 in Orlando at the Exchange Connections conference. As usual, it was a great deal of fun. However, for some reason, I never posted this blog entry until today.
 
Anyways, I decided to put some of the key bits of information out here for others to enjoy. I hope it helps everyone.
 
First off, we need to understand that putting up a CCR cluster requires several steps, which can be combined into four categories.
  1. Configure the Hardware
  2. Install and Configure the Operating System
  3. Install and Configure the Failover Cluster Feature
  4. Install and Configure Exchange Server 2007 on the Cluster
Configuring the hardware really isn’t difficult since we are talking about CCR. There is no need for a Storage Array Network (SAN) with all of the issues around creating, presenting, and securing Logical Unit Numbers (LUNs) for cluster storage. What we need to do here is just purchase our servers with two Network Interface Cards (NICs) and two internal disks.
 
Installing and configuring the operating system is also pretty straight forward. We need to use either the Enterprise or Datacenter version of Windows Server 2008 on each node. Once the OS is installed, each node needs to be joined to the domain.
 
One of the most important steps is to configure the operating system on each node with the proper role and features that are prerequisites for clustering and supporting Exchange Server 2007.
 
The prerequisites include:
  • Web Server (IIS) and its Required Features
  • Web Server (IIS) Role Services which includes:
    • ISAPI Extensions
    • Basic Authentication
    • Windows Authentication
    • IIS 6 Management Compatibility
  • Windows Powershell

These prerequisites can be installed through the GUI or through the command line. For command line, run the following commands:

  • ServerManagerCMD -i Web-Server
  • ServerManagerCMD -i Web-ISAPI-Ext
  • ServerManagerCMD -i Web-Metabase
  • ServerManagerCMD -i Web-Lgcy-Mgmt-Console
  • ServerManagerCMD -i Web-Basic-Auth
  • ServerManagerCMD -i Web-Windows-Auth
  • ServerManagerCMD -i PowerShell

The Web Server prerequisites are demonstrated in this IISPrerequisites recording, while the Windows Powershell install is shown in this Powershell recording using the GUI to install them.

The next step for the operating system configuration includes setting up the networks. The public network, also referred to as the client access point (CAP), is configured just like any other server. The network used for intracluster communications should be configured so that each NIC (one per node) uses a private IP address range and should not have a default gateway. It is a good practice to rename the networks so there is no confusion regarding their use.

Many cluster administrators will tune the intracluster communication network (also known as the private network or heartbeat network) so it is not configured with unnecessary services. For example, the private network should be configured as follows and as shown in this network clip:

  • Clear the checkbox for Client for Microsoft Networks
  • Clear the checkbox for QoS Packet Scheduler
  • Clear the checkbox for File and Printer Sharing for Microsoft Networks
  • Clear the checkboxes for the Link-Layer Topology options
  • Clear the checkbox for Register this connection’s address in DNS
  • Clear the checkbox for Enable LMHOSTS Lookup
  • Select the radio button for Disable NetBIOS over TCP/IP

Install and configure the failover cluster feature is the third major step in configuring our CCR cluster. This step is pretty easy. All we need to do here is add the Failover Cluster feature to each of our nodes so that they can be part of a cluster. The clip shows the steps of installing this feature. Actually, the feature is already installed in the clip, but it is easy to see from the clip how the feature would be installed on each node. You can also run the feature installation from the command line by running:

  • ServerManagerCMD -i Failover-Clustering

Now that the feature is installed, we can take the next step and actually create our cluster. The Create Cluster link can be used in a couple of different locations to create the cluster and configure it as shown in this Failover Cluster clip.

Once we have created the cluster, we need to change the quorum type to support CCR. The recommended quorum type is Node Majority with File Share Witness. This clip shows the process of configuring the File Share Witness.

Installing Exchange Server 2007 on the Cluster is the second to last step. In this step, we run the setup program from the Exchange Server 2007 installation media. During the installation, we will select the custom installation option and select Active Clustered Mailbox Role. The option to select either Cluster Continuous Replication or Single Copy Cluster is next. The process is seen here in this CCR Installation clip.

The last step is to run the setup program from the Exchange Server 2007 installation media on the other node and select the Passive Clustered Mailbox Role. The steps are the same for the passive node as for the active node with the exception of selecting the passive installation option.

PowerShell and Windows Server 2008 Failover Clusters

One of the major changes moving forward into Windows Server 2008 R2 is that some of the tools are being deprecated (I love that word) in favor of PowerShell.


Some people just screamed, “Wooo hooo, fantastic!” while others screamed, “Great, now I have to learn another tool after investing all of those years in the tools of the past!”


I, personally, take the first view point in that this is great news. It now forces me to start using PowerShell more than just in Exchange Server 2007. PowerShell will be the main tool in the future, so it is important to learn it now.


So, this is the perfect time to start talking about the differences and how we will now use PowerShell in Windows Server 2008 R2 failover clustering. Let’s start from the beginning.


Get-WindowsFeature in PowerShell will provide a list of all features and a checkbox will show whether they are installed or not.


Add-WindowsFeature Failover-Clustering will add the failover clustering feature along with the Remote Server Administrative Tools (RSAT) for Failover Clustering Tools.


From here on, it is all down hill. We have the feature installed, and the PowerShell module is imported. Like all PowerShell commands, the list can be broken down into Add, Block, Clear, Get, Grant, Move, New, Remove, Resume, Set, Start, Stop, Suspend, Test, and Update verbs. If you want to see a setting, you will generally use a Get verb combined with the noun describing what you want to find. For example, the Get-Cluster cmdlet will provide information about the cluster such as the domain name, the name of the cluster, and the description of the cluster along with several other bits of information. The various cmdlets related to failover clustering can be found by using the Get-Command –module FailoverClusters cmdlet. The resulting cmdlets are broken out by verb below.


Add cmdlets include the following:


  • Add-ClusterDisk
  • Add-ClusterFileServerRole
  • Add-ClusterGenericApplicationRole
  • Add-ClusterGenericScriptRole
  • Add-ClusterGenericServiceRole
  • Add-ClusterGroup
  • Add-ClusterNode
  • Add-ClusterPrintServerRole
  • Add-ClusterResource
  • Add-ClusterResourceDependency
  • Add-ClusterResourceType
  • Add-ClusterServerRole
  • Add-ClusterSharedVolume
  • Add-ClusterVirtualMachineRole

There is only one block cmdlet for failover clustering, and it is used to block users from accessing the failover cluster.


  • Block-ClusterAccess

There are two Clear cmdlets for failover clustering. Clear-ClusterDiskReservation is used to clear the persistent reservation on a disk. The Clear-ClusterNode is used to forcibly remove the failover cluster feature from a node.


  • Clear-ClusterDiskReservation
  • Clear-ClusterNode

The Get cmdlets are probably the most used. Get verbs allow for the easy retrieval of information about a failover cluster


  • Get-Cluster
  • Get-ClusterAccess
  • Get-ClusterAvailableDisk
  • Get-ClusterGroup
  • Get-ClusterLog
  • Get-ClusterNetwork
  • Get-ClusterNetworkInterface
  • Get-ClusterNode
  • Get-ClusterOwnerNode
  • Get-ClusterParameter
  • Get-ClusterQuorum
  • Get-ClusterResource
  • Get-ClusterResourceDependency
  • Get-ClusterResourceDependencyReport
  • Get-ClusterResourceType
  • Get-ClusterSharedVolume

The Grant verb is basically the reverse of the block verb. With the Grant-ClusterAccess cmdlet, you can provide full access to the failover cluster, and with the –readonly parameter, read only access can be provided.


  • Grant-ClusterAccess

The Move verb can be used to move resources between failover cluster nodes.


  • Move-ClusterGroup
  • Move-ClusterResource
  • Move-ClusterSharedVolume
  • Move-ClusterVirtualMachineRole

The New-Cluster cmdlet does just what it says it does. It creates new failover clusters.


  • New-Cluster

The Remove verb is used to delete resources or to completely destroy the cluster by using the Remove-Cluster cmdlet.


  • Remove-Cluster
  • Remove-ClusterAccess
  • Remove-ClusterGroup
  • Remove-ClusterNode
  • Remove-ClusterResource
  • Remove-ClusterResourceDependency
  • Remove-ClusterResourceType
  • Remove-ClusterSharedVolume

The Resume verb is used to resume either the activity on a node after it has been suspended or to take a cluster disk or cluster shared volume out of maintenance mode.


  • Resume-ClusterNode
  • Resume-ClusterResource

The Set cmdlets are extremely powerful in that they can be used to make changes to the cluster resources and the cluster itself.


  • Set-ClusterLog
  • Set-ClusterOwnerNode
  • Set-ClusterParameter
  • Set-ClusterQuorum
  • Set-ClusterResourceDependency

The Start verb is used to start the cluster service, for example with the Start-Cluster cmdlet, or to start groups or resources.


  • Start-Cluster
  • Start-ClusterGroup
  • Start-ClusterNode
  • Start-ClusterResource

If there is a Start verb, then it makes sense that there is a Stop verb that does the exact opposite. For example, you can shut down the cluster by using the Stop-Cluster cmdlet or you can stop entire groups or individual resources by using the Stop cmdlets below.


  • Stop-Cluster
  • Stop-ClusterGroup
  • Stop-ClusterNode
  • Stop-ClusterResource

The Suspend verb does the opposite of the Resume verb. The Suspend verb is used to pause a node by using the Suspend-ClusterNode cmdlet, and the Suspend-ClusterResource cmdlet will turn on maintenance mode for a disk resource or a cluster shared volume.


  • Suspend-ClusterNode
  • Suspend-ClusterResource

The Test-Cluster cmdlet is used to run the Validate tool. At first glace, you would think it would have been named something like Validate-Cluster, but to make the cmdlet consistent with other features and applications, the Test verb is used.


  • Test-Cluster

Update-ClusterIPResource is used to release the DHCP lease for IP Address resources and Update-ClusterVirtualMachineConfiguration is used to refresh the configuration settings when adding a new network adapter or to refresh other settings such as the virtual memory configuration for VMs running in the failover cluster.


  • Update-ClusterIPResource
  • Update-ClusterVirtualMachineConfiguration

To learn more about each command, use the help that is built into PowerShell. You will find that a simple command like, Get-Help CmdletName will retrieve some basic information, but if you extend it with the –full parameter or the –example parameter, and you can get an easy grasp of what you can do with the Cmdlet.

Antivirus for Windows Home Server

I was using the freebie that came with my WHS, which is provided by McAfee. So, me being a lazy person, I figured I would just purchase the product since the free trial ran out. Once on the console, it looked easy. I clicked the link to buy the product.


Well, that is where it because a major pain. While McAfee was more than willing to take my money, they don’t seem very willing to tell you how to install it. No problem, I will suck it up and call the tech support team. Well, the tech support team that handles home users does not support WHS. The Enterprise team supports WHS. Oh yeah, that makes sense. After about an hour on hold, I got to talk to a tech who did not seem to understand that WHS is a product and it is not just a server at my home. After going back and forth on hold and finally getting a tech that seemed to know what to do, I was cut off.


What to do, what to do… Being a bit of a hot head, I called McAfee and got my money back.


The solution? Avast has a WHS version, and it works like an add-on for WHS. It was fast, it was easy, and I am glad that I found Avast.

StarWind Software – Cluster Presentations

StarWind Software has been a wonderful partner to work with over the last few years. I first started working with the product when it was part of Rocket Division, but it was split off and became its own company several months ago.


I recently did a web cast for StarWind Software, and it was a fun project. They also have had several others do web casts on cluster topics. I highly recommend that everyone visit their site to learn more about clustering and to see how their product works with clustering. I think you will be happy to see it.


http://www.starwindsoftware.com/experts