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
Comments
Anonymous
March 12, 2015
Would this work the same way if the virtual machine was running in a VMware environment?Anonymous
August 21, 2015
@Doug, Answer = Yes. In simple terms, ODX is a smaller subset of the array offloading feature available via VMWare called VAAI.