Copy offload by using ODX on Microsoft Windows

Offloaded data transfer (ODX) is a feature in Microsoft Windows Server. ODX function frees up hosts and speeds the copy process by offloading the entire orchestration to a storage array.

For virtual machine (VM) operations and large data transfers, Microsoft ODX offloads the heavy lifting of data movement to the host storage array instead of doing normal read and write operations. Examples include copy operations such as:
  • VM creation
  • VM migration
  • VM cloning
  • Microsoft Windows Virtual Hard Disk (VHD) creation
  • VHD conversion
  • VM backup and recovery
  • File copy

ODX is most relevant in a Hyper-V environment for VM heavy lifting operations. Standard buffered copy is run by reading the data from the storage controller into the host, buffering it, and then writing it to another volume. The ODX function frees up hosts and speeds the copy process by offloading the entire orchestration to a storage array. This offloading is done by using tokenization for read operations and write operations, and it avoids buffering, which can ultimately cut down on processor cycles.

Planning for offloaded data transfer (ODX)

For a copy workload in a Microsoft Windows environment, you can use Microsoft offloaded data transfer (ODX) to offload the copy workload to the storage controller to speed job completion. When you decide on an ODX implementation, review the planning considerations to help you determine whether ODX is appropriate for your environment.

It is important if you have a Windows environment to know whether existing Windows workload consists of copy workload, and if it does, what is its extent. By default, Windows offloads any copy greater than 256 K to the controller if the volumes are published as ODX capable. Two important points exist.
  1. With ODX enabled, Windows offloads any copy greater than 256 K to the system controllers. The offload frees up the hosts CPU and network. Depending upon the type of copy, the system can even experience faster copy in certain situations. However, for multiple Windows hosts in the environment, all Windows hosts start pumping copy offload jobs to the storage controllers. If you use ODX, plan for this impact.
  2. Workloads other than copy might experience higher latencies if the copy workload is high. Since the offloaded jobs tend to Copy offload by using ODX on Microsoft Windows faster, they require more controller resources in a specified time. The result might be higher latencies with non-copy workloads.

If you have a Hyper-V environment, the benefit is immense through copy offload ODX technology. With ODX enabled, all Windows jobs like file copy, VM migration, cloning, and VHD creation would be offloaded to the storage controller. It is advisable to check the impact of copy offload on other types of workloads in such an environment.

If you decide to implement ODX, it is advisable that you review existing workloads and make sure that capacity planning is completed to meet the demand. If you are not interested in the benefits of copy offload, you can disable system-wide ODX by using the CLI. Not using ODX prevents existing workloads from experiencing extra latency due to copy offload.