]> git.proxmox.com Git - ceph.git/blob - ceph/PendingReleaseNotes
7f57cc52a149b92b7bbb0eacd78362e14cd845f7
[ceph.git] / ceph / PendingReleaseNotes
1 >= 12.0.0
2 ------
3 * The "journaler allow split entries" config setting has been removed.
4 * The 'apply' mode of cephfs-journal-tool has been removed
5
6 12.0.0
7 ------
8
9 * When assigning a network to the public network and not to
10 the cluster network the network specification of the public
11 network will be used for the cluster network as well.
12 In older versions this would lead to cluster services
13 being bound to 0.0.0.0:<port>, thus making the
14 cluster service even more publicly available than the
15 public services. When only specifying a cluster network it
16 will still result in the public services binding to 0.0.0.0.
17
18 * Some variants of the omap_get_keys and omap_get_vals librados
19 functions have been deprecated in favor of omap_get_vals2 and
20 omap_get_keys2. The new methods include an output argument
21 indicating whether there are additional keys left to fetch.
22 Previously this had to be inferred from the requested key count vs
23 the number of keys returned, but this breaks with new OSD-side
24 limits on the number of keys or bytes that can be returned by a
25 single omap request. These limits were introduced by kraken but
26 are effectively disabled by default (by setting a very large limit
27 of 1 GB) because users of the newly deprecated interface cannot
28 tell whether they should fetch more keys or not. In the case of
29 the standalone calls in the C++ interface
30 (IoCtx::get_omap_{keys,vals}), librados has been updated to loop on
31 the client side to provide a correct result via multiple calls to
32 the OSD. In the case of the methods used for building
33 multi-operation transactions, however, client-side looping is not
34 practical, and the methods have been deprecated. Note that use of
35 either the IoCtx methods on older librados versions or the
36 deprecated methods on any version of librados will lead to
37 incomplete results if/when the new OSD limits are enabled.
38
39 * In previous versions, if a client sent an op to the wrong OSD, the OSD
40 would reply with ENXIO. The rationale here is that the client or OSD is
41 clearly buggy and we want to surface the error as clearly as possible.
42 We now only send the ENXIO reply if the osd_enxio_on_misdirected_op option
43 is enabled (it's off by default). This means that a VM using librbd that
44 previously would have gotten an EIO and gone read-only will now see a
45 blocked/hung IO instead.
46
47 * When configuring ceph-fuse mounts in /etc/fstab, a new syntax is
48 available that uses "ceph.<arg>=<val>" in the options column, instead
49 of putting configuration in the device column. The old style syntax
50 still works. See the documentation page "Mount CephFS in your
51 file systems table" for details.
52
53 12.0.1
54 ------
55
56 * The original librados rados_objects_list_open (C) and objects_begin
57 (C++) object listing API, deprecated in Hammer, has finally been
58 removed. Users of this interface must update their software to use
59 either the rados_nobjects_list_open (C) and nobjects_begin (C++) API or
60 the new rados_object_list_begin (C) and object_list_begin (C++) API
61 before updating the client-side librados library to Luminous.
62
63 Object enumeration (via any API) with the latest librados version
64 and pre-Hammer OSDs is no longer supported. Note that no in-tree
65 Ceph services rely on object enumeration via the deprecated APIs, so
66 only external librados users might be affected.
67
68 The newest (and recommended) rados_object_list_begin (C) and
69 object_list_begin (C++) API is only usable on clusters with the
70 SORTBITWISE flag enabled (Jewel and later). (Note that this flag is
71 required to be set before upgrading beyond Jewel.)
72
73 * The rados copy-get-classic operation has been removed since it has not been
74 used by the OSD since before hammer. It is unlikely any librados user is
75 using this operation explicitly since there is also the more modern copy-get.
76
77 * The RGW api for getting object torrent has changed its params from 'get_torrent'
78 to 'torrent' so that it can be compatible with Amazon S3. Now the request for
79 object torrent is like 'GET /ObjectName?torrent'.
80
81 * The configuration option "osd pool erasure code stripe width" has
82 been replaced by "osd pool erasure code stripe unit", and given the
83 ability to be overridden by the erasure code profile setting
84 "stripe_unit". For more details see "Erasure Code Profiles" in the
85 documentation.
86
87 * rbd and cephfs can use erasure coding with bluestore. This may be
88 enabled by setting 'allow_ec_overwrites' to 'true' for a pool. Since
89 this relies on bluestore's checksumming to do deep scrubbing,
90 enabling this on a pool stored on filestore is not allowed.
91
92 * The 'rados df' JSON output now prints numeric values as numbers instead of
93 strings.
94
95 * There was a bug introduced in Jewel (#19119) that broke the mapping behavior
96 when an "out" OSD that still existed in the CRUSH map was removed with 'osd rm'.
97 This could result in 'misdirected op' and other errors. The bug is now fixed,
98 but the fix itself introduces the same risk because the behavior may vary between
99 clients and OSDs. To avoid problems, please ensure that all OSDs are removed
100 from the CRUSH map before deleting them. That is, be sure to do::
101
102 ceph osd crush rm osd.123
103
104 before::
105
106 ceph osd rm osd.123
107
108 12.0.2
109 ------
110
111 * The original librados rados_objects_list_open (C) and objects_begin
112 (C++) object listing API, deprecated in Hammer, has finally been
113 removed. Users of this interface must update their software to use
114 either the rados_nobjects_list_open (C) and nobjects_begin (C++) API or
115 the new rados_object_list_begin (C) and object_list_begin (C++) API
116 before updating the client-side librados library to Luminous.
117
118 Object enumeration (via any API) with the latest librados version
119 and pre-Hammer OSDs is no longer supported. Note that no in-tree
120 Ceph services rely on object enumeration via the deprecated APIs, so
121 only external librados users might be affected.
122
123 The newest (and recommended) rados_object_list_begin (C) and
124 object_list_begin (C++) API is only usable on clusters with the
125 SORTBITWISE flag enabled (Jewel and later). (Note that this flag is
126 required to be set before upgrading beyond Jewel.)
127 * CephFS clients without the 'p' flag in their authentication capability
128 string will no longer be able to set quotas or any layout fields. This
129 flag previously only restricted modification of the pool and namespace
130 fields in layouts.
131 * CephFS directory fragmentation (large directory support) is enabled
132 by default on new filesystems. To enable it on existing filesystems
133 use "ceph fs set <fs_name> allow_dirfrags".
134 * CephFS will generate a health warning if you have fewer standby daemons
135 than it thinks you wanted. By default this will be 1 if you ever had
136 a standby, and 0 if you did not. You can customize this using
137 ``ceph fs set <fs> standby_count_wanted <number>``. Setting it
138 to zero will effectively disable the health check.
139 * The "ceph mds tell ..." command has been removed. It is superceded
140 by "ceph tell mds.<id> ..."
141
142 12.1.0
143 ------
144
145 * The ``mon_osd_max_op_age`` option has been renamed to
146 ``mon_osd_warn_op_age`` (default: 32 seconds), to indicate we
147 generate a warning at this age. There is also a new
148 ``mon_osd_err_op_age_ratio`` that is a expressed as a multitple of
149 ``mon_osd_warn_op_age`` (default: 128, for roughly 60 minutes) to
150 control when an error is generated.
151
152 * The default maximum size for a single RADOS object has been reduced from
153 100GB to 128MB. The 100GB limit was completely impractical in practice
154 while the 128MB limit is a bit high but not unreasonable. If you have an
155 application written directly to librados that is using objects larger than
156 128MB you may need to adjust ``osd_max_object_size``.
157
158 * The semantics of the 'rados ls' and librados object listing
159 operations have always been a bit confusing in that "whiteout"
160 objects (which logically don't exist and will return ENOENT if you
161 try to access them) are included in the results. Previously
162 whiteouts only occurred in cache tier pools. In luminous, logically
163 deleted but snapshotted objects now result in a whiteout object, and
164 as a result they will appear in 'rados ls' results, even though
165 trying to read such an object will result in ENOENT. The 'rados
166 listsnaps' operation can be used in such a case to enumerate which
167 snapshots are present.
168
169 This may seem a bit strange, but is less strange than having a
170 deleted-but-snapshotted object not appear at all and be completely
171 hidden from librados's ability to enumerate objects. Future
172 versions of Ceph will likely include an alternative object
173 enumeration interface that makes it more natural and efficient to
174 enumerate all objects along with their snapshot and clone metadata.
175
176 * The deprecated 'crush_ruleset' property has finally been removed; please use
177 'crush_rule' instead for the 'osd pool get ...' and 'osd pool set ..' commands.
178
179 * The 'osd pool default crush replicated ruleset' option has been
180 removed and replaced by the 'osd pool default crush rule' option.
181 By default it is -1, which means the mon will pick the first type
182 replicated rule in the CRUSH map for replicated pools. Erasure
183 coded pools have rules that are automatically created for them if they are
184 not specified at pool creation time.