From a199dcd9828247be9ddc9efbc40deb3b5c926ba2 Mon Sep 17 00:00:00 2001 From: Josh Durgin Date: Fri, 5 Aug 2016 18:16:20 -0700 Subject: [PATCH] ceph_manager: test offline split via ceph-objectstore-tool When killing an osd, split all pools with a low threshold. This will slow down tests, but should not impact correctness. Signed-off-by: Josh Durgin (cherry picked from commit f28f881bda0ad426bfa9c0e22cc4658b2ce2ec5d) --- tasks/ceph_manager.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/tasks/ceph_manager.py b/tasks/ceph_manager.py index 794aef44bf688..2b88b4aa11663 100644 --- a/tasks/ceph_manager.py +++ b/tasks/ceph_manager.py @@ -286,6 +286,20 @@ class Thrasher: if imp_remote != exp_remote: imp_remote.run(args=cmd) + # apply low split settings to each pool + for pool in self.ceph_manager.list_pools(): + no_sudo_prefix = prefix[5:] + cmd = ("CEPH_ARGS='--filestore-merge-threshold 1 " + "--filestore-split-multiple 1' sudo -E " + + no_sudo_prefix + "--op apply-layout-settings --pool " + pool).format(id=osd) + proc = remote.run(args=cmd, wait=True, check_status=False, stderr=StringIO()) + output = proc.stderr.getvalue() + if 'Couldn\'t find pool' in output: + continue + if proc.exitstatus: + raise Exception("ceph-objectstore-tool apply-layout-settings" + " failed with {status}".format(status=proc.exitstatus)) + def rm_past_intervals(self, osd=None): """ :param osd: Osd to find pg to remove past intervals -- 2.39.5