Exchange 2007 and 2010 both offer multiple server roles. Some are new and have no connection to pre-2007 Exchange, such as the Edge Transport server role and the Unified Messaging server role. Others are similar to their legacy counterparts, such as the Mailbox role being equivalent to Exchange 2003's Mailbox server, the Client Access Server (CAS) role being equivalent to Exchange 2003's front-end server, and the Hub Transport server role being equivalent to Exchange 2003's Bridgehead server.
But Exchange 2010 has tremendous improvements that bring the CAS role into a true middle-tier position through which all connectivity, including MAPI connections, must pass, using the new RPC Client Access service to handle this workload. This removes a great deal from Exchange 2007's Mailbox role, but it also makes the CAS server a critical point of failure that requires redundancy and load-balancing.
[ Read more from J. Peter Bruzzese on the changes in Exchange 2010 with "Exchange 2010: Where are my storage groups?" | Keep up on Microsoft news and views with InfoWorld's Technology: Microsoft newsletter. ]
Oddly, with Exchange, each role has its own way of accomplishing this redundancy and load balancing. Let's look at the Mailbox, Hub Transport, and Edge Transport roles.
- Mailbox role: Keep in mind that the mailbox can reside on only one server and be the production mailbox, so there's no need to focus on load balancing here. But you can use database availability groups (DAGs) to create replicas that work with the clustering technologies in Windows Server 2008 to ensure automatic failover in the event of a problem.
- Hub Transport role: Want redundancy? Want load balancing? Simply install a second Hub Transport server. It's that simple. It handles everything else automatically. Why doesn't CAS do the same? Beats me.
- Edge Transport role: This role, unfortunately, does not offer easy and automatic load balancing and redundancy. You can use multiple mail exchanger (MX) records with the same priority on the DNS side to provide load-balanced SMTP traffic, and you can clone the configuration of one Edge Transport system to another using built-in PowerShell scripts.
- Client Access Server role: CAS is in a class all by itself. With Exchange 2010's added reliance on the CAS role, there has to be a way to reconnect to the CAS role if a CAS server fails. You could use DNS round-robin to load balance a bit, but there is no redundancy involved for disaster recovery. That's why Exchange 2010 lets you create a CAS array, a collection of CAS servers that exist in the same Active Directory site. Rather than connecting to the fully qualified domain name (FQDN) of an actual CAS server, the Outlook clients connect to the FQDN of the CAS array. To have redundancy, you need to create a secondary CAS server and add it manually to the CAS array through the Exchange Management Shell (EMS), using PowerShell commands. For this to work properly, there has to be some form of load-balancing technology in place.