The Ceph Blog

Featured Post

v0.93 Hammer release candidate released

This is the first release candidate for Hammer, and includes all of the features that will be present in the final release. We welcome and encourage any and all testing in non-production clusters to identify any problems with functionality, stability, or performance before the final Hammer release.

We suggest some caution in one area: librbd. There is a lot of new functionality around object maps and locking that is disabled by default but may still affect stability for existing images. We are continuing to shake out those bugs so that the final Hammer release (probably v0.94) will be rock solid.

Major features since Giant include:

  • cephfs: journal scavenger repair tool (John Spray)
  • crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
  • doc: improved guidance for CephFS early adopters (John Spray)
  • librbd: add per-image object map for improved performance (Jason Dillaman)
  • librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng)
  • librados: fadvise-style IO hints (Jianpeng Ma)
  • mds: many many snapshot-related fixes (Yan, Zheng)
  • mon: new ‘ceph osd df’ command (Mykola Golub)
  • mon: new ‘ceph pg ls …’ command (Xinxin Shu)
  • osd: improved performance for high-performance backends
  • osd: improved recovery behavior (Samuel Just)
  • osd: improved cache tier behavior with reads (Zhiqiang Wang)
  • rgw: S3-compatible bucket versioning support (Yehuda Sadeh)
  • rgw: large bucket index sharding (Guang Yang, Yehuda Sadeh)
  • RDMA “xio” messenger support (Matt Benjamin, Vu Pham)


  • No special restrictions when upgrading from firefly or giant


  • build: CMake support (Ali Maredia, Casey Bodley, Adam Emerson, Marcus Watts, Matt Benjamin)
  • ceph-disk: do not re-use partition if encryption is required (Loic Dachary)
  • ceph-disk: support LUKS for encrypted partitions (Andrew Bartlett, Loic Dachary)
  • ceph-fuse,libcephfs: add support for O_NOFOLLOW and O_PATH (Greg Farnum)
  • ceph-fuse,libcephfs: resend requests before completing cap reconnect (#10912 Yan, Zheng)
  • ceph-fuse: select kernel cache invalidation mechanism based on kernel version (Greg Farnum)
  • ceph-objectstore-tool: improved import (David Zafman)
  • ceph-objectstore-tool: misc improvements, fixes (#9870 #9871 David Zafman)
  • ceph: add ‘ceph osd df [tree]’ command (#10452 Mykola Golub)
  • ceph: fix ‘ceph tell …’ command validation (#10439 Joao Eduardo Luis)
  • ceph: improve ‘ceph osd tree’ output (Mykola Golub)
  • cephfs-journal-tool: add recover_dentries function (#9883 John Spray)
  • common: add newline to flushed json output (Sage Weil)
  • common: filtering for ‘perf dump’ (John Spray)
  • common: fix Formatter factory breakage (#10547 Loic Dachary)
  • common: make json-pretty output prettier (Sage Weil)
  • crush: new and improved straw2 bucket type (Sage Weil, Christina Anderson, Xiaoxi Chen)
  • crush: update tries stats for indep rules (#10349 Loic Dachary)
  • crush: use larger choose_tries value for erasure code rulesets (#10353 Loic Dachary)
  • debian,rpm: move RBD udev rules to ceph-common (#10864 Ken Dreyer)
  • debian: split python-ceph into python-{rbd,rados,cephfs} (Boris Ranto)
  • doc: CephFS disaster recovery guidance (John Spray)
  • doc: CephFS for early adopters (John Spray)
  • doc: fix OpenStack Glance docs (#10478 Sebastien Han)
  • doc: misc updates (#9793 #9922 #10204 #10203 Travis Rhoden, Hazem, Ayari, Florian Coste, Andy Allan, Frank Yu, Baptiste Veuillez-Mainard, Yuan Zhou, Armando Segnini, Robert Jansen, Tyler Brekke, Viktor Suprun)
  • doc: replace cloudfiles with swiftclient Python Swift example (Tim Freund)
  • erasure-code: add mSHEC erasure code support (Takeshi Miyamae)
  • erasure-code: improved docs (#10340 Loic Dachary)
  • erasure-code: set max_size to 20 (#10363 Loic Dachary)
  • libcephfs,ceph-fuse: fix getting zero-length xattr (#10552 Yan, Zheng)
  • librados: add blacklist_add convenience method (Jason Dillaman)
  • librados: expose rados_{read|write}_op_assert_version in C API (Kim Vandry)
  • librados: fix pool name caching (#10458 Radoslaw Zarzynski)
  • librados: fix resource leak, misc bugs (#10425 Radoslaw Zarzynski)
  • librados: fix some watch/notify locking (Jason Dillaman, Josh Durgin)
  • libradosstriper: fix write_full when ENOENT (#10758 Sebastien Ponce)
  • librbd: CRC protection for RBD image map (Jason Dillaman)
  • librbd: add per-image object map for improved performance (Jason Dillaman)
  • librbd: add support for an “object map” indicating which objects exist (Jason Dillaman)
  • librbd: adjust internal locking (Josh Durgin, Jason Dillaman)
  • librbd: better handling of watch errors (Jason Dillaman)
  • librbd: coordinate maint operations through lock owner (Jason Dillaman)
  • librbd: copy-on-read (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng, Jason Dillaman)
  • librbd: enforce write ordering with a snapshot (Jason Dillaman)
  • librbd: fadvise-style hints; add misc hints for certain operations (Jianpeng Ma)
  • librbd: fix coverity false-positives (Jason Dillaman)
  • librbd: fix snap create races (Jason Dillaman)
  • librbd: flush AIO operations asynchronously (#10714 Jason Dillaman)
  • librbd: make async versions of long-running maint operations (Jason Dillaman)
  • librbd: mock tests (Jason Dillaman)
  • librbd: optionally blacklist clients before breaking locks (#10761 Jason Dillaman)
  • librbd: prevent copyup during shrink (Jason Dillaman)
  • mds: add cephfs-table-tool (John Spray)
  • mds: avoid sending traceless replies in most cases (Yan, Zheng)
  • mds: export dir asok command (John Spray)
  • mds: fix stray/purge perfcounters (#10388 John Spray)
  • mds: handle heartbeat_reset during shutdown (#10382 John Spray)
  • mds: many many snapshot-related fixes (Yan, Zheng)
  • mds: refactor, improve Session storage (John Spray)
  • misc coverity fixes (Danny Al-Gaaf)
  • mon: add noforward flag for some mon commands (Mykola Golub)
  • mon: disallow empty pool names (#10555 Wido den Hollander)
  • mon: do not deactivate last mds (#10862 John Spray)
  • mon: drop old ceph_mon_store_converter (Sage Weil)
  • mon: fix ‘ceph pg dump_stuck degraded’ (Xinxin Shu)
  • mon: fix ‘profile osd’ use of config-key function on mon (#10844 Joao Eduardo Luis)
  • mon: fix compatset initalization during mkfs (Joao Eduardo Luis)
  • mon: fix feature tracking during elections (Joao Eduardo Luis)
  • mon: fix mds gid/rank/state parsing (John Spray)
  • mon: ignore failure reports from before up_from (#10762 Dan van der Ster, Sage Weil)
  • mon: improved corrupt CRUSH map detection (Joao Eduardo Luis)
  • mon: include pg_temp count in osdmap summary (Sage Weil)
  • mon: log health summary to cluster log (#9440 Joao Eduardo Luis)
  • mon: make ‘mds fail’ idempotent (John Spray)
  • mon: make pg dump {sum,pgs,pgs_brief} work for format=plain (#5963 #6759 Mykola Golub)
  • mon: new pool safety flags nodelete, nopgchange, nosizechange (#9792 Mykola Golub)
  • mon: new, friendly ‘ceph pg ls …’ command (Xinxin Shu)
  • mon: prevent MDS transition from STOPPING (#10791 Greg Farnum)
  • mon: propose all pending work in one transaction (Sage Weil)
  • mon: remove pg_temps for nonexistent pools (Joao Eduardo Luis)
  • mon: require mon_allow_pool_delete option to remove pools (Sage Weil)
  • mon: set globalid prealloc to larger value (Sage Weil)
  • mon: skip zeroed osd stats in get_rule_avail (#10257 Joao Eduardo Luis)
  • mon: validate min_size range (Jianpeng Ma)
  • msgr: async: bind threads to CPU cores, improved poll (Haomai Wang)
  • msgr: fix crc configuration (Mykola Golub)
  • msgr: misc unit tests (Haomai Wang)
  • msgr: xio: XioMessenger RDMA support (Casey Bodley, Vu Pham, Matt Benjamin)
  • osd, librados: fadvise-style librados hints (Jianpeng Ma)
  • osd, librados: fix xattr_cmp_u64 (Dongmao Zhang)
  • osd,mon: add ‘norebalance’ flag (Kefu Chai)
  • osd,mon: specify OSD features explicitly in MOSDBoot (#10911 Sage Weil)
  • osd: add option to prioritize heartbeat network traffic (Jian Wen)
  • osd: add support for the SHEC erasure-code algorithm (Takeshi Miyamae,  Loic Dachary)
  • osd: allow recovery while below min_size (Samuel Just)
  • osd: allow recovery with fewer than min_size OSDs (Samuel Just)
  • osd: allow writes to degraded objects (Samuel Just)
  • osd: allow writes to degraded objects (Samuel Just)
  • osd: avoid publishing unchanged PG stats (Sage Weil)
  • osd: cache recent ObjectContexts (Dong Yuan)
  • osd: clear cache on interval change (Samuel Just)
  • osd: do no proxy reads unless target OSDs are new (#10788 Sage Weil)
  • osd: do not update digest on inconsistent object (#10524 Samuel Just)
  • osd: don’t record digests for snapdirs (#10536 Samuel Just)
  • osd: fix OSDCap parser on old (el6) boost::spirit (#10757 Kefu Chai)
  • osd: fix OSDCap parsing on el6 (#10757 Kefu Chai)
  • osd: fix ObjectStore::Transaction encoding version (#10734 Samuel Just)
  • osd: fix auth object selection during repair (#10524 Samuel Just)
  • osd: fix bug in pending digest updates (#10840 Samuel Just)
  • osd: fix cancel_proxy_read_ops (Sage Weil)
  • osd: fix cleanup of interrupted pg deletion (#10617 Sage Weil)
  • osd: fix journal wrapping bug (#10883 David Zafman)
  • osd: fix leak in SnapTrimWQ (#10421 Kefu Chai)
  • osd: fix memstore free space calculation (Xiaoxi Chen)
  • osd: fix mixed-version peering issues (Samuel Just)
  • osd: fix object digest update bug (#10840 Samuel Just)
  • osd: fix ordering issue with new transaction encoding (#10534 Dong Yuan)
  • osd: fix past_interval generation (#10427 #10430 David Zafman)
  • osd: fix short read handling on push (#8121 David Zafman)
  • osd: fix watch timeout cache state update (#10784 David Zafman)
  • osd: force promotion of watch/notify ops (Zhiqiang Wang)
  • osd: improve idempotency detection across cache promotion/demotion (#8935 Sage Weil, Samuel Just)
  • osd: include activating peers in blocked_by (#10477 Sage Weil)
  • osd: jerasure and gf-complete updates from upstream (#10216 Loic Dachary)
  • osd: journal: check fsync/fdatasync result (Jianpeng Ma)
  • osd: journal: fix hang on shutdown (#10474 David Zafman)
  • osd: journal: fix header.committed_up_to (Xinze Chi)
  • osd: journal: initialize throttle (Ning Yao)
  • osd: journal: misc bug fixes (#6003 David Zafman, Samuel Just)
  • osd: misc cleanup (Xinze Chi, Yongyue Sun)
  • osd: new ‘activating’ state between peering and active (Sage Weil)
  • osd: preserve reqids for idempotency checks for promote/demote (Sage Weil, Zhiqiang Wang, Samuel Just)
  • osd: remove dead locking code (Xinxin Shu)
  • osd: restrict scrub to certain times of day (Xinze Chi)
  • osd: rocksdb: fix shutdown (Hoamai Wang)
  • pybind: fix memory leak in librados bindings (Billy Olsen)
  • qa: fix mds tests (#10539 John Spray)
  • qa: ignore duplicates in rados ls (Josh Durgin)
  • qa: improve hadoop tests (Noah Watkins)
  • qa: reorg fs quota tests (Greg Farnum)
  • rados: fix usage (Jianpeng Ma)
  • radosgw-admin: add replicalog update command (Yehuda Sadeh)
  • rbd-fuse: clean up on shutdown (Josh Durgin)
  • rbd: add ‘merge-diff’ function (MingXin Liu, Yunchuan Wen, Li Wang)
  • rbd: fix buffer handling on image import (#10590 Jason Dillaman)
  • rbd: leave exclusive lockin goff by default (Jason Dillaman)
  • rbd: update init-rbdmap to fix dup mount point (Karel Striegel)
  • rbd: use IO hints for import, export, and bench operations (#10462 Jason Dillaman)
  • rbd_recover_tool: RBD image recovery tool (Min Chen)
  • rgw: S3-style object versioning support (Yehuda Sadeh)
  • rgw: check keystone auth for S3 POST requests (#10062 Abhishek Lekshmanan)
  • rgw: extend replica log API (purge-all) (Yehuda Sadeh)
  • rgw: fail S3 POST if keystone not configured (#10688 Valery Tschopp, Yehuda Sadeh)
  • rgw: fix XML header on get ACL request (#10106 Yehuda Sadeh)
  • rgw: fix bucket removal with data purge (Yehuda Sadeh)
  • rgw: fix replica log indexing (#8251 Yehuda Sadeh)
  • rgw: fix swift metadata header name (Dmytro Iurchenko)
  • rgw: remove multipart entries from bucket index on abort (#10719 Yehuda Sadeh)
  • rgw: respond with 204 to POST on containers (#10667 Yuan Zhou)
  • rgw: reuse fcgx connection struct (#10194 Yehuda Sadeh)
  • rgw: support multiple host names (#7467 Yehuda Sadeh)
  • rgw: swift: dump container’s custom metadata (#10665 Ahmad Faheem, Dmytro Iurchenko)
  • rgw: swift: support Accept header for response format (#10746 Dmytro Iurchenko)
  • rgw: swift: support for X-Remove-Container-Meta-{key} (#10475 Dmytro Iurchenko)
  • rpm: move rgw logrotate to radosgw subpackage (Ken Dreyer)
  • tests: centos-6 dockerfile (#10755 Loic Dachary)
  • tests: unit tests for shared_cache (Dong Yuan)
  • work with cmake (Yehuda Sadeh)


Earlier Posts

v0.87.1 Giant released

This is the first (and possibly final) point release for Giant. Our focus on stability fixes will be directed towards Hammer and Firefly.

We recommend that all v0.87 Giant users upgrade to this release.


  • Due to a change in the Linux kernel version 3.18 and the limits of the FUSE interface, ceph-fuse needs be mounted as root on at least some systems. See issues #9997, #10277, and #10542 for details.


  • build: disable stack-execute bit on assembler objects (#10114 Dan Mick)
  • build: support boost 1.57.0 (#10688 Ken Dreyer)
  • ceph-disk: fix dmcrypt file permissions (#9785 Loic Dachary)
  • ceph-disk: run partprobe after zap, behave with partx or partprobe (#9665 #9721 Loic Dachary)
  • cephfs-journal-tool: fix import for aged journals (#9977 John Spray)
  • cephfs-journal-tool: fix journal import (#10025 John Spray)
  • ceph-fuse: use remount to trim kernel dcache (#10277 Yan, Zheng)
  • common: add cctid meta variable (#6228 Adam Crume)
  • common: fix dump of shard for ghobject_t (#10063 Loic Dachary)
  • crush: fix bucket weight underflow (#9998 Pawel Sadowski)
  • erasure-code: enforce chunk size alignment (#10211 Loic Dachary)
  • erasure-code: regression test suite (#9420 Loic Dachary)
  • erasure-code: relax caucy w restrictions (#10325 Loic Dachary)
  • libcephfs,ceph-fuse: allow xattr caps on inject_release_failure (#9800 John Spray)
  • libcephfs,ceph-fuse: fix cap flush tid comparison (#9869 Greg Farnum)
  • libcephfs,ceph-fuse: new flag to indicated sorted dcache (#9178 Yan, Zheng)
  • libcephfs,ceph-fuse: prune cache before reconnecting to MDS (Yan, Zheng)
  • librados: limit number of in-flight read requests (#9854 Jason Dillaman)
  • libradospy: fix thread shutdown (#8797 Dan Mick)
  • libradosstriper: fix locking issue in truncate (#10129 Sebastien Ponce)
  • librbd: complete pending ops before closing mage (#10299 Jason Dillaman)
  • librbd: fix error path on image open failure (#10030 Jason Dillaman)
  • librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
  • librbd: handle errors when creating ioctx while listing children (#10123 Jason Dillaman)
  • mds: fix compat version in MClientSession (#9945 John Spray)
  • mds: fix journaler write error handling (#10011 John Spray)
  • mds: fix locking for file size recovery (#10229 Yan, Zheng)
  • mds: handle heartbeat_reset during shutdown (#10382 John Spray)
  • mds: store backtrace for straydir (Yan, Zheng)
  • mon: allow tiers for FS pools (#10135 John Spray)
  • mon: fix caching of last_epoch_clean, osdmap trimming (#9987 Sage Weil)
  • mon: fix ‘fs ls’ on peons (#10288 John Spray)
  • mon: fix MDS health status from peons (#10151 John Spray)
  • mon: fix paxos off-by-one (#9301 Sage Weil)
  • msgr: simple: do not block on takeover while holding global lock (#9921 Greg Farnum)
  • osd: deep scrub must not abort if hinfo is missing (#10018 Loic Dachary)
  • osd: fix misdirected op detection (#9835 Sage Weil)
  • osd: fix past_interval display for acting (#9752 Loic Dachary)
  • osd: fix PG peering backoff when behind on osdmaps (#10431 Sage Weil)
  • osd: handle no-op write with snapshot case (#10262 Ssage Weil)
  • osd: use fast-dispatch (Sage Weil, Greg Farnum)
  • rados: fix write to /dev/null (Loic Dachary)
  • radosgw-admin: create subuser when needed (#10103 Yehuda Sadeh)
  • rbd: avoid invalidating aio_write buffer during image import (#10590 Jason Dillaman)
  • rbd: fix export with images > 2GB (Vicente Cheng)
  • rgw: change multipart upload id magic (#10271 Georgios Dimitrakakis, Yehuda Sadeh)
  • rgw: check keystone auth for S3 POST (#10062 Abhishek Lekshmanan)
  • rgw: check timestamp for S3 keystone auth (#10062 Abhishek Lekshmanan)
  • rgw: fix partial GET with swift (#10553 Yehuda Sadeh)
  • rgw: fix quota disable (#9907 Dong Lei)
  • rgw: fix rare corruption of object metadata on put (#9576 Yehuda Sadeh)
  • rgw: fix S3 object copy content-type (#9478 Yehuda Sadeh)
  • rgw: headers end with rn (#9254 Benedikt Fraunhofer, Yehuda Sadeh)
  • rgw: remove swift user manifest DLO hash calculation (#9973 Yehuda Sadeh)
  • rgw: return correct len when len is 0 (#9877 Yehuda Sadeh)
  • rgw: return X-Timestamp field (#8911 Yehuda Sadeh)
  • rgw: run radosgw as apache with systemd (#10125)
  • rgw: sent ETag on S3 object copy (#9479 Yehuda Sadeh)
  • rgw: sent HTTP status reason explicitly in fastcgi (Yehuda Sadeh)
  • rgw: set length for keystone token validation (#7796 Mark Kirkwood, Yehuda Sadeh)
  • rgw: set ulimit -n on sysvinit before starting daemon (#9587 Sage Weil)
  • rgw: update bucket index on set_attrs (#5595 Yehuda Sadeh)
  • rgw: update swift subuser permission masks when authenticating (#9918 Yehuda Sadeh)
  • rgw: URL decode HTTP query params correction (#10271 Georgios Dimitrakakis, Yehuda Sadeh)
  • rgw: use cached attrs while reading object attrs (#10307 Yehuda Sadeh)
  • rgw: use strict_strtoll for content length (#10701 Axel Dunkel, Yehuda Sadeh)

For more detailed information, see the complete changelog.


Ceph Developer Summit: Infernalis

Hey Cephers, it’s that time again…time for another Ceph Developer Summit! As Hammer winds its way through the maze of QA and release procedures we need to start looking forward to what will come with Infernalis (which is a cool lookin’ squid if you haven’t seen it yet). Blueprint submissions are now open for any and all work that that you would like to contribute or request of community developers. Please submit as soon as possible to ensure that it gets a CDS slot.

There will be one slight change this time around in an attempt to further centralize information. While blueprint submissions will still occur via the usual method on the wiki, all of that information will be captured in the etherpad which will be the canonical document going forward. If people like this method we’ll probably shift to a completely etherpad-based blueprint process to make it easier to capture and evolve the work for each item.

The rough schedule of CDS and Infernalis in general should look something like this:

Date Milestone
16 FEB Blueprint submissions begin
27 FEB Blueprint submissions end
02 MAR Summit agenda announced
03 MAR Ceph Developer Summit: Day 1
04 MAR Ceph Developer Summit: Day 2 (if needed)
July 2015 Infernalis Release

As always, this event will be an online event (utilizing the BlueJeans system) so that everyone can attend from their own timezone. If you are interested in submitting a blueprint or collaborating on an existing blueprint, please click the big red button below!


Submit Blueprint

scuttlemonkey out

v0.92 released

This is the second-to-last chunk of new stuff before Hammer. Big items include additional checksums on OSD objects, proxied reads in the cache tier, image locking in RBD, optimized OSD Transaction and replication messages, and a big pile of RGW and MDS bug fixes.


  • The experimental ‘keyvaluestore-dev’ OSD backend has been renamed ‘keyvaluestore’ (for simplicity) and marked as experimental. To enable this untested feature and acknowledge that you understand that it is untested and may destroy data, you need to add the following to your ceph.conf:
    enable experimental unrecoverable data corrupting features = keyvaluestore
  • The following librados C API function calls take a ‘flags’ argument whose value is now correctly interpreted:

    rados_write_op_operate() rados_aio_write_op_operate() rados_read_op_operate() rados_aio_read_op_operate()

    The flags were not correctly being translated from the librados constants to the internal values. Now they are. Any code that is passing flags to these methods should be audited to ensure that they are using the correct LIBRADOS_OP_FLAG_* constants.

  • The ‘rados’ CLI ‘copy’ and ‘cppool’ commands now use the copy-from operation, which means the latest CLI cannot run these commands against pre-firefly OSDs.
  • The librados watch/notify API now includes a watch_flush() operation to flush the async queue of notify operations. This should be called by any watch/notify user prior to rados_shutdown().


  • add experimental features option (Sage Weil)
  • build: fix ‘make check’ races (#10384 Loic Dachary)
  • build: fix pkg names when libkeyutils is missing (Pankag Garg, Ken Dreyer)
  • ceph: make ‘ceph -s’ show PG state counts in sorted order (Sage Weil)
  • ceph: make ‘ceph tell mon.* version’ work (Mykola Golub)
  • ceph-monstore-tool: fix/improve CLI (Joao Eduardo Luis)
  • ceph: show primary-affinity in ‘ceph osd tree’ (Mykola Golub)
  • common: add TableFormatter (Andreas Peters)
  • common: check syncfs() return code (Jianpeng Ma)
  • doc: do not suggest dangerous XFS nobarrier option (Dan van der Ster)
  • doc: misc updates (Nilamdyuti Goswami, John Wilkins)
  • do not require sudo when root (Loic Dachary)
  • libcephfs: fix dirfrag trimming (#10387 Yan, Zheng)
  • libcephfs: fix mount timeout (#10041 Yan, Zheng)
  • libcephfs: fix test (#10415 Yan, Zheng)
  • libcephfs: fix use-afer-free on umount (#10412 Yan, Zheng)
  • libcephfs: include ceph and git version in client metadata (Sage Weil)
  • librados: add watch_flush() operation (Sage Weil, Haomai Wang)
  • librados: avoid memcpy on getxattr, read (Jianpeng Ma)
  • librados: create ioctx by pool id (Jason Dillaman)
  • librados: do notify completion in fast-dispatch (Sage Weil)
  • librados: remove shadowed variable (Kefu Chain)
  • librados: translate op flags from C APIs (Matthew Richards)
  • librbd: differentiate between R/O vs R/W features (Jason Dillaman)
  • librbd: exclusive image locking (Jason Dillaman)
  • librbd: fix write vs import race (#10590 Jason Dillaman)
  • librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
  • mds: asok command for fetching subtree map (John Spray)
  • mds: constify MDSCacheObjects (John Spray)
  • misc: various valgrind fixes and cleanups (Danny Al-Gaaf)
  • mon: fix ‘mds fail’ for standby MDSs (John Spray)
  • mon: fix stashed monmap encoding (#5203 Xie Rui)
  • mon: implement ‘fs reset’ command (John Spray)
  • mon: respect down flag when promoting standbys (John Spray)
  • mount.ceph: fix suprious error message (#10351 Yan, Zheng)
  • msgr: async: many fixes, unit tests (Haomai Wang)
  • msgr: simple: retry binding to port on failure (#10029 Wido den Hollander)
  • osd: add fadvise flags to ObjectStore API (Jianpeng Ma)
  • osd: add get_latest_osdmap asok command (#9483 #9484 Mykola Golub)
  • osd: EIO on whole-object reads when checksum is wrong (Sage Weil)
  • osd: filejournal: don’t cache journal when not using direct IO (Jianpeng Ma)
  • osd: fix ioprio option (Mykola Golub)
  • osd: fix scrub delay bug (#10693 Samuel Just)
  • osd: fix watch reconnect race (#10441 Sage Weil)
  • osd: handle no-op write with snapshot (#10262 Sage Weil)
  • osd: journal: fix journal zeroing when direct IO is enabled (Xie Rui)
  • osd: keyvaluestore: cleanup dead code (Ning Yao)
  • osd, mds: ‘ops’ as shorthand for ‘dump_ops_in_flight’ on asok (Sage Weil)
  • osd: memstore: fix size limit (Xiaoxi Chen)
  • osd: misc scrub fixes (#10017 Loic Dachary)
  • osd: new optimized encoding for ObjectStore::Transaction (Dong Yuan)
  • osd: optimize filter_snapc (Ning Yao)
  • osd: optimize WBThrottle map with unordered_map (Ning Yao)
  • osd: proxy reads during cache promote (Zhiqiang Wang)
  • osd: proxy read support (Zhiqiang Wang)
  • osd: remove legacy classic scrub code (Sage Weil)
  • osd: remove unused fields in MOSDSubOp (Xiaoxi Chen)
  • osd: replace MOSDSubOp messages with simpler, optimized MOSDRepOp (Xiaoxi Chen)
  • osd: store whole-object checksums on scrub, write_full (Sage Weil)
  • osd: verify kernel is new enough before using XFS extsize ioctl, enable by default (#9956 Sage Weil)
  • rados: use copy-from operation for copy, cppool (Sage Weil)
  • rgw: change multipart upload id magic (#10271 Yehuda Sadeh)
  • rgw: decode http query params correction (#10271 Yehuda Sadeh)
  • rgw: fix content length check (#10701 Axel Dunkel, Yehuda Sadeh)
  • rgw: fix partial GET in swift (#10553 Yehuda Sadeh)
  • rgw: fix shutdown (#10472 Yehuda Sadeh)
  • rgw: include XML ns on get ACL request (#10106 Yehuda Sadeh)
  • rgw: misc fixes (#10307 Yehuda Sadeh)
  • rgw: only track cleanup for objects we write (#10311 Yehuda Sadeh)
  • rgw: tweak error codes (#10329 #10334 Yehuda Sadeh)
  • rgw: use gc for multipart abort (#10445 Aaron Bassett, Yehuda Sadeh)
  • sysvinit: fix race in ‘stop’ (#10389 Loic Dachary)
  • test: fix bufferlist tests (Jianpeng Ma)
  • tests: improve docker-based tests (Loic Dachary)


v0.91 released

We are quickly approaching the Hammer feature freeze but have a few more dev releases to go before we get there. The headline items are subtree-based quota support in CephFS (ceph-fuse/libcephfs client support only for now), a rewrite of the watch/notify librados API used by RBD and RGW, OSDMap checksums to ensure that maps are always consistent inside the cluster, new API calls in librados and librbd for IO hinting modeled after posix_fadvise, and improved storage of per-PG state.

We expect two more releases before the first Hammer release candidate (v0.93).


  • The ‘category’ field for objects has been removed. This was originally added to track PG stat summations over different categories of objects for use by radosgw. It is no longer has any known users and is prone to abuse because it can lead to a pg_stat_t structure that is unbounded. The librados API calls that accept this field now ignore it, and the OSD no longers tracks the per-category summations.
  • The output for ‘rados df’ has changed. The ‘category’ level has been eliminated, so there is now a single stat object per pool. The structure of the JSON output is different, and the plaintext output has one less column.
  • The ‘rados create <objectname> [category]’ optional category argument is no longer supported or recognized.
  •’s Rados class no longer has a __del__ method; it was causing problems on interpreter shutdown and use of threads. If your code has Rados objects with limited lifetimes and you’re concerned about locked resources, call Rados.shutdown() explicitly.
  • There is a new version of the librados watch/notify API with vastly improved semantics. Any applications using this interface are encouraged to migrate to the new API. The old API calls are marked as deprecated and will eventually be removed.
  • The librados rados_unwatch() call used to be safe to call on an invalid handle. The new version has undefined behavior when passed a bogus value (for example, when rados_watch() returns an error and handle is not defined).
  • The structure of the formatted ‘pg stat’ command is changed for the portion that counts states by name to avoid using the ‘+’ character (which appears in state names) as part of the XML token (it is not legal).


  • asyncmsgr: misc fixes (Haomai Wang)
  • buffer: add ‘shareable’ construct (Matt Benjamin)
  • build: aarch64 build fixes (Noah Watkins, Haomai Wang)
  • build: support for jemalloc (Shishir Gowda)
  • ceph-disk: allow journal partition re-use (#10146 Loic Dachary, Dav van der Ster)
  • ceph-disk: misc fixes (Christos Stavrakakis)
  • ceph-fuse: fix kernel cache trimming (#10277 Yan, Zheng)
  • ceph-objectstore-tool: many many improvements (David Zafman)
  • common: support new gperftools header locations (Key Dreyer)
  • crush: straw bucket weight calculation fixes (#9998 Sage Weil)
  • doc: misc improvements (Nilamdyuti Goswami, John Wilkins, Chris Holcombe)
  • libcephfs,ceph-fuse: add ‘status’ asok (John Spray)
  • librados, osd: new watch/notify implementation (Sage Weil)
  • librados: drop ‘category’ feature (Sage Weil)
  • librados: fix pool deletion handling (#10372 Sage Weil)
  • librados: new fadvise API (Ma Jianpeng)
  • libradosstriper: fix remove() (Dongmao Zhang)
  • librbd: complete pending ops before closing image (#10299 Josh Durgin)
  • librbd: fadvise API (Ma Jianpeng)
  • mds: ENOSPC and OSDMap epoch barriers (#7317 John Spray)
  • mds: dirfrag buf fix (Yan, Zheng)
  • mds: disallow most commands on inactive MDS’s (Greg Farnum)
  • mds: drop dentries, leases on deleted directories (#10164 Yan, Zheng)
  • mds: handle zero-size xattr (#10335 Yan, Zheng)
  • mds: subtree quota support (Yunchuan Wen)
  • memstore: free space tracking (John Spray)
  • misc cleanup (Danny Al-Gaaf, David Anderson)
  • mon: ‘osd crush reweight-all’ command (Sage Weil)
  • mon: allow full flag to be manually cleared (#9323 Sage Weil)
  • mon: delay failure injection (Joao Eduardo Luis)
  • mon: fix paxos timeouts (#10220 Joao Eduardo Luis)
  • mon: get canonical OSDMap from leader (#10422 Sage Weil)
  • msgr: fix RESETSESSION bug (#10080 Greg Farnum)
  • objectstore: deprecate collection attrs (Sage Weil)
  • osd, mon: add checksums to all OSDMaps (Sage Weil)
  • osd: allow deletion of objects with watcher (#2339 Sage Weil)
  • osd: allow sparse read for Push/Pull (Haomai Wang)
  • osd: cache reverse_nibbles hash value (Dong Yuan)
  • osd: drop upgrade support for pre-dumpling (Sage Weil)
  • osd: enable and use posix_fadvise (Sage Weil)
  • osd: erasure-code: enforce chunk size alignment (#10211 Loic Dachary)
  • osd: erasure-code: jerasure support for NEON (Loic Dachary)
  • osd: erasure-code: relax cauchy w restrictions (#10325 David Zhang, Loic Dachary)
  • osd: erasure-code: update gf-complete to latest upstream (Loic Dachary)
  • osd: fix WBTHrottle perf counters (Haomai Wang)
  • osd: fix backfill bug (#10150 Samuel Just)
  • osd: fix occasional peering stalls (#10431 Sage Weil)
  • osd: fix scrub vs try-flush bug (#8011 Samuel Just)
  • osd: fix stderr with -f or -d (Dan Mick)
  • osd: misc FIEMAP fixes (Ma Jianpeng)
  • osd: optimize Finisher (Xinze Chi)
  • osd: store PG metadata in per-collection objects for better concurrency (Sage Weil)
  • pyrados: add object lock support (#6114 Mehdi Abaakouk)
  • pyrados: fix misnamed wait_* routings (#10104 Dan Mick)
  • pyrados: misc cleanups (Kefu Chai)
  • qa: add large auth ticket tests (Ilya Dryomov)
  • qa: many ‘make check’ improvements (Loic Dachary)
  • qa: misc tests (Loic Dachary, Yan, Zheng)
  • rgw: conditional PUT on ETag (#8562 Ray Lv)
  • rgw: fix error codes (#10334 #10329 Yehuda Sadeh)
  • rgw: index swift keys appropriately (#10471 Yehuda Sadeh)
  • rgw: prevent illegal bucket policy that doesn’t match placement rule (Yehuda Sadeh)
  • rgw: run radosgw as apache with systemd (#10125 Loic Dachary)
  • rgw: support X-Storage-Policy header for Swift storage policy compat (Yehuda Sadeh)
  • rgw: use rn for http headers (#9254 Yehuda Sadeh)
  • rpm: misc fixes (Key Dreyer)


v0.80.8 Firefly released

This is a long-awaited bugfix release for firefly. It several imporant (but relatively rare) OSD peering fixes, performance issues when snapshots are trimmed, several RGW fixes, a paxos corner case fix, and some packaging updates.

We recommend that all users for v0.80.x firefly upgrade when it is convenient to do so.


  • build: remove stack-execute bit from assembled code sections (#10114 Dan Mick)
  • ceph-disk: fix dmcrypt key permissions (#9785 Loic Dachary)
  • ceph-disk: fix keyring location (#9653 Loic Dachary)
  • ceph-disk: make partition checks more robust (#9721 #9665 Loic Dachary)
  • ceph: cleanly shut down librados context on shutdown (#8797 Dan Mick)
  • common: add $cctid config metavariable (#6228 Adam Crume)
  • crush: align rule and ruleset ids (#9675 Xiaoxi Chen)
  • crush: fix negative weight bug during create_or_move_item (#9998 Pawel Sadowski)
  • crush: fix potential buffer overflow in erasure rules (#9492 Johnu George)
  • debian: fix python-ceph -> ceph file movement (Sage Weil)
  • libcephfs,ceph-fuse: fix flush tid wraparound bug (#9869 Greg Farnum, Yan, Zheng)
  • libcephfs: close fd befure umount (#10415 Yan, Zheng)
  • librados: fix crash from C API when read timeout is enabled (#9582 Sage Weil)
  • librados: handle reply race with pool deletion (#10372 Sage Weil)
  • librbd: cap memory utilization for read requests (Jason Dillaman)
  • librbd: do not close a closed parent image on failure (#10030 Jason Dillaman)
  • librbd: fix diff tests (#10002 Josh Durgin)
  • librbd: protect list_children from invalid pools (#10123 Jason Dillaman)
  • make check improvemens (Loic Dachary)
  • mds: fix ctime updates (#9514 Greg Farnum)
  • mds: fix journal import tool (#10025 John Spray)
  • mds: fix rare NULL deref in cap flush handler (Greg Farnum)
  • mds: handle unknown lock messages (Yan, Zheng)
  • mds: store backtrace for straydir (Yan, Zheng)
  • mon: abort startup if disk is full (#9502 Joao Eduardo Luis)
  • mon: add paxos instrumentation (Sage Weil)
  • mon: fix double-free in rare OSD startup path (Sage Weil)
  • mon: fix osdmap trimming (#9987 Sage Weil)
  • mon: fix paxos corner cases (#9301 #9053 Sage Weil)
  • osd: cancel callback on blacklisted watchers (#8315 Samuel Just)
  • osd: cleanly abort set-alloc-hint operations during upgrade (#9419 David Zafman)
  • osd: clear rollback PG metadata on PG deletion (#9293 Samuel Just)
  • osd: do not abort deep scrub if hinfo is missing (#10018 Loic Dachary)
  • osd: erasure-code regression tests (Loic Dachary)
  • osd: fix distro metadata reporting for SUSE (#8654 Danny Al-Gaaf)
  • osd: fix full OSD checks during backfill (#9574 Samuel Just)
  • osd: fix ioprio parsing (#9677 Loic Dachary)
  • osd: fix journal direct-io shutdown (#9073 Mark Kirkwood, Ma Jianpeng, Somnath Roy)
  • osd: fix journal dump (Ma Jianpeng)
  • osd: fix occasional stall during peering or activation (Sage Weil)
  • osd: fix past_interval display bug (#9752 Loic Dachary)
  • osd: fix rare crash triggered by admin socket dump_ops_in_filght (#9916 Dong Lei)
  • osd: fix snap trimming performance issues (#9487 #9113 Samuel Just, Sage Weil, Dan van der Ster, Florian Haas)
  • osd: fix snapdir handling on cache eviction (#8629 Sage Weil)
  • osd: handle map gaps in map advance code (Sage Weil)
  • osd: handle undefined CRUSH results in interval check (#9718 Samuel Just)
  • osd: include shard in JSON dump of ghobject (#10063 Loic Dachary)
  • osd: make backfill reservation denial handling more robust (#9626 Samuel Just)
  • osd: make misdirected op checks handle EC + primary affinity (#9835 Samuel Just, Sage Weil)
  • osd: mount XFS with inode64 by default (Sage Weil)
  • osd: other misc bugs (#9821 #9875 Samuel Just)
  • rgw: add .log to default log path (#9353 Alexandre Marangone)
  • rgw: clean up fcgi request context (#10194 Yehuda Sadeh)
  • rgw: convet header underscores to dashes (#9206 Yehuda Sadeh)
  • rgw: copy object data if copy target is in different pool (#9039 Yehuda Sadeh)
  • rgw: don’t try to authenticate CORS peflight request (#8718 Robert Hubbard, Yehuda Sadeh)
  • rgw: fix civetweb URL decoding (#8621 Yehuda Sadeh)
  • rgw: fix hash calculation during PUT (Yehuda Sadeh)
  • rgw: fix misc bugs (#9089 #9201 Yehuda Sadeh)
  • rgw: fix object tail test (#9226 Sylvain Munaut, Yehuda Sadeh)
  • rgw: make sysvinit script run rgw under systemd context as needed (#10125 Loic Dachary)
  • rgw: separate civetweb log from rgw log (Yehuda Sadeh)
  • rgw: set length for keystone token validations (#7796 Mark Kirkwood, Yehuda Sadeh)
  • rgw: subuser creation fixes (#8587 Yehuda Sadeh)
  • rpm: misc packaging improvements (Sandon Van Ness, Dan Mick, Erik Logthenberg, Boris Ranto)
  • rpm: use standard udev rules for CentOS7/RHEL7 (#9747 Loic Dachary)


v0.90 released

This is the last development release before Christmas. There are some API cleanups for librados and librbd, and lots of bug fixes across the board for the OSD, MDS, RGW, and CRUSH. The OSD also gets support for discard (potentially helpful on SSDs, although it is off by default), and there are several improvements to ceph-disk.

The next two development releases will be getting a slew of new functionality for hammer. Stay tuned!


  • Previously, the formatted output of ‘ceph pg stat -f …’ was a full pg dump that included all metadata about all PGs in the system. It is now a concise summary of high-level PG stats, just like the unformatted ‘ceph pg stat’ command.
  • All JSON dumps of floating point values were incorrecting surrounding the value with quotes. These quotes have been removed. Any consumer of structured JSON output that was consuming the floating point values was previously having to interpret the quoted string and will most likely need to be fixed to take the unquoted number.


  • arch: fix NEON feaeture detection (#10185 Loic Dachary)
  • build: adjust build deps for yasm, virtualenv (Jianpeng Ma)
  • build: improve build dependency tooling (Loic Dachary)
  • ceph-disk: call partx/partprobe consistency (#9721 Loic Dachary)
  • ceph-disk: fix dmcrypt key permissions (Loic Dachary)
  • ceph-disk: fix umount race condition (#10096 Blaine Gardner)
  • ceph-disk: init=none option (Loic Dachary)
  • ceph-monstore-tool: fix shutdown (#10093 Loic Dachary)
  • ceph-objectstore-tool: fix import (#10090 David Zafman)
  • ceph-objectstore-tool: many improvements and tests (David Zafman)
  • ceph.spec: package rbd-replay-prep (Ken Dreyer)
  • common: add ‘perf reset …’ admin command (Jianpeng Ma)
  • common: do not unlock rwlock on destruction (Federico Simoncelli)
  • common: fix block device discard check (#10296 Sage Weil)
  • common: remove broken CEPH_LOCKDEP optoin (Kefu Chai)
  • crush: fix tree bucket behavior (Rongze Zhu)
  • doc: add build-doc guidlines for Fedora and CentOS/RHEL (Nilamdyuti Goswami)
  • doc: enable rbd cache on openstack deployments (Sebastien Han)
  • doc: improved installation nots on CentOS/RHEL installs (John Wilkins)
  • doc: misc cleanups (Adam Spiers, Sebastien Han, Nilamdyuti Goswami, Ken Dreyer, John Wilkins)
  • doc: new man pages (Nilamdyuti Goswami)
  • doc: update release descriptions (Ken Dreyer)
  • doc: update sepia hardware inventory (Sandon Van Ness)
  • librados: only export public API symbols (Jason Dillaman)
  • libradosstriper: fix stat strtoll (Dongmao Zhang)
  • libradosstriper: fix trunc method (#10129 Sebastien Ponce)
  • librbd: fix list_children from invalid pool ioctxs (#10123 Jason Dillaman)
  • librbd: only export public API symbols (Jason Dillaman)
  • many coverity fixes (Danny Al-Gaaf)
  • mds: ‘flush journal’ admin command (John Spray)
  • mds: fix MDLog IO callback deadlock (John Spray)
  • mds: fix deadlock during journal probe vs purge (#10229 Yan, Zheng)
  • mds: fix race trimming log segments (Yan, Zheng)
  • mds: store backtrace for stray dir (Yan, Zheng)
  • mds: verify backtrace when fetching dirfrag (#9557 Yan, Zheng)
  • mon: add max pgs per osd warning (Sage Weil)
  • mon: fix *_ratio units and types (Sage Weil)
  • mon: fix JSON dumps to dump floats as flots and not strings (Sage Weil)
  • mon: fix formatter ‘pg stat’ command output (Sage Weil)
  • msgr: async: several fixes (Haomai Wang)
  • msgr: simple: fix rare deadlock (Greg Farnum)
  • osd: batch pg log trim (Xinze Chi)
  • osd: clean up internal ObjectStore interface (Sage Weil)
  • osd: do not abort deep scrub on missing hinfo (#10018 Loic Dachary)
  • osd: fix ghobject_t formatted output to include shard (#10063 Loic Dachary)
  • osd: fix osd peer check on scrub messages (#9555 Sage Weil)
  • osd: fix pgls filter ops (#9439 David Zafman)
  • osd: flush snapshots from cache tier immediately (Sage Weil)
  • osd: keyvaluestore: fix getattr semantics (Haomai Wang)
  • osd: keyvaluestore: fix key ordering (#10119 Haomai Wang)
  • osd: limit in-flight read requests (Jason Dillaman)
  • osd: log when scrub or repair starts (Loic Dachary)
  • osd: support for discard for journal trim (Jianpeng Ma)
  • qa: fix osd create dup tests (#10083 Loic Dachary)
  • rgw: add location header when object is in another region (VRan Liu)
  • rgw: check timestamp on s3 keystone auth (#10062 Abhishek Lekshmanan)
  • rgw: make sysvinit script set ulimit -n properly (Sage Weil)
  • systemd: better systemd unit files (Owen Synge)
  • tests: ability to run unit tests under docker (Loic Dachary)


v0.88 released

This is the first development release after Giant. The two main features merged this round are the new AsyncMessenger (an alternative implementation of the network layer) from Haomai Wang at UnitedStack, and support for POSIX file locks in ceph-fuse and libcephfs from Yan, Zheng. There is also a big pile of smaller items that re merged while we were stabilizing Giant, including a range of smaller performance and bug fixes and some new tracepoints for LTTNG.


  • ceph-disk: Scientific Linux support (Dan van der Ster)
  • ceph-disk: respect –statedir for keyring (Loic Dachary)
  • ceph-fuse, libcephfs: POSIX file lock support (Yan, Zheng)
  • ceph-fuse, libcephfs: fix cap flush overflow (Greg Farnum, Yan, Zheng)
  • ceph-fuse, libcephfs: fix root inode xattrs (Yan, Zheng)
  • ceph-fuse, libcephfs: preserve dir ordering (#9178 Yan, Zheng)
  • ceph-fuse, libcephfs: trim inodes before reconnecting to MDS (Yan, Zheng)
  • ceph: do not parse injectargs twice (Loic Dachary)
  • ceph: make ‘ceph -s’ output more readable (Sage Weil)
  • ceph: new ‘ceph tell mds.$name_or_rank_or_gid’ (John Spray)
  • ceph: test robustness (Joao Eduardo Luis)
  • ceph_objectstore_tool: behave with sharded flag (#9661 David Zafman)
  • cephfs-journal-tool: fix journal import (#10025 John Spray)
  • cephfs-journal-tool: skip up to expire_pos (#9977 John Spray)
  • cleanup rados.h definitions with macros (Ilya Dryomov)
  • common: shared_cache unit tests (Cheng Cheng)
  • config: add $cctid meta variable (Adam Crume)
  • crush: fix buffer overrun for poorly formed rules (#9492 Johnu George)
  • crush: improve constness (Loic Dachary)
  • crushtool: add –location <id> command (Sage Weil, Loic Dachary)
  • default to libnss instead of crypto++ (Federico Gimenez)
  • doc: ceph osd reweight vs crush weight (Laurent Guerby)
  • doc: document the LRC per-layer plugin configuration (Yuan Zhou)
  • doc: erasure code doc updates (Loic Dachary)
  • doc: misc updates (Alfredo Deza, VRan Liu)
  • doc: preflight doc fixes (John Wilkins)
  • doc: update PG count guide (Gerben Meijer, Laurent Guerby, Loic Dachary)
  • keyvaluestore: misc fixes (Haomai Wang)
  • keyvaluestore: performance improvements (Haomai Wang)
  • librados: add rados_pool_get_base_tier() call (Adam Crume)
  • librados: cap buffer length (Loic Dachary)
  • librados: fix objecter races (#9617 Josh Durgin)
  • libradosstriper: misc fixes (Sebastien Ponce)
  • librbd: add missing python docstrings (Jason Dillaman)
  • librbd: add readahead (Adam Crume)
  • librbd: fix cache tiers in list_children and snap_unprotect (Adam Crume)
  • librbd: fix performance regression in ObjectCacher (#9513 Adam Crume)
  • librbd: lttng tracepoints (Adam Crume)
  • librbd: misc fixes (Xinxin Shu, Jason Dillaman)
  • mds: fix sessionmap lifecycle bugs (Yan, Zheng)
  • mds: initialize root inode xattr version (Yan, Zheng)
  • mds: introduce auth caps (John Spray)
  • mds: misc bugs (Greg Farnum, John Spray, Yan, Zheng, Henry Change)
  • misc coverity fixes (Danny Al-Gaaf)
  • mon: add ‘ceph osd rename-bucket …’ command (Loic Dachary)
  • mon: clean up auth list output (Loic Dachary)
  • mon: fix ‘osd crush link’ id resolution (John Spray)
  • mon: fix misc error paths (Joao Eduardo Luis)
  • mon: fix paxos off-by-one corner case (#9301 Sage Weil)
  • mon: new ‘ceph pool ls [detail]’ command (Sage Weil)
  • mon: wait for writeable before cross-proposing (#9794 Joao Eduardo Luis)
  • msgr: avoid useless new/delete (Haomai Wang)
  • msgr: fix delay injection bug (#9910 Sage Weil, Greg Farnum)
  • msgr: new AsymcMessenger alternative implementation (Haomai Wang)
  • msgr: prefetch data when doing recv (Yehuda Sadeh)
  • osd: add erasure code corpus (Loic Dachary)
  • osd: add misc tests (Loic Dachary, Danny Al-Gaaf)
  • osd: cleanup boost optionals (William Kennington)
  • osd: expose non-journal backends via ceph-osd CLI (Hoamai Wang)
  • osd: fix JSON output for stray OSDs (Loic Dachary)
  • osd: fix ioprio options (Loic Dachary)
  • osd: fix transaction accounting (Jianpeng Ma)
  • osd: misc optimizations (Xinxin Shu, Zhiqiang Wang, Xinze Chi)
  • osd: use FIEMAP_FLAGS_SYNC instead of fsync (Jianpeng Ma)
  • rados: fix put of /dev/null (Loic Dachary)
  • rados: parse command-line arguments more strictly (#8983 Adam Crume)
  • rbd-fuse: fix memory leak (Adam Crume)
  • rbd-replay-many (Adam Crume)
  • rbd-replay: –anonymize flag to rbd-replay-prep (Adam Crume)
  • rbd: fix ‘rbd diff’ for non-existent objects (Adam Crume)
  • rbd: fix error when striping with format 1 (Sebastien Han)
  • rbd: fix export for image sizes over 2GB (Vicente Cheng)
  • rbd: use rolling average for rbd bench-write throughput (Jason Dillaman)
  • rgw: send explicit HTTP status string (Yehuda Sadeh)
  • rgw: set length for keystone token validation request (#7796 Yehuda Sadeh, Mark Kirkwood)
  • udev: fix rules for CentOS7/RHEL7 (Loic Dachary)
  • use clock_gettime instead of gettimeofday (Jianpeng Ma)
  • set up environment for s3-tests (Luis Pabon)


v0.87 Giant released

This release will form the basis for the stable release Giant, v0.87.x. Highlights for Giant include:

  • RADOS Performance: a range of improvements have been made in the OSD and client-side librados code that improve the throughput on flash backends and improve parallelism and scaling on fast machines.
  • CephFS: we have fixed a raft of bugs in CephFS and built some basic journal recovery and diagnostic tools. Stability and performance of single-MDS systems is vastly improved in Giant. Although we do not yet recommend CephFS for production deployments, we do encourage testing for non-critical workloads so that we can better guage the feature, usability, performance, and stability gaps.
  • Local Recovery Codes: the OSDs now support an erasure-coding scheme that stores some additional data blocks to reduce the IO required to recover from single OSD failures.
  • Degraded vs misplaced: the Ceph health reports from ‘ceph -s’ and related commands now make a distinction between data that is degraded (there are fewer than the desired number of copies) and data that is misplaced (stored in the wrong location in the cluster). The distinction is important because the latter does not compromise data safety.
  • Tiering improvements: we have made several improvements to the cache tiering implementation that improve performance. Most notably, objects are not promoted into the cache tier by a single read; they must be found to be sufficiently hot before that happens.
  • Monitor performance: the monitors now perform writes to the local data store asynchronously, improving overall responsiveness.
  • Recovery tools: the ceph_objectstore_tool is greatly expanded to allow manipulation of an individual OSDs data store for debugging and repair purposes. This is most heavily used by our QA infrastructure to exercise recovery code.

read more…

v0.80.7 Firefly released

This release fixes a few critical issues with v0.80.6, particularly with clusters running mixed versions.

We recommend that all v0.80.x Firefly users upgrade to this release.

For more detailed information, see the complete changelog.


  • osd: fix invalid memory reference in log trimming (#9731 Samuel Just)
  • osd: fix use-after-free in cache tiering code (#7588 Sage Weil)
  • osd: remove bad backfill assertion for mixed-version clusters (#9696 Samuel Just)


Page 1 of 1512345...10...Last »
© 2015, Inktank Storage, Inc.. All rights reserved.