Understanding svMotion Background Process

svMotion is fair simple process and nothing much complex is involved in that. Here are the step by step breakdown of what happens in background of svMotion process:

  1. The virtual machine working directory is copied by VPXA to the destination datastore.
  2. A “shadow” virtual machine is started on the destination datastore using the copied files. The “shadow” virtual machine idles, waiting for the copying of the virtual machine disk file(s) to complete.
  3. Storage vMotion enables the Storage vMotion Mirror driver to mirror writes of already copied blocks to the destination.
  4. In a single pass, a copy of the virtual machine disk file(s) is completed to the target datastore while mirroring I/O.
  5. Storage vMotion invokes a Fast Suspend and Resume of the virtual machine (similar to vMotion) to transfer the running virtual machine over to the idling shadow virtual machine.
  6. After the Fast Suspend and Resume completes, the old home directory and virtual machine disk files are deleted from the source datastore.

6 thoughts on “Understanding svMotion Background Process

  1. Hi Alex, I had a doubt.
    If initiate the SVmotion at 8 PM, I wrote a data at 8.15. SVmotion failed at 8:30. Will my data remain in parent/past virtual disk?

    1. If svMotion fails then also your data will remain in your parent disk(source machine) because new write requests are picked by mirror driver and is written to both source and destination disk simultaneously.

    2. Hi Santosh,

      Sorry for replying so late to this post. I didn’t get chance to see the comments on post after I have written that post. Anyways answer to your question is your data will be present in the disk which was lying on source datastore. Since svMotion process never get completed so after the failure the disks files will be deleted from destination datastore as part of cleaning up svMotion failure. Since mirror driver pick all the IO write when svMotion is in progress and write that IO on both source and destination disks simultaneously, so even if svMotion got failed data will not be lost from disks that were on source datastore.