Friday, August 3, 2012

DFS and Clustering

There seems to be some confusion around the Distributed File System (DFS) and Windows Server 2003 server clustering.

First, let's look at the terms for DFS so we start from the same foundation in this discussion.

  • DFS Root - Think of this as a name space (DFS-N) or share name. This is the name that you connect to as a client computer. Underneath the root are the many different folders and files that may be on a single server or may be distributed around to multiple servers (i.e. some files located in a folder named Accounting on one server and some files located in another folder named Marketing that is on a different server. There are two types of roots. There are domain based roots and there are server based roots. Clustering only supports server based roots. Since a domain based root can be created on multiple servers, it is more highly available. A server root does not have that capability as it can only be created on a single server. With a server based root, if the server is down, then the name space is not available and users can not connect to it.
  • DFS Link - This is a "leaf" type of object that goes under the root. For example, the root (let's call it CompanyFiles) may be hosted on Server1, but Server2 may have a file share space (call it Accounting) that is linked under the root. Once linked, you can access the accounting share two ways. 1. You can connect to the UNC path of\\server2\accounting or 2. You can connect to the DFS at \\CompanyFiles\Accounting or even browse from\\CompanyFiles and find the leaf object of Accounting underneath it.
  • DFS Replica (also called a target) - This is a folder on the root server or even possibly a link in another DFS tree. What we can do is we can use the source and target information and build replicas (DFS-R) so that certain leaf objects or entire DFS trees can replicate between servers in one location or in different locations.

To be clear, DFS-N (for namespace) is not the same thing as DFS-R (for replication). They are two totally different technologies. One creates the name that can be used by clients to connect to the DFS tree, and the other is used for replication. Server clustering only supports DFS-N and only as a server root. Server clusters can also be leaf objects (but not replicated).

OK, granted this is just some very high level and basic information, but let's get rolling with it. What does this all have to do with clustering?

Clustering is used to achieve high availability for certain resources. As a business requirement, we may be told to provide solutions that can help us achieve our goals for the company. One of the requirements is to make certain files highly available as they are needed all the time to keep the business running smoothly.

We can achieve our goal (the goal of having highly available file services) a few different ways:

  1. We can use DFS and replicas (DFS-R) to make copies of the file structures that we deem to be extremely important. The problem with using DFS in this manner is that if there is a great deal of change, the replication process may not be efficient enough to keep up. It is not a good idea to use DFS replication in cases where there is constant change. DFS replication works wonderfully where this is little change, i.e. like hosting application source files and drivers. This is not supported in server clusters.
  2. We can use server clustering and create file share resources hosted in our cluster environment. One of the nice options of using file server clusters is that we can use the cluster to host a server based DFS root (DFS-N). Because the root is held in the cluster, it makes it highly available. Also, any data stored on the file share on the cluster is also highly available. The value of using DFS in this implementation is that the name space and the link are highly available and we can connect to many links around the organization to help build an easy to navigate file server structure while only hosting the most important files on the cluster itself.
  3. We can deploy a domain root and use it to link to a server cluster running a file share resource and use it as a leaf in our domain root DFS (this is also DFS-N). The domain root can be made highly available because it can be built on multiple servers, and the most important of our files can be hosted on the server cluster file share.

It is important to note that clusters can not host domain roots. They can only host server roots.

Original Post

No comments: