]> git.proxmox.com Git - ceph.git/blob - ceph/doc/releases/cuttlefish.rst
01758e763a850433bed65078084212d2ddc3d192
[ceph.git] / ceph / doc / releases / cuttlefish.rst
1 ==========
2 Cuttlefish
3 ==========
4
5 Cuttlefish is the 3rd stable release of Ceph. It is named after a type
6 of cephalopod (order Sepiida) characterized by a unique internal shell, the
7 cuttlebone, which is used for control of buoyancy.
8
9 v0.61.9 "Cuttlefish"
10 ====================
11
12 This point release resolves several low to medium-impact bugs across
13 the code base, and fixes a performance problem (CPU utilization) with
14 radosgw. We recommend that all production cuttlefish users upgrade.
15
16 Notable Changes
17 ---------------
18
19 * ceph, ceph-authtool: fix help (Danny Al-Gaaf)
20 * ceph-disk: partprobe after creating journal partition
21 * ceph-disk: specific fs type when mounting (Alfredo Deza)
22 * ceph-fuse: fix bug when compiled against old versions
23 * ceph-fuse: fix use-after-free in caching code (Yan, Zheng)
24 * ceph-fuse: misc caching bugs
25 * ceph.spec: remove incorrect mod_fcgi dependency (Gary Lowell)
26 * crush: fix name caching
27 * librbd: fix bug when unpausing cluster (Josh Durgin)
28 * mds: fix LAZYIO lock hang
29 * mds: fix bug in file size recovery (after client crash)
30 * mon: fix paxos recovery corner case
31 * osd: fix exponential backoff for slow request warnings (Loic Dachary)
32 * osd: fix readdir_r usage
33 * osd: fix startup for long-stopped OSDs
34 * rgw: avoid std::list::size() to avoid wasting CPU cycles (Yehuda Sadeh)
35 * rgw: drain pending requests during write (fixes data safety issue) (Yehuda Sadeh)
36 * rgw: fix authenticated users group ACL check (Yehuda Sadeh)
37 * rgw: fix bug in POST (Yehuda Sadeh)
38 * rgw: fix sysvinit script 'status' command, return value (Danny Al-Gaaf)
39 * rgw: reduce default log level (Yehuda Sadeh)
40
41 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.9.txt>`.
42
43 v0.61.8 "Cuttlefish"
44 ====================
45
46 This release includes a number of important issues, including rare
47 race conditions in the OSD, a few monitor bugs, and fixes for RBD
48 flush behavior. We recommend that production users upgrade at their
49 convenience.
50
51 Notable Changes
52 ---------------
53
54 * librados: fix async aio completion wakeup
55 * librados: fix aio completion locking
56 * librados: fix rare deadlock during shutdown
57 * osd: fix race when queueing recovery operations
58 * osd: fix possible race during recovery
59 * osd: optionally preload rados classes on startup (disabled by default)
60 * osd: fix journal replay corner condition
61 * osd: limit size of peering work queue batch (to speed up peering)
62 * mon: fix paxos recovery corner case
63 * mon: fix rare hang when monmap updates during an election
64 * mon: make 'osd pool mksnap ...' avoid exposing uncommitted state
65 * mon: make 'osd pool rmsnap ...' not racy, avoid exposing uncommitted state
66 * mon: fix bug during mon cluster expansion
67 * rgw: fix crash during multi delete operation
68 * msgr: fix race conditions during osd network reinitialization
69 * ceph-disk: apply mount options when remounting
70
71 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.8.txt>`.
72
73
74 v0.61.7 "Cuttlefish"
75 ====================
76
77 This release fixes another regression preventing monitors to start after
78 undergoing certain upgrade sequences, as well as some corner cases with
79 Paxos and support for unusual device names in ceph-disk/ceph-deploy.
80
81 Notable Changes
82 ---------------
83
84 * mon: fix regression in latest full osdmap retrieval
85 * mon: fix a long-standing bug in a paxos corner case
86 * ceph-disk: improved support for unusual device names (e.g., /dev/cciss/c0d0)
87
88 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.7.txt>`.
89
90
91 v0.61.6 "Cuttlefish"
92 ====================
93
94 This release fixes a regression in v0.61.5 that could prevent monitors
95 from restarting. This affects any cluster that was upgraded from a
96 previous version of Ceph (and not freshly created with v0.61.5).
97
98 All users are strongly recommended to upgrade.
99
100 Notable Changes
101 ---------------
102
103 * mon: record latest full osdmap
104 * mon: work around previous bug in which latest full osdmap is not recorded
105 * mon: avoid scrub while updating
106
107 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.6.txt>`.
108
109
110 v0.61.5 "Cuttlefish"
111 ====================
112
113 This release most improves stability of the monitor and fixes a few
114 bugs with the ceph-disk utility (used by ceph-deploy). We recommend
115 that all v0.61.x users upgrade.
116
117 Upgrading
118 ---------
119
120 * This release fixes a 32-bit vs 64-bit arithmetic bug with the
121 feature bits. An unfortunate consequence of the fix is that 0.61.4
122 (or earlier) ceph-mon daemons can't form a quorum with 0.61.5 (or
123 later) monitors. To avoid the possibility of service disruption, we
124 recommend you upgrade all monitors at once.
125
126 Notable Changes
127 ---------------
128
129 * mon: misc sync improvements (faster, more reliable, better tuning)
130 * mon: enable leveldb cache by default (big performance improvement)
131 * mon: new scrub feature (primarily for diagnostic, testing purposes)
132 * mon: fix occasional leveldb assertion on startup
133 * mon: prevent reads until initial state is committed
134 * mon: improved logic for trimming old osdmaps
135 * mon: fix pick_addresses bug when expanding mon cluster
136 * mon: several small paxos fixes, improvements
137 * mon: fix bug osdmap trim behavior
138 * osd: fix several bugs with PG stat reporting
139 * osd: limit number of maps shared with peers (which could cause domino failures)
140 * rgw: fix radosgw-admin buckets list (for all buckets)
141 * mds: fix occasional client failure to reconnect
142 * mds: fix bad list traversal after unlink
143 * mds: fix underwater dentry cleanup (occasional crash after mds restart)
144 * libcephfs, ceph-fuse: fix occasional hangs on umount
145 * libcephfs, ceph-fuse: fix old bug with O_LAZY vs O_NOATIME confusion
146 * ceph-disk: more robust journal device detection on RHEL/CentOS
147 * ceph-disk: better, simpler locking
148 * ceph-disk: do not inadvertantely mount over existing osd mounts
149 * ceph-disk: better handling for unusual device names
150 * sysvinit, upstart: handle symlinks in /var/lib/ceph/*
151
152 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.5.txt>`.
153
154
155 v0.61.4 "Cuttlefish"
156 ====================
157
158 This release resolves a possible data corruption on power-cycle when
159 using XFS, a few outstanding problems with monitor sync, several
160 problems with ceph-disk and ceph-deploy operation, and a problem with
161 OSD memory usage during scrub.
162
163 Upgrading
164 ---------
165
166 * No issues.
167
168 Notable Changes
169 ---------------
170
171 * mon: fix daemon exit behavior when error is encountered on startup
172 * mon: more robust sync behavior
173 * osd: do not use sync_file_range(2), posix_fadvise(...DONTNEED) (can cause data corruption on power loss on XFS)
174 * osd: avoid unnecessary log rewrite (improves peering speed)
175 * osd: fix scrub efficiency bug (problematic on old clusters)
176 * rgw: fix listing objects that start with underscore
177 * rgw: fix deep URI resource, CORS bugs
178 * librados python binding: fix truncate on 32-bit architectures
179 * ceph-disk: fix udev rules
180 * rpm: install sysvinit script on package install
181 * ceph-disk: fix OSD start on machine reboot on Debian wheezy
182 * ceph-disk: activate OSD when journal device appears second
183 * ceph-disk: fix various bugs on RHEL/CentOS 6.3
184 * ceph-disk: add 'zap' command
185 * ceph-disk: add '[un]suppress-activate' command for preparing spare disks
186 * upstart: start on runlevel [2345] (instead of after the first network interface starts)
187 * ceph-fuse, libcephfs: handle mds session reset during session open
188 * ceph-fuse, libcephfs: fix two capability revocation bugs
189 * ceph-fuse: fix thread creation on startup
190 * all daemons: create /var/run/ceph directory on startup if missing
191
192 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.4.txt>`.
193
194
195 v0.61.3 "Cuttlefish"
196 ====================
197
198 This release resolves a number of problems with the monitors and leveldb that users have
199 been seeing. Please upgrade.
200
201 Upgrading
202 ---------
203
204 * There is one known problem with mon upgrades from bobtail. If the
205 ceph-mon conversion on startup is aborted or fails for some reason, we
206 do not correctly error out, but instead continue with (in certain cases)
207 odd results. Please be careful if you have to restart the mons during
208 the upgrade. A 0.61.4 release with a fix will be out shortly.
209
210 * In the meantime, for current cuttlefish users, v0.61.3 is safe to use.
211
212
213 Notable Changes
214 ---------------
215
216 * mon: paxos state trimming fix (resolves runaway disk usage)
217 * mon: finer-grained compaction on trim
218 * mon: discard messages from disconnected clients (lowers load)
219 * mon: leveldb compaction and other stats available via admin socket
220 * mon: async compaction (lower overhead)
221 * mon: fix bug incorrectly marking osds down with insufficient failure reports
222 * osd: fixed small bug in pg request map
223 * osd: avoid rewriting pg info on every osdmap
224 * osd: avoid internal heartbeta timeouts when scrubbing very large objects
225 * osd: fix narrow race with journal replay
226 * mon: fixed narrow pg split race
227 * rgw: fix leaked space when copying object
228 * rgw: fix iteration over large/untrimmed usage logs
229 * rgw: fix locking issue with ops log socket
230 * rgw: require matching version of librados
231 * librbd: make image creation defaults configurable (e.g., create format 2 images via qemu-img)
232 * fix units in 'ceph df' output
233 * debian: fix prerm/postinst hooks to start/stop daemons appropriately
234 * upstart: allow uppercase daemons names (and thus hostnames)
235 * sysvinit: fix enumeration of local daemons by type
236 * sysvinit: fix osd weight calcuation when using -a
237 * fix build on unsigned char platforms (e.g., arm)
238
239 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.3.txt>`.
240
241
242 v0.61.2 "Cuttlefish"
243 ====================
244
245 This release disables a monitor debug log that consumes disk space and
246 fixes a bug when upgrade some monitors from bobtail to cuttlefish.
247
248 Notable Changes
249 ---------------
250
251 * mon: fix conversion of stores with duplicated GV values
252 * mon: disable 'mon debug dump transactions' by default
253
254 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.2.txt>`.
255
256
257 v0.61.1 "Cuttlefish"
258 ====================
259
260 This release fixes a problem when upgrading a bobtail cluster that had
261 snapshots to cuttlefish.
262
263 Notable Changes
264 ---------------
265
266 * osd: handle upgrade when legacy snap collections are present; repair from previous failed restart
267 * ceph-create-keys: fix race with ceph-mon startup (which broke 'ceph-deploy gatherkeys ...')
268 * ceph-create-keys: gracefully handle bad response from ceph-osd
269 * sysvinit: do not assume default osd_data when automatically weighting OSD
270 * osd: avoid crash from ill-behaved classes using getomapvals
271 * debian: fix squeeze dependency
272 * mon: debug options to log or dump leveldb transactions
273
274 For more detailed information, see :download:`the complete changelog <../changelog/v0.61.1.txt>`.
275
276 v0.61 "Cuttlefish"
277 ==================
278
279 Upgrading from v0.60
280 --------------------
281
282 * The ceph-deploy tool is now the preferred method of provisioning
283 new clusters. For existing clusters created via mkcephfs that
284 would like to transition to the new tool, there is a migration
285 path, documented at `Transitioning to ceph-deploy`_.
286
287
288 * The sysvinit script (/etc/init.d/ceph) will now verify (and, if
289 necessary, update) the OSD's position in the CRUSH map on startup.
290 (The upstart script has always worked this way.) By default, this
291 ensures that the OSD is under a 'host' with a name that matches the
292 hostname (``hostname -s``). Legacy clusters create with mkcephfs do
293 this by default, so this should not cause any problems, but legacy
294 clusters with customized CRUSH maps with an alternate structure
295 should set ``osd crush update on start = false``.
296
297 * radosgw-admin now uses the term zone instead of cluster to describe
298 each instance of the radosgw data store (and corresponding
299 collection of radosgw daemons). The usage for the radosgw-admin
300 command and the 'rgw zone root pool' config options have changed
301 accordingly.
302
303 * rbd progress indicators now go to standard error instead of standard
304 out. (You can disable progress with --no-progress.)
305
306 * The 'rbd resize ...' command now requires the --allow-shrink option
307 when resizing to a smaller size. Expanding images to a larger size
308 is unchanged.
309
310 * Please review the changes going back to 0.56.4 if you are upgrading
311 all the way from bobtail.
312
313 * The old 'ceph stop_cluster' command has been removed.
314
315 * The sysvinit script now uses the ceph.conf file on the remote host
316 when starting remote daemons via the '-a' option. Note that if '-a'
317 is used in conjunction with '-c path', the path must also be present
318 on the remote host (it is not copied to a temporary file, as it was
319 previously).
320
321
322 Upgrading from v0.56.4 "Bobtail"
323 --------------------------------
324
325 Please see `Upgrading from Bobtail to Cuttlefish`_ for details.
326
327 .. _Upgrading from Bobtail to Cuttlefish: ../install/upgrading-ceph/#upgrading-from-bobtail-to-cuttlefish
328
329 * The ceph-deploy tool is now the preferred method of provisioning
330 new clusters. For existing clusters created via mkcephfs that
331 would like to transition to the new tool, there is a migration
332 path, documented at `Transitioning to ceph-deploy`_.
333
334 .. _Transitioning to ceph-deploy: ../rados/deployment/ceph-deploy-transition
335
336 * The sysvinit script (/etc/init.d/ceph) will now verify (and, if
337 necessary, update) the OSD's position in the CRUSH map on startup.
338 (The upstart script has always worked this way.) By default, this
339 ensures that the OSD is under a 'host' with a name that matches the
340 hostname (``hostname -s``). Legacy clusters create with mkcephfs do
341 this by default, so this should not cause any problems, but legacy
342 clusters with customized CRUSH maps with an alternate structure
343 should set ``osd crush update on start = false``.
344
345 * radosgw-admin now uses the term zone instead of cluster to describe
346 each instance of the radosgw data store (and corresponding
347 collection of radosgw daemons). The usage for the radosgw-admin
348 command and the 'rgw zone root pool' config options have changed
349 accordingly.
350
351 * rbd progress indicators now go to standard error instead of standard
352 out. (You can disable progress with --no-progress.)
353
354 * The 'rbd resize ...' command now requires the --allow-shrink option
355 when resizing to a smaller size. Expanding images to a larger size
356 is unchanged.
357
358 * Please review the changes going back to 0.56.4 if you are upgrading
359 all the way from bobtail.
360
361 * The old 'ceph stop_cluster' command has been removed.
362
363 * The sysvinit script now uses the ceph.conf file on the remote host
364 when starting remote daemons via the '-a' option. Note that if '-a'
365 is used in conjunction with '-c path', the path must also be present
366 on the remote host (it is not copied to a temporary file, as it was
367 previously).
368
369 * The monitor is using a completely new storage strategy and
370 intra-cluster protocol. This means that cuttlefish and bobtail
371 monitors do not talk to each other. When you upgrade each one, it
372 will convert its local data store to the new format. Once you
373 upgrade a majority, the quorum will be formed using the new protocol
374 and the old monitors will be blocked out until they too get
375 upgraded. For this reason, we recommend not running a mixed-version
376 cluster for very long.
377
378 * ceph-mon now requires the creation of its data directory prior to
379 --mkfs, similarly to what happens on ceph-osd. This directory is no
380 longer automatically created, and custom scripts should be adjusted to
381 reflect just that.
382
383 * The monitor now enforces that MDS names be unique. If you have
384 multiple daemons start with with the same id (e.g., ``mds.a``) the
385 second one will implicitly mark the first as failed. This makes
386 things less confusing and makes a daemon restart faster (we no
387 longer wait for the stopped daemon to time out) but existing
388 multi-mds configurations may need to be adjusted accordingly to give
389 daemons unique names.
390
391 * The 'ceph osd pool delete <poolname>' and 'rados rmpool <poolname>'
392 now have safety interlocks with loud warnings that make you confirm
393 pool removal. Any scripts currently rely on these functions zapping
394 data without confirmation need to be adjusted accordingly.
395
396
397 Notable Changes from v0.60
398 --------------------------
399
400 * rbd: incremental backups
401 * rbd: only set STRIPINGV2 feature if striping parameters are incompatible with old versions
402 * rbd: require --allow-shrink for resizing images down
403 * librbd: many bug fixes
404 * rgw: management REST API
405 * rgw: fix object corruption on COPY to self
406 * rgw: new sysvinit script for rpm-based systems
407 * rgw: allow buckets with '_'
408 * rgw: CORS support
409 * mon: many fixes
410 * mon: improved trimming behavior
411 * mon: fix data conversion/upgrade problem (from bobtail)
412 * mon: ability to tune leveldb
413 * mon: config-keys service to store arbitrary data on monitor
414 * mon: 'osd crush add|link|unlink|add-bucket ...' commands
415 * mon: trigger leveldb compaction on trim
416 * osd: per-rados pool quotas (objects, bytes)
417 * osd: tool to export, import, and delete PGs from an individual OSD data store
418 * osd: notify mon on clean shutdown to avoid IO stall
419 * osd: improved detection of corrupted journals
420 * osd: ability to tune leveldb
421 * osd: improve client request throttling
422 * osd, librados: fixes to the LIST_SNAPS operation
423 * osd: improvements to scrub error repair
424 * osd: better prevention of wedging OSDs with ENOSPC
425 * osd: many small fixes
426 * mds: fix xattr handling on root inode
427 * mds: fixed bugs in journal replay
428 * mds: many fixes
429 * librados: clean up snapshot constant definitions
430 * libcephfs: calls to query CRUSH topology (used by Hadoop)
431 * ceph-fuse, libcephfs: misc fixes to mds session management
432 * ceph-fuse: disabled cache invalidation (again) due to potential deadlock with kernel
433 * sysvinit: try to start all daemons despite early failures
434 * ceph-disk: new 'list' command
435 * ceph-disk: hotplug fixes for RHEL/CentOS
436 * ceph-disk: fix creation of OSD data partitions on >2TB disks
437 * osd: fix udev rules for RHEL/CentOS systems
438 * fix daemon logging during initial startup
439
440 Notable changes from v0.56 "Bobtail"
441 ------------------------------------
442 * always use installed system leveldb (Gary Lowell)
443 * auth: ability to require new cephx signatures on messages (still off by default)
444 * buffer unit testing (Loic Dachary)
445 * ceph tool: some CLI interface cleanups
446 * ceph-disk: improve multicluster support, error handling (Sage Weil)
447 * ceph-disk: support for dm-crypt (Alexandre Marangone)
448 * ceph-disk: support for sysvinit, directories or partitions (not full disks)
449 * ceph-disk: fix mkfs args on old distros (Alexandre Marangone)
450 * ceph-disk: fix creation of OSD data partitions on >2TB disks
451 * ceph-disk: hotplug fixes for RHEL/CentOS
452 * ceph-disk: new 'list' command
453 * ceph-fuse, libcephfs: misc fixes to mds session management
454 * ceph-fuse: disabled cache invalidation (again) due to potential deadlock with kernel
455 * ceph-fuse: enable kernel cache invalidation (Sam Lang)
456 * ceph-fuse: fix statfs(2) reporting
457 * ceph-fuse: session handling cleanup, bug fixes (Sage Weil)
458 * crush: ability to create, remove rules via CLI
459 * crush: update weights for all instances of an item, not just the first (Sage Weil)
460 * fix daemon logging during initial startup
461 * fixed log rotation (Gary Lowell)
462 * init-ceph, mkcephfs: close a few security holes with -a (Sage Weil)
463 * libcephfs: calls to query CRUSH topology (used by Hadoop)
464 * libcephfs: many fixes, cleanups with the Java bindings
465 * libcephfs: new topo API requests for Hadoop (Noah Watkins)
466 * librados: clean up snapshot constant definitions
467 * librados: fix linger bugs (Josh Durgin)
468 * librbd: fixed flatten deadlock (Josh Durgin)
469 * librbd: fixed some locking issues with flatten (Josh Durgin)
470 * librbd: many bug fixes
471 * librbd: optionally wait for flush before enabling writeback (Josh Durgin)
472 * many many cleanups (Danny Al-Gaaf)
473 * mds, ceph-fuse: fix bugs with replayed requests after MDS restart (Sage Weil)
474 * mds, ceph-fuse: manage layouts via xattrs
475 * mds: allow xattrs on root
476 * mds: fast failover between MDSs (enforce unique mds names)
477 * mds: fix xattr handling on root inode
478 * mds: fixed bugs in journal replay
479 * mds: improve session cleanup (Sage Weil)
480 * mds: many fixes (Yan Zheng)
481 * mds: misc bug fixes with clustered MDSs and failure recovery
482 * mds: misc bug fixes with readdir
483 * mds: new encoding for all data types (to allow forward/backward compatibility) (Greg Farnum)
484 * mds: store and update backpointers/traces on directory, file objects (Sam Lang)
485 * mon: 'osd crush add|link|unlink|add-bucket ...' commands
486 * mon: ability to tune leveldb
487 * mon: approximate recovery, IO workload stats
488 * mon: avoid marking entire CRUSH subtrees out (e.g., if an entire rack goes offline)
489 * mon: config-keys service to store arbitrary data on monitor
490 * mon: easy adjustment of crush tunables via 'ceph osd crush tunables ...'
491 * mon: easy creation of crush rules vai 'ceph osd rule ...'
492 * mon: fix data conversion/upgrade problem (from bobtail)
493 * mon: improved trimming behavior
494 * mon: many fixes
495 * mon: new 'ceph df [detail]' command
496 * mon: new checks for identifying and reporting clock drift
497 * mon: rearchitected to utilize single instance of paxos and a key/value store (Joao Luis)
498 * mon: safety check for pool deletion
499 * mon: shut down safely if disk approaches full (Joao Luis)
500 * mon: trigger leveldb compaction on trim
501 * msgr: fix comparison of IPv6 addresses (fixes monitor bringup via ceph-deploy, chef)
502 * msgr: fixed race in connection reset
503 * msgr: optionally tune TCP buffer size to avoid throughput collapse (Jim Schutt)
504 * much code cleanup and optimization (Danny Al-Gaaf)
505 * osd, librados: ability to list watchers (David Zafman)
506 * osd, librados: fixes to the LIST_SNAPS operation
507 * osd, librados: new listsnaps command (David Zafman)
508 * osd: a few journaling bug fixes
509 * osd: ability to tune leveldb
510 * osd: add 'noscrub', 'nodeepscrub' osdmap flags (David Zafman)
511 * osd: better prevention of wedging OSDs with ENOSPC
512 * osd: ceph-filestore-dump tool for debugging
513 * osd: connection handling bug fixes
514 * osd: deep-scrub omap keys/values
515 * osd: default to libaio for the journal (some performance boost)
516 * osd: fix hang in 'journal aio = true' mode (Sage Weil)
517 * osd: fix pg log trimming (avoids memory bloat on degraded clusters)
518 * osd: fix udev rules for RHEL/CentOS systems
519 * osd: fixed bug in journal checksums (Sam Just)
520 * osd: improved client request throttling
521 * osd: improved handling when disk fills up (David Zafman)
522 * osd: improved journal corruption detection (Sam Just)
523 * osd: improved detection of corrupted journals
524 * osd: improvements to scrub error repair
525 * osd: make tracking of object snapshot metadata more efficient (Sam Just)
526 * osd: many small fixes
527 * osd: misc fixes to PG split (Sam Just)
528 * osd: move pg info, log into leveldb (== better performance) (David Zafman)
529 * osd: notify mon on clean shutdown to avoid IO stall
530 * osd: per-rados pool quotas (objects, bytes)
531 * osd: refactored watch/notify infrastructure (fixes protocol, removes many bugs) (Sam Just)
532 * osd: support for improved hashing of PGs across OSDs via HASHPSPOOL pool flag and feature
533 * osd: tool to export, import, and delete PGs from an individual OSD data store
534 * osd: trim log more aggressively, avoid appearance of leak memory
535 * osd: validate snap collections on startup
536 * osd: verify snap collections on startup (Sam Just)
537 * radosgw: ACL grants in headers (Caleb Miles)
538 * radosgw: ability to listen to fastcgi via a port (Guilhem Lettron)
539 * radosgw: fix object copy onto self (Yehuda Sadeh)
540 * radosgw: misc fixes
541 * rbd-fuse: new tool, package
542 * rbd: avoid FIEMAP when importing from file (it can be buggy)
543 * rbd: incremental backups
544 * rbd: only set STRIPINGV2 feature if striping parameters are incompatible with old versions
545 * rbd: require --allow-shrink for resizing images down
546 * rbd: udevadm settle on map/unmap to avoid various races (Dan Mick)
547 * rbd: wait for udev to settle in strategic places (avoid spurious errors, failures)
548 * rgw: CORS support
549 * rgw: allow buckets with '_'
550 * rgw: fix Content-Length on 32-bit machines (Jan Harkes)
551 * rgw: fix log rotation
552 * rgw: fix object corruption on COPY to self
553 * rgw: fixed >4MB range requests (Jan Harkes)
554 * rgw: new sysvinit script for rpm-based systems
555 * rpm/deb: do not remove /var/lib/ceph on purge (v0.59 was the only release to do so)
556 * sysvinit: try to start all daemons despite early failures
557 * upstart: automatically set osd weight based on df (Guilhem Lettron)
558 * use less memory for logging by default
559
560
561 v0.60
562 =====
563
564 Upgrading
565 ---------
566
567 * Please note that the recently added librados 'list_snaps' function
568 call is in a state of flux and is changing slightly in v0.61. You
569 are advised not to make use of it in v0.59 or v0.60.
570
571 Notable Changes
572 ---------------
573
574 * osd: make tracking of object snapshot metadata more efficient (Sam Just)
575 * osd: misc fixes to PG split (Sam Just)
576 * osd: improve journal corruption detection (Sam Just)
577 * osd: improve handling when disk fills up (David Zafman)
578 * osd: add 'noscrub', 'nodeepscrub' osdmap flags (David Zafman)
579 * osd: fix hang in 'journal aio = true' mode (Sage Weil)
580 * ceph-disk-prepare: fix mkfs args on old distros (Alexandre Marangone)
581 * ceph-disk-activate: improve multicluster support, error handling (Sage Weil)
582 * librbd: optionally wait for flush before enabling writeback (Josh Durgin)
583 * crush: update weights for all instances of an item, not just the first (Sage Weil)
584 * mon: shut down safely if disk approaches full (Joao Luis)
585 * rgw: fix Content-Length on 32-bit machines (Jan Harkes)
586 * mds: store and update backpointers/traces on directory, file objects (Sam Lang)
587 * mds: improve session cleanup (Sage Weil)
588 * mds, ceph-fuse: fix bugs with replayed requests after MDS restart (Sage Weil)
589 * ceph-fuse: enable kernel cache invalidation (Sam Lang)
590 * libcephfs: new topo API requests for Hadoop (Noah Watkins)
591 * ceph-fuse: session handling cleanup, bug fixes (Sage Weil)
592 * much code cleanup and optimization (Danny Al-Gaaf)
593 * use less memory for logging by default
594 * upstart: automatically set osd weight based on df (Guilhem Lettron)
595 * init-ceph, mkcephfs: close a few security holes with -a (Sage Weil)
596 * rpm/deb: do not remove /var/lib/ceph on purge (v0.59 was the only release to do so)
597
598
599 v0.59
600 =====
601
602 Upgrading
603 ---------
604
605 * The monitor is using a completely new storage strategy and
606 intra-cluster protocol. This means that v0.59 and pre-v0.59
607 monitors do not talk to each other. When you upgrade each one, it
608 will convert its local data store to the new format. Once you
609 upgrade a majority, the quorum will be formed using the new protocol
610 and the old monitors will be blocked out until they too get
611 upgraded. For this reason, we recommend not running a mixed-version
612 cluster for very long.
613
614 * ceph-mon now requires the creation of its data directory prior to
615 --mkfs, similarly to what happens on ceph-osd. This directory is no
616 longer automatically created, and custom scripts should be adjusted to
617 reflect just that.
618
619
620 Notable Changes
621 ---------------
622
623 * mon: rearchitected to utilize single instance of paxos and a key/value store (Joao Luis)
624 * mon: new 'ceph df [detail]' command
625 * osd: support for improved hashing of PGs across OSDs via HASHPSPOOL pool flag and feature
626 * osd: refactored watch/notify infrastructure (fixes protocol, removes many bugs) (Sam Just)
627 * osd, librados: ability to list watchers (David Zafman)
628 * osd, librados: new listsnaps command (David Zafman)
629 * osd: trim log more aggressively, avoid appearance of leak memory
630 * osd: misc split fixes
631 * osd: a few journaling bug fixes
632 * osd: connection handling bug fixes
633 * rbd: avoid FIEMAP when importing from file (it can be buggy)
634 * librados: fix linger bugs (Josh Durgin)
635 * librbd: fixed flatten deadlock (Josh Durgin)
636 * rgw: fixed >4MB range requests (Jan Harkes)
637 * rgw: fix log rotation
638 * mds: allow xattrs on root
639 * ceph-fuse: fix statfs(2) reporting
640 * msgr: optionally tune TCP buffer size to avoid throughput collapse (Jim Schutt)
641 * consume less memory for logging by default
642 * always use system leveldb (Gary Lowell)
643
644
645
646 v0.58
647 =====
648
649 Upgrading
650 ---------
651
652 * The monitor now enforces that MDS names be unique. If you have
653 multiple daemons start with with the same id (e.g., ``mds.a``) the
654 second one will implicitly mark the first as failed. This makes
655 things less confusing and makes a daemon restart faster (we no
656 longer wait for the stopped daemon to time out) but existing
657 multi-mds configurations may need to be adjusted accordingly to give
658 daemons unique names.
659
660 Notable Changes
661 ---------------
662
663 * librbd: fixed some locking issues with flatten (Josh Durgin)
664 * rbd: udevadm settle on map/unmap to avoid various races (Dan Mick)
665 * osd: move pg info, log into leveldb (== better performance) (David Zafman)
666 * osd: fix pg log trimming (avoids memory bloat on degraded clusters)
667 * osd: fixed bug in journal checksums (Sam Just)
668 * osd: verify snap collections on startup (Sam Just)
669 * ceph-disk-prepare/activate: support for dm-crypt (Alexandre Marangone)
670 * ceph-disk-prepare/activate: support for sysvinit, directories or partitions (not full disks)
671 * msgr: fixed race in connection reset
672 * msgr: fix comparison of IPv6 addresses (fixes monitor bringup via ceph-deploy, chef)
673 * radosgw: fix object copy onto self (Yehuda Sadeh)
674 * radosgw: ACL grants in headers (Caleb Miles)
675 * radosgw: ability to listen to fastcgi via a port (Guilhem Lettron)
676 * mds: new encoding for all data types (to allow forward/backward compatibility) (Greg Farnum)
677 * mds: fast failover between MDSs (enforce unique mds names)
678 * crush: ability to create, remove rules via CLI
679 * many many cleanups (Danny Al-Gaaf)
680 * buffer unit testing (Loic Dachary)
681 * fixed log rotation (Gary Lowell)
682
683 v0.57
684 =====
685
686 This development release has a lot of additional functionality
687 accumulated over the last couple months. Most of the bug fixes (with
688 the notable exception of the MDS related work) has already been
689 backported to v0.56.x, and is not mentioned here.
690
691 Upgrading
692 ---------
693
694 * The 'ceph osd pool delete <poolname>' and 'rados rmpool <poolname>'
695 now have safety interlocks with loud warnings that make you confirm
696 pool removal. Any scripts currently rely on these functions zapping
697 data without confirmation need to be adjusted accordingly.
698
699 Notable Changes
700 ---------------
701
702 * osd: default to libaio for the journal (some performance boost)
703 * osd: validate snap collections on startup
704 * osd: ceph-filestore-dump tool for debugging
705 * osd: deep-scrub omap keys/values
706 * ceph tool: some CLI interface cleanups
707 * mon: easy adjustment of crush tunables via 'ceph osd crush tunables ...'
708 * mon: easy creation of crush rules vai 'ceph osd rule ...'
709 * mon: approximate recovery, IO workload stats
710 * mon: avoid marking entire CRUSH subtrees out (e.g., if an entire rack goes offline)
711 * mon: safety check for pool deletion
712 * mon: new checks for identifying and reporting clock drift
713 * radosgw: misc fixes
714 * rbd: wait for udev to settle in strategic places (avoid spurious errors, failures)
715 * rbd-fuse: new tool, package
716 * mds, ceph-fuse: manage layouts via xattrs
717 * mds: misc bug fixes with clustered MDSs and failure recovery
718 * mds: misc bug fixes with readdir
719 * libcephfs: many fixes, cleanups with the Java bindings
720 * auth: ability to require new cephx signatures on messages (still off by default)