Offloaded Data Transfer (ODX)

Microsoft Platform Guide

Audience
Public
Source Type
Documentation

Offloaded Data Transfers (ODX) was introduced in Microsoft Windows Server 2012 to provide direct data transfer within or between storage arrays by bypassing the host system. By offloading file transfer operations from the host system ODX helps to reduce host side latency, leveraging the storage array throughput capabilities and reducing CPU and networking resources on the host system.

Note:

ODX does not work with Dynamic Disks, ReFS, NTFS Compression, or Bitlocker Encryption.

ODX does not work with Pure Volumes that are inside of a ActiveCluster Planning and Design Guide .

ODX needs to be validated and outlined for intra-vm on Hyper-V. IDE Disk Controller and Gen1 does not work, what else? ODX needs to be validated and outlined for POD that is ADR. Is that different or as expected to not work because it is a POD.

ODX is a transparent operation to the Windows Server host system whether a user or administrator initiates a file transfer using Windows Explorer via drag-n-drop or using command line tools.

Everpure has implemented ODX as part of Purity 4.10 maintenance release. By default, Windows Server 2012, 2012 R2, 2016 and 2019 have ODX enabled so Everpure customers will immediately be able to take advantage of this Purity capability.

Note:

To check whether ODX is enabled on Windows Server run the below Windows PowerShell. If the result is 0 ODX is enabled; if the result is 1 ODX it is disabled.


Get-ItemProperty -Path 'hklm:\system\currentcontrolset\control\filesystem' -Name 'FilterSupportedFeaturesMode'

In the event ODX is disabled, indicated by a result of 1 from the above Windows PowerShell, run the below PowerShell to enable ODX.


Set-ItemProperty -Path 'hklm:\system\currentcontrolset\control\filesystem' -Name 'FilterSupportedFeaturesMode' -Value 0

Implementing ODX benefits the following use cases:

  • Import and export of Hyper-V virtual machines.
  • Transfer of large files, examples include: SQL Server databases, Exchange databases, VHD(X) files, image or video files.

Without ODX the operation of transferring data from one host system to another relied entirely upon the network. The basic operation was to read the content from the storage array from host system A, copy the content across the network to host system B and finally write the transferred content back to the same storage array.

To eliminate this inefficiency, ODX uses a token-based mechanism for reading and writing data within or between storage arrays. Instead of routing the data through the host, a small token is copied between the source server and destination server. The token serves as a point-in-time representation of the data. As an example, when you copy a file or migrate a virtual machine between storage locations (within or between storage arrays), a token representing the virtual machine file is copied, thereby removing the need to copy the underlying data through the servers.