Using Delivery Optimization In-Network Cache (DOINC) in ConfigMgr

Exciting times! ConfigMgr TP 1903 was just released, and so the very first public beta of Delivery Optimization In-Network Cache (DOINC), nicely integrated with ConfigMgr. Here is a link to the documentation for ConfigMgr TP 1903: https://docs.microsoft.com/en-us/sccm/core/get-started/2019/technical-preview-1903

Update: DOINC is also available in ConfigMgr Current Branch v1906 (or later)

Introduction to DOINC

DOINC is cache server for Delivery Optimization (DO) content, for example updates for the built-in Windows 10 applications, Microsoft Store applications, and Office 365 updates. DOINC has it’s own cache, and does not use the ConfigMgr Content Library. DOINC is supported on servers running Windows Server 2012 or later, but I highly recommend using at least Windows Server 2016. On the client side, you need to be on at least Windows 10 v1709, but I recommend at least Windows 10 v1803 because of updated settings for Delivery Optimization.

When a client needs to download say a Windows 10 application update, the DOINC server acts as a proxy, sort of, and stores the download in its cache, and also forwards the bits to the client. The download doesn’t need to complete on the cache server. As soon as a chunk is available, it is offered to the client. And then, obviously, when another client needs the same update, it will get the bits directly from the cache server, or from a local peer.

DOINC is built by the Delivery Optimization team at Microsoft, and the ConfigMgr team redistribute some key parts of it as part of the ConfigMgr TP 1903 release.

DOINC011
Some content being downloaded in the DOINC server cache.

Setup DOINC on the Server (DP)

Installing DOINC on a DP is very straight forward, you simply go the DP properties, and select the magic check box: Enable this distribution point to be used as a Delivery Optimization In-Network Cache server. When you did this, ConfigMgr triggers the DOINC installer (a PowerShell Script). You can watch the progress in the distmgr.log file, and also the DOINC installer logfile ("E:\SMS_DP$\Ms.Dsp.Do.Inc.Setup\DoincSetup.log" in my environment).

DOINC also installs two maintenance tasks (PowerShell scripts).

DOINC001
The DOINC check box on the DP properties.
DOINC002
distmgr.log showing DOINC installer being called.
DOINC003
The DOINC installer log file: DoincSetup.log
DOINC009
DOINC tasks.

Configuring the Windows 10 Clients

To enable your Windows 10 v1709 or later ConfigMgr clients to use DOINC, you must first upgrade the ConfigMgr agent to the TP 1903 version, and then enable and deploy the client setting that configures the client policy. This configures the DOCacheHost and DODownloadMode local policy on the client in the same location as the other Delivery Optimization policies are: HKLM\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization.

DOINC004
The ConfigMgr Client Settings for DOINC.
DOINC006
The local policy after the DO settings have been applied.

Note: Currently, after the new client settings has been applied, you need to reboot the machine for the DOCacheHost registry value to show up.

Verifying DOINC in action

To verify DOINC in action, simply login to a few newly deployed Windows 10 v1709 or later machines, and wait until the built-in apps starts to update. Or download a bunch of Microsoft Store apps. I recommend racing games since they are often quite big :).

Once downloaded you can start PowerShell and run the Get-DeliveryOptimizationStatus cmdlet. Look for the BytesFromCacheServer value. You can also check the DOINC monitor on the DOINC Server itself by opening up IIS manager, and drill down to Server Farms.

image
DOINC Monitoring and Management.
image
The client showing data coming from the DOINC cache server.
image
Downloading some stuff on a Windows 10 client 🙂

Written by Johan Arwidmark

About the author

Johan Arwidmark

4.5 2 votes
Article Rating
Subscribe
Notify of
guest
21 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
zoheir
zoheir
1 year ago

Hi Johan
thanks you so much for your effort

i have a question please, i am using mcc for co-managed device, but when i check with get-delieveryOptimizationstatus i get:
status : paused and bytesfromcachserver : 0

could you plpease help

Michel Leclerc
Michel Leclerc
2 years ago

Hello Jason, We are now at MECM 2010 and it's not clear for me what is required to have the DOCacheHost value configured in the client registry. Of course "Enable devices managed by Configuration Manager to use Microsoft Cache servers for content download" has to be enabled. From my experience, "Use Configuration Manager Boundary groups for delivery optimization Group ID." is optional. In our organization, peer sharing is not needed / recommended. In the boundary group options, I'm not sure if the "allow per download in this boundary group" is required. What is you opinion ? Is there any client… Read more »

Michel Leclerc
Michel Leclerc
2 years ago

Is it possible to configure the clients to receive only content from the Microsoft Connected Cache and not from peers ? We use VLAN and clients on the same subnets can be located at different locations.

Andy Nabbs
2 years ago

Can you use DOINC in a multi tennant environment, or would it have to be dedicated to each user (could it be virtual?). We are looking to setup configuration services for multiple customers and need to create an environment

Herman
Herman
3 years ago

I was unable to get this to work in 1906. It would crash with the following error:
"Exception message: Could not load type 'http://Ms.Xbl.Dd.Controller.Service.Global'"

In 1910 this seems to have been sorted out.
However when first trying to install this feature in 1910, distrmgr.log on the site server reported:
"Failed to run DOINC Install.ps1. Error code 8".
I copied the PS command from distrmgr.log and ran it directly on my DP. This fixed my issue and DOINC was installed. (Just remember to change directory to “\SMS_DP$\Ms.Dsp.Do.Inc.Setup” before running the command.)

James
James
3 years ago

Hi, I'm currently using branche cache in my environment with DO set to bypass. Can DOINC work along side BC.?

Casper Sejr Madsen
Casper Sejr Madsen
3 years ago

do you know how the DOCacheHost is gathered? Mine ends up empty 🙁
DOGroupId, and DODownloadMode is set correct.
If i type the SCCM DP server with the DO enabled it works perfect.. but the DOCacheHost is not automatically written to the reg key?

Thomas C.
Thomas C.
3 years ago

To bad, that this is only available in SSCM! It should also available for free for all customers!

Olaf Thyssen
Olaf Thyssen
3 years ago

That will be the announced Microsoft Connected Cache feature, an agent installed on OnPrem servers but managed through the Azure portal.
There will be a private preview but won't start before Feb 2020, I was told during Ignite.
Check details on https://aka.ms/PreviewConnectedCache with link to private preview registration

adrian r
adrian r
3 years ago

Thanks for the nice article. I am having some issues making it work though. Do you know if the cache should get filled with some files or it fills as clients are requesting Store apps for example?

Olaf Thyssen
Olaf Thyssen
3 years ago

I had the problem that the registry settings (DOCacheHost, DOGroupId) weren't applied to my 1906 clients at all. You need to have "Allow peer downloads in this boundary group" check-marked within the options tab of the boundary group. Now I have the above mentioned hits and downloads in the IIS monitoring and the DOINC folder on the server local drive gets filled.


>