分布式文件系統,Ceph 0.80.8/0.91 發布

jopen 9年前發布 | 12K 次閱讀 Ceph

Ceph 0.91 發布,我們正在快速的達到 Hammer 版本的特性凍結階段,但還有一些更多的開發版需要推出。Ceph 0.91 最值得關注的是 CephFS 基于子樹的配額支持(ceph-fuse、libcephfs 客戶端支持);重寫了 librados API 的監控提醒方法,這主要用于 RBD 和 RGW 上;OSDMap checksum 確保 maps 在集群內永遠一致;librados 新的 API 調用和 librbd 用于在 posix_fadvise 后的 IO 提示建模,改進了對每個 PG 狀態的存儲。

我們期望在 Hammer 功能凍結 (0.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.

  • rados.py'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).

Notable Changes

  • 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)

同時發布的還有 0.80.8 穩定版,建議所有 0.80.x 版本的用戶升級,詳細介紹請看這里

相關鏈接: