-->

Tuesday, December 17, 2013

How To Install a CAS Array in Exchange 2010

Client Access Arrays in Exchange 2010 are very valuable for a variety of reasons, the most important being: The client experience during Mailbox server failovers is improved, (in that they automatically reconnect during loss of service) and the RPC (Remote Procedure Call) service will become highly available.

I'll show you how to deploy a CAS Array using the MS NLB (Network Load Balancer) which is built-in to Windows.

CAS Array Pre-Requisites

You can deploy two or more Exchange 2010 Client Access Servers as an array using NLB providing they ARE NOT Mailbox servers that are part of a DAG. This is because DAG members use Windows Failover Clustering, and can’t be collocated with NLB.

These are the CAS servers which will be deployed into the array:

Server 1

Name: CAS1.exchangeitup.local

OS: Windows Server 2008 R2

Primary NIC: 192.168.0.101/24

Secondary NIC: 192.168.0.103/24

Server 2

Name: CAS2.exchangeitup.local

OS: Windows Server 2008 R2

Primary NIC: 192.168.0.102/24

Secondary NIC: 192.168.0.104/24

The Virtual IP address (VIP) for the NLB cluster will be 192.168.0.100.

**Note** I like to keep my IPs for CAS Arrays and DAGs grouped for easier manageability.

Installing Client Access Server Pre-Requisites

On each server, fire up PowerShell and run:


Import-Module ServerManager

If you're running just the CAS role, you'll run the first command.

If your CAS servers are also Hub Transport servers (as mine always are) you'll run the second command. Also notice the -Restart switch at the end, which will force a restart after the install.

Client Access Server pre-reqs:


Add-WindowsFeature NET-Framework, RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-
Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart


Client Access Server and Hub Transport Server pre-reqs:

Add-WindowsFeature NET-Framework, RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server,Web-ISAPI-Ext,Web-Digest-Auth,Web-Dyn-Compression,NET-HTTP-Activation,RPC-Over-HTTP-Proxy -Restart

After the restart, run:

Set-Service NetTcpPortSharing -StartupType Automatic

Installing the Client Access Server Role from the Command Line

On each of the servers, fire up a CMD prompt as administrator.

For the CAS role run: 


C:\admin\Exchange Server 2010> setup /m:install /r:ca,mt

For both the CAS and Hub Transport run: 

C:\admin\Exchange Server 2010> setup /m:install /r:ca,ht,mt

Installing Windows Network Load Balancing

On each of the servers, in PowerShell run:


Import-Module servermanager

Add-WindowsFeature NLB


Creating the NLB Cluster

On the first server launch the Network Load Balancing Manager from
Administrative Tools.
From the Cluster menu choose New.

Connect to the first server (CAS1) for the NLB cluster.

Choose the interface that is to be used, then click Next

Accept the default Host parameters, click Next.

Click Add and enter an IPv4 address for the NLB cluster, then click OK.

Click Next

Enter a name for the cluster. For example casarray1.exchangeitup.local.

**Note** I almost always give CAS arrays and DAGs a numerical name in case we install extra ones down the road.

Click Next

Click Finish.

You should now have a single host NLB cluster.

Right-click the cluster name and choose Add Host to Cluster.

Enter the name of the second server (CAS2) and click Connect. Choose the interface to be used, then Next.

Accept the default Host Parameters, then Next.

No need to change the port rules, click Finish.

You now have a two-node NLB cluster.

On each of the NLB nodes, run the this command to allow the NLB VIP address to be reachable from outside of it's subnet.
 

netsh interface ipv4 set int "NLB" forwarding=enabled

**Note** Replace “NLB” with the name of your NLB interface.

Creating the Client Access Server Array

Create a DNS record for the NLB cluster name, like casarray1

Then, launch the Exchange Management Shell on one of the Exchange servers and run:


New-ClientAccessArray -Name CASArray1 -Site "Default-First-Site-Name" -Fqdn casarray1.exchangeitup.local 


 **Note** Substitute the Name, Site, and FQDN for your environment.

Updating Existing Mailbox Databases

All newly created mailbox databases automatically will be configured with the CAS array as their RpcClientAccessServer, but existing databases need to be updated so those users begin using the new array.

To update all databases to the new RpcClientAccessServer run:


Get-MailboxDatabase -Server MB1 | Set-MailboxDatabase -RpcClientAccessServer casarray1.exchangeitup.local

**Note** MB1 is the name of the mailbox server, substitute your MB and CAS array names in there.

To verify the change, run:


Get-MailboxDatabase -Server MB1 | fl name, rpc*

You're all done!

**Note** Existing Outlook profiles will not automatically update to the new CAS array. You will need to manually update those profiles (hopefully you don't have a ton of users), or allow Autodiscover to work for a few days and they should auto-update.

No comments:

Post a Comment