That is nowhere near as easy as it sounds. The problem isn't justification for developing it - there's plenty of demand! The problem is that the VM is running.
When the OS boots, it figures out the offset for partitions on disk, (along with a ton of other structures), and keeps all that in memory. Any I/O to/from a partition is relative to the offset. If we start moving blocks while the OS is running, corruption will occur as soon as the OS tries to access blocks that have been realigned.
This is why mbralign requires the VM to be shut down. The guest has to re-read the partition table, which it does on boot. There's no magic way to switch the disk and tell the guest that the entire partition just moved 512 bytes to the right.
Now, we're looking at clever tricks in ONTAP, but don't expect anything soon.
Thanks for the reality check -- I could work out various scenarios where it would be pretty complicated but was hoping there might be a magic bullet somewhere.
Having said that, it would still be wonderful (which was mainly what I wanted communicte....not a "why in the world doesn't NetApp already have this?" but rather "this would be fantastic if it could happen).
Just having mbralign is already a good bit ahead of other storage vendors so I am grateful regardless.
Hi Peter, thanks for the feedback - if the SVMotion plugin author was to look at incorporating Netapp calls to attempt this - what Netapp API/SDK would be most appropriate?
If the offset is a value read in at boot time by the OS, VMWare may have the necessary layer of abstraction to make this change transparent to the SVMotion destination before it takes over for the source...