Problem: Live Migration of a VM Does Not End

Problem

The live migration of a VM does not end.

Environment

The VM in question is a large VM with 16Gib of RAM and 8 vCPUs.
On the shell you can see the following values for the domain (VM) $DOM:

~# virsh domjobinfo $DOM
Job type:         Unbounded
Time elapsed:     5499859      ms
Data processed:   530,696 GiB
Data remaining:   170,289 MiB
Data total:       12,009 GiB
Memory processed: 530,696 GiB
Memory remaining: 170,289 MiB
Memory total:     12,009 GiB
Dirty rate:       30740        pages/s
Iteration:        1695
Constant pages:   5252035
Normal pages:     138835932                                                                                                                                                        
Normal data:      529,617 GiB
Expected downtime: 1245         ms
Setup time:       167          ms

By starting the above command several times you will notice the Dirty rate value does not go down.

Solution

Option 1

Transfer the VM in a powered-off status.

Option 2

Take some risk and start the VM on the target host before it has been fully transferred by the “postcopy” parameter.

Through UVMM:
SInce UCS-4.3-3 Erratum 382 Post-Copy migration can be triggered directly from UVMM.

Through command line:
# virsh migrate --domain $DOM --live --persistent --undefinesource --postcopy --postcopy-after-precopy --verbose qemu://$DEST/system

Note: If your network goes down while the “postcopy” migration is not finished your VM will be in an inconsistent state!

Option 3

Pause the VM to stop the VM getting CPU time for dirtying it’s RAM. This no longer is a real “live” migration as the VM will be paused and unresponsive during that time.

Mastodon