This test case checks that worst-case live migration using libvirt between two Fedora 12 hosts works correctly. The worst-case for live migration happens when the guest in question is very busy and changing memory very rapidly, which causes the same pages to be transmitted multiple times to the destination.
How to test
- On the source machine, edit the guest so that it has a fairly large amount of memory (at least 2GB, more if you can spare it).
- On the source machine, start the guest.
- Once the guest has fully booted, find out the IP address of the guest (by logging into the guest and running ifconfig, or whatever is equivalent in the guest OS of your choice). From the source machine, start a ping to the guest:
$ ping <guest-IP>
- Download this code to the guest: File:Live-migration-memeater.c and compile it using
$ gcc -g -Wall Live-migration-memeater.c -o memeater
- Start the memchanger inside the guest by executing:
- Now on the source machine execute:
$ virsh migrate --live <guestname> qemu+ssh://<destination host>/system
- Shutdown the guest on the destination machine. Once it's successfully shut down, edit the guest on the source machine and give it random, differing amounts of memory: 1024MB, 2111MB, etc. Then repeat the test for these differing amounts of memory.
- Repeat the entire test for as many different guest OS's as are relevant. We would at least like to see the following guests:
- Fedora 12
- Fedora 11
- After executing the virsh migrate command, the guest should migrate over to the destination machine, and not be running anymore on the source machine. Use
$ virsh liston both machines to verify this. Additionally, the ping that was started in step 3 should continue uninterrupted. Note that this migration may take significantly longer than a migration of an idle guest.