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