This commit amends the MDS thrasher task to also work on multimds
clusters. Main changes:
o New FSStatus class in tasks/cephfs/filesystem.py which gets a snapshot
of the fsmap (`ceph fs dump`). This allows consecutive operations on
the same fsmap without repeated fs dumps.
o Only one MDSThrasher is started for each file system.
o The MDSThrasher operates on ranks instead of names (and groups of
standbys following the initial active).
o The MDSThrasher also will change the max_mds for the cluster to a new
value [1, current) or (current, starting max_mds]. When reduced,
randomly selected MDSs other than rank 0 will be deactivated to reach
the new max_mds. The likelihood of changing max_mds in a given cycle of
the MDSThrasher is set by the "thrash_max_mds" config.
o The MDSThrasher prints out stats on completion, e.g. number of
mds deactivated or mds_max changed.
Pre-requisite for: http://tracker.ceph.com/issues/10792
Partially fixes: http://tracker.ceph.com/issues/15134
Signed-off-by: Patrick Donnelly <pdonnell@redhat.com>
Previously, when there was an exception in the thrasher
main loop, it would log it but ultimately "succeed"
the teuthology task.
Signed-off-by: John Spray <john.spray@redhat.com>
Move the thrasher-specific methods out of CephManager
into MDSThrasher and plumb them into MDSCluster.
Signed-off-by: John Spray <john.spray@redhat.com