I am configuring a new DFS setup that will utilize Namespaces and Replication. The two member servers are virtual machines running Windows Server 2012 R2.
Since many of the shares range from hundreds of gigabytes to several terabytes, I want to store these shares on their own virtual disks rather than having one big (10's of terabytes) virtual disk for all shares. Instead of assigning a drive letter for each disk, I expected to be able to use junctions to create a unified logical structure as follows where each shared folder is really a junction pointing to a folder on another volume (of course, on each member server the corresponding volumes have different identifiers, and the junctions account for this):
C:\File Shares\
Share1\
===Junction===>\\?\Volume{11111111-1111-1111-1111-111111111111}\File Shares\Share1\
Share2\
===Junction===>\\?\Volume{22222222-2222-2222-2222-222222222222}\File Shares\Share2\
Share3\
===Junction===>\\?\Volume{33333333-3333-3333-3333-333333333333}\File Shares\Share3\
Applications such as Windows Explorer and Command Prompt have no problem navigating this structure, and I am able to create shares from each C:\File Shares\ShareX
junction and access them without issue. DFS-R, however, doesn't seem to like it. After creating a replication group using one of the above junctions, event 6064 is generated in the Event Log:
The DFS Replication service failed to replicate the replicated folder at local path C:\File Shares\Share1 because the local path is not the fully qualified path name of an existing, accessible local folder.
I suspected the issue is that DFS-R simply doesn't support using a junction as a replicated folder. DFS Replication: Frequently Asked Questions (FAQ) states "Junction points also are not replicated, and DFS Replication logs event 4406 for each junction point it encounters.", but that seems to be referring to when a replicated folder contains a junction rather than when a replicated folder is a junction. In fact, if I assign drive letters X:
, Y:
, and Z:
to the volumes above then DFS-R does work with these junctions:
C:\File Shares\
Share1\
===Junction===>X:\File Shares\Share1\
Share2\
===Junction===>Y:\File Shares\Share2\
Share3\
===Junction===>Z:\File Shares\Share3\
This is close to what I want because each share and replication group refer to a C:\File Shares\ShareX\
junction, but each junction still has to be defined using a drive letter and I'd like to take those out of the equation, if possible. To further confuse things, a few weeks ago I was able to get a share replicating using a junction referencing a volume without a drive letter, but now it no longer replicates because of the same 6064 error. I'm not sure how it is that worked in the first place.
Does anyone have any experience with this kind of setup? I can't seem to find any information on using DFS-R with volumes that have no assigned drive letter. Aside from a little extra work when creating new shares, are there any pitfalls or downsides to using junctions to organize replicated folders?