Hello, Mike Jacquet here, and today I would like to discuss a fix that has been included in the released version of System Center 2012 Data Protection Manager (DPM) that enables End User Recovery (EUR) for file shares on the root of mountpoints to work properly.
In previous versions of DPM, if you protected a volume or share on a file server, and the share was on the
of a mounted volume, when clients tried looking for previous versions of files and folder located in the root of the target volume it would fail to show any.
To illustrate this, Figure-1 below shows a clustered protected file server called MJLC-ClusterFS with two Volumes. The H: drive labeled HOSTVOL is the HOST volume for a NTFS mountpoint. The folder H:\MountVol is the mountpoint for another volume labeled TARGET. The H:\MountVol folder is shared as MountVol, and client's access data located on the TARGET volume via the network share \\MJLC-ClusterFS\Mountvol path.
In figure-2 below, I show a Windows client mapped to a network drive X: which points to the \\mjlc-clusterfs\Mountvol share. When the user attempts to view
of the file called targetfile.txt.txt located in the root of the mountpoint (TARGET), no previous versions are enumerated and instead you see
"There are no previous versions available"
The root cause for this problem is due to the way that DPM creates the shares on the DPM Server when end user recovery is enabled. To overcome a possible path limitation, DPM creates all shares using a \\?\ prefix. Unfortunately, that prefix prevents vss shadow copies from being enumerated under mounted volumes.
Figure-3 details the shares on the DPM server. Looking specifically at the ones created by DPM for end user recovery, you will see they are prefixed with the \\?\ for the folder path. I have highlighted the problematic MountVol share. If you were to manually re-create the share without the \\?\ prefix DPM would overwrite it when the next synchronization job ran and it will put the \\?\ prefix back on the folder path and would result in the same problem.
System Center 2012 Date Protection Manager supports a new registry key that you can add to prevent DPM from adding the \\?\ prefix when the end user recovery shares are created.
To allow previous versions to be listed for files located under shared mountpoints perform the following steps:
Only shares that are created (re-created) after the registry key is added will no longer be prefixed.
1) On DPM 2012 RTM server make a new registry
under the following location:
HKLM\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration
2) On the DPM Server, open Computer Management. Under System Tools – Shared Folder – Shares – locate the share representing the mountpoint and “Stop Sharing” to delete it.
3) In the DPM Console, locate the volume or share that is being protected that represents the mountpoint and make a new recovery point. You can choose either the "Only Synchronize" , or the "Create a recovery point after synchronizing" option, but a synchronization job must be ran and complete successfully before the share will be re-made on the DPM Server.
4) After the new recovery point job completes, verify the share got re-created in Computer Management and no longer has the folder path that starts with the \\?\ prefix.
5) Test end user recovery on the client – it should now list previous versions for the files located under the shared mountpoint.
Now that the prefix was removed from the MountVol share on the DPM 2012 server, figure-8 confirms that previous versions are now working.
As of this writing, it is unclear if this fix will be back-ported for DPM 2010, however if it is I will update this post.