self.random_eio = self.config.get('random_eio')
self.chance_force_recovery = self.config.get('chance_force_recovery', 0.3)
self.chance_reset_purged_snaps_last = self.config.get('chance_reset_purged_snaps_last', 0.3)
+ self.chance_trim_stale_osdmaps = self.config.get('chance_trim_stale_osdmaps', 0.3)
num_osds = self.in_osds + self.out_osds
self.max_pgs = self.config.get("max_pgs_per_pool_osd", 1200) * len(num_osds)
except CommandFailedError:
self.log('Failed to reset_purged_snaps_last, ignoring')
+ def trim_stale_osdmaps(self):
+ """
+ Trim stale osdmaps
+ """
+ self.log('trim_stale_osdmaps')
+ for osd in self.in_osds:
+ try:
+ self.ceph_manager.raw_cluster_cmd(
+ 'tell', "osd.%s" % (str(osd)),
+ 'trim stale osdmaps')
+ except CommandFailedError:
+ self.log('Failed to trim stale osdmaps, ignoring')
+
def all_up(self):
"""
Make sure all osds are up and not out.
actions.append((self.force_cancel_recovery, self.chance_force_recovery))
if self.chance_reset_purged_snaps_last > 0:
actions.append((self.reset_purged_snaps_last, self.chance_reset_purged_snaps_last))
+ if self.chance_trim_stale_osdmaps > 0:
+ actions.append((self.trim_stale_osdmaps, self.chance_trim_stale_osdmaps))
for key in ['heartbeat_inject_failure', 'filestore_inject_stall']:
for scenario in [