autotest / tp-libvirt

Test Provider for Libvirt and related virtualization backends
Other
33 stars 168 forks source link

[Migration] Enable stress, stress-ng, iozone, kselftest, LTP to be executed inside guest and migrate #1637

Open balamuruhans opened 6 years ago

balamuruhans commented 6 years ago

MultiVM guest boot without guest import got enabled in avocado-vt framework to clone libvirt based VM,

https://github.com/avocado-framework/avocado-vt/pull/1498 https://github.com/avocado-framework/avocado-vt/pull/1562 https://github.com/avocado-framework/avocado-vt/pull/1564 https://github.com/avocado-framework/avocado-vt/pull/1569

MultiVM stress migration Test enablement patch, https://github.com/autotest/tp-libvirt/pull/1565

Recent patch work on avocado-vt PR https://github.com/avocado-framework/avocado-vt/pull/1598, would enable us to run any tool (stress, stress-ng, iozone, kselftest, LTP) inside guest or host or in remote host based on configurable params.

Plan is to use this and develop scenarios to run,

  1. Transactional memory testcases available in kselftest for migration (guest / host / remote host).
  2. iozone tests which uncovered recent migration issues (guest / host / remote host).
  3. LTP, stress-ng tests to be explored and enabled with migration (guest / host /remote host).
dzhengfy commented 6 years ago

@balamuruhans , I found some related existing cases which to enable stress on host/vm on memory/cpu, but no stress on remote host indeed. virsh.migrate_vm.positive_testing.live_migration.stress.host.stress_cpu virsh.migrate_vm.positive_testing.live_migration.stress.vm.iozone_with_set_max_downtime virsh.migrate_vm.positive_testing.live_migration.stress.host.stress_memory virsh.migrate_vm.positive_testing.live_migration.stress.vm.memhog_memory_without_swap virsh.migrate_vm.positive_testing.live_migration.stress.host.netperf_network

balamuruhans commented 6 years ago

@dzhengfy agree, I am working on enabling migrate_vm.py testcases in our regression suite too as it have good combination of functionality scenarios for migration.

Also stress here consist of 2 parts,

balamuruhans commented 6 years ago

For enabling LTP, kselftest and other functionality based test tools, we need to check the return or output of it to assert the PASS or FAIL, where as for stress tools it would not be necessary, so with current implementation any stress tools are supported in any number of VMs with any distros. Below mentioned are the patches that enables these features.

Testcase patch: https://github.com/autotest/tp-libvirt/pull/1687

framework patches: https://github.com/avocado-framework/avocado-vt/pull/1677 https://github.com/avocado-framework/avocado-vt/pull/1662 https://github.com/avocado-framework/avocado-vt/pull/1665 https://github.com/avocado-framework/avocado-vt/pull/1699

balamuruhans commented 6 years ago

we have support to run avocado inside VM to handle this functionality based tools, but for migration it would not work as we loose the control of the object associated with VM after migration, so working on it to support.