diff --git a/doc/man/8/ceph.rst b/doc/man/8/ceph.rst index 7fefe58d692c3..c913b45de9f2c 100644 --- a/doc/man/8/ceph.rst +++ b/doc/man/8/ceph.rst @@ -1314,7 +1314,7 @@ Subcommand ``cache-mode`` specifies the caching mode for cache tier . Usage:: - ceph osd tier cache-mode writeback|readproxy|readonly|none + ceph osd tier cache-mode writeback|proxy|readproxy|readonly|none Subcommand ``remove`` removes the tier (the second one) from base pool (the first one). diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 2fa2d0d243a1c..5c22c30e1094c 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -350,20 +350,21 @@ function test_tiering_1() ceph osd pool ls detail -f json | jq '.[] | select(.pool_name == "slow2") | .application_metadata["rados"]' | grep '{}' ceph osd pool ls detail -f json | jq '.[] | select(.pool_name == "cache") | .application_metadata["rados"]' | grep '{}' ceph osd pool ls detail -f json | jq '.[] | select(.pool_name == "cache2") | .application_metadata["rados"]' | grep '{}' - # forward and proxy are removed/deprecated + # forward is removed/deprecated expect_false ceph osd tier cache-mode cache forward expect_false ceph osd tier cache-mode cache forward --yes-i-really-mean-it - expect_false ceph osd tier cache-mode cache proxy - expect_false ceph osd tier cache-mode cache proxy --yes-i-really-mean-it # test some state transitions ceph osd tier cache-mode cache writeback expect_false ceph osd tier cache-mode cache readonly expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it + ceph osd tier cache-mode cache proxy ceph osd tier cache-mode cache readproxy ceph osd tier cache-mode cache none ceph osd tier cache-mode cache readonly --yes-i-really-mean-it ceph osd tier cache-mode cache none ceph osd tier cache-mode cache writeback + ceph osd tier cache-mode cache proxy + ceph osd tier cache-mode cache writeback expect_false ceph osd tier cache-mode cache none expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it # test with dirty objects in the tier pool @@ -371,7 +372,7 @@ function test_tiering_1() rados -p cache put /etc/passwd /etc/passwd flush_pg_stats # 1 dirty object in pool 'cache' - ceph osd tier cache-mode cache readproxy + ceph osd tier cache-mode cache proxy expect_false ceph osd tier cache-mode cache none expect_false ceph osd tier cache-mode cache readonly --yes-i-really-mean-it ceph osd tier cache-mode cache writeback @@ -380,7 +381,7 @@ function test_tiering_1() rados -p cache cache-flush-evict-all flush_pg_stats # no dirty objects in pool 'cache' - ceph osd tier cache-mode cache readproxy + ceph osd tier cache-mode cache proxy ceph osd tier cache-mode cache none ceph osd tier cache-mode cache readonly --yes-i-really-mean-it TRIES=0 @@ -1114,7 +1115,7 @@ function test_mon_mds() # Removing tier should be permitted because the underlying pool is # replicated (#11504 case) - ceph osd tier cache-mode mds-tier readproxy + ceph osd tier cache-mode mds-tier proxy ceph osd tier remove-overlay fs_metadata ceph osd tier remove fs_metadata mds-tier ceph osd pool delete mds-tier mds-tier --yes-i-really-really-mean-it diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index d8b3cfbc535d4..0f2100e665d84 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -1199,7 +1199,7 @@ COMMAND_WITH_FLAG("osd tier remove " FLAG(DEPRECATED)) COMMAND("osd tier cache-mode " "name=pool,type=CephPoolname " - "name=mode,type=CephChoices,strings=writeback|readproxy|readonly|none " + "name=mode,type=CephChoices,strings=writeback|proxy|readproxy|readonly|none " "name=yes_i_really_mean_it,type=CephBool,req=false", "specify the caching mode for cache tier ", "osd", "rw") COMMAND("osd tier set-overlay " diff --git a/src/mon/OSDMonitor.cc b/src/mon/OSDMonitor.cc index 69f5bae8cdaee..921c61da61799 100644 --- a/src/mon/OSDMonitor.cc +++ b/src/mon/OSDMonitor.cc @@ -13545,6 +13545,8 @@ bool OSDMonitor::prepare_command_impl(MonOpRequestRef op, ss << "unable to set cache-mode '" << pg_pool_t::get_cache_mode_name(mode) << "' on a '" << pg_pool_t::get_cache_mode_name(p->cache_mode) << "' pool; only '" + << pg_pool_t::get_cache_mode_name(pg_pool_t::CACHEMODE_PROXY) + << "','" << pg_pool_t::get_cache_mode_name(pg_pool_t::CACHEMODE_READPROXY) << "' allowed."; err = -EINVAL;