DFS Screw Up

greengolftee87

Limp Gawd
Joined
Oct 15, 2008
Messages
274
A few months ago I had a thread about how to organize media after it spills over the capacity of 1 drive. I resolved the issue at the time by bumping up to a 2TB drive but have since reached its capacity as well. Several people suggested using features of DFS since im using Server 2008.

I installed the role along with the namespace sub-role, added a new namespace named "HD" and added a folder with in it called "HD Movies". This folder contained the 2 shares HD1 and HD2.

The problem is that when i map the drive from the server I either get the contents of HD1 OR HD2, never the contents of HD1 AND HD2. When mapping from mac i get the HD Movies folder with nothing in it. Did i set up something wrong?
 
Did i set up something wrong?

Yes, but since I do not use win2008 I am not sure how to fix. Sounds like both dfs links are mapped to the same name.

I use dfs from samba servers and I am able to attach a dfs link anywhere in the tree containing the dfs root folder that is shared.

So I have a share named net_dfs_root

It has folders
Images
other
...

Inside both the Images and other folders there are a combination of subfolders and dfs links.

John
 
That's not the way DFS Namespaces work. It works like this. You have these shares:
\\server1\music
\\server2\movies
\\server3\pictures
\\server4\documents

You create a DFS namespace - either \\domain\dfsroot or \\dfsserver\dfsroot. You can then add folder targets so that you would have:
\\domain\dfsroot\music
\\domain\dfsroot\movies
\\domain\dfsroot\pictures
\\domain\dfsroot\documents

You can add multiple shares under the target and assign priorities. You can also replicate the shares under a specific folder target.

DFS will not combine the directories.
 
That's not the way DFS Namespaces work. It works like this. You have these shares:
\\server1\music
\\server2\movies
\\server3\pictures
\\server4\documents

You create a DFS namespace - either \\domain\dfsroot or \\dfsserver\dfsroot. You can then add folder targets so that you would have:
\\domain\dfsroot\music
\\domain\dfsroot\movies
\\domain\dfsroot\pictures
\\domain\dfsroot\documents

You can add multiple shares under the target and assign priorities. You can also replicate the shares under a specific folder target.

DFS will not combine the directories.

Hold up. if this is the case why are you able to add multiple shares to a subfolder. it should be limited to 1
 
Hold up. if this is the case why are you able to add multiple shares to a subfolder. it should be limited to 1

DFS lets you specify multiple folders for failover and site based referrals. You would use DFS Replication to keep the folders in sync.

Imagine that you have an business with 3 sites. You have data that needs to be accessed at all three. You have 3 file servers and replicate the data. DFS points you to the closest server based on site.

I use it for failover. I have a primary fileserver and if it goes down, clients fail over to the back up server.
 
Thant makes sense except for 1 think, i specifically didnt install the replication module because i didnt want it to try and sync the shares since they were completely different
 
I've written a small C# app which generates a DFS namespace from a bunch of shares. Each DFS node can only point to a single folder, but you can actually create folders and put the nodes in those folders.

If you have the following folders;
\\server1\share2\music\stuff1
\\server1\share2\music\stuff2
\\server1\share1\music\stuff3

The resulting DFS looks like;
\\dfsroot\dfsshare\music\stuff1
\\dfsroot\dfsshare\music\stuff2
\\dfsroot\dfsshare\music\stuff3

It can't combine directory contents like say Libraries, but it does combine subdirectories as each subdir can be a seperate node.

If you want I can post it somewhere with the sourcecode. Originally written with VS2k5, but compiled with VS2k8. Also requires the DFS SDK for a commandline app, as my app produces an .xml file which is a backup of the DFS namespace and uses a DFS app to reimport that xml file into the DFS namespace.
 
Right but you can add multiple network locations to library.
 
Right but you can add multiple network locations to library.

Seems like it would work awesome . . if i weren't using a mac as my main playback/access machine, and the server its self doesnt have the power to playback HD content. It seems like im more or less stuck on this issue.
 
I've written a small C# app which generates a DFS namespace from a bunch of shares. Each DFS node can only point to a single folder, but you can actually create folders and put the nodes in those folders.

If you have the following folders;
\\server1\share2\music\stuff1
\\server1\share2\music\stuff2
\\server1\share1\music\stuff3

The resulting DFS looks like;
\\dfsroot\dfsshare\music\stuff1
\\dfsroot\dfsshare\music\stuff2
\\dfsroot\dfsshare\music\stuff3

It can't combine directory contents like say Libraries, but it does combine subdirectories as each subdir can be a seperate node.

This is what I was talking about with my samba case.
 
Xon's app would work great if your media was configured into subfolders. IE:

Movies\Movie Name1\Movie File.mkv
Movies\Movie Name2\Movie File.mkv
Movies\Movie Name3\Movie File.mkv
Movies\Movie Name4\Movie File.mkv

Then it would look like this

\\dfsroot\dfshare\Movie Name1\Movie File.mkv
\\dfsroot\dfshare\Movie Name2\Movie File.mkv
\\dfsroot\dfshare\Movie Name3\Movie File.mkv
\\dfsroot\dfshare\Movie Name4\Movie File.mkv
 
QQ~, it would look exactly like that. It was very useful when I had stuff spanning a dozen hardrives and wanted it to show up a single share years ago. Btw, back on Windows 2003, I had the DFS root get into a wacky state every now and again which I generally fixed by deleting the DFS root, and rebuilding from backup (which is how my app works).

Linky. Consider this public domain, as it is very simple stuff, and I did write it a while ago. Source code is provided, and was originally written using Visual Studios 2005, it will compile under VS2k8. This includes the required dfsutil.exe, which used to be an addon tool for Win2k3, but appears to be included when you add the dfs roll in win2k8. A quick look shows the new tool has different command line options and should be just a matter of updating the .cmd which automates the update process.

I've included a readme as well, reproduced in this post too(written years ago);
This small app takes a list of shares, and then builds a list of DFS links/targets. This list is in an XML format which the Microsoft app "dfsutil.exe" understands and can import into a DFS namespace.

This means you will need to manually create the DFS namespace and then run the script "update dfs.cmd" from a computer with write access to the DFS namespace. *This will delete any existing links in the DFS namespace* Unless they are real folders in the DFS root share, then they will still show up.


In "dsfxml_editor.rar" there are two files you'll need to edit;
"dfs_config.xml"
"update dfs.cmd"
Replace the server name and DFS share with the appropriate values. And tell it where you are going to store the app plus script(I think you can use a '.' for the current directory, but I haven’t tested that).

Sometimes the DFS namespace can become "wonkey", in this state you have it thinking it has a bunch of links somewhere which really aren't there. Just delete all the weird links or recreate the DFS namespace and start again.

When you run the script it'll produce some files.
collisions.txt - This is a list of folders which have been split. You should *not* see filenames in here
For example;
-storage2$\Videos
-storage1$\Videos
-storage3$\Videos
-storage4$\Videos
-storage4$\Videos\Movies
-storage2$\Videos\Movies
-storage3$\Videos\TV series
-storage2$\Videos\TV Series
-storage3$\Videos\TV series\Startrek
-storage2$\Videos\TV Series\Startrek

output.txt - list of links it'll create. ']' before the path means it is a leaf node. '[' otherwise (this means something borked)

dfs_backup.xml - the actual XML file with the DFS data in it.

<server name>.<DFS share>.dfsutil.backup.<date> - backup of the DFS root. Handy if something goes splat.

Source is included, requires VS2k5 or VS2k8 to build.
 
Back
Top