If I want to copy 10 files from server A to server B it doesn’t matter whether I copy them one at a time or try and launch 10 copy processes at once, both methods will take about the same amount of time and the limiting factor is the network bandwidth I have.  Now imagine I want to migrate ten virtual machines from Node A to Node B on a cluster -  it shouldn’t matter whether I choose to sequence them or let them all move in parallel.

However what is being copied is not a static file but the memory state of each virtual machine and the the migration process tracks which blocks of memory have changed while the copy is made and then recopy those changed blocks.  During this second copy yet more blocks will have changed (but not so many this time ) and so those in turn need to be recopied. This recopying continues until this  the memory on node B is in synch with Node A and the process will complete.  The longer the migration takes the more of this recursive copying of changed blocks will be required as the virtual machine changes during the process.

If several virtual machines are migrated in parallel the memory copy process is open for each virtual machine for the entire time of the migration, and if they are copied in serial the copy process for each virtual machine is only open for just the time need to migrate that machine.   So copying virtual machines in parallel takes longer than doing each one in sequence because they are all migrated for a longer time and so more blocks will have changed in that time that need to be recopied.

Of course the sharp eyed virtualisation experts reading this will tell me that you can’t copy virtual machines in parallel using Live Migration in Hyper-V.  Correct and my point is why would you want to have this if it takes longer? 

Or have I missed something?