Migrating from a Single Exchange 2010 Server to High Availability

A reader wrote to me and asks:

I just setup two addtional mailbox servers and made them members of a DAG. I also have my original Exchange 2010 server which has all my roles on it. How can i move all my mailbox databases to these other servers so I can then create a CAS Array with my original and another new server?

To think about how best to answer this I drew up a quick diagram of the current environment, as I interpret it from that email.

Existing environment with Typical Exchange 2010 Server and new DAG

Existing environment with Typical Exchange 2010 Server and new DAG

There are several ways the desired outcome could be achieved, but the one that I would recommend as the simplest and least likely to experience a problem is as follows.

First, establish a single-node CAS array using the new server.  See How to Install an Exchange 2010 CAS Array for details.  While following that procedure during the creation of the NLB cluster skip the part where the second server is added to the NLB cluster, but complete all of the other steps.  The new server should also be installed as Hub Transport server if you don’t have any other servers that you plan to use as dedicated Hub Transports.

Configure the desired mailbox databases on the DAG members.  See Exchange Server 2010 Database Availability Group Installation Step by Step for how to set up the DAG.  If the mailbox databases were already created before the CAS array was created then you’ll need to update their RPCClientAccessServer attribute.  See this article for details.

Next, migrate the front end services (eg SMTP traffic, OWA, ActiveSync, Outlook Anywhere) from the existing server to the new Exchange 2010 CAS array.  Then, migrate the mailboxes and public folders from the existing server to the new Exchange 2010 DAG.

Migrate from the existing Exchange 2010 server to the new CAS array and DAG

Migrate from the existing Exchange 2010 server to the new CAS array and DAG

Now that all of the production data and services have been removed from the original server you can transition its role into a Client Access/Hub Transport server, configure it to match the other CAS/HT server, and join it to the NLB cluster.  You can also remove the Mailbox server role from the server.

Modify the server roles from Typical to Client Access/Hub Transport and join to the CAS Array

Modify the server roles from Typical to Client Access/Hub Transport and join to the CAS Array

When that has been completed you will have achieved your desired outcome of a high availability Exchange 2010 environment using a CAS Array and Database Availability Group.

Exchange Server 2010 High Availability environment with a CAS array and DAG

Exchange Server 2010 High Availability environment with a CAS array and DAG

Would you approach this another way?  Let us know in the comments below.

About Paul Cunningham

Paul is a Microsoft Exchange Server MVP and publisher of Exchange Server Pro. He also holds several Microsoft certifications including for Exchange Server 2007, 2010 and 2013. Connect with Paul on Twitter and Google+.

Comments

  1. Hi is it possible to make the Client Access/Hub transport server and Mailbox server in one? So that I only use two server for high availability for mailbox and CA?

    Thanks!

    • You can install all those roles on a single server, its known as a Typical install. However if you want a Mailbox server to be a member of a DAG, it can’t also be a member of a Windows NLB cluster that is configured as a CAS Array. But if you’re using a hardware load balancer for the CAS Array, yes all those roles can co-exist even on DAG members.

      Make sense?

  2. Graeme Clark says:

    Hi Paul,

    I’ve got this to work, but we have a problem that existing client Outlook profiles aren’t updated and still point at the old CAS server instead of the CAS array even after repointing the RPCClientAccessServer value. We thought starting Outlook with the /cleanprofile switch might do it but, rather annoyingly, that switch has been removed from Outlook 2010.

    Do you know if there is a recommended way to update the Outlook profiles to point at the CAS array?

    Thanks in advance,
    Graeme

  3. At Graeme, what is the database name showing of the user’s from EMC? If it is CAS array name, Outlook should pull it when you create a new Outlook profile.

  4. Hi, Paul!
    Some questions.
    In this situation, can I create CAS Array in the same AD Site?
    Commandlet New-ClientAccessArray by array creation get all CAS Role severs from AD Site or all CAS Role Servers under NLB?

    Thanks!

    • I don’t understand your question.

      • ok, I have in A site one CAS, I need to make CAS Array within this A site and migrate client access to this CAS Array.
        The question is, can I make CAS Array in the same A site?
        What is the behavior of cmdlet New-ClientAccessArray?
        Does cmdlet make this CAS Array with all CAS’s from site or with all CAS’s under NLB?

        • You can create a CAS Array in a site that doesn’t already have a CAS Array. There can be only one CAS Array per site.

          All Client Access servers in that site will appear as “members” of the CAS Array automatically. However that is not important because the “members” of a CAS Array has no bearing on any load balancing or HA that the CAS Array provides.

          HA/load balancing of a CAS Array only occurs when you implement NLB or hardware load balancing and point the DNS record of the CAS Array at that load-balanced IP address.

          Some more reading:
          http://exchangeserverpro.com/exchange-server-2010-cas-array/

  5. Paul, one more question.
    After creation CAS Array will the connection Microsoft Outlook to first single CAS Server broken?
    Especially Microsoft Outlook 2003.

    Thanks!

    • No it won’t be broken, it will continue to work fine. In fact that is an issue you will need to address. Existing Outlook profiles won’t automatically update to use the CAS Array, as long as the CAS they’re already pointing at remains available. You’ll either need to manually update the profiles, or write a script to automatically update them.

      • Thanks, Paul! Greetings from Ukraine!

      • >>You’ll either need to manually update the profiles, or write a script to automatically update them.
        I create new mailboxdatabases with new RPCClientAccessServer attribute and then move there mailboxes for minimal possible discomfort of users.

Leave a Comment

*

We are an Authorized DigiCert™ SSL Partner.
Loading...

Still running Exchange 2003? Time to get moving and start your upgrade. Find out how - Click Here