How To Optimize ReFS Performance With System Center Data Protection Manager? #WindowsServer #ReFS #SCDPM #DPM

3 min read


DPM 2016 introduced with major new feature called Modern Backup Storage (MBS) that allows you to backup dynamic data sources with ease, achieve faster backups and reduced storage consumption. This is achieved by leveraging ReFS Block Cloning technology introduced in Windows Server 2016 and so DPM 2016 (LTSC) including DPM 1801, and DPM 1807 (SAC) should be running on Windows Server 2016 or Windows Server 2019 for leveraging Modern Backup Storage (MBS).

How Does Modern Backup Storage Works with DPM

As mentioned earlier, DPM leverages Windows Server 2016 ReFS capabilities to provide Modern Backup Storage (MBS). When you add a volume, DPM formats the storage into an ReFS volume and store the backups on multiple VHDXs. For example, if you are backing up a SQL database with 10 blocks, DPM will place the VHDX into a common chunk store on the ReFS storage volume. On the next recovery point, DPM creates an ReFS clone pointing to the original VHDX and the common chuck store as well. When some of the blocks are changed for the backup, DPM transfers the new blocks and write them into the cloned VHDX using Allocate-on-Write technology, then ReFS writes the new blocks into the chunk store and the new clone VHDX will point to these blocks of the new data.

ReFS Improvements and Fixes

Many users have reported backup performance issues with MBS that heavy memory is used in the Resilient File System (ReFS) file system on a server that is running Windows Server 2016 and System Center Data Protection Manager 2016. This can specifically occur when you use DPM that does large block-clone operations.

Microsoft is aware about this issue and released an update on February 22, 2018-KB4077525 to address this issue. You can read all about it here.

Besides this update, Microsoft also released additional tunable registry parameters to address large ReFS metadata streams. The tunable parameters are documented here.

Optimizing ReFS Performance with DPM

In addition to the latest windows update, you need also to implement the below registry entries combination as advised by the DPM team to optimize ReFS performance with DPM.

Open an elevated Windows PowerShell console on your DPM server and run the following commands:

New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsEnableLargeWorkingSetTrim -PropertyType DWord -Value 1 -Verbose
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsNumberOfChunksToTrim -PropertyType DWord -Value 32 -Verbose
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsDisableCachedPins -PropertyType DWord -Value 1 -Verbose
NeW-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsProcessedDeleteQueueEntryCountThreshold -PropertyType DWord -Value 2048 -Verbose

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsEnableInlineTrim -Value 1 -Verbose

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Disk\" -Name TimeOutValue -Value 120 -Verbose

Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage\" -Name DuplicateExtentBatchSizeinMB -Value 100 -Verbose

[ValidateSet('Yes','No')]$Answer = Read-Host "`nAre you sure you want to restart $($env:ComputerName) ? Enter Yes/No"
If ($Answer -eq 'Yes') { Restart-Computer -Force }

After you run the script above, you can check the updated values by running the following commands:

Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem\" -Name RefsEnableLargeWorkingSetTrim, RefsNumberOfChunksToTrim, RefsDisableCachedPins, RefsProcessedDeleteQueueEntryCountThreshold, RefsEnableInlineTrim | FL RefsEnableLargeWorkingSetTrim, RefsNumberOfChunksToTrim, RefsDisableCachedPins, RefsProcessedDeleteQueueEntryCountThreshold, RefsEnableInlineTrim
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\Disk\" -Name TimeOutValue | FL TimeOutValue
Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Microsoft Data Protection Manager\Configuration\DiskStorage\" -Name DuplicateExtentBatchSizeinMB | FL DuplicateExtentBatchSizeinMB

How To Optimize ReFS Performance With System Center Data Protection Manager? #WindowsServer #ReFS #SCDPM #DPM 1

More Information

Serious problems might occur if you modify the registry incorrectly by using Registry Editor or by using another method.

You also need to take the following consideration before you proceed and modify the registry:

  • A restart is required for these changes to take effect.
  • These parameters can be used in any combination because they do not overlap functionally.
  • These parameters must be set consistently on every DPM server leveraging ReFS Block Cloning technology.

Additionally, DPM 1807 included a set of bug fixes. With the tunable registry settings above, you will see better performance over DPM 1801 and DPM 2016.

Hope this helps someone out there!

Thank you for reading my blog.

If you have any questions or feedback, please leave a comment.

-Charbel Nemnom-

About Charbel Nemnom 577 Articles
Charbel Nemnom is a Cloud Architect, Swiss Certified ICT Security Expert, Microsoft Most Valuable Professional (MVP), and Microsoft Certified Trainer (MCT), totally fan of the latest's IT platform solutions, accomplished hands-on technical professional with over 17 years of broad IT Infrastructure experience serving on and guiding technical teams to optimize the performance of mission-critical enterprise systems. Excellent communicator is adept at identifying business needs and bridging the gap between functional groups and technology to foster targeted and innovative IT project development. Well respected by peers through demonstrating passion for technology and performance improvement. Extensive practical knowledge of complex systems builds, network design, business continuity, and cloud security.

Be the first to comment

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.