qa/tasks/thrashosds: chance_thrash_cluster_full

Induce a momentarily full cluster.

Signed-off-by: Sage Weil <sage@redhat.com>
This commit is contained in:
Sage Weil 2017-03-03 08:45:10 -06:00
parent 26a90141e5
commit a202b68d18
2 changed files with 15 additions and 0 deletions

View File

@ -122,6 +122,7 @@ class Thrasher:
self.optrack_toggle_delay = self.config.get('optrack_toggle_delay')
self.dump_ops_enable = self.config.get('dump_ops_enable')
self.noscrub_toggle_delay = self.config.get('noscrub_toggle_delay')
self.chance_thrash_cluster_full = self.config.get('chance_thrash_cluster_full', .05)
num_osds = self.in_osds + self.out_osds
self.max_pgs = self.config.get("max_pgs_per_pool_osd", 1200) * num_osds
@ -494,6 +495,16 @@ class Thrasher:
self.ceph_manager.raw_cluster_cmd('osd', 'primary-affinity',
str(osd), str(pa))
def thrash_cluster_full(self):
"""
Set and unset cluster full condition
"""
self.log('Setting full ratio to .001')
self.ceph_manager.raw_cluster_cmd('pg', 'set_full_ratio', '.001')
time.sleep(1)
self.log('Setting full ratio back to .95')
self.ceph_manager.raw_cluster_cmd('pg', 'set_full_ratio', '.95')
def all_up(self):
"""
Make sure all osds are up and not out.
@ -710,6 +721,8 @@ class Thrasher:
chance_test_min_size,))
actions.append((self.test_backfill_full,
chance_test_backfill_full,))
if self.chance_thrash_cluster_full > 0:
actions.append((self.thrash_cluster_full, self.chance_thrash_cluster_full,))
for key in ['heartbeat_inject_failure', 'filestore_inject_stall']:
for scenario in [
(lambda:

View File

@ -120,6 +120,8 @@ def task(ctx, config):
disable_objectstore_tool_tests: (false) disable ceph_objectstore_tool based
tests
chance_thrash_cluster_full: .05
example:
tasks: