So we can combine "crush add-bucket" with "crush move" command,
and hence avoid making two separate changes to the osdmap,
and hence slow down map-epoch generation.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
This command returns all crush rules that are currently
referencing the device class specified by user.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
User may specify a rule with the same name of the pool that it serves.
Since a pool can be renamed, so does the rule.
Signed-off-by: xie xingguo <xie.xingguo@zte.com.cn>
we cannot overwrite existing dev class, and "osd_class_update_on_start"
is true by default (see 0c885d6). so we should remove all device classes before
setting them.
Signed-off-by: Kefu Chai <kchai@redhat.com>
/bin/bash is a Linuxism. Other operating systems install bash to
different paths. Use /usr/bin/env in shebangs to find bash.
Signed-off-by: Alan Somers <asomers@gmail.com>
New command to create crush rule that specifies a class of device. Plus
all of the fallout in other callers to the CrushWrapper helpers, the
crushtool cli change, and cli test.
Signed-off-by: Sage Weil <sage@redhat.com>
Currently it only allows you to move buckets, which is annoying and much
less useful. To move an OSD you need to use create-or-move, which is
harder to use.
Fixes: http://tracker.ceph.com/issues/18587
Signed-off-by: Sage Weil <sage@redhat.com>
Reweight all items within a subtree. For example, you might reweigh tall
OSDs within a rack to a new value.
Signed-off-by: Sage Weil <sage@inktank.com>
Prevent creation of buckets of type 0 ('osd', 'device', etc.), as they
will confusing the mapping algorithm.
Signed-off-by: Sage Weil <sage@inktank.com>
The adjust method returns a count of adjusted items.
Add a test.
Fixes: #6382
Backport: dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Dan Mick <dan.mick@inktank.com>
If we add an item that already exists in particular position, we should
update instead of inserting it; the CrushWrapper methods are not
idempotent.
Signed-off-by: Sage Weil <sage@inktank.com>