One of the coolest and, in my opinion, most underrated features in our Purity FA Operating Environment is support for Windows Offloaded Data Transfer (ODX, or just copy offload). This basically enables your FlashArray to offload any data copies performed in Windows to the array itself, where they are treated as metadata-only operations. Remember – FlashArray is a data-reducing array, it makes no sense to actually copy anything within itself.
This has a multitude of benefits, not just in the Hyper-V space, and regular file copies/moves.
One of the side effects of using ODX is that you can fix your file system fragmentation in seconds now. Even for terabyte-sized files. When you copy a file to a new volume, the newly laid out file has only one fragment, and since there is no actual data movement, the copy only takes a few seconds – and there is no storage capacity overhead on the array whatsoever.
Here’s an example:
I have a volume that has a bunch of fragmented files, and looks like this:
I proceed to copy the files to a new volume, and the copy operation is quite stunning:
That’s 406.43 GB/sec. A bit over 6 Terabytes copied in 15 seconds. Not bad. Granted, you need to take a little bit of downtime to allow for the file copies to happen, but at that speed of processing you could well afford to take that small downtime on your database, copy the data files to a new volume, do a drive letter/mount point switch, and get rid of that pesky fragmentation.
How does my fragmentation level look like after the ODX copy?
Excellent! I have no fragmentation whatsoever and it only took me a few seconds to get rid of it.
ODX has a LOT of other uses. Imagine transferring data across machines connected to the same array leveraging this mechanism. Order of magnitude faster, minimal amount of traffic over your network.
To learn more technical details about our implementation of ODX, please refer to this blog post: ODX With FlashArray: An Engineer’s Perspective.
Thanks for reading,
-A