Today we continue our series on installing Microsoft Exchange 2010, now that we have our Exchange servers installed it is time to configure those servers for high availability, and in today’s article we are starting with CAS Servers Load balancing using WNLB ( Windows Network Load Balancing ).
We talked before about CAS Role which is responsible for handling Exchange MAPI clients connections and authentication to Exchange Server, it is necessary to note here that unlike previous versions of Exchange Server, in 2010 there has been a major change regarding MAPI Clients endpoint connection to Exchange server, as most of you know that outlook and other MAPI clients used to connect directly to the user’s Mailbox on the Server holding the Mailbox Server Role and the directory connections were proxied through Mailbox Servers or referred directly to a specific Global Catalog Server, With the release of Exchange 2010 a new service called RPC Client access was introduced , this service is installed on each server holding the CAS Server role in your Exchange organization, what this service does is that it handles outlook and other MAPI client connections to your organization for the sake of improving the user’s experience during Mailbox failovers by moving the client endpoint connection from the Mailbox Server Role to the CAS Server Role , most administrators know that in previous versions if you tried to move a mailbox from one database to another the Mailbox user looses connection to the exchange server, with RPC Client access service in the picture such operations with the User’s Mailbox would be seamless.
Now that CAS server Role is even more critical in your deployment it is mandatory to provide a highly available CAS deployment, and in this article we are going to use Microsoft WNLB to do this , one more thing to note here is why do it on two other separate servers ? why not just combine them with the Mailbox servers ? well the answer to this that this scenario is not supported by Microsoft, as on the Mailbox Servers later on we are going to provide High availability through DAG technology which makes use of the Windows Cluster Service, and unfortunately a c0existance between Microsoft Cluster Service and Load Balancing service on the same server is unsupported by Microsoft, you can check that here Interoperability between MSCS and NLB of-course you could still go with this scenario and combine all roles on two servers but then you would need to use a Hardware load balancer.
In our Lab we have installed 2 Network cards on the CAS servers, the first NIC is going to handle network traffic addressed to that server while the second NIC will handle internal communication between NLB Cluster nodes; Deploying WNLB is possible with a single network adapter although there are some limitations to a single NIC deployments see here Single NIC Limitation , so it is recommended to deploy NLB Cluster nodes with two NICs for Optimum performance.
So before we start with this i am going to talk about CAS Arrays. CAS Array is a new logical structure in Exchange 2010 which is intended to serve as a single connection point for all client connections to the CAS Servers in the same Active Directory site, you can have only one CAS Array per Active Directory site and this Array can have one or more member CAS Servers, it is recommended by Microsoft to create CAS array even if you have a single CAS server, The Client connects to the Virtual name of the CAS array instead of connecting to the FQDN of the CAS Server which makes it easier to remove , add or replace a CAS Server which is member of a CAS array in an Active Directory site.
Now i have to mention here that CAS arrays do not provide Load balancing between servers, do not get yourself confused with WNLB you still need a load balancing solution for your client connections, CAS arrays only purpose is collecting CAS Servers in the same AD site under a single virtual name.
So let’s start by creating our CAS array first by running the below command from the Exchange Management Shell ( EMS ) from any Exchange server
New-ClientAccessArray -Name name -Site site_name -FQDN InternalCASArrayFQDN
You can see that the command completed successfully and it already added EX-HC-01 and EX-HC-02 as members of this array as they are the only CAS servers in this site.
Now that we created our CAS array we need to create an A record for mail.lab.com on our DNS Servers.
once you create the CAS array you are going to need to do one more step, which is configuring the RPCClientAccessServer attribute on Mailbox Databases, this attribute is what points outlook client to the CAS array to connect to for a given mailbox. so let’s start by running the command ” Get-MailboxDatabase -Server EX-MBX-01 | fl name, rpc* ” which will give us the currently configured RPCClientAccessServer for the Databases on server EX-MBX-01 as shown below
Edit the RPCClientAccessServer attribute to point the previously created array using the command ” Get-MailboxDatabase -Server EX-MBX-01 | Set-MailboxDatabase -RPCClientAccessServer mail.lab.com ” Then run the previous command again to make sure your settings applied successfully.
Having done that, let’s start with configuring WNLB, as we mentioned before we are going to use 2 Network cards for this configuration so it’s good to rename each card to differentiate between them one for the NLB cluster and one is used for internal communication.
Now there are different methods to install WNLB i am going to show you two methods here, the first method is using Server Manager. Open Server Manager console on the first CAS Server and go to Features , and from Add Features choose Network Load Balancing
The Second Method is to use PowerShell, simply by running the command “ Import-Module ServerManager ” followed by ” Add-WindowsFeature NLB ”
Once installation is finished, do the same for the second CAS Server then go to Administrative tools from the start menu and launch the Network Load Balancing Console, from there right click Network Load Balancing Clusters and choose New Cluster
Type the name of the first CAS Server and click Connect and wait for the network cards to show up, then choose the NIC we are going to use for the NLB Cluster, in our case the NIC that is labeled NLB
Enter an ip address that is dedicated to this specific host and click Next
Now enter the Cluster IP Address which is shared among all the CAS Servers, that should also be the one that outlook.lab.com array points to
I am going to use mail.lab.com as the full Internet name , which is also the same FQDN i am going to publish my exchange servers with
Remove the default port rule and add the below rules
Click Finish and wait for the cluster to be created and the first CAS Server to be added as a host member in this cluster
Right Click on the created cluster and choose Add Host to Cluster to add the second CAS Server
Enter the IP Address of the Second CAS Server and repeat the above steps for each CAS array you need to add to the cluster
Congratulations the cluster is now created and it is time to test if our NLB works.
Okay, create a user mailbox and go to a client machine with outlook installed .. Start outlook and then right click on the outlook icon on the task bar while pressing CTRL button .. from the list choose Connection Status…
Note connections made by outlook client to your Exchange servers, as we stated before that RPCClientAccess service on the CAS Servers handles Mail and Directory connections while Public folders connections are made directly to the Mailbox servers. Test your connectivity by shutting down one CAS node and make sure outlook connects again automatically if connection lost and then do the same thing with the Second node
See you in Part 3 talking about Database availability Groups DAG