In practice it is hard to achieve a 100% (perfect) balanced distribution.
This patch introduces a user visiable threshold configuration here, which
allow user to define the minimal deviation to trigger an optimization.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
osdmap = ms.osdmap
crush = osdmap.get_crush()
pe = self.calc_eval(ms, plan.pools)
- if pe.score == 0:
- detail = 'Distribution is already perfect'
+ min_score_to_optimize = float(self.get_config('min_score', 0))
+ if pe.score <= min_score_to_optimize:
+ if pe.score == 0:
+ detail = 'Distribution is already perfect'
+ else:
+ detail = 'score %f <= min_score %f, will not optimize' \
+ % (pe.score, min_score_to_optimize)
self.log.info(detail)
return -errno.EALREADY, detail