Windows Server 2012 – Deduplication on Hyper-V Host or Guest VM?

deduplicationwindows-server-2012-r2

I have a Windows Server 2012 Hyper-V host with VMs on a dedicated RAID-5 volume. One VM is also running Server 2012 and is being used to serve files. The other VMs are smaller and mostly used for temporary testing scenarios.

The main file server VM has two dynamically expanding VHDX files – one for the OS and one for storage. The VHDX being used for storage has quite a few duplicated files on it.

Should I run Server 2012 deduplication on the volume containing the storage VHDX file on the host, or within the file server VM itself? I understand that running it within the VM will not decrease the size of the VHDX file on the host, but my goal is to enable as much storage capacity within the VHDX file itself. I also understand that if I run it on the host, I will have to take the VM offline to do it. Downtime isn't a concern in this instance, just the best way to do this.

Best Answer

Deduplicating VHD and VHDX files is not supported. You should not dedupe on the Hyper-V host. Dedupe within the guest.

Edit: Note that this has changed a bit since this answer was originally written. In certain configurations relating to VDI, dedupe of VHD/VHDXs is supported: http://blogs.technet.com/b/filecab/archive/2013/07/31/deploying-data-deduplication-for-vdi-storage-in-windows-server-2012-r2.aspx