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.