分布式文件系统,Ceph v0.94.4 发布

jopen 8年前

Ceph v0.94.4 发布,此版本修复了一些重要的 bug,建议所有 v0.94.x Hammer 用户尽快升级到最新版本。

Ceph 在 GitHub 已经放出 Ceph v0.94.5 版本的下载:https://github.com/ceph/ceph/archive/v0.94.5.zip,但是暂未有相关说明。

Ceph v0.94.4 值得关注的改进

  • build/ops: ceph.spec.in: 50-rbd.rules conditional is wrong (issue#12166, pr#5207, Nathan Cutler)

  • build/ops: ceph.spec.in: ceph-common needs python-argparse on older distros, but doesn’t require it (issue#12034, pr#5216, Nathan Cutler)

  • build/ops: ceph.spec.in: radosgw requires apache for SUSE only – makes no sense (issue#12358, pr#5411, Nathan Cutler)

  • build/ops: ceph.spec.in: rpm: cephfs_java not fully conditionalized (issue#11991, pr#5202, Nathan Cutler)

  • build/ops: ceph.spec.in: rpm: not possible to turn off Java (issue#11992, pr#5203, Owen Synge)

  • build/ops: ceph.spec.in: running fdupes unnecessarily (issue#12301, pr#5223, Nathan Cutler)

  • build/ops: ceph.spec.in: snappy-devel for all supported distros (issue#12361, pr#5264, Nathan Cutler)

  • build/ops: ceph.spec.in: SUSE/openSUSE builds need libbz2-devel (issue#11629, pr#5204, Nathan Cutler)

  • build/ops: ceph.spec.in: useless %py_requires breaks SLE11-SP3 build (issue#12351, pr#5412, Nathan Cutler)

  • build/ops: error in ext_mime_map_init() when /etc/mime.types is missing (issue#11864, pr#5385, Ken Dreyer)

  • build/ops: upstart: limit respawn to 3 in 30 mins (instead of 5 in 30s) (issue#11798, pr#5930, Sage Weil)

  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#10927, pr#6161, Sage Weil)

  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#11140, pr#6161, Sage Weil)

  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#11686, pr#6161, Sage Weil)

  • build/ops: With root as default user, unable to have multiple RGW instances running (issue#12407, pr#6161, Sage Weil)

  • cli: ceph: cli throws exception on unrecognized errno (issue#11354, pr#5368, Kefu Chai)

  • cli: ceph tell: broken error message / misleading hinting (issue#11101, pr#5371, Kefu Chai)

  • common: arm: all programs that link to librados2 hang forever on startup (issue#12505, pr#5366, Boris Ranto)

  • common: buffer: critical bufferlist::zero bug (issue#12252, pr#5365, Haomai Wang)

  • common: ceph-object-corpus: add 0.94.2-207-g88e7ee7 hammer objects (issue#13070, pr#5551, Sage Weil)

  • common: do not insert emtpy ptr when rebuild emtpy bufferlist (issue#12775, pr#5764, Xinze Chi)

  • common: [ FAILED ] TestLibRBD.BlockingAIO (issue#12479, pr#5768, Jason Dillaman)

  • common: LibCephFS.GetPoolId failure (issue#12598, pr#5887, Yan, Zheng)

  • common: Memory leak in Mutex.cc, pthread_mutexattr_init without pthread_mutexattr_destroy (issue#11762, pr#5378, Ketor Meng)

  • common: object_map_update fails with -EINVAL return code (issue#12611, pr#5559, Jason Dillaman)

  • common: Pipe: Drop connect_seq increase line (issue#13093, pr#5908, Haomai Wang)

  • common: recursive lock of md_config_t (0) (issue#12614, pr#5759, Josh Durgin)

  • crush: ceph osd crush reweight-subtree does not reweight parent node (issue#11855, pr#5374, Sage Weil)

  • doc: update docs to point to download.ceph.com (issue#13162, pr#6156, Alfredo Deza)

  • fs: ceph-fuse 0.94.2-1trusty segfaults / aborts (issue#12297, pr#5381, Greg Farnum)

  • fs: segfault launching ceph-fuse with bad –name (issue#12417, pr#5382, John Spray)

  • librados: Change radosgw pools default crush ruleset (issue#11640, pr#5754, Yuan Zhou)

  • librbd: correct issues discovered via lockdep / helgrind (issue#12345, pr#5296, Jason Dillaman)

  • librbd: Crash during TestInternal.MultipleResize (issue#12664, pr#5769, Jason Dillaman)

  • librbd: deadlock during cooperative exclusive lock transition (issue#11537, pr#5319, Jason Dillaman)

  • librbd: Possible crash while concurrently writing and shrinking an image (issue#11743, pr#5318, Jason Dillaman)

  • mon: add a cache layer over MonitorDBStore (issue#12638, pr#5697, Kefu Chai)

  • mon: fix crush testing for new pools (issue#13400, pr#6192, Sage Weil)

  • mon: get pools health’info have error (issue#12402, pr#5369, renhwztetecs)

  • mon: implicit erasure code crush ruleset is not validated (issue#11814, pr#5276, Loic Dachary)

  • mon: PaxosService: call post_refresh() instead of post_paxos_update() (issue#11470, pr#5359, Joao Eduardo Luis)

  • mon: pgmonitor: wrong at/near target max“ reporting (issue#12401, pr#5370, huangjun)

  • mon: register_new_pgs() should check ruleno instead of its index (issue#12210, pr#5377, Xinze Chi)

  • mon: Show osd as NONE in ceph osd map <pool> <object> output (issue#11820, pr#5376, Shylesh Kumar)

  • mon: the output is wrong when runing ceph osd reweight (issue#12251, pr#5372, Joao Eduardo Luis)

  • osd: allow peek_map_epoch to return an error (issue#13060, pr#5892, Sage Weil)

  • osd: cache agent is idle although one object is left in the cache (issue#12673, pr#5765, Loic Dachary)

  • osd: copy-from doesn’t preserve truncate_{seq,size} (issue#12551, pr#5885, Samuel Just)

  • osd: crash creating/deleting pools (issue#12429, pr#5527, John Spray)

  • osd: fix repair when recorded digest is wrong (issue#12577, pr#5468, Sage Weil)

  • osd: include/ceph_features: define HAMMER_0_94_4 feature (issue#13026, pr#5687, Sage Weil)

  • osd: is_new_interval() fixes (issue#10399, pr#5691, Jason Dillaman)

  • osd: is_new_interval() fixes (issue#11771, pr#5691, Jason Dillaman)

  • osd: long standing slow requests: connection->session->waiting_for_map->connection ref cycle (issue#12338, pr#5761, Samuel Just)

  • osd: Mutex Assert from PipeConnection::try_get_pipe (issue#12437, pr#5758, David Zafman)

  • osd: pg_interval_t::check_new_interval – for ec pool, should not rely on min_size to determine if the PG was active at the interval (issue#12162, pr#5373, Guang G Yang)

  • osd: PGLog.cc: 732: FAILED assert(log.log.size() == log_keys_debug.size()) (issue#12652, pr#5763, Sage Weil)

  • osd: PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out (issue#11358, pr#5380, Samuel Just)

  • osd: read on chunk-aligned xattr not handled (issue#12309, pr#5367, Sage Weil)

  • osd: suicide timeout during peering – search for missing objects (issue#12523, pr#5762, Guang G Yang)

  • osd: WBThrottle::clear_object: signal on cond when we reduce throttle values (issue#12223, pr#5757, Samuel Just)

  • rbd: crash during shutdown after writeback blocked by IO errors (issue#12597, pr#5767, Jianpeng Ma)

  • rgw: add delimiter to prefix only when path is specified (issue#12960, pr#5860, Sylvain Baubeau)

  • rgw: create a tool for orphaned objects cleanup (issue#9604, pr#5717, Yehuda Sadeh)

  • rgw: don’t preserve acls when copying object (issue#11563, pr#6039, Yehuda Sadeh)

  • rgw: don’t preserve acls when copying object (issue#12370, pr#6039, Yehuda Sadeh)

  • rgw: don’t preserve acls when copying object (issue#13015, pr#6039, Yehuda Sadeh)

  • rgw: Ensure that swift keys don’t include backslashes (issue#7647, pr#5716, Yehuda Sadeh)

  • rgw: GWWatcher::handle_error -> common/Mutex.cc: 95: FAILED assert(r == 0) (issue#12208, pr#6164, Yehuda Sadeh)

  • rgw: HTTP return code is not being logged by CivetWeb (issue#12432, pr#5498, Yehuda Sadeh)

  • rgw: init_rados failed leads to repeated delete (issue#12978, pr#6165, Xiaowei Chen)

  • rgw: init some manifest fields when handling explicit objs (issue#11455, pr#5732, Yehuda Sadeh)

  • rgw: Keystone Fernet tokens break auth (issue#12761, pr#6162, Abhishek Lekshmanan)

  • rgw: region data still exist in region-map after region-map update (issue#12964, pr#6163, dwj192)

  • rgw: remove trailing :port from host for purposes of subdomain matching (issue#12353, pr#6042, Yehuda Sadeh)

  • rgw: rest-bench common/WorkQueue.cc: 54: FAILED assert(_threads.empty()) (issue#3896, pr#5383, huangjun)

  • rgw: returns requested bucket name raw in Bucket response header (issue#12537, pr#5715, Yehuda Sadeh)

  • rgw: segmentation fault when rgw_gc_max_objs > HASH_PRIME (issue#12630, pr#5719, Ruifeng Yang)

  • rgw: segments are read during HEAD on Swift DLO (issue#12780, pr#6160, Yehuda Sadeh)

  • rgw: setting max number of buckets for user via ceph.conf option (issue#12714, pr#6166, Vikhyat Umrao)

  • rgw: Swift API: X-Trans-Id header is wrongly formatted (issue#12108, pr#5721, Radoslaw Zarzynski)

  • rgw: testGetContentType and testHead failed (issue#11091, pr#5718, Radoslaw Zarzynski)

  • rgw: testGetContentType and testHead failed (issue#11438, pr#5718, Radoslaw Zarzynski)

  • rgw: testGetContentType and testHead failed (issue#12157, pr#5718, Radoslaw Zarzynski)

  • rgw: testGetContentType and testHead failed (issue#12158, pr#5718, Radoslaw Zarzynski)

  • rgw: testGetContentType and testHead failed (issue#12363, pr#5718, Radoslaw Zarzynski)

  • rgw: the arguments ‘domain’ should not be assigned when return false (issue#12629, pr#5720, Ruifeng Yang)

  • tests: qa/workunits/cephtool/test.sh: don’t assume crash_replay_interval=45 (issue#13406, pr#6172, Sage Weil)

  • tests: TEST_crush_rule_create_erasure consistently fails on i386 builder (issue#12419, pr#6201, Loic Dachary)

  • tools: ceph-disk zap should ensure block device (issue#11272, pr#5755, Loic Dachary)

更多信息请看 the complete changelog

获取 CEPH


Ceph是加州大学Santa Cruz分校的Sage Weil(DreamHost的联合创始人)专为博士论文设计的新一代自由软件分布式文件系统。自2007年毕业之后,Sage开始全职投入到Ceph开 发之中,使其能适用于生产环境。Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。2010年3 月,Linus Torvalds将Ceph client合并到内 核2.6.34中。IBM开发者园地的一篇文章 探讨了Ceph的架构,它的容错实现和简化海量数据管理的功能。

Ceph 中国社区 —— http://www.ceph.org.cn

Ceph 中文文档:http://docs.openfans.org/ceph

Ceph 的 4 个模块:

分布式文件系统,Ceph v0.94.4 发布