Exchange supports clustering since version 5.5. This was not fully cluster-aware. Instead it made use of the Windows Cluster's Generic Resource DLL to support its clustering functionality. The first pure cluster-aware version was Exchange 2000.
Tip: What is a Cluster-aware application?
An application that understands the functions or messages generated by the Clustering Software is called a cluster-aware application. Cluster-awareness comes from a Resource DLL which talks to the Resource Monitor of the Clustering Software.
In this article we will discuss and explain the following topics in detail:
- What is Clustering?
- How does Exchange Clustering works?
- Which components make up an Exchange Cluster?
- How to cluster Exchange Server 2000/2003/2007?
- Exchange Clustering requirements, best practices and Limitations
What is Clustering?
A cluster is a set of computers running together to ensure the availability of a service or application to client computers accessing it over the network. There are many clustering technologies available today. Exchange could also be clustered with VERITAS Cluster Server but we will limit our discussion to the Microsoft Clustering Technologies.
Cluster support was introduced with Windows NT Enterprise Edition and continues to be included with the latest Operating Systems. Microsoft provides two clustering options: Microsoft Cluster Server (MSCS) and Network Load Balancing (NLB). MSCS is for failover clustering, whereas NLB is for load balancing the TCP/IP requests coming from the clients over the network. In this article, we will limit our discussion to the MSCS failover technology. We will not discuss anything about the Load Balancing or NLB clusters.
Tip: What is Active and Passive node?
An Active Cluster Node is a node on which at any given time all the resources of an application will be running. A Passive node is waiting for a failure and is responsible to bring the resources online in case the Active Node fails.
There are two types of MSCS clusters: Active/Active and Active/Passive.
Active/Active: In this mode, all the resources of an application will be running on both nodes, serving multiple client requests coming over the network.
Active/Passive: In this mode, one node will be serving client's requests coming over the network and another node waits for the Active Node to go offline to take the resources online. Microsoft recommends active/passive clustering for Exchange. I will discuss this later as to know why this recommendation is given.
How does Exchange Clustering Works?
Clustering software is the base for every application which is to be clustered. Without this base, it is not possible to cluster any application. Microsoft Clustering software understands an application by its type, its resource DLL, and its functionality in the cluster.
Tip: What is a Resource DLL?
A Resource DLL is a component of a cluster-aware application, used by the Clustering software to track the application's availability, as shown in figure below.
Figure A.1 - Monitoring resources via Resource DLL
In the simple figure above, you can see how clustering works. Node A which is Active serves the client's requests coming over the network and reports the status of its resources (Exchange Resources) to the Clustering Software every 20 seconds via the Resource DLL. If anything goes wrong with Node A, the Exchange Resources will be failed over to Node B which is passive in this example. In this example, we are running two nodes. However we could have more nodes depending on the Operating System version.
Tip: What is a Resource Monitor?
A Resource Monitor is a Clustering Software component that requests Resource DLLs to report the application status.
In the above example, client computers are using the Exchange Virtual Server (EVS) IP Address 192.168.1.9 to access Exchange. If anything goes wrong with Node A, the EVS resource including its sub-resources will be failed over to Node B. Clients will be able to access the Exchange Server as usual using the Exchange Virtual Server IP Address 192.168.1.9. Finally the Resource DLL at Node B will be active to monitor the Exchange resources and report the status to the Clustering Software in the same manner it was active on Node A.
Tip: What is an Exchange Virtual Server (EVS)?
An EVS identifies the role of Exchange in a cluster environment. The EVS is generally identified by its name or IP Address as shown in the above figure.
Which components make up an Exchange Cluster?
Operating System Version
Depending on the number of nodes required, you need to select the Operating System version to be used for clustering Exchange. Clustering Software ships with the Operating System Advanced and Datacenter Editions. For node limits, please see the "Exchange Clustering Facts" section in this article.
Network Cards
In a two node clustering, you need at least four NIC cards. One NIC card is required for client computers accessing the EVS over the network. The other NIC is for clustering software to exchange heartbeats.
IP Addresses
The number of IPs required depends on the number of Exchange Virtual Server instances. As an example, if you are planning to install one Exchange Virtual Server in a two node Active/Passive cluster then you need at least 5 IP Addresses:
2 IPs for Public NICs on both nodes
2 IPs for Private NICs on both nodes
1 IP for the Exchange Virtual Server
Client computers will connect using the Exchange Virtual Server IP.
EVS Group
EVS Group is the name given to the cluster group in our example. This is required to club all the Exchange Resources in a group for proper visibility. The EVS will contain all the resources related exclusively to Exchange.
Network Name and EVS IP Address
The EVS Group will contain the Network Name and IP Addresses for the Exchange Virtual Server. The Exchange Virtual Server IP Address or the Network Name is used by the client computers to access Exchange over the network.
Shared Storage Disks
A shared disks for each Exchange Virtual Server instance is required. Each must be accessible by all nodes. Also a separate disk is required by the clustering software for Quorum. Quorum is a shared disk connected to the cluster nodes. This disk is used by the clustering software to determine which node should be active and owner of the cluster. More details are available from:
http://support.microsoft.com/kb/818675/en-us
How to cluster Exchange Server 2000/2003/2007?
Clustering Exchange 2007 Services is an easy task provided you have configured the Clustering Software (MSCS) on the Operating System. Clustering Exchange 2000 and 2003 require some manual efforts. In this case, you need to create a few resources manually. These resources are created automatically in case of Exchange 2007. I will walk you through the steps to create an Exchange Cluster.
There are four steps to be performed to cluster Exchange Server 2000/2003:
- Prepare Active Directory to support Exchange 2000/2003
- Install and Configure the Clustering Service
- Install Exchange on each node one by one
- Create the Exchange Virtual Server cluster resource
1. Prepare Active Directory to support Exchange 2000/2003
As with non-clustered installations Active Directory and the domain need to be Preped. In this step you will run the following commands:
Setup /ForestPrep
Setup /DomainPrep
2. Install and Configure the Clustering Service
Following ForestPrep and DomainPrep, you need to prepare the clustering service on each node. If you have two nodes, both must join the cluster and a cluster group must be created.
Please refer to this article at Microsoft site to install the Clustering Software
Secondly you need to enable the services required by Exchange. This.NET FrameWork, ASP.NET, and IIS must be enabled and started depending on the Operating System on which you're going to install the Exchange.
In addition to the standard requirements, the Microsoft Distributed Transaction Coordinator (MSDTC) is required for clustering Exchange. This resource must be created separately before executing the Exchange installation.
To install MSDTC in Windows 2000 Server, use ComClust.exe.
To install MSDTC in Windows 2003 Server, create a resource in the clustering software.
For more information on how to install MSDTC, please use the below link as a reference for the steps:
http://support.microsoft.com/kb/301600/
Note: MSDTC resource must be running before running the Exchange Installation. MSDTC resource should exist in the Default Cluster Group and must be configured properly using the above mentioned link.
3. Install Exchange on each node one by one
In this step you will execute the Exchange Setup on each node. Few points to summarize:
You need to run the Exchange Setup from the CD on each node one by one. It is not advisable to run the Exchange Setup concurrently on more than one node at a time.
Make sure the drive letter you use to install the Exchange binaries is the same on each node. It must "not" be the "shared drive" (LUN) from the storage.
4. Create the Exchange Virtual Server cluster resource
On completing the Exchange binary files installation on all nodes, we need to create one or more Exchange Virtual Server cluster resources. For example in a 2 node Active/Passive cluster a single EVS would be created. In a 4 node cluster where 3 are active and 1 is passive, 3 EVSs would be created.
Here are the steps to be followed for each of the EVSs:
- For each EVS create an EVS cluster Group
- Create an IP Address resource
- Create a Network Name resource
- Move a Disk resource to the EVS cluster group
- Create an Exchange System Attendant resource
Note: To create any additional EVSs, you need to perform the above steps by creating a separate EVS cluster group.
In Exchange Server 2007, you don't need to create the EVS resources manually. This is done by the Exchange Setup automatically.
Exchange Clustering Facts
Here are some requirements, best practices and known facts about Exchange Server clustering:
Requirements
Make sure you are running a DNS Server in the environment and that it accepts dynamic updates. The Exchange Setup will register the Network Name and IP Address associated with it at the DNS Server. Otherwise Exchange will not function: http://go.microsoft.com/fwlink/?linkid=3052&kbid=322856.
All cluster nodes must be member of a single domain. Exchange 2003 Clusters are also not supported on computers that are domain controllers.
Make sure a sufficient number of Static IP Addresses for each Exchange Cluster are available.
Clustering Software must be installed and configure before running the Exchange Setup. Otherwise Exchange will not install its cluster-aware components.
Before proceeding with the Exchange Installation make sure the disks are empty.
Best Practices
Use identical hardware across the cluster nodes for Exchange Clustering - this is just a recommendation.
The stability of Exchange Resources is greatly improved in Windows Server 2003. If possible, always use Windows Server 2003 with Exchange Server 2003.
Start Exchange Server installation one by one on each node. Do not run installations on multiple nodes at the same time.
You must install the same Exchange version on each node. The Exchange binaries have to be installed on the local drive.
For cluster node communications, create a user account that is a member of the Local Administrators group. Best practices say that you create a domain user account and add it to the Local Administrators group of all the nodes.
Always create the MSDTC resource in the Default Cluster Group which is created when you install the Clustering Software.
Before running Exchange Setup on a cluster node, make sure the node is not holding any resources. It is always advisable to move the resources to another node in the cluster.
Known Facts and Limitations
More than 50% of the issues with clustering are because of non-certified hardware and applications running on the Operating System.
The dependency of the resources has been changed in Exchange 2003 clustering. Hence, the failover time has been improved in the Exchange 2003 clustering over Exchange 2000.
Any given EVS can run only on one node at a time. You can not have multiple instances of the same EVS.
Not all Exchange services are supported in a cluster. Only the following services are:
System Attendant
Information Store
Routing Engine
MTA
POP3, IMAP4, SMTP, and HTTP
MS Search (by default)
Clients communicate with the Exchange Cluster using its EVS IP.
In Exchange Server 2000 and 2003, you need to create the System Attendant Resource manually in the Cluster Administrator but in Exchange 2007, all Exchange Resources are created automatically during setup.
If you installed Exchange Server before configuring the clustering software then you must uninstall Exchange Server, configure the Clustering Service and then install the Exchange Server.
Site Replication Service is not supported in cluster environment.
Exchange Clustering requires either Enterprise or Datacenter editions depending on the requirement of the number of nodes. The number of nodes is summarized below:
Windows 2000 Advanced Server - 2 nodes
Windows 2000 Datacenter Server - 4 nodes
Windows 2003 Advanced Server - 8 nodes
Windows 2003 Datacenter Server - 8 nodes
Exchange Disks must be configured as Basic Disks. Dynamic Disks are not supported.
Unattended is not supported when installing Exchange Server in a cluster environment. You have to visit each node individually and then execute the setup from there.
For security reasons, when creating Exchange Virtual Server in the cluster, the Windows IMAP4 and POP3 services are no longer enabled by default on Windows Server 2003. These resources are not created on servers running Windows Server 2000. If you want to add these resources, please follow the guide here: http://technet.microsoft.com/en-us/library/aa996970.aspx
When you create the Exchange System Attendant cluster resource, this automatically creates the following resources:
Exchange Information Store Instance
Exchange Message Transfer Agent instance
Exchange Routing Service Instance
SMTP Virtual Server Instance
Exchange HTTP Virtual Serve Instance
Exchange MS Search Instance
The Message Transfer Agent resource is created only once in the cluster when you add the first Exchange Virtual Server. The same instance is not created but is shared by other EVS in the cluster.
Conclusion
Today we went through the basics of the Exchange Clustering. We saw how clustering works and what is required to cluster Exchange. Finally we went through some recommendations, best practices and limitations of the Exchange Server in a cluster environment.