From: Samuel Just Date: Fri, 15 May 2015 20:05:40 +0000 (-0700) Subject: OSDMonitor: disallow ec pools as tiers X-Git-Tag: v0.94.3~67^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F4961%2Fhead;p=ceph.git OSDMonitor: disallow ec pools as tiers Fixes: 11650 Signed-off-by: Samuel Just (cherry picked from commit 11b7801bb57cb25cd2d26d58722d49691747725b) --- diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index e1773f20cf87..081d13b97d22 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -325,6 +325,13 @@ function test_tiering() ceph osd pool delete snap_base snap_base --yes-i-really-really-mean-it ceph osd pool delete snap_cache snap_cache --yes-i-really-really-mean-it + # make sure we can't create an ec pool tier + ceph osd pool create eccache 2 2 erasure + ceph osd pool create repbase 2 + expect_false ceph osd tier add repbase eccache + ceph osd pool delete repbase repbase --yes-i-really-really-mean-it + ceph osd pool delete eccache eccache --yes-i-really-really-mean-it + # convenient add-cache command ceph osd pool create cache3 2 ceph osd tier add-cache slow cache3 1024000 diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index dc9b8784b662..79b519a06391 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -6112,6 +6112,12 @@ done: err = -ENOTEMPTY; goto reply; } + if (tp->ec_pool()) { + ss << "tier pool '" << tierpoolstr + << "' is an ec pool, which cannot be a tier"; + err = -ENOTSUP; + goto reply; + } if (!tp->removed_snaps.empty() || !tp->snaps.empty()) { ss << "tier pool '" << tierpoolstr << "' has snapshot state; it cannot be added as a tier without breaking the pool"; err = -ENOTEMPTY;