Storage is one the main key factors we look at when trying to improve our virtualization environments. It is also probably one of the most costly, not only from a $$$ perspective but also a performance perspective. I know a lot of you have made large investments in your storage solutions. Especially if you are running a lot of virtualization workloads.
When you look at functionality provided by Live Migration or vMotion, having fast storage can dramatically improve the performance and stability of these tools. At the end of the day, improving storage should not only improve your virtualization environment but also your overall server environment. In today’s article, I am going to talk about two very comparable technologies:
- Windows Server Offloaded Data Transfer (ODX)
- VMware’s vSphere API for Array Integration (VAAI)
While the post will focus on ODX, because this is one main areas of improvements in Windows Server 2012 that you may not be aware of. Secondly, ODX and VAAI have essentially has the same goals. To help storage vendors provide hardware assistance to speed up I/O operations that are more efficiently accomplished in the storage hardware. In other words why do it in software when hardware is better both Microsoft and VMware believe this when it comes to storage for your virtualization environments.
VAAI offers an API to offload specific storage operations to supported disk arrays for unparalleled performance and efficiency. With the vSphere API for Array Integration (VAAI), vSphere can perform key operations faster and consume less CPU, memory and storage bandwidth.
- Offload block copy and block zeroing to the array.
- Support dead space reclamation and out-of-space warnings in thin-provisioned arrays.
- Fully support NAS as well as block-based storage.
- These API’s are included with the VMware vSphere Enterprise and Enterprise Plus Editions.
ODX has even better integration with storage. ODX enables you to accomplish more with your existing external storage arrays by letting you quickly move large files and virtual machines directly within the storage array, which reduces host CPU and network resource consumption and decreases the time to perform the operation.
While ODX does need to have offload-capable SAN storage hardware, most modern hardware will support this functionality and at worse the hardware may need a firmware update for ODX to work. ODX allows the storage device perform a file copy operation without the main processor of the Hyper-V host actually reading the content from one storage place and writing it to another. This will dramatically how Hyper-V works with your files.
ODX uses a token-based mechanism for reading and writing data within or between intelligent storage arrays. Instead of routing the data through the host, a small token is copied between the source and destination. The token simply 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 (either within or between storage arrays), a token that represents the virtual machine file is copied, which removes the need to copy the underlying data through the servers. In a token-based copy operation, the steps are as follows:
ODX is especially significant in the cloud space when you must provision new virtual machines from virtual machine template libraries or when virtual hard disk operations are triggered and require large blocks of data to be copied, as in virtual hard disk merges, storage migration, and live migration. These copy operations are then handled by the storage device that must be able to perform offloads (such as an offload-capable iSCSI, Fibre Channel SAN, or a file server based in Windows Server 2012) and frees up the Hyper-V host processors to carry more virtual machine workloads.
As you can imagine having an ODX compliant array provides a wide range of benefits:
- ODX frees up the main processor to handle virtual machine workloads and lets you achieve native-like performance when your virtual machines read from and write to storage.
- ODX greatly reduces time to copy large amounts of data.
- With ODX, copy operations don’t use processor time.
- Virtualized workload now operates as efficiently as it would in a non-virtualized environment.
You can learn more about ODX here: Windows Offloaded Data Transfers (ODX)
So in translation essentially ODX = VAAI.
One of the major improvements we have made in Windows Server 2012 has been around storage and access to those storage environments. One could say that storage has become a 1st class citizen in Windows Server, this is very evident in the support that was added for virtualization. In addition to ODX we have added the following features in Windows Server 2012 (with more to come in Windows Server 2012 R2):
- Virtual Fibre Channel
- Native 4k Disk Support
- 64TB Virtual Hard Disks (VHDX)
- Boot from USB Disk (Hyper-V server only)
- Multi-Path I/O
In Windows Server 2012 we are adding Online VHDX resize, not only will be able to grow the VHDX file you will also be able to shrink the file as well. If you want to learn more about what is coming with Windows Server 2012 R2 check out this webcast on Tuesday, September 24, 2013:
I hope you enjoyed this post, and please comment. If you missed any parts of the series take a look here: