]>
Commit | Line | Data |
---|---|---|
20effc67 TL |
1 | ======= |
2 | Emperor | |
3 | ======= | |
4 | ||
5 | Emperor is the 5th stable release of Ceph. It is named after the emperor squid. | |
6 | ||
7 | ||
11fdf7f2 TL |
8 | v0.72.3 Emperor (pending release) |
9 | ================================= | |
10 | ||
11 | Upgrading | |
12 | --------- | |
13 | ||
14 | * Monitor 'auth' read-only commands now expect the user to have 'rx' caps. | |
15 | This is the same behavior that was present in dumpling, but in emperor | |
16 | and more recent development releases the 'r' cap was sufficient. Note that | |
17 | this backported security fix will break mon keys that are using the following | |
18 | commands but do not have the 'x' bit in the mon capability:: | |
19 | ||
20 | ceph auth export | |
21 | ceph auth get | |
22 | ceph auth get-key | |
23 | ceph auth print-key | |
24 | ceph auth list | |
25 | ||
26 | ||
27 | v0.72.2 Emperor | |
28 | =============== | |
29 | ||
30 | This is the second bugfix release for the v0.72.x Emperor series. We | |
31 | have fixed a hang in radosgw, and fixed (again) a problem with monitor | |
32 | CLI compatibility with mixed version monitors. (In the future this | |
33 | will no longer be a problem.) | |
34 | ||
35 | Upgrading | |
36 | --------- | |
37 | ||
38 | * The JSON schema for the 'osd pool set ...' command changed slightly. Please | |
39 | avoid issuing this particular command via the CLI while there is a mix of | |
40 | v0.72.1 and v0.72.2 monitor daemons running. | |
41 | ||
42 | * As part of fix for #6796, 'ceph osd pool set <pool> <var> <arg>' now | |
43 | receives <arg> as an integer instead of a string. This affects how | |
44 | 'hashpspool' flag is set/unset: instead of 'true' or 'false', it now | |
45 | must be '0' or '1'. | |
46 | ||
47 | ||
48 | Changes | |
49 | ------- | |
50 | ||
51 | * mon: 'osd pool set ...' syntax change | |
52 | * osd: added test for missing on-disk HEAD object | |
53 | * osd: fix osd bench block size argument | |
54 | * rgw: fix hang on large object GET | |
55 | * rgw: fix rare use-after-free | |
56 | * rgw: various DR bug fixes | |
57 | * rgw: do not return error on empty owner when setting ACL | |
58 | * sysvinit, upstart: prevent starting daemons using both init systems | |
59 | ||
60 | For more detailed information, see :download:`the complete changelog <../changelog/v0.72.2.txt>`. | |
61 | ||
62 | v0.72.1 Emperor | |
63 | =============== | |
64 | ||
65 | Important Note | |
66 | -------------- | |
67 | ||
68 | When you are upgrading from Dumpling to Emperor, do not run any of the | |
69 | "ceph osd pool set" commands while your monitors are running separate versions. | |
70 | Doing so could result in inadvertently changing cluster configuration settings | |
71 | that exhaust compute resources in your OSDs. | |
72 | ||
73 | Changes | |
74 | ------- | |
75 | ||
76 | * osd: fix upgrade bug #6761 | |
77 | * ceph_filestore_tool: introduced tool to repair errors caused by #6761 | |
78 | ||
79 | This release addresses issue #6761. Upgrading to Emperor can cause | |
80 | reads to begin returning ENFILE (too many open files). v0.72.1 fixes | |
81 | that upgrade issue and adds a tool ceph_filestore_tool to repair osd | |
82 | stores affected by this bug. | |
83 | ||
84 | To repair a cluster affected by this bug: | |
85 | ||
86 | #. Upgrade all osd machines to v0.72.1 | |
87 | #. Install the ceph-test package on each osd machine to get ceph_filestore_tool | |
88 | #. Stop all osd processes | |
89 | #. To see all lost objects, run the following on each osd with the osd stopped and | |
90 | the osd data directory mounted:: | |
91 | ||
92 | ceph_filestore_tool --list-lost-objects=true --filestore-path=<path-to-osd-filestore> --journal-path=<path-to-osd-journal> | |
93 | ||
94 | #. To fix all lost objects, run the following on each osd with the | |
95 | osd stopped and the osd data directory mounted:: | |
96 | ||
97 | ceph_filestore_tool --fix-lost-objects=true --list-lost-objects=true --filestore-path=<path-to-osd-filestore> --journal-path=<path-to-osd-journal> | |
98 | ||
99 | #. Once lost objects have been repaired on each osd, you can restart | |
100 | the cluster. | |
101 | ||
102 | Note, the ceph_filestore_tool performs a scan of all objects on the | |
103 | osd and may take some time. | |
104 | ||
105 | ||
106 | v0.72 Emperor | |
107 | ============= | |
108 | ||
109 | This is the fifth major release of Ceph, the fourth since adopting a | |
110 | 3-month development cycle. This release brings several new features, | |
111 | including multi-datacenter replication for the radosgw, improved | |
112 | usability, and lands a lot of incremental performance and internal | |
113 | refactoring work to support upcoming features in Firefly. | |
114 | ||
115 | Important Note | |
116 | -------------- | |
117 | ||
118 | When you are upgrading from Dumpling to Emperor, do not run any of the | |
119 | "ceph osd pool set" commands while your monitors are running separate versions. | |
120 | Doing so could result in inadvertently changing cluster configuration settings | |
121 | that exhaust compute resources in your OSDs. | |
122 | ||
123 | Highlights | |
124 | ---------- | |
125 | ||
126 | * common: improved crc32c performance | |
127 | * librados: new example client and class code | |
128 | * mds: many bug fixes and stability improvements | |
129 | * mon: health warnings when pool pg_num values are not reasonable | |
130 | * mon: per-pool performance stats | |
131 | * osd, librados: new object copy primitives | |
132 | * osd: improved interaction with backend file system to reduce latency | |
133 | * osd: much internal refactoring to support ongoing erasure coding and tiering support | |
134 | * rgw: bucket quotas | |
135 | * rgw: improved CORS support | |
136 | * rgw: performance improvements | |
137 | * rgw: validate S3 tokens against Keystone | |
138 | ||
139 | Coincident with core Ceph, the Emperor release also brings: | |
140 | ||
141 | * radosgw-agent: support for multi-datacenter replication for disaster recovery | |
142 | * tgt: improved support for iSCSI via upstream tgt | |
143 | ||
144 | Packages for both are available on ceph.com. | |
145 | ||
146 | Upgrade sequencing | |
147 | ------------------ | |
148 | ||
149 | There are no specific upgrade restrictions on the order or sequence of | |
150 | upgrading from 0.67.x Dumpling. However, you cannot run any of the | |
151 | "ceph osd pool set" commands while your monitors are running separate versions. | |
152 | Doing so could result in inadvertently changing cluster configuration settings | |
153 | and exhausting compute resources in your OSDs. | |
154 | ||
155 | It is also possible to do a rolling upgrade from 0.61.x Cuttlefish, | |
156 | but there are ordering restrictions. (This is the same set of | |
157 | restrictions for Cuttlefish to Dumpling.) | |
158 | ||
159 | #. Upgrade ceph-common on all nodes that will use the command line 'ceph' utility. | |
160 | #. Upgrade all monitors (upgrade ceph package, restart ceph-mon | |
161 | daemons). This can happen one daemon or host at a time. Note that | |
162 | because cuttlefish and dumpling monitors can't talk to each other, | |
163 | all monitors should be upgraded in relatively short succession to | |
164 | minimize the risk that an a untimely failure will reduce | |
165 | availability. | |
166 | #. Upgrade all osds (upgrade ceph package, restart ceph-osd daemons). | |
167 | This can happen one daemon or host at a time. | |
168 | #. Upgrade radosgw (upgrade radosgw package, restart radosgw daemons). | |
169 | ||
170 | ||
171 | Upgrading from v0.71 | |
172 | -------------------- | |
173 | ||
174 | * ceph-fuse and radosgw now use the same default values for the admin | |
175 | socket and log file paths that the other daemons (ceph-osd, | |
176 | ceph-mon, etc.) do. If you run these daemons as non-root, you may | |
177 | need to adjust your ceph.conf to disable these options or to adjust | |
178 | the permissions on /var/run/ceph and /var/log/ceph. | |
179 | ||
180 | Upgrading from v0.67 Dumpling | |
181 | ----------------------------- | |
182 | ||
183 | * ceph-fuse and radosgw now use the same default values for the admin | |
184 | socket and log file paths that the other daemons (ceph-osd, | |
185 | ceph-mon, etc.) do. If you run these daemons as non-root, you may | |
186 | need to adjust your ceph.conf to disable these options or to adjust | |
187 | the permissions on /var/run/ceph and /var/log/ceph. | |
188 | ||
189 | * The MDS now disallows snapshots by default as they are not | |
190 | considered stable. The command 'ceph mds set allow_snaps' will | |
191 | enable them. | |
192 | ||
193 | * For clusters that were created before v0.44 (pre-argonaut, Spring | |
194 | 2012) and store radosgw data, the auto-upgrade from TMAP to OMAP | |
195 | objects has been disabled. Before upgrading, make sure that any | |
196 | buckets created on pre-argonaut releases have been modified (e.g., | |
197 | by PUTing and then DELETEing an object from each bucket). Any | |
198 | cluster created with argonaut (v0.48) or a later release or not | |
199 | using radosgw never relied on the automatic conversion and is not | |
200 | affected by this change. | |
201 | ||
202 | * Any direct users of the 'tmap' portion of the librados API should be | |
203 | aware that the automatic tmap -> omap conversion functionality has | |
204 | been removed. | |
205 | ||
206 | * Most output that used K or KB (e.g., for kilobyte) now uses a | |
207 | lower-case k to match the official SI convention. Any scripts that | |
208 | parse output and check for an upper-case K will need to be modified. | |
209 | ||
210 | * librados::Rados::pool_create_async() and librados::Rados::pool_delete_async() | |
211 | don't drop a reference to the completion object on error, caller needs to take | |
212 | care of that. This has never really worked correctly and we were leaking an | |
213 | object | |
214 | ||
215 | * 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the | |
216 | specified location, as that's a job for 'ceph osd crush add'. It will | |
217 | however continue to work just the same as long as the osd already exists | |
218 | in the crush map. | |
219 | ||
220 | * The OSD now enforces that class write methods cannot both mutate an | |
221 | object and return data. The rbd.assign_bid method, the lone | |
222 | offender, has been removed. This breaks compatibility with | |
223 | pre-bobtail librbd clients by preventing them from creating new | |
224 | images. | |
225 | ||
226 | * librados now returns on commit instead of ack for synchronous calls. | |
227 | This is a bit safer in the case where both OSDs and the client crash, and | |
228 | is probably how it should have been acting from the beginning. Users are | |
229 | unlikely to notice but it could result in lower performance in some | |
230 | circumstances. Those who care should switch to using the async interfaces, | |
231 | which let you specify safety semantics precisely. | |
232 | ||
233 | * The C++ librados AioComplete::get_version() method was incorrectly | |
234 | returning an int (usually 32-bits). To avoid breaking library | |
235 | compatibility, a get_version64() method is added that returns the | |
236 | full-width value. The old method is deprecated and will be removed | |
237 | in a future release. Users of the C++ librados API that make use of | |
238 | the get_version() method should modify their code to avoid getting a | |
239 | value that is truncated from 64 to to 32 bits. | |
240 | ||
241 | ||
242 | Notable Changes since v0.71 | |
243 | --------------------------- | |
244 | ||
245 | * build: fix [/usr]/sbin locations (Alan Somers) | |
246 | * ceph-fuse, radosgw: enable admin socket and logging by default | |
247 | * ceph: make -h behave when monitors are down | |
248 | * common: cache crc32c values where possible | |
249 | * common: fix looping on BSD (Alan Somers) | |
250 | * librados, mon: ability to query/ping out-of-quorum monitor status (Joao Luis) | |
251 | * librbd python bindings: fix parent image name limit (Josh Durgin) | |
252 | * mds: avoid leaking objects when deleting truncated files (Yan, Zheng) | |
253 | * mds: fix F_GETLK (Yan, Zheng) | |
254 | * mds: fix many bugs with stray (unlinked) inodes (Yan, Zheng) | |
255 | * mds: fix many directory fragmentation bugs (Yan, Zheng) | |
256 | * mon: allow (un)setting HASHPSPOOL flag on existing pools (Joao Luis) | |
257 | * mon: make 'osd pool rename' idempotent (Joao Luis) | |
258 | * osd: COPY_GET on-wire encoding improvements (Greg Farnum) | |
259 | * osd: bloom_filter encodability, fixes, cleanups (Loic Dachary, Sage Weil) | |
260 | * osd: fix handling of racing read vs write (Samuel Just) | |
261 | * osd: reduce blocking on backing fs (Samuel Just) | |
262 | * radosgw-agent: multi-region replication/DR | |
263 | * rgw: fix/improve swift COPY support (Yehuda Sadeh) | |
264 | * rgw: misc fixes to support DR (Josh Durgin, Yehuda Sadeh) | |
265 | * rgw: per-bucket quota (Yehuda Sadeh) | |
266 | * rpm: fix junit dependencies (Alan Grosskurth) | |
267 | ||
268 | Notable Changes since v0.67 Dumpling | |
269 | ------------------------------------ | |
270 | ||
271 | * build cleanly under clang (Christophe Courtaut) | |
272 | * build: Makefile refactor (Roald J. van Loon) | |
273 | * build: fix [/usr]/sbin locations (Alan Somers) | |
274 | * ceph-disk: fix journal preallocation | |
275 | * ceph-fuse, radosgw: enable admin socket and logging by default | |
276 | * ceph-fuse: fix problem with readahead vs truncate race (Yan, Zheng) | |
277 | * ceph-fuse: trim deleted inodes from cache (Yan, Zheng) | |
278 | * ceph-fuse: use newer fuse api (Jianpeng Ma) | |
279 | * ceph-kvstore-tool: new tool for working with leveldb (copy, crc) (Joao Luis) | |
280 | * ceph-post-file: new command to easily share logs or other files with ceph devs | |
281 | * ceph: improve parsing of CEPH_ARGS (Benoit Knecht) | |
282 | * ceph: make -h behave when monitors are down | |
283 | * ceph: parse CEPH_ARGS env variable | |
284 | * common: bloom_filter improvements, cleanups | |
285 | * common: cache crc32c values where possible | |
286 | * common: correct SI is kB not KB (Dan Mick) | |
287 | * common: fix looping on BSD (Alan Somers) | |
288 | * common: migrate SharedPtrRegistry to use boost::shared_ptr<> (Loic Dachary) | |
289 | * common: misc portability fixes (Noah Watkins) | |
290 | * crc32c: fix optimized crc32c code (it now detects arch support properly) | |
291 | * crc32c: improved intel-optimized crc32c support (~8x faster on my laptop!) | |
292 | * crush: fix name caching | |
293 | * doc: erasure coding design notes (Loic Dachary) | |
294 | * hadoop: removed old version of shim to avoid confusing users (Noah Watkins) | |
295 | * librados, mon: ability to query/ping out-of-quorum monitor status (Joao Luis) | |
296 | * librados: fix async aio completion wakeup | |
297 | * librados: fix installed header #includes (Dan Mick) | |
298 | * librados: get_version64() method for C++ API | |
299 | * librados: hello_world example (Greg Farnum) | |
300 | * librados: sync calls now return on commit (instead of ack) (Greg Farnum) | |
301 | * librbd python bindings: fix parent image name limit (Josh Durgin) | |
302 | * librbd, ceph-fuse: avoid some sources of ceph-fuse, rbd cache stalls | |
303 | * mds: avoid leaking objects when deleting truncated files (Yan, Zheng) | |
304 | * mds: fix F_GETLK (Yan, Zheng) | |
305 | * mds: fix LOOKUPSNAP bug | |
306 | * mds: fix heap profiler commands (Joao Luis) | |
307 | * mds: fix locking deadlock (David Disseldorp) | |
308 | * mds: fix many bugs with stray (unlinked) inodes (Yan, Zheng) | |
309 | * mds: fix many directory fragmentation bugs (Yan, Zheng) | |
310 | * mds: fix mds rejoin with legacy parent backpointer xattrs (Alexandre Oliva) | |
311 | * mds: fix rare restart/failure race during fs creation | |
312 | * mds: fix standby-replay when we fall behind (Yan, Zheng) | |
313 | * mds: fix stray directory purging (Yan, Zheng) | |
314 | * mds: notify clients about deleted files (so they can release from their cache) (Yan, Zheng) | |
315 | * mds: several bug fixes with clustered mds (Yan, Zheng) | |
316 | * mon, osd: improve osdmap trimming logic (Samuel Just) | |
317 | * mon, osd: initial CLI for configuring tiering | |
318 | * mon: a few 'ceph mon add' races fixed (command is now idempotent) (Joao Luis) | |
319 | * mon: allow (un)setting HASHPSPOOL flag on existing pools (Joao Luis) | |
320 | * mon: allow cap strings with . to be unquoted | |
321 | * mon: allow logging level of cluster log (/var/log/ceph/ceph.log) to be adjusted | |
322 | * mon: avoid rewriting full osdmaps on restart (Joao Luis) | |
323 | * mon: continue to discover peer addr info during election phase | |
324 | * mon: disallow CephFS snapshots until 'ceph mds set allow_new_snaps' (Greg Farnum) | |
325 | * mon: do not expose uncommitted state from 'osd crush {add,set} ...' (Joao Luis) | |
326 | * mon: fix 'ceph osd crush reweight ...' (Joao Luis) | |
327 | * mon: fix 'osd crush move ...' command for buckets (Joao Luis) | |
328 | * mon: fix byte counts (off by factor of 4) (Dan Mick, Joao Luis) | |
329 | * mon: fix paxos corner case | |
330 | * mon: kv properties for pools to support EC (Loic Dachary) | |
331 | * mon: make 'osd pool rename' idempotent (Joao Luis) | |
332 | * mon: modify 'auth add' semantics to make a bit more sense (Joao Luis) | |
333 | * mon: new 'osd perf' command to dump recent performance information (Samuel Just) | |
334 | * mon: new and improved 'ceph -s' or 'ceph status' command (more info, easier to read) | |
335 | * mon: some auth check cleanups (Joao Luis) | |
336 | * mon: track per-pool stats (Joao Luis) | |
337 | * mon: warn about pools with bad pg_num | |
338 | * mon: warn when mon data stores grow very large (Joao Luis) | |
339 | * monc: fix small memory leak | |
340 | * new wireshark patches pulled into the tree (Kevin Jones) | |
341 | * objecter, librados: redirect requests based on cache tier config | |
342 | * objecter: fix possible hang when cluster is unpaused (Josh Durgin) | |
343 | * osd, librados: add new COPY_FROM rados operation | |
344 | * osd, librados: add new COPY_GET rados operations (used by COPY_FROM) | |
345 | * osd: 'osd recover clone overlap limit' option to limit cloning during recovery (Samuel Just) | |
346 | * osd: COPY_GET on-wire encoding improvements (Greg Farnum) | |
347 | * osd: add 'osd heartbeat min healthy ratio' configurable (was hard-coded at 33%) | |
348 | * osd: add option to disable pg log debug code (which burns CPU) | |
349 | * osd: allow cap strings with . to be unquoted | |
350 | * osd: automatically detect proper xattr limits (David Zafman) | |
351 | * osd: avoid extra copy in erasure coding reference implementation (Loic Dachary) | |
352 | * osd: basic cache pool redirects (Greg Farnum) | |
353 | * osd: basic whiteout, dirty flag support (not yet used) | |
354 | * osd: bloom_filter encodability, fixes, cleanups (Loic Dachary, Sage Weil) | |
355 | * osd: clean up and generalize copy-from code (Greg Farnum) | |
356 | * osd: cls_hello OSD class example | |
357 | * osd: erasure coding doc updates (Loic Dachary) | |
358 | * osd: erasure coding plugin infrastructure, tests (Loic Dachary) | |
359 | * osd: experiemental support for ZFS (zfsonlinux.org) (Yan, Zheng) | |
360 | * osd: fix RWORDER flags | |
361 | * osd: fix exponential backoff of slow request warnings (Loic Dachary) | |
362 | * osd: fix handling of racing read vs write (Samuel Just) | |
363 | * osd: fix version value returned by various operations (Greg Farnum) | |
364 | * osd: generalized temp object infrastructure | |
365 | * osd: ghobject_t infrastructure for EC (David Zafman) | |
366 | * osd: improvements for compatset support and storage (David Zafman) | |
367 | * osd: infrastructure to copy objects from other OSDs | |
368 | * osd: instrument peering states (David Zafman) | |
369 | * osd: misc copy-from improvements | |
370 | * osd: opportunistic crc checking on stored data (off by default) | |
371 | * osd: properly enforce RD/WR flags for rados classes | |
372 | * osd: reduce blocking on backing fs (Samuel Just) | |
373 | * osd: refactor recovery using PGBackend (Samuel Just) | |
374 | * osd: remove old magical tmap->omap conversion | |
375 | * osd: remove old pg log on upgrade (Samuel Just) | |
376 | * osd: revert xattr size limit (fixes large rgw uploads) | |
377 | * osd: use fdatasync(2) instead of fsync(2) to improve performance (Sam Just) | |
378 | * pybind: fix blacklisting nonce (Loic Dachary) | |
379 | * radosgw-agent: multi-region replication/DR | |
380 | * rgw: complete in-progress requests before shutting down | |
381 | * rgw: default log level is now more reasonable (Yehuda Sadeh) | |
382 | * rgw: fix S3 auth with response-* query string params (Sylvain Munaut, Yehuda Sadeh) | |
383 | * rgw: fix a few minor memory leaks (Yehuda Sadeh) | |
384 | * rgw: fix acl group check (Yehuda Sadeh) | |
385 | * rgw: fix inefficient use of std::list::size() (Yehuda Sadeh) | |
386 | * rgw: fix major CPU utilization bug with internal caching (Yehuda Sadeh, Mark Nelson) | |
387 | * rgw: fix ordering of write operations (preventing data loss on crash) (Yehuda Sadeh) | |
388 | * rgw: fix ordering of writes for mulitpart upload (Yehuda Sadeh) | |
389 | * rgw: fix various CORS bugs (Yehuda Sadeh) | |
390 | * rgw: fix/improve swift COPY support (Yehuda Sadeh) | |
391 | * rgw: improve help output (Christophe Courtaut) | |
392 | * rgw: misc fixes to support DR (Josh Durgin, Yehuda Sadeh) | |
393 | * rgw: per-bucket quota (Yehuda Sadeh) | |
394 | * rgw: validate S3 tokens against keystone (Roald J. van Loon) | |
395 | * rgw: wildcard support for keystone roles (Christophe Courtaut) | |
396 | * rpm: fix junit dependencies (Alan Grosskurth) | |
397 | * sysvinit radosgw: fix status return code (Danny Al-Gaaf) | |
398 | * sysvinit rbdmap: fix error 'service rbdmap stop' (Laurent Barbe) | |
399 | * sysvinit: add condrestart command (Dan van der Ster) | |
400 | * sysvinit: fix shutdown order (mons last) (Alfredo Deza) | |
401 | ||
402 | ||
403 | ||
404 | v0.71 | |
405 | ===== | |
406 | ||
407 | This development release includes a significant amount of new code and | |
408 | refactoring, as well as a lot of preliminary functionality that will be needed | |
409 | for erasure coding and tiering support. There are also several significant | |
410 | patch sets improving this with the MDS. | |
411 | ||
412 | Upgrading | |
413 | --------- | |
414 | ||
415 | * The MDS now disallows snapshots by default as they are not | |
416 | considered stable. The command 'ceph mds set allow_snaps' will | |
417 | enable them. | |
418 | ||
419 | * For clusters that were created before v0.44 (pre-argonaut, Spring | |
420 | 2012) and store radosgw data, the auto-upgrade from TMAP to OMAP | |
421 | objects has been disabled. Before upgrading, make sure that any | |
422 | buckets created on pre-argonaut releases have been modified (e.g., | |
423 | by PUTing and then DELETEing an object from each bucket). Any | |
424 | cluster created with argonaut (v0.48) or a later release or not | |
425 | using radosgw never relied on the automatic conversion and is not | |
426 | affected by this change. | |
427 | ||
428 | * Any direct users of the 'tmap' portion of the librados API should be | |
429 | aware that the automatic tmap -> omap conversion functionality has | |
430 | been removed. | |
431 | ||
432 | * Most output that used K or KB (e.g., for kilobyte) now uses a | |
433 | lower-case k to match the official SI convention. Any scripts that | |
434 | parse output and check for an upper-case K will need to be modified. | |
435 | ||
436 | Notable Changes | |
437 | --------------- | |
438 | ||
439 | * build: Makefile refactor (Roald J. van Loon) | |
440 | * ceph-disk: fix journal preallocation | |
441 | * ceph-fuse: trim deleted inodes from cache (Yan, Zheng) | |
442 | * ceph-fuse: use newer fuse api (Jianpeng Ma) | |
443 | * ceph-kvstore-tool: new tool for working with leveldb (copy, crc) (Joao Luis) | |
444 | * common: bloom_filter improvements, cleanups | |
445 | * common: correct SI is kB not KB (Dan Mick) | |
446 | * common: misc portability fixes (Noah Watkins) | |
447 | * hadoop: removed old version of shim to avoid confusing users (Noah Watkins) | |
448 | * librados: fix installed header #includes (Dan Mick) | |
449 | * librbd, ceph-fuse: avoid some sources of ceph-fuse, rbd cache stalls | |
450 | * mds: fix LOOKUPSNAP bug | |
451 | * mds: fix standby-replay when we fall behind (Yan, Zheng) | |
452 | * mds: fix stray directory purging (Yan, Zheng) | |
453 | * mon: disallow CephFS snapshots until 'ceph mds set allow_new_snaps' (Greg Farnum) | |
454 | * mon, osd: improve osdmap trimming logic (Samuel Just) | |
455 | * mon: kv properties for pools to support EC (Loic Dachary) | |
456 | * mon: some auth check cleanups (Joao Luis) | |
457 | * mon: track per-pool stats (Joao Luis) | |
458 | * mon: warn about pools with bad pg_num | |
459 | * osd: automatically detect proper xattr limits (David Zafman) | |
460 | * osd: avoid extra copy in erasure coding reference implementation (Loic Dachary) | |
461 | * osd: basic cache pool redirects (Greg Farnum) | |
462 | * osd: basic whiteout, dirty flag support (not yet used) | |
463 | * osd: clean up and generalize copy-from code (Greg Farnum) | |
464 | * osd: erasure coding doc updates (Loic Dachary) | |
465 | * osd: erasure coding plugin infrastructure, tests (Loic Dachary) | |
466 | * osd: fix RWORDER flags | |
467 | * osd: fix exponential backoff of slow request warnings (Loic Dachary) | |
468 | * osd: generalized temp object infrastructure | |
469 | * osd: ghobject_t infrastructure for EC (David Zafman) | |
470 | * osd: improvements for compatset support and storage (David Zafman) | |
471 | * osd: misc copy-from improvements | |
472 | * osd: opportunistic crc checking on stored data (off by default) | |
473 | * osd: refactor recovery using PGBackend (Samuel Just) | |
474 | * osd: remove old magical tmap->omap conversion | |
475 | * pybind: fix blacklisting nonce (Loic Dachary) | |
476 | * rgw: default log level is now more reasonable (Yehuda Sadeh) | |
477 | * rgw: fix acl group check (Yehuda Sadeh) | |
478 | * sysvinit: fix shutdown order (mons last) (Alfredo Deza) | |
479 | ||
480 | v0.70 | |
481 | ===== | |
482 | ||
483 | Upgrading | |
484 | --------- | |
485 | ||
486 | * librados::Rados::pool_create_async() and librados::Rados::pool_delete_async() | |
487 | don't drop a reference to the completion object on error, caller needs to take | |
488 | care of that. This has never really worked correctly and we were leaking an | |
489 | object | |
490 | ||
491 | * 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the | |
492 | specified location, as that's a job for 'ceph osd crush add'. It will | |
493 | however continue to work just the same as long as the osd already exists | |
494 | in the crush map. | |
495 | ||
496 | Notable Changes | |
497 | --------------- | |
498 | ||
499 | * mon: a few 'ceph mon add' races fixed (command is now idempotent) (Joao Luis) | |
500 | * crush: fix name caching | |
501 | * rgw: fix a few minor memory leaks (Yehuda Sadeh) | |
502 | * ceph: improve parsing of CEPH_ARGS (Benoit Knecht) | |
503 | * mon: avoid rewriting full osdmaps on restart (Joao Luis) | |
504 | * crc32c: fix optimized crc32c code (it now detects arch support properly) | |
505 | * mon: fix 'ceph osd crush reweight ...' (Joao Luis) | |
506 | * osd: revert xattr size limit (fixes large rgw uploads) | |
507 | * mds: fix heap profiler commands (Joao Luis) | |
508 | * rgw: fix inefficient use of std::list::size() (Yehuda Sadeh) | |
509 | ||
510 | ||
511 | v0.69 | |
512 | ===== | |
513 | ||
514 | Upgrading | |
515 | --------- | |
516 | ||
517 | * The sysvinit /etc/init.d/ceph script will, by default, update the | |
518 | CRUSH location of an OSD when it starts. Previously, if the | |
519 | monitors were not available, this command would hang indefinitely. | |
520 | Now, that step will time out after 10 seconds and the ceph-osd daemon | |
521 | will not be started. | |
522 | ||
523 | * Users of the librados C++ API should replace users of get_version() | |
524 | with get_version64() as the old method only returns a 32-bit value | |
525 | for a 64-bit field. The existing 32-bit get_version() method is now | |
526 | deprecated. | |
527 | ||
528 | * The OSDs are now more picky that request payload match their | |
529 | declared size. A write operation across N bytes that includes M | |
530 | bytes of data will now be rejected. No known clients do this, but | |
531 | the because the server-side behavior has changed it is possible that | |
532 | an application misusing the interface may now get errors. | |
533 | ||
534 | * The OSD now enforces that class write methods cannot both mutate an | |
535 | object and return data. The rbd.assign_bid method, the lone | |
536 | offender, has been removed. This breaks compatibility with | |
537 | pre-bobtail librbd clients by preventing them from creating new | |
538 | images. | |
539 | ||
540 | * librados now returns on commit instead of ack for synchronous calls. | |
541 | This is a bit safer in the case where both OSDs and the client crash, and | |
542 | is probably how it should have been acting from the beginning. Users are | |
543 | unlikely to notice but it could result in lower performance in some | |
544 | circumstances. Those who care should switch to using the async interfaces, | |
545 | which let you specify safety semantics precisely. | |
546 | ||
547 | * The C++ librados AioComplete::get_version() method was incorrectly | |
548 | returning an int (usually 32-bits). To avoid breaking library | |
549 | compatibility, a get_version64() method is added that returns the | |
550 | full-width value. The old method is deprecated and will be removed | |
551 | in a future release. Users of the C++ librados API that make use of | |
552 | the get_version() method should modify their code to avoid getting a | |
553 | value that is truncated from 64 to to 32 bits. | |
554 | ||
555 | ||
556 | Notable Changes | |
557 | --------------- | |
558 | ||
559 | * build cleanly under clang (Christophe Courtaut) | |
560 | * common: migrate SharedPtrRegistry to use boost::shared_ptr<> (Loic Dachary) | |
561 | * doc: erasure coding design notes (Loic Dachary) | |
562 | * improved intel-optimized crc32c support (~8x faster on my laptop!) | |
563 | * librados: get_version64() method for C++ API | |
564 | * mds: fix locking deadlock (David Disseldorp) | |
565 | * mon, osd: initial CLI for configuring tiering | |
566 | * mon: allow cap strings with . to be unquoted | |
567 | * mon: continue to discover peer addr info during election phase | |
568 | * mon: fix 'osd crush move ...' command for buckets (Joao Luis) | |
569 | * mon: warn when mon data stores grow very large (Joao Luis) | |
570 | * objecter, librados: redirect requests based on cache tier config | |
571 | * osd, librados: add new COPY_FROM rados operation | |
572 | * osd, librados: add new COPY_GET rados operations (used by COPY_FROM) | |
573 | * osd: add 'osd heartbeat min healthy ratio' configurable (was hard-coded at 33%) | |
574 | * osd: add option to disable pg log debug code (which burns CPU) | |
575 | * osd: allow cap strings with . to be unquoted | |
576 | * osd: fix version value returned by various operations (Greg Farnum) | |
577 | * osd: infrastructure to copy objects from other OSDs | |
578 | * osd: use fdatasync(2) instead of fsync(2) to improve performance (Sam Just) | |
579 | * rgw: fix major CPU utilization bug with internal caching (Yehuda Sadeh, Mark Nelson) | |
580 | * rgw: fix ordering of write operations (preventing data loss on crash) (Yehuda Sadeh) | |
581 | * rgw: fix ordering of writes for mulitpart upload (Yehuda Sadeh) | |
582 | * rgw: fix various CORS bugs (Yehuda Sadeh) | |
583 | * rgw: improve help output (Christophe Courtaut) | |
584 | * rgw: validate S3 tokens against keystone (Roald J. van Loon) | |
585 | * rgw: wildcard support for keystone roles (Christophe Courtaut) | |
586 | * sysvinit radosgw: fix status return code (Danny Al-Gaaf) | |
587 | * sysvinit rbdmap: fix error 'service rbdmap stop' (Laurent Barbe) | |
588 | ||
589 | v0.68 | |
590 | ===== | |
591 | ||
592 | Upgrading | |
593 | --------- | |
594 | ||
595 | * 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the | |
596 | specified location, as that's a job for 'ceph osd crush add'. It will | |
597 | however continue to work just the same as long as the osd already exists | |
598 | in the crush map. | |
599 | ||
600 | * The OSD now enforces that class write methods cannot both mutate an | |
601 | object and return data. The rbd.assign_bid method, the lone | |
602 | offender, has been removed. This breaks compatibility with | |
603 | pre-bobtail librbd clients by preventing them from creating new | |
604 | images. | |
605 | ||
606 | * librados now returns on commit instead of ack for synchronous calls. | |
607 | This is a bit safer in the case where both OSDs and the client crash, and | |
608 | is probably how it should have been acting from the beginning. Users are | |
609 | unlikely to notice but it could result in lower performance in some | |
610 | circumstances. Those who care should switch to using the async interfaces, | |
611 | which let you specify safety semantics precisely. | |
612 | ||
613 | * The C++ librados AioComplete::get_version() method was incorrectly | |
614 | returning an int (usually 32-bits). To avoid breaking library | |
615 | compatibility, a get_version64() method is added that returns the | |
616 | full-width value. The old method is deprecated and will be removed | |
617 | in a future release. Users of the C++ librados API that make use of | |
618 | the get_version() method should modify their code to avoid getting a | |
619 | value that is truncated from 64 to to 32 bits. | |
620 | ||
621 | ||
622 | ||
623 | Notable Changes | |
624 | --------------- | |
625 | ||
626 | * ceph-fuse: fix problem with readahead vs truncate race (Yan, Zheng) | |
627 | * ceph-post-file: new command to easily share logs or other files with ceph devs | |
628 | * ceph: parse CEPH_ARGS env variable | |
629 | * librados: fix async aio completion wakeup | |
630 | * librados: hello_world example (Greg Farnum) | |
631 | * librados: sync calls now return on commit (instead of ack) (Greg Farnum) | |
632 | * mds: fix mds rejoin with legacy parent backpointer xattrs (Alexandre Oliva) | |
633 | * mds: fix rare restart/failure race during fs creation | |
634 | * mds: notify clients about deleted files (so they can release from their cache) (Yan, Zheng) | |
635 | * mds: several bug fixes with clustered mds (Yan, Zheng) | |
636 | * mon: allow logging level of cluster log (/var/log/ceph/ceph.log) to be adjusted | |
637 | * mon: do not expose uncommitted state from 'osd crush {add,set} ...' (Joao Luis) | |
638 | * mon: fix byte counts (off by factor of 4) (Dan Mick, Joao Luis) | |
639 | * mon: fix paxos corner case | |
640 | * mon: modify 'auth add' semantics to make a bit more sense (Joao Luis) | |
641 | * mon: new 'osd perf' command to dump recent performance information (Samuel Just) | |
642 | * mon: new and improved 'ceph -s' or 'ceph status' command (more info, easier to read) | |
643 | * monc: fix small memory leak | |
644 | * new wireshark patches pulled into the tree (Kevin Jones) | |
645 | * objecter: fix possible hang when cluster is unpaused (Josh Durgin) | |
646 | * osd: 'osd recover clone overlap limit' option to limit cloning during recovery (Samuel Just) | |
647 | * osd: cls_hello OSD class example | |
648 | * osd: experiemental support for ZFS (zfsonlinux.org) (Yan, Zheng) | |
649 | * osd: instrument peering states (David Zafman) | |
650 | * osd: properly enforce RD/WR flags for rados classes | |
651 | * osd: remove old pg log on upgrade (Samuel Just) | |
652 | * rgw: complete in-progress requests before shutting down | |
653 | * rgw: fix S3 auth with response-* query string params (Sylvain Munaut, Yehuda Sadeh) | |
654 | * sysvinit: add condrestart command (Dan van der Ster) |