I just added a new test case to the libvirt TCK for validating QEMU
migration.
http://libvirt.org/git/?p=libvirt-tck.git;a=commitdiff;h=f74faf2d8c83538d...
It tests 96 different scenarios for successful migration, made
up of:
- Three different control/communication methods
1. Normal
2. Peer2peer
3. Peer2peer + tunnelled
- 8 Different scenarios of persistent vs transient
guests
1. Transient running source, no dest
2. Transient running source, persistent inactive dest
3. Persistent running source, no dest
4. Persistent running source, persistent inactive dest
5. Transient paused source, no dest
6. Transient paused source, persistent inactive dest
7. Persistent paused source, no dest
8. Persistent paused source, persistent inactive dest
- With each scenario there are upto 4 flag combinations
affecting persistent/transient state
1. No flags
2. UNDEFINE_SOURCE
3. PERSIST
4. UNDEFINE_SOURCE|PERSIST
This gives 96 major functional test cases. On each test case we
validate 10 conditions, giving a total of 960 tests results
Since 0.9.2 introduced a migration v3 protocol, full test
coverage also requires validating the different combinations
of libvirt client, source libvirtd and destination libvirtd
protocol support. This implies re-running the overall test
script 8 times
1. client < 0.9.2, source < 0.9.2, target < 0.9.2
2. client >= 0.9.2, source < 0.9.2, target < 0.9.2
3. client < 0.9.2, source >= 0.9.2, target < 0.9.2
4. client < 0.9.2, source < 0.9.2, target >= 0.9.2
5. client >= 0.9.2, source >= 0.9.2, target < 0.9.2
6. client >= 0.9.2, source < 0.9.2, target >= 0.9.2
7. client < 0.9.2, source >= 0.9.2, target >= 0.9.2
8. client >= 0.9.2, source >= 0.9.2, target >= 0.9.2
Finally, this is only testing successful migration cases.
We ought to have another test which validates recovery from
a variety of common migration failure scenarios. This would
add another few 1000 test scenarios :-)
NB, in libvirt < 0.9.2 there was a bug with handling the
migration of VMs which were initially PAUSED with p2p
migration which causes failures. libvirt >= 0.9.2 should
have a 100% success rate.
Daniel
--
|:
http://berrange.com -o-
http://www.flickr.com/photos/dberrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|:
http://entangle-photo.org -o-
http://live.gnome.org/gtk-vnc :|