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