Curious Case of Failed Distribution
A recent customer of mine was having issues distributing any sort of content down to their distribution points. This was a green installation of ConfigMgr 2012 SP1 without any of the CU updates installed over the top. What was the problem?
Just to set a bit of a scene for you. This environment was a development environment used pretty much as a sandbox, on hearing this I thought the worst and wrongly presumed it would be a case of too many cooks. However when I learned this was a two day old installation it got me thinking.
The hierarchy was very simple, single primary site with a local SQL installation followed by a second server acting as the distribution point and management point. All operating systems were running Windows Server 2012. On the primary site, the OS and ConfigMgr are installed to C: and we have a data drive E: for all our packages.
The status messages in distribution manager were pretty common, it seemed to suggest the site could not read the source directory to create the initial snapshot. Permissions looked okay so it was time to head over to the distmgr.log.
Not quite a sea of red as you can see but certainly a substantial amount. As you can see (click to make it bigger) we seem to have a root cause, which appears to be:
Failed to get the content library path.
To understand what is happening here, I just need to explain about the primary site (or CAS if you have one). When you setup your CAS or primary site you will see a SCCMContentLib directory along with SMSPKG and SMSPKGSIG directories get created on the root of the drive where you install ConfigMgr. This is used in conjunction with the distribution manager process just like a distribution point has a similar directory layout.
Back to the problem… What was happening here is that to keep the C: drive clean the customer had placed a NO_SMS_ON_DRIVE.SMS file on the root of the C: drive before installing ConfigMgr. The installation completed as expected however the above error was shown distributing any kind of content. You can see confirmation of the control file in the following screen shot (same as above, the last line before the first bit of red).
I noticed that we didn’t have the folder structure mentioned above. Which made me start looking at the NO_SMS_ON_DRIVE file. This was great but remember we had an E: drive, why wasn’t the SCCMContentLib set up on here?
A little further investigation shows that the E: drive was running with the ReFS file system, for those of you not aware ReFS is new in Windows Server 2012. I have linked just above to a great article on ReFS.
Following on from this is appears that ConfigMgr cannot see this as a valid drive to setup the package share? I copied off the content, formatted the disk as NTFS and copied back the content and restarted the Distribution Manager. Then what do you know! We have a SCCMContentLib and content is flying down to our distribution point.
So it seems that ConfigMgr has a problem with ReFS possibly? Even if the absolute root cause wasn’t this, the lesson here is always let ConfigMgr create the content library first. You can always use the Content Library Transfer tool from the toolkit. I intend to look into this a bit further in my lab, if anything changes I will post again on the subject letting you all know.