I recently had a conversation with one of my customers who is about to patch their multi-role DAG environment. I thought this would make a great blog post, with the step-by-step information.
The customer environment looks like this:
Site 1 is the primary site, and mailbox databases are distributed evenly between SERVER1 and SERVER2. The Sites are a single Active Directory site, spread over 2 physical sites.
The load balancer has been configured to send client traffic to all three servers for Client Access.
So, we need to patch this system. One of the key things when patching Exchange, is to remember that you always need a newer server, talking to an older server. In this case, a newer CAS, talking to an older mailbox. This creates some “Interesting” Load Balancer gymnastics.
We will start by patching Server 1.
To start with, Drain stop the connections on the Load Balancer from server one. Your client connections will now be going to Server 2 and Server 3.
Once all connections to Server 1 have ended, use the Start-DAGServerMaintenance Script on Server 1. This will pause the node in the cluster, move all active databases to another node, and set the DatabaseCopyAutoActivationPolicy to blocked. All Mailbox Database Copies will be suspended, and if the node owns the cluster core resources, these will be moved to another node.
At this point, we are able to patch Server 1. Run the required Service Pack or Update Rollup on this server.
Now we can run the Stop-DagServerMaintenace Script on Server 1. This will return the server to service, but will NOT automatically remount the databases. This is good, as we don’t want our “older” CAS servers to connect to our “Newer” mailbox servers.
Next, reconfigure the load balancer to connect clients to Server 1, and Drain stop Servers 2 and 3.
When all client connections are going through Server 1, Move all Databases to Server 1, and Start DAG Maintenance on Servers 2 and 3.
Patch Servers 2 and 3
Stop DAG Server maintenance on Servers 2 and 3, and Re-Add them to the Load Balanced Pool
Run the DistributeActiveDatabases.ps1 script to re-distribute your databases based on your Activation Preference.
This is a simple process to patch the Multi Role DAG. Please let me know if you have any questions or comments!