In the ever changing world of Windows Server 2003 DFS (Distributed File System), the dramatic DFS Replication (DFSR) improvements in Windows Server 2003 R2 are well known.
Windows Server 2003 SP1, however, introduced a new, and to some extent, little known feature for prioritizing DFS targets called target prioritization. Before SP1, DFS prioritized Distributed File System "target servers" according to whether they were in a single site or in remote sites. Target servers are DFS servers that hold files in a DFS namespace that replicate to each other. If the servers were in a single site, they would be randomly ordered and Active Directory replication would occur preferentially to the server that appeared first in the list, then would replicate to the other servers. If the servers were in separate sites, they would be prioritized based on the Active Directory site cost. Thus, servers in sites with a lower cost would replicate preferentially from a given source server.
Microsoft put target prioritization in SP1 to allow administrators to prioritize targets both in and out of a client's site. For example, you can now modify the normal referral ordering for out-of-site namespace servers or for servers that exist in a single site.
Figure 1 shows the referral ordering options. You obtain this dialog by right clicking the namespace name in the DFS management snap-in. Note that you can prioritize referrals for servers outside a client's site here. The options are shown in Figure 1 and include random order, lowest cost (using site link cost) and exclude targets outside of the client's site. The third option will only send referrals to a DFS server in the client's site. Obviously, you must have a very good reason for selecting this one.
Target priority is set by right clicking a namespace server in the DFS management snap-in and displaying properties. The resulting dialog allows the admin to override the referral ordering just noted, as shown in Figure 2. It includes first or last among all targets or first or last among targets of equal cost. This dialog is for targets in a single site and its intent is to provide a sort of "load balancing" in a site (so that if you have a standby server, it can be given low priority).
I recently encountered a case where a company had a single Active Directory site but several physical locations. Each location had a set of subnets and clients, and there was a Distributed File System server in each physical location. They had interpreted the target priority rather interestingly.
For example, they assumed that the Portland users could be forced to use the Portland DFS server by setting the target priority for the server to first among all targets (all servers were set like this). The thinking was that if the server was set with highest priority, then that, combined with the fact the server was in the client's site, would end up forcing clients to it for that location. Unfortunately, it didn't work and Portland clients would often hit the Paris DFS server instead.
All efforts to make it work failed because they were ignoring three fundamental principles:
- DFS targets in a single site can be selected randomly (or highest or lowest), and clients can be restricted from going outside of a site.
- DFS targets in remote sites can have their referrals ordered either randomly or by Active Directory site link cost.
- Client site awareness requires a subnet to site mapping. Therefore, if we map Portland's subnet(s) to the Portland Active Directory site, and there is a DFS server in Portland, then all the clients in Portland's subnets will be directed to use the Portland DFS server, also in that subnet.
The problem occurred because they ignored rule number three. The solution was simply to create a site for each location and map the appropriate subnets to each site. That would have put the Portland clients and DFS server in the same Active Directory site, and DFS would list the Portland DFS server first in the referral list.
Note: You could also use random referrals, but that would not accomplish what this company wanted to do.
Target prioritization is a great feature for allowing an administrator to control his or her Distributed File System environment, but unless you know the correct way to use it, you won't get the most out of it. You can find more detailed information on DFS server target prioritization at Microsoft's Web site.
Gary Olsen is a systems software engineer for Hewlett-Packard in Global Solutions Engineering. He authored Windows 2000: Active Directory Design and Deployment and co-authored Windows Server 2003 on HP ProLiant Servers. Gary is a Microsoft MVP for Directory Services and formerly for Windows File Systems.