]> git.proxmox.com Git - ceph.git/blame - ceph/PendingReleaseNotes
import ceph 16.2.7
[ceph.git] / ceph / PendingReleaseNotes
CommitLineData
f67539c2
TL
1>=17.0.0
2
522d829b
TL
3* `ceph-mgr-modules-core` debian package does not recommend `ceph-mgr-rook`
4 anymore. As the latter depends on `python3-numpy` which cannot be imported in
5 different Python sub-interpreters multi-times if the version of
6 `python3-numpy` is older than 1.19. Since `apt-get` installs the `Recommends`
7 packages by default, `ceph-mgr-rook` was always installed along with
8 `ceph-mgr` debian package as an indirect dependency. If your workflow depends
9 on this behavior, you might want to install `ceph-mgr-rook` separately.
10
f67539c2
TL
11* A new library is available, libcephsqlite. It provides a SQLite Virtual File
12 System (VFS) on top of RADOS. The database and journals are striped over
13 RADOS across multiple objects for virtually unlimited scaling and throughput
14 only limited by the SQLite client. Applications using SQLite may change to
15 the Ceph VFS with minimal changes, usually just by specifying the alternate
16 VFS. We expect the library to be most impactful and useful for applications
17 that were storing state in RADOS omap, especially without striping which
18 limits scalability.
19
522d829b
TL
20* MDS upgrades no longer require stopping all standby MDS daemons before
21 upgrading the sole active MDS for a file system.
22
a4b75251
TL
23* CephFS: Failure to replay the journal by a standby-replay daemon will now
24 cause the rank to be marked damaged.
25
522d829b
TL
26* RGW: It is possible to specify ssl options and ciphers for beast frontend now.
27 The default ssl options setting is "no_sslv2:no_sslv3:no_tlsv1:no_tlsv1_1".
28 If you want to return back the old behavior add 'ssl_options=' (empty) to
29 ``rgw frontends`` configuration.
30
31* fs: A file system can be created with a specific ID ("fscid"). This is useful
32 in certain recovery scenarios, e.g., monitor database lost and rebuilt, and
33 the restored file system is expected to have the same ID as before.
34
a4b75251
TL
35>=16.2.7
36--------
37
38* Critical bug in OMAP format upgrade is fixed. This could cause data corruption
39 (improperly formatted OMAP keys) after pre-Pacific cluster upgrade if
40 bluestore-quick-fix-on-mount parameter is set to true or ceph-bluestore-tool's
41 quick-fix/repair commands are invoked.
42 Relevant tracker: https://tracker.ceph.com/issues/53062
43
44* MGR: The pg_autoscaler will use the 'scale-up' profile as the default profile.
45 16.2.6 changed the default profile to 'scale-down' but we ran into issues
46 with the device_health_metrics pool consuming too many PGs, which is not ideal
47 for performance. So we will continue to use the 'scale-up' profile by default,
48 until we implement a limit on the number of PGs default pools should consume,
49 in combination with the 'scale-down' profile.
50
522d829b
TL
51>=16.2.6
52--------
53
54* MGR: The pg_autoscaler has a new default 'scale-down' profile which provides more
55 performance from the start for new pools (for newly created clusters).
56 Existing clusters will retain the old behavior, now called the 'scale-up' profile.
57 For more details, see:
58
59 https://docs.ceph.com/en/latest/rados/operations/placement-groups/
60
f67539c2
TL
61>=16.0.0
62--------
b3b6e05e 63
a4b75251
TL
64* RGW: S3 bucket notification events now contain an `eTag` key instead of `etag`,
65 and eventName values no longer carry the `s3:` prefix, fixing deviations from
66 the message format observed on AWS.
b3b6e05e
TL
67* `ceph-mgr-modules-core` debian package does not recommend `ceph-mgr-rook`
68 anymore. As the latter depends on `python3-numpy` which cannot be imported in
69 different Python sub-interpreters multi-times if the version of
70 `python3-numpy` is older than 1.19. Since `apt-get` installs the `Recommends`
71 packages by default, `ceph-mgr-rook` was always installed along with
72 `ceph-mgr` debian package as an indirect dependency. If your workflow depends
73 on this behavior, you might want to install `ceph-mgr-rook` separately.
74
75* mgr/nfs: ``nfs`` module is moved out of volumes plugin. Prior using the
76 ``ceph nfs`` commands, ``nfs`` mgr module must be enabled.
77
78* volumes/nfs: The ``cephfs`` cluster type has been removed from the
79 ``nfs cluster create`` subcommand. Clusters deployed by cephadm can
80 support an NFS export of both ``rgw`` and ``cephfs`` from a single
81 NFS cluster instance.
82
83* The ``nfs cluster update`` command has been removed. You can modify
84 the placement of an existing NFS service (and/or its associated
85 ingress service) using ``orch ls --export`` and ``orch apply -i
86 ...``.
87
88* The ``orch apply nfs`` command no longer requires a pool or
89 namespace argument. We strongly encourage users to use the defaults
90 so that the ``nfs cluster ls`` and related commands will work
91 properly.
92
93* The ``nfs cluster delete`` and ``nfs export delete`` commands are
94 deprecated and will be removed in a future release. Please use
95 ``nfs cluster rm`` and ``nfs export rm`` instead.
96
a4b75251
TL
97* The ``nfs export create`` CLI arguments have changed, with the
98 *fsname* or *bucket-name* argument position moving to the right of
99 *the *cluster-id* and *pseudo-path*. Consider transitioning to
100 *using named arguments instead of positional arguments (e.g., ``ceph
101 *nfs export create cephfs --cluster-id mycluster --pseudo-path /foo
102 *--fsname myfs`` instead of ``ceph nfs export create cephfs
103 *mycluster /foo myfs`` to ensure correct behavior with any
104 *version.
105
106* mgr-pg_autoscaler: Autoscaler will now start out by scaling each
107 pool to have a full complements of pgs from the start and will only
108 decrease it when other pools need more pgs due to increased usage.
109 This improves out of the box performance of Ceph by allowing more PGs
110 to be created for a given pool.
111
f67539c2
TL
112* CephFS: Disabling allow_standby_replay on a file system will also stop all
113 standby-replay daemons for that file system.
adb31ebb 114
cd265ab1
TL
115* New bluestore_rocksdb_options_annex config parameter. Complements
116 bluestore_rocksdb_options and allows setting rocksdb options without repeating
117 the existing defaults.
f67539c2
TL
118* The cephfs addes two new CDentry tags, 'I' --> 'i' and 'L' --> 'l', and
119 on-RADOS metadata is no longer backwards compatible after upgraded to Pacific
120 or a later release.
cd265ab1 121
adb31ebb
TL
122* $pid expansion in config paths like `admin_socket` will now properly expand
123 to the daemon pid for commands like `ceph-mds` or `ceph-osd`. Previously only
124 `ceph-fuse`/`rbd-nbd` expanded `$pid` with the actual daemon pid.
eafe8130 125
f67539c2
TL
126* The allowable options for some "radosgw-admin" commands have been changed.
127
128 * "mdlog-list", "datalog-list", "sync-error-list" no longer accepts
129 start and end dates, but does accept a single optional start marker.
130 * "mdlog-trim", "datalog-trim", "sync-error-trim" only accept a
131 single marker giving the end of the trimmed range.
132 * Similarly the date ranges and marker ranges have been removed on
133 the RESTful DATALog and MDLog list and trim operations.
134
f91f0fd5
TL
135* ceph-volume: The ``lvm batch` subcommand received a major rewrite. This closed
136 a number of bugs and improves usability in terms of size specification and
137 calculation, as well as idempotency behaviour and disk replacement process.
138 Please refer to https://docs.ceph.com/en/latest/ceph-volume/lvm/batch/ for
139 more detailed information.
e306af50 140
f67539c2
TL
141* Configuration variables for permitted scrub times have changed. The legal
142 values for ``osd_scrub_begin_hour`` and ``osd_scrub_end_hour`` are 0 - 23.
143 The use of 24 is now illegal. Specifying ``0`` for both values causes every
144 hour to be allowed. The legal vaues for ``osd_scrub_begin_week_day`` and
145 ``osd_scrub_end_week_day`` are 0 - 6. The use of 7 is now illegal.
146 Specifying ``0`` for both values causes every day of the week to be allowed.
147
148* Multiple file systems in a single Ceph cluster is now stable. New Ceph clusters
149 enable support for multiple file systems by default. Existing clusters
150 must still set the "enable_multiple" flag on the fs. Please see the CephFS
151 documentation for more information.
152
153* volume/nfs: Recently "ganesha-" prefix from cluster id and nfs-ganesha common
154 config object was removed, to ensure consistent namespace across different
155 orchestrator backends. Please delete any existing nfs-ganesha clusters prior
156 to upgrading and redeploy new clusters after upgrading to Pacific.
157
158* A new health check, DAEMON_OLD_VERSION, will warn if different versions of Ceph are running
159 on daemons. It will generate a health error if multiple versions are detected.
160 This condition must exist for over mon_warn_older_version_delay (set to 1 week by default) in order for the
161 health condition to be triggered. This allows most upgrades to proceed
162 without falsely seeing the warning. If upgrade is paused for an extended
163 time period, health mute can be used like this
164 "ceph health mute DAEMON_OLD_VERSION --sticky". In this case after
165 upgrade has finished use "ceph health unmute DAEMON_OLD_VERSION".
166
167* MGR: progress module can now be turned on/off, using the commands:
168 ``ceph progress on`` and ``ceph progress off``.
169* An AWS-compliant API: "GetTopicAttributes" was added to replace the existing "GetTopic" API. The new API
170 should be used to fetch information about topics used for bucket notifications.
171
172* librbd: The shared, read-only parent cache's config option ``immutable_object_cache_watermark`` now has been updated
173 to property reflect the upper cache utilization before space is reclaimed. The default ``immutable_object_cache_watermark``
174 now is ``0.9``. If the capacity reaches 90% the daemon will delete cold cache.
175* The ceph_volume_client.py library used for manipulating legacy "volumes" in
176 CephFS is removed. All remaining users should use the "fs volume" interface
177 exposed by the ceph-mgr:
178 https://docs.ceph.com/en/latest/cephfs/fs-volumes/
179
180* An AWS-compliant API: "GetTopicAttributes" was added to replace the existing
181 "GetTopic" API. The new API should be used to fetch information about topics
182 used for bucket notifications.
183
184* librbd: The shared, read-only parent cache's config option
185 ``immutable_object_cache_watermark`` has now been updated to properly reflect
186 the upper cache utilization before space is reclaimed. The default
187 ``immutable_object_cache_watermark`` is now ``0.9``. If the capacity reaches
188 90% the daemon will delete cold cache.
189
190* OSD: the option ``osd_fast_shutdown_notify_mon`` has been introduced to allow
191 the OSD to notify the monitor it is shutting down even if ``osd_fast_shutdown``
192 is enabled. This helps with the monitor logs on larger clusters, that may get
193 many 'osd.X reported immediately failed by osd.Y' messages, and confuse tools.
194* rgw/kms/vault: the transit logic has been revamped to better use
195 the transit engine in vault. To take advantage of this new
196 functionality configuration changes are required. See the current
197 documentation (radosgw/vault) for more details.
198
199* Scubs are more aggressive in trying to find more simultaneous possible PGs within osd_max_scrubs limitation.
200 It is possible that increasing osd_scrub_sleep may be necessary to maintain client responsiveness.
201* OSD: the option ``osd_fast_shutdown_notify_mon`` has been introduced to allow
202 the OSD to notify the monitor it is shutting down even if ``osd_fast_shutdown``
203 is enabled. This helps with the monitor logs on larger clusters, that may get
204 many 'osd.X reported immediately failed by osd.Y' messages, and confuse tools.
205
206* The mclock scheduler has been refined. A set of built-in profiles are now available that
207 provide QoS between the internal and external clients of Ceph. To enable the mclock
208 scheduler, set the config option "osd_op_queue" to "mclock_scheduler". The
209 "high_client_ops" profile is enabled by default, and allocates more OSD bandwidth to
210 external client operations than to internal client operations (such as background recovery
211 and scrubs). Other built-in profiles include "high_recovery_ops" and "balanced". These
212 built-in profiles optimize the QoS provided to clients of mclock scheduler.
213
214* Version 2 of the cephx authentication protocol (``CEPHX_V2`` feature bit) is
215 now required by default. It was introduced in 2018, adding replay attack
216 protection for authorizers and making msgr v1 message signatures stronger
217 (CVE-2018-1128 and CVE-2018-1129). Support is present in Jewel 10.2.11,
218 Luminous 12.2.6, Mimic 13.2.1, Nautilus 14.2.0 and later; upstream kernels
219 4.9.150, 4.14.86, 4.19 and later; various distribution kernels, in particular
220 CentOS 7.6 and later. To enable older clients, set ``cephx_require_version``
221 and ``cephx_service_require_version`` config options to 1.
222
522d829b
TL
223* rgw: The Civetweb frontend is now deprecated and will be removed in Quincy.
224
f67539c2
TL
225>=15.0.0
226--------
227
f91f0fd5
TL
228* MON: The cluster log now logs health detail every ``mon_health_to_clog_interval``,
229 which has been changed from 1hr to 10min. Logging of health detail will be
230 skipped if there is no change in health summary since last known.
e306af50 231
f91f0fd5
TL
232* The ``ceph df`` command now lists the number of pgs in each pool.
233
f67539c2
TL
234* Monitors now have config option ``mon_allow_pool_size_one``, which is disabled
235 by default. However, if enabled, user now have to pass the
236 ``--yes-i-really-mean-it`` flag to ``osd pool set size 1``, if they are really
237 sure of configuring pool size 1.
238
239* librbd now inherits the stripe unit and count from its parent image upon creation.
240 This can be overridden by specifying different stripe settings during clone creation.
241
242* The balancer is now on by default in upmap mode. Since upmap mode requires
243 ``require_min_compat_client`` luminous, new clusters will only support luminous
244 and newer clients by default. Existing clusters can enable upmap support by running
245 ``ceph osd set-require-min-compat-client luminous``. It is still possible to turn
246 the balancer off using the ``ceph balancer off`` command. In earlier versions,
247 the balancer was included in the ``always_on_modules`` list, but needed to be
248 turned on explicitly using the ``ceph balancer on`` command.
249
250* MGR: the "cloud" mode of the diskprediction module is not supported anymore
251 and the ``ceph-mgr-diskprediction-cloud`` manager module has been removed. This
252 is because the external cloud service run by ProphetStor is no longer accessible
253 and there is no immediate replacement for it at this time. The "local" prediction
254 mode will continue to be supported.
255
256* Cephadm: There were a lot of small usability improvements and bug fixes:
257
258 * Grafana when deployed by Cephadm now binds to all network interfaces.
259 * ``cephadm check-host`` now prints all detected problems at once.
260 * Cephadm now calls ``ceph dashboard set-grafana-api-ssl-verify false``
261 when generating an SSL certificate for Grafana.
262 * The Alertmanager is now correctly pointed to the Ceph Dashboard
263 * ``cephadm adopt`` now supports adopting an Alertmanager
264 * ``ceph orch ps`` now supports filtering by service name
265 * ``ceph orch host ls`` now marks hosts as offline, if they are not
266 accessible.
267
268* Cephadm can now deploy NFS Ganesha services. For example, to deploy NFS with
269 a service id of mynfs, that will use the RADOS pool nfs-ganesha and namespace
270 nfs-ns::
271
272 ceph orch apply nfs mynfs nfs-ganesha nfs-ns
273
274* Cephadm: ``ceph orch ls --export`` now returns all service specifications in
275 yaml representation that is consumable by ``ceph orch apply``. In addition,
276 the commands ``orch ps`` and ``orch ls`` now support ``--format yaml`` and
277 ``--format json-pretty``.
278
279* CephFS: Automatic static subtree partitioning policies may now be configured
280 using the new distributed and random ephemeral pinning extended attributes on
281 directories. See the documentation for more information:
282 https://docs.ceph.com/docs/master/cephfs/multimds/
283
284* Cephadm: ``ceph orch apply osd`` supports a ``--preview`` flag that prints a preview of
285 the OSD specification before deploying OSDs. This makes it possible to
286 verify that the specification is correct, before applying it.
287
288* RGW: The ``radosgw-admin`` sub-commands dealing with orphans --
289 ``radosgw-admin orphans find``, ``radosgw-admin orphans finish``, and
290 ``radosgw-admin orphans list-jobs`` -- have been deprecated. They have
291 not been actively maintained and they store intermediate results on
292 the cluster, which could fill a nearly-full cluster. They have been
293 replaced by a tool, currently considered experimental,
294 ``rgw-orphan-list``.
295
296* RBD: The name of the rbd pool object that is used to store
297 rbd trash purge schedule is changed from "rbd_trash_trash_purge_schedule"
298 to "rbd_trash_purge_schedule". Users that have already started using
299 ``rbd trash purge schedule`` functionality and have per pool or namespace
300 schedules configured should copy "rbd_trash_trash_purge_schedule"
301 object to "rbd_trash_purge_schedule" before the upgrade and remove
302 "rbd_trash_purge_schedule" using the following commands in every RBD
303 pool and namespace where a trash purge schedule was previously
304 configured::
305
306 rados -p <pool-name> [-N namespace] cp rbd_trash_trash_purge_schedule rbd_trash_purge_schedule
307 rados -p <pool-name> [-N namespace] rm rbd_trash_trash_purge_schedule
308
309 or use any other convenient way to restore the schedule after the
310 upgrade.
311
312* librbd: The shared, read-only parent cache has been moved to a separate librbd
313 plugin. If the parent cache was previously in-use, you must also instruct
314 librbd to load the plugin by adding the following to your configuration::
315
316 rbd_plugins = parent_cache
317
318* Monitors now have a config option ``mon_osd_warn_num_repaired``, 10 by default.
319 If any OSD has repaired more than this many I/O errors in stored data a
320 ``OSD_TOO_MANY_REPAIRS`` health warning is generated.
321
322* Introduce commands that manipulate required client features of a file system::
323
324 ceph fs required_client_features <fs name> add <feature>
325 ceph fs required_client_features <fs name> rm <feature>
326 ceph fs feature ls
327
328* OSD: A new configuration option ``osd_compact_on_start`` has been added which triggers
329 an OSD compaction on start. Setting this option to ``true`` and restarting an OSD
330 will result in an offline compaction of the OSD prior to booting.
331
332* OSD: the option named ``bdev_nvme_retry_count`` has been removed. Because
333 in SPDK v20.07, there is no easy access to bdev_nvme options, and this
334 option is hardly used, so it was removed.
335
336* Now when noscrub and/or nodeep-scrub flags are set globally or per pool,
337 scheduled scrubs of the type disabled will be aborted. All user initiated
338 scrubs are NOT interrupted.
339
340* Alpine build related script, documentation and test have been removed since
341 the most updated APKBUILD script of Ceph is already included by Alpine Linux's
342 aports repository.
343
344* fs: Names of new FSs, volumes, subvolumes and subvolume groups can only
345 contain alphanumeric and ``-``, ``_`` and ``.`` characters. Some commands
346 or CephX credentials may not work with old FSs with non-conformant names.
f91f0fd5
TL
347
348* It is now possible to specify the initial monitor to contact for Ceph tools
349 and daemons using the ``mon_host_override`` config option or
350 ``--mon-host-override <ip>`` command-line switch. This generally should only
351 be used for debugging and only affects initial communication with Ceph's
352 monitor cluster.
f67539c2
TL
353
354* `blacklist` has been replaced with `blocklist` throughout. The following commands have changed:
355
356 - ``ceph osd blacklist ...`` are now ``ceph osd blocklist ...``
357 - ``ceph <tell|daemon> osd.<NNN> dump_blacklist`` is now ``ceph <tell|daemon> osd.<NNN> dump_blocklist``
358
359* The following config options have changed:
360
361 - ``mon osd blacklist default expire`` is now ``mon osd blocklist default expire``
362 - ``mon mds blacklist interval`` is now ``mon mds blocklist interval``
363 - ``mon mgr blacklist interval`` is now ''mon mgr blocklist interval``
364 - ``rbd blacklist on break lock`` is now ``rbd blocklist on break lock``
365 - ``rbd blacklist expire seconds`` is now ``rbd blocklist expire seconds``
366 - ``mds session blacklist on timeout`` is now ``mds session blocklist on timeout``
367 - ``mds session blacklist on evict`` is now ``mds session blocklist on evict``
368
369* CephFS: Compatibility code for old on-disk format of snapshot has been removed.
370 Current on-disk format of snapshot was introduced by Mimic release. If there
371 are any snapshots created by Ceph release older than Mimic. Before upgrading,
372 either delete them all or scrub the whole filesystem:
373
374 ceph daemon <mds of rank 0> scrub_path / force recursive repair
375 ceph daemon <mds of rank 0> scrub_path '~mdsdir' force recursive repair
376
377* CephFS: Scrub is supported in multiple active mds setup. MDS rank 0 handles
378 scrub commands, and forward scrub to other mds if necessary.
379
380* The following librados API calls have changed:
381
382 - ``rados_blacklist_add`` is now ``rados_blocklist_add``; the former will issue a deprecation warning and be removed in a future release.
383 - ``rados.blacklist_add`` is now ``rados.blocklist_add`` in the C++ API.
384
385* The JSON output for the following commands now shows ``blocklist`` instead of ``blacklist``:
386
387 - ``ceph osd dump``
388 - ``ceph <tell|daemon> osd.<N> dump_blocklist``
389
390* caps: MON and MDS caps can now be used to restrict client's ability to view
391 and operate on specific Ceph file systems. The FS can be specificed using
392 ``fsname`` in caps. This also affects subcommand ``fs authorize``, the caps
393 produce by it will be specific to the FS name passed in its arguments.
394
395* fs: root_squash flag can be set in MDS caps. It disallows file system
396 operations that need write access for clients with uid=0 or gid=0. This
397 feature should prevent accidents such as an inadvertent `sudo rm -rf /<path>`.
398
399* fs: "fs authorize" now sets MON cap to "allow <perm> fsname=<fsname>"
400 instead of setting it to "allow r" all the time.
401
402* ``ceph pg #.# list_unfound`` output has been enhanced to provide
403 might_have_unfound information which indicates which OSDs may
404 contain the unfound objects.
405
406* The ``ceph orch apply rgw`` syntax and behavior have changed. RGW
407 services can now be arbitrarily named (it is no longer forced to be
408 `realm.zone`). The ``--rgw-realm=...`` and ``--rgw-zone=...``
409 arguments are now optional, which means that if they are omitted, a
410 vanilla single-cluster RGW will be deployed. When the realm and
411 zone are provided, the user is now responsible for setting up the
412 multisite configuration beforehand--cephadm no longer attempts to
413 create missing realms or zones.
a4b75251
TL
414
415* The cephadm NFS support has been simplified to no longer allow the
416 pool and namespace where configuration is stored to be customized.
417 As a result, the ``ceph orch apply nfs`` command no longer has
418 ``--pool`` or ``--namespace`` arguments.
419
420 Existing cephadm NFS deployments (from earlier version of Pacific or
421 from Octopus) will be automatically migrated when the cluster is
422 upgraded. Note that the NFS ganesha daemons will be redeployed and
423 it is possible that their IPs will change.