How to Set Up Data Deduplication on Windows Server 2016

Data Deduplication (Dedup) is a Windows Server 2016 feature that reduces storage consumption by identifying and eliminating duplicate chunks of data across files on a volume. Unlike file-level deduplication, Windows Server Dedup operates at the sub-file, variable block level, which delivers high savings ratios on file servers, VDI stores, backup targets, and virtualization libraries. Typical savings range from 30% on general file servers to 95% on VDI environments.

This tutorial covers installing Data Deduplication, enabling it on volumes, configuring deduplication policies, monitoring savings, and understanding the garbage collection and scrubbing processes.

Step 1: Install the Data Deduplication Role Service

Data Deduplication is a File and Storage Services role service. Install it via PowerShell:

Install-WindowsFeature -Name FS-Data-Deduplication

Or via Server Manager: Add Roles and Features > File and Storage Services > File and iSCSI Services > Data Deduplication.

Verify the installation:

Get-WindowsFeature FS-Data-Deduplication

Step 2: Enable Deduplication on a Volume

Deduplication is not enabled on volumes by default. Enable it with a usage type that matches your workload. Available types are Default (general purpose file server), HyperV (VHD/VHDX on Hyper-V), Backup (backup repository targets).

Enable-DedupVolume -Volume "D:" -UsageType Default

For a Hyper-V workload:

Enable-DedupVolume -Volume "E:" -UsageType HyperV

Note: The system volume (C:) cannot be deduplicated. Deduplication works on NTFS volumes only.

Step 3: Configure Deduplication Policy

Adjust the deduplication policy to control which files are processed and when dedup jobs run. The MinimumFileAgeDays parameter prevents recently modified files from being deduplicated (useful to avoid overhead on frequently changing files):

Set-DedupVolume -Volume "D:" -MinimumFileAgeDays 3 -MinimumFileSizeBytes 32768

To exclude specific file extensions or folders from deduplication:

Set-DedupVolume -Volume "D:" -ExcludeFolder "D:Logs","D:Temp"
Set-DedupVolume -Volume "D:" -ExcludeFileType "pst","iso"

Step 4: Review and Schedule Deduplication Jobs

Deduplication runs as background jobs. The main job types are:

Optimization — processes new or modified files and deduplicates them. Runs daily by default. GarbageCollection — frees space from deleted or overwritten deduplicated data. Scrubbing — verifies data integrity of the dedup store and repairs corruption.

List current dedup jobs:

Get-DedupJob

Modify the schedule for the optimization job to run during off-hours only:

Set-DedupSchedule -Name BackgroundOptimization -Start 22:00 -DurationHours 6 -Days Monday,Tuesday,Wednesday,Thursday,Friday

List all dedup schedules:

Get-DedupSchedule

Step 5: Manually Trigger Deduplication

To run an optimization job immediately (useful after enabling dedup on a volume with existing data):

Start-DedupJob -Volume "D:" -Type Optimization

For an immediate garbage collection run to reclaim freed space after large deletions:

Start-DedupJob -Volume "D:" -Type GarbageCollection

Monitor job progress:

Get-DedupJob -Volume "D:"

Step 6: Monitor Deduplication Savings

After dedup jobs have run, check the savings statistics:

Get-DedupStatus -Volume "D:" | Select-Object Volume, SavingsRate, SavedSpace, OptimizedFilesCount, DeduplicatedFileCount

For a more detailed view including the dedup store size:

Get-DedupStatus -Volume "D:" | Format-List *

The SavingsRate field shows the percentage of space saved. Typical general file server savings are 40–60%. VDI environments can see 80–95%.

Step 7: Verify Deduplication Volume Settings

Confirm all settings are applied correctly:

Get-DedupVolume -Volume "D:" | Format-List *

Step 8: Disable Deduplication (If Needed)

If you need to remove deduplication from a volume (for example, before migrating to a non-NTFS filesystem), first unoptimize all files to restore them to their original inline state:

Disable-DedupVolume -Volume "D:"
Start-DedupJob -Volume "D:" -Type Unoptimization

The unoptimization job rewrites all deduplicated files to their original full size. Allow enough free space on the volume before starting this process.

Best Practices

Do not enable deduplication on volumes hosting databases (SQL Server data files, Exchange databases) where the application manages its own I/O patterns—this can cause performance issues. For VDI deployments, always set UsageType to HyperV. Ensure at least 5–10% free space on the volume to accommodate the dedup chunk store during optimization. Schedule the scrubbing job monthly to proactively detect and repair any corruption in the dedup store. Monitor dedup status weekly to confirm optimization jobs are completing successfully.