CAS Arrays (important, and not as hard as you think)

Alive...and archived!!

An often overlooked part of building a new Exchange 2010 or 2013 instance is the creation of a CAS array.  If you do a bit of Googling on the subject you’ll find a lot of information, much of it confusing, which gives you the impression it’s a Herculean undertaking.

In fact, the key elements of CAS arrays can be described quite simply:

1.)  CAS arrays provide failover for Outlook clients by abstracting the servers within your Exchange organization

2.) Outlook obtains server information from the database a user’s mailbox resides on- this is defined by the DB’s RPCClient setting (which is shown within Outlook at the following location):

Outlook Server Settings

 

 

 

 

 

3.) To view all mailbox databases’ RPCClient setting, issue the following Powershell command:

Get-MailboxDatabase | select name,rpcclientaccessserver | ft -auto

4.) To set a mailbox database’s RPCClient property, use this syntax:

Set-MailboxDatabase Database-Name -RpcClientAccessServer cas-array-name.your-domain.com

Now we can bring all this together into a scenario.

The RPCClient setting is an active directory object which, by itself, does not provide a load balancing function.  That’s best done using a hardware load balancer such as a KEMP (Windows Network Load Balancing is also an option but not as robust, in my opinion).

So, keeping that in mind, the first thing you should do is create a DNS name/Host A record for your cas array; let’s say cas-array.mydomain.com to keep it simple.

Next, you assign this name to your mailbox databases by issuing the Powershell command listed above:

Set-MailboxDatabase “Your Database Name” -RpcClientAccessServer cas-array-name.mydomain.com

Third, you should assign the IP address you assigned to the Host A record cas-array to a virtual IP on your hadware load balancer (virtualizing access to two or more CAS servers within your org).

Now, any users created on (or moved to) the databases with the cas-array.mydomain.com RPCClient property will have this name as their server setting within Outlook.

Which means that should you lose a CAS server, Outlook users will still be able to perform normal mail functions.