Here is where it gets fun. To have everything fully
redundant in the event that a server fails every part of this needs to be
mirrored. I will discuss the various levels of redundancy here.
Namespace
The namespace server holds the metadata for the namespace. Be
sure that this does not depend on a single server. The data stored here is
often small unless you have hundreds or thousands of folders in the namespace,
so a dedicated server is not necessarily required for this role as long as the
namespace server can always respond quickly to any queries. The namespace
servers can be the same servers as your content if you want.
To create a mirrored copy of the namespace, in the DFS
Management tool, right-click on the Namespace and click on "Add Namespace
Computer." Here you can point to an existing share on a different server
or create a new share.
Folder Target
DFS masks which server is used for the folder target. To
fully use DFS in this situation, you will need to point to multiple folder
targets. In my situation, I want to have one server always used as long as it
is available. I do not want to hit a random server because there could be data
integrity issues. DFS replication is good, but it does not handle data locking
or data write-through. This means that there could be a delay from when
something is written on disk until it has replicated to all other servers. For
that reason, I only want to fail over when absolutely necessary.
To achieve this there are a few things that are necessary.
The failback hot fix mentioned above needs to be installed.
All webfarm nodes need to be running Windows Server 2003 SP1
or later
The caching duration for the folders needs to be changed. The
default is 1800 seconds (30 minutes) which is too long for our situation. That
means that less requests are made to the namespace folder, but it also means
that the failback could take up to 30 minutes after the primary server is back
online. You can update this by right-clicking on the folder in "DFS
Management," going to properties and then the Referrals tab. Make sure to
do this on each new folder. You can also change the cache duration on the
namespace, but the default is already 300 seconds (5 minutes).
In the Referrals tab of the namespace properties, check the
"Clients fail back to preferred targets" checkbox.
In the Referrals tab of the folder properties, check the
"Clients fail back to preferred targets" checkbox.
On the properties of the primary folder target, in the
Advanced tab, enable "Override referral ordering" and select
"First among all targets."
On the properties of the backup folder targets, in the
Advanced tab, enable "Override referral ordering" and select
"Last among all targets."
Now you have a primary/backup server configuration that will
always use the primary server as long as it is available.
Active Directory
The Active Directory part of things is done automatically
and apart from the steps mentioned already, does not need any extra
configuration. Just be sure to have redundant domain controllers in your
Active Directory environment.