From c78f2064efe034d0a3ab1a60e8cd495e2752e10e Mon Sep 17 00:00:00 2001 From: xie xingguo Date: Fri, 18 Aug 2017 12:36:57 +0800 Subject: [PATCH] crush: force rebuilding shadow hierarchy after swapping buckets Was: --------------------------------------------------------------- ID CLASS WEIGHT TYPE NAME -8 ssd 3.00000 root fake-root~ssd -6 ssd 3.00000 host fake~ssd 0 ssd 1.00000 osd.0 1 ssd 1.00000 osd.1 2 ssd 1.00000 osd.2 -7 3.00000 root fake-root -5 3.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic 3 ssd 1.00000 osd.3 4 ssd 1.00000 osd.4 5 ssd 1.00000 osd.5 -4 ssd 3.00000 root default~ssd -3 ssd 3.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic~ssd 3 ssd 1.00000 osd.3 4 ssd 1.00000 osd.4 5 ssd 1.00000 osd.5 -1 3.00000 root default -2 3.00000 host fake 0 ssd 1.00000 osd.0 1 ssd 1.00000 osd.1 2 ssd 1.00000 osd.2 Now: --------------------------------------------------------------- ID CLASS WEIGHT TYPE NAME -8 ssd 3.00000 root fake-root~ssd -7 ssd 3.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic~ssd 3 ssd 1.00000 osd.3 4 ssd 1.00000 osd.4 5 ssd 1.00000 osd.5 -6 3.00000 root fake-root -5 3.00000 host gitbuilder-ceph-rpm-centos7-amd64-basic 3 ssd 1.00000 osd.3 4 ssd 1.00000 osd.4 5 ssd 1.00000 osd.5 -4 ssd 3.00000 root default~ssd -3 ssd 3.00000 host fake~ssd 0 ssd 1.00000 osd.0 1 ssd 1.00000 osd.1 2 ssd 1.00000 osd.2 -1 3.00000 root default -2 3.00000 host fake 0 ssd 1.00000 osd.0 1 ssd 1.00000 osd.1 2 ssd 1.00000 osd.2 Signed-off-by: xie xingguo (cherry picked from commit 7e3528a9dc7fb53bce5b2c39b644c2b2b2c5d417) --- src/crush/CrushWrapper.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/crush/CrushWrapper.cc b/src/crush/CrushWrapper.cc index 76c6afe60a5c..d95e90a54255 100644 --- a/src/crush/CrushWrapper.cc +++ b/src/crush/CrushWrapper.cc @@ -1075,7 +1075,7 @@ int CrushWrapper::swap_bucket(CephContext *cct, int src, int dst) // swap names swap_names(src, dst); - return 0; + return rebuild_roots_with_classes(); } int CrushWrapper::link_bucket( -- 2.47.3