From 9c406d0ab3e48342ce5ba9d9762029fd211a11a3 Mon Sep 17 00:00:00 2001 From: Jeff Layton Date: Fri, 16 Aug 2019 07:41:24 -0400 Subject: [PATCH] mon: deprecate CephFS inline_data support The plan is to start deprecating this feature now so that we can remove it in a future release. Change it to require the --yes-i-really-really-mean-it flag, and to emit a custom warning when that isn't specified. For now, we leave the testing in place since we do want to be notified if something breaks before we're ready to rip it out completely. Fixes: https://tracker.ceph.com/issues/41311 Signed-off-by: Jeff Layton --- PendingReleaseNotes | 6 ++++++ doc/cephfs/experimental-features.rst | 3 +++ qa/suites/fs/basic_workload/inline/yes.yaml | 2 +- qa/suites/kcephfs/cephfs/inline/yes.yaml | 2 +- qa/workunits/cephtool/test.sh | 8 ++++---- src/mon/FSCommands.cc | 5 +++-- src/mon/MonCommands.h | 3 ++- 7 files changed, 20 insertions(+), 9 deletions(-) diff --git a/PendingReleaseNotes b/PendingReleaseNotes index 5dabadd4d17..18e12911fd3 100644 --- a/PendingReleaseNotes +++ b/PendingReleaseNotes @@ -131,6 +131,12 @@ New admin command ``ceph daemon osd.# dump_osd_network [threshold]`` will do the same but only including heartbeats initiated by the specified OSD. +* Inline data support for CephFS has been deprecated. When setting the flag, + users will see a warning to that effect, and enabling it now requires the + ``--yes-i-really-really-mean-it`` flag. If the MDS is started on a + filesystem that has it enabled, a health warning is generated. Support for + this feature will be removed in a future release. + * Following invalid settings now are not tolerated anymore for the command `ceph osd erasure-code-profile set xxx`. * invalid `m` for "reed_sol_r6_op" erasure technique diff --git a/doc/cephfs/experimental-features.rst b/doc/cephfs/experimental-features.rst index d018b262268..63984c1cd54 100644 --- a/doc/cephfs/experimental-features.rst +++ b/doc/cephfs/experimental-features.rst @@ -23,6 +23,9 @@ failures within it are unlikely to make non-inlined data inaccessible Inline data has always been off by default and requires setting the ``inline_data`` flag. +Inline data has been declared deprecated for the Octopus release, and will +likely be removed altogether in the Q release. + Mantle: Programmable Metadata Load Balancer ------------------------------------------- diff --git a/qa/suites/fs/basic_workload/inline/yes.yaml b/qa/suites/fs/basic_workload/inline/yes.yaml index da8677a5cdb..8bdd3ebcb51 100644 --- a/qa/suites/fs/basic_workload/inline/yes.yaml +++ b/qa/suites/fs/basic_workload/inline/yes.yaml @@ -1,4 +1,4 @@ tasks: - exec: client.0: - - sudo ceph fs set cephfs inline_data true --yes-i-really-mean-it + - sudo ceph fs set cephfs inline_data true --yes-i-really-really-mean-it diff --git a/qa/suites/kcephfs/cephfs/inline/yes.yaml b/qa/suites/kcephfs/cephfs/inline/yes.yaml index da8677a5cdb..8bdd3ebcb51 100644 --- a/qa/suites/kcephfs/cephfs/inline/yes.yaml +++ b/qa/suites/kcephfs/cephfs/inline/yes.yaml @@ -1,4 +1,4 @@ tasks: - exec: client.0: - - sudo ceph fs set cephfs inline_data true --yes-i-really-mean-it + - sudo ceph fs set cephfs inline_data true --yes-i-really-really-mean-it diff --git a/qa/workunits/cephtool/test.sh b/qa/workunits/cephtool/test.sh index 7dc2f5a891a..01ddacc28c2 100755 --- a/qa/workunits/cephtool/test.sh +++ b/qa/workunits/cephtool/test.sh @@ -966,10 +966,10 @@ function test_mon_mds() expect_false ceph fs set cephfs max_mds 257 expect_false ceph fs set cephfs max_mds asdf expect_false ceph fs set cephfs inline_data true - ceph fs set cephfs inline_data true --yes-i-really-mean-it - ceph fs set cephfs inline_data yes --yes-i-really-mean-it - ceph fs set cephfs inline_data 1 --yes-i-really-mean-it - expect_false ceph fs set cephfs inline_data --yes-i-really-mean-it + ceph fs set cephfs inline_data true --yes-i-really-really-mean-it + ceph fs set cephfs inline_data yes --yes-i-really-really-mean-it + ceph fs set cephfs inline_data 1 --yes-i-really-really-mean-it + expect_false ceph fs set cephfs inline_data --yes-i-really-really-mean-it ceph fs set cephfs inline_data false ceph fs set cephfs inline_data no ceph fs set cephfs inline_data 0 diff --git a/src/mon/FSCommands.cc b/src/mon/FSCommands.cc index 67eaf543f9b..37ea86e6b87 100644 --- a/src/mon/FSCommands.cc +++ b/src/mon/FSCommands.cc @@ -367,9 +367,10 @@ public: if (enable_inline) { bool confirm = false; - cmd_getval(g_ceph_context, cmdmap, "yes_i_really_mean_it", confirm); + cmd_getval(g_ceph_context, cmdmap, "yes_i_really_really_mean_it", confirm); if (!confirm) { - ss << EXPERIMENTAL_WARNING; + ss << "Inline data support is deprecated and will be removed in a future release. " + << "Add --yes-i-really-really-mean-it if you are certain you want this enabled."; return -EPERM; } ss << "inline data enabled"; diff --git a/src/mon/MonCommands.h b/src/mon/MonCommands.h index 5c0a47c80c5..9530e788bd8 100644 --- a/src/mon/MonCommands.h +++ b/src/mon/MonCommands.h @@ -424,7 +424,8 @@ COMMAND("fs set " \ "|standby_count_wanted|session_timeout|session_autoclose" \ "|allow_standby_replay|down|joinable|min_compat_client " \ "name=val,type=CephString " \ - "name=yes_i_really_mean_it,type=CephBool,req=false", \ + "name=yes_i_really_mean_it,type=CephBool,req=false " \ + "name=yes_i_really_really_mean_it,type=CephBool,req=false", \ "set fs parameter to ", "mds", "rw") COMMAND("fs flag set name=flag_name,type=CephChoices,strings=enable_multiple " "name=val,type=CephString " \ -- 2.39.5