What is Hyper-V Offloaded Data Transfer (ODX), and how does it work?
Offloaded Data Transfer (ODX) is a new feature that is designed to decrease the amount of time that it takes to read from or write to storage. Currently, processes such as merging snapshots, moving virtual hard disks or compacting virtual hard disks are time-consuming, because the operating system has to be involved in the process. ODX allows copy operations to complete in a fraction of the time that they would otherwise take.
ODX will greatly increase the efficiency of read and write operations by handing the operation off to the storage hardware so that the operation can be performed natively at the storage level rather than requiring the operating system to orchestrate the entire process. ODX is similar to the functionality VMware's vStorage APIs for Array Integration (VAAI) delivers, though there are differences between the two.
To take advantage of ODX, the virtual machines (VMs) must be hosted on ODX-capable hardware. Specifically, this means that the VM must be connected to the storage hardware as a SCSI device. As an alternative, the VM can use a SCSI pass-through disk. Virtual hard disks that are attached to a virtual machine as an Integrated Drive Electronics (IDE) device cannot take advantage of ODX because the IDE specification does not allow for offloaded data transfer. This limitation holds true for all virtual hard disks, regardless of the underlying physical storage architecture.
The best part of the Offloaded Data Transfer feature is that, with ODX-capable hardware, the functionality is enabled automatically, without intervention from an administrator. Windows Server 2012 is smart enough to detect whether or not the underlying hardware is ODX-compliant. If the operating system detects ODX-compliant hardware, it will use it.
This was first published in October 2012