Exchange 2010 splitting mailboxes on 2 servers

exchange-2010

We have 1 Active Directory forest and domain. We have 1 exchange 2010 server (on windows server 2008 SP2) managing all the email (delivery, receipt, and mailbox store). We were planning to add another exchange 2010 server to this setup so that we can distribute the load of the mailboxes to the second server. To be precise, given say 10 mailboxes , we would like to store 5 on one server and 5 on the second newly added server. Would this setup require a DAG setup?

From what I inferred on the documentation of a DAG, a DAG is more of a fault-tolerance setup. It involves a complete replication of your mailbox store over all the 'nodes' in the DAG. And in the case one mailbox store fails or is temporarily unavailable, the second mailbox store gets used. This would mean, in my example, that both servers would have all 10 mailboxes. Is that correct?

My question is if we can just distribute the mailboxes 50/50 over the two servers, and have half the users connect to the second exchange box, however still be able to email everyone else in the organization. What kind of a setup would that be? Anyone have links to guides, walk-through etc?

  1. DAG – Database Availability Group

Best Answer

Each Exchange server with the Mailbox role installed can have one or more mailbox databases, so if you only need to split your database load, you will need to create a mailbox database on the new server and move some mailboxes to it; end of the story. Of course, this means that if a user has a mailbox on ServerA and ServerA goes down, there will be no fault tolerance; users whose mailboxes are on ServerB will be fine, but users with mailboxes on ServerA will not be able to access them.

If you want redundancy, you will need a Database Availability Group; in a DAG, each mailbox database has one or more copies on different servers, only one of which is active at a given moment; if the server where the active copy of a mailbox database resides goes down, another copy will be made active and users will be automatically redirected to it. The down side of this is, you will at least need twice the disk space (because each database will have at least two copies), and some processing power of your servers will be used for data replication.

You also need to take into account that Exchange is not only made by mailbox databases: in order for it to work, you will also need at least an operational server for each of the two other main roles, Hub Transport and Client Access. Hub Transport servers are automatically load balanced and redundant, so you will only need to install the role on the new server and everything will be fine. The same is not true for Client Access: other than installing the role, you will also need to create a Client Access Array in a load-balanced configuration, which needs to be handled at the IP level. Ordinarily you could to that using Windows' built-in Network Load Balancing service, but there's a caveat specific to a two-servers scenario like yours: a Database Availability Group relies on Failover clustering, which is not compatible with Network Load Balancing.

The end result of this is, if you want a fully-redundant setup, you will need two multi-role (Mailbox, Hub Transport, Client Access) servers, a Database Availability Group, a Client Access Array, and an external hardware load balancer, without which you would need to either give up redundancy for the databases or for the Client Access role.