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.
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.
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.
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.
Would you approach this another way? Let us know in the comments below.