PowerMax and Windows Offline Data Transfer
Summary: This article describes Offline Data Transfer (ODX) operations from the perspective of PowerMax.
Symptoms
- Storage is PowerMax
- ODX is in use.
- ODX may be copying more slowly than expected
- Host may be logging ODX-related errors.
Cause
Offline Data Transfer (ODX) is a Microsoft product that offloads copy requests to storage in order to conserve host resources and speed up data transfers. This is managed by tokens so that ODX can confirm that the target data is what was intended when the copy request was made.
The process can be summarized as follows:
- ODX is told to move more than 256 KB of data from one location to another.
- ODX sends copy requests to PowerMax.
- The total data to be moved is split into chunks by ODX.
- PowerMax allows requests to move up to 256 MB per extent, but ODX typically defaults to chunks of 64 MB.
- PowerMax creates an XCOPY session between the source and target device (which can be the same device).
- PowerMax groups the chunks into "extents," and places each extent into an XCOPY table.
- PowerMax acknowledges receipt of this chunk to ODX.
- ODX believes the copy to be complete and waits 3 minutes from the time of sending the copy request before allowing host access to the data.
- Steps 4-5 are repeated for each copy request from ODX.
- If PowerMax sees a problem with a copy request, the request is rejected. ODX retries this four times and then defaults to copying the chunk using normal host reads or writes if none of the retries were successful.
- PowerMax works through the XCOPY table, moving the data from source to target asynchronously from the ODX copy request.
- Copy is performed by read or write functions within PowerMax.
- This usually completes within the three minutes allowed by ODX, but may copy more slowly if high resources are needed for ongoing host I/O.
- After three minutes, ODX releases the data from the copy request for host use at the target location.
- If the initial ODX operation was a move rather than a copy, the host issues delete to the source tracks outside of the ODX protocol.
Resolution
Microsoft details their requirements for use of ODX in their article Windows Server 2012 R2 and Windows Server 2012 .
PowerMax requirements for use of ODX:
- Both source and target devices must not be involved in SRDF/Metro (active/active)
- Both source and target devices must not be involved in SnapVX sessions.
As stated in step 5 of the Cause section above, PowerMax rejects copy requests if the request is not supported.
Common rejection reasons include:
- Unable to Cascade
- Data copy to the first target must be complete before that same data can be copied from the other target. If the first copy is not yet complete (still in the XCOPY table), a copy request for any portion of that same data to another location is rejected.
- Unaligned Extents:
- The logical block address (LBA) for the beginning and end of the chunk must be at the first block of a 128 KB track, and the LBA at the end of the chunk must be at the last block of a 128 KB track. This must be true at both the source and the target for the copy request to be accepted.
- The copy request must contain real data. If the request contains only extents with block counts of zero, it is rejected.
- The copy request must contain at least 256 (0x100) blocks of data within an extent. Smaller data amounts are rejected.
If you need further assistance troubleshooting the issues above, contact Dell Technical Support or your Authorized Service Representative and provide this knowledge article number.