Is there anything documented about how vMotion & Storage vMotion ensure data integrity of the copy each makes? I'm not referring to Encrypting in transit (vMotion Encryption etc) but rather how VMware knows it has a good copy of the VMDK disk etc on the destination (excluding encrypted disks here) before it uses CBT and commits the final change? MD5 is mentioned in some articles where you copy files manually but what tool / mechanism does VMware use to verify disk integrity in particular when you use the UI? Thanks.
Yours is a very interesting question indeed:
here is what i found:
Before moving a virtual machines disk file, Storage VMotion moves the "home directory" of the virtual machine to the new location. The home directory contains meta data about the virtual machine (configuration, swap and log files). After relocating the home directory, Storage VMotion copies the contents of the entire virtual machine storage disk file to the destination storage host, leveraging "changed block tracking" to maintain data integrity during the migration process. Next, the software queries the changed block tracking module to determine what regions of the disk were written to during the first iteration, and then performs a second iteration of copy, where those regions that were changed during the first iteration copy (there can be several more iterations).
I guess that doesn't fully answer the question. It is an interesting question indeed, and I never seen anything shared around it. Not outside VMware, and not inside either. Let me see if i can ask one of the engineers.
Also, one thing to mention I guess is that a filter driver is introduced for data that is written to during the process, so that goes from the VM directly to "source" and "destination". Still the question then remains, how do we know what we read is the same as what we write?