Windows ODX test (Offloaded Data Transfers)

Hello,

One of my NAS provider recent updates enabled some advanced features for the LUNs I wanted to test, before upgrading my entire Private Cloud fabric to Windows Server 2012 R2 and System Center 2012 R2.

I am talking about the ODX feature my NAS LUNs are now capable of. As storage is the current heart and the main bottleneck in our clouds, the ODX promise to store and get fast Virtual Machines operations is extremely appealing.

ODX setup

To test and get an idea of what it was capable of, I created a dedicated LUN on my NAS with the Advanced LUN features activated (including the Windows ODX):

 

The LUN is mapped to an iSCSI target on the NAS.

Then, the LUN is connected to a Windows Server 2012 R2 host, which runs Hyper-V, through Windows iSCSI initiator.

The LUN is exposed to Windows as a Disk, on which a partition and a volume are created, formatted in NTFS.

 

Once this is done, the documentation is unclear on how to Enable ODX. So I used the various resources found on the Internet and did this:

To enable ODX, in a Windows PowerShell cmd line, running as Administrator, type:

Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name "FilterSupportedFeaturesMode" -Value 0

To disable ODX, type the following:

Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name "FilterSupportedFeaturesMode" -Value 1

 

Tests

Block Zeroing

To test the Block Zeroing feature of ODX (the capability to create files filled in with 0), I create a fixed size VHDX file of 50GB.

In PowerShell, disable ODX and create a new VHDX file

 

Code:

Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name "FilterSupportedFeaturesMode" -Value 1

Measure-Command { New-VHD -Path E:\TestVHD-50GB.vhdx -Size 50GB -Fixed}

File creation duration: 19 minutes and 48 seconds

 

Then, in PowerShell, enable ODX and create another VHDX file

 

Code

Set-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name "FilterSupportedFeaturesMode" -Value 0

Measure-Command { New-VHD -Path E:\TestVHD-50GB-ODX.vhdx -Size 50GB -Fixed}

File creation duration: 7 seconds!!!! - for a 50 GB file

Full Copy

To test the copy, I copied the created files without then with ODX, with this PowerShell command:

Measure-Command { Copy-Item E:\TestVHD-50GB.vhdx E:\CopiedTestVHD.vhdx }

 

Copy without ODX:

 

Copy duration without ODX: 26 minutes and 21 seconds

 

Copy WITH ODX:

 

Copy duration WITH ODX: 24 seconds!!!!

 

Conclusion

If any of your fabric components are ODX capable, you want to Enable it and leverage the blasting files operations speed.

The gains I measured tell it all:

50 GB file operations

Without ODX

With ODX

Gain factor

Block zeroing (creation)

1,188 s

7 s

169 times

File copy

1,581 s

24 s

65 times

 

 

References

My SAN hardware provider feature

https://www.synology.com/en-us/dsm/business_virtualization_iscsi_virtualization_support

 

Deploy Windows Offloaded Data Transfers

https://technet.microsoft.com/en-us/library/jj200627.aspx

 

NTFS Cluster size for Hyper-V

https://outlookcloudy.blogspot.ca/2011/12/ntfs-cluster-size-for-storing-vms.html

 

Notes From The Field Using ODX With HP 3PAR Storage Arrays

https://www.hyper-v.nu/archives/hvredevoort/2013/07/notes-from-the-field-using-odx-with-hp-3par-storage-arrays/