Our friends over at the Active Directory Documentation Team just posted a nice little article that describes how, in R2, AD is now automatically handling some load balancing that was first addressed in Windows Server 2003.
I’m talking about the site topology’s bridgehead server selection and load balancing. To get a better sense of the R2 improvement, it helps to go back to Windows 2000 (soon to be put to rest). In Windows 2000 only one DC in a site could be the bridgehead server, which is the DC that handles replication between sites and therefore holds all the connection objects to and from other sites. The problem with the single-bridgehead server design is that if your AD site topology is in a hub-and-spoke configuration, and you have many branch office sites (spokes), that single bridgehead server in the hub site quickly becomes a bottleneck because all the branch offices depend on that one box. It doesn’t scale well.
In Windows 2003, this was fixed so that any DC in a site could also be a bridgehead server. This was a great improvement in scalability, but it also gave you the ability to shoot yourself in the foot. This is because bridgehead servers are designated on a per-directory partition basis. If you forgot to designate a site’s bridgehead server for, say, the configuration partition, it would never replicate to that site.
This new functionality had a big catch, though; once the offsite DCs picked a bridgehead server at the hub to replicate with, they’d never re-evaluate if others came online to choose from. Unfortunately, this describes a pretty typical scenario: Your hub site has a few DCs. As the company grows, you begin to add more and more branch office sites. The bridgehead server at the hub site begin to strain under the load, so you add another DC to the site. You may even specifically designate it a bridgehead server. It doesn’t matter – the branch office DCs ignore the new DC.
This behavior was recognized after Windows 2003 came out, and Andreas Luther’s team in Directory Services developed a tool to correct this behavior. Given the catchy name of Active Directory Load Balancer Tool, it was available as part of the Resource Kit. You’d run it when you’d added a DC to the hub, and it would calculate and apply a new replication topology that took all the DCs into account. Of course, the biggest drawback is that you had to run it yourself. And to run it, you had to know about it. (You can find out more about ADLB and how to use it in the Windows 2003 AD Branch Office Guide.)
In Windows 2008, read only DCs (RODCs) added intelligent bridgehead server selection and re-evaluation…but full, read/write DCs (RWDCs) still didn’t. As a result, you could find yourself in a situation where RODCs recognized a new bridgehead server but the RWDCs didn’t.
In R2, RWDCs have caught up to the RODCs and everybody now re-evaluates their bridgehead server selection. A new TechNet article describes the problem and how it’s been fixed. This isn’t a problem that smaller companies generally have to worry about, but if you have a lot of DCs, R2 AD has removed one more item to worry about from your plate!
Follow Sean on Twitter at @shorinsean.