]>
Commit | Line | Data |
---|---|---|
20effc67 TL |
1 | ======= |
2 | Firefly | |
3 | ======= | |
4 | ||
5 | Firefly is the 6th stable release of Ceph. It is named after the | |
6 | firefly squid (Watasenia scintillans). | |
7 | ||
11fdf7f2 TL |
8 | v0.80.11 Firefly |
9 | ================ | |
10 | ||
11 | This is a bugfix release for Firefly. This Firefly 0.80.x is nearing | |
12 | its planned end of life in January 2016 it may also be the last. | |
13 | ||
14 | We recommend that all Firefly users upgrade. | |
15 | ||
16 | For more detailed information, see :download:`the complete changelog | |
17 | <../changelog/v0.80.11.txt>`. | |
18 | ||
19 | Notable Changes | |
20 | --------------- | |
21 | ||
22 | * build/ops: /etc/init.d/radosgw restart does not work correctly (`issue#11140 <http://tracker.ceph.com/issues/11140>`_, `pr#5831 <http://github.com/ceph/ceph/pull/5831>`_, Dmitry Yatsushkevich) | |
23 | * build/ops: Fix -Wno-format and -Werror=format-security options clash (`issue#13417 <http://tracker.ceph.com/issues/13417>`_, `pr#6207 <http://github.com/ceph/ceph/pull/6207>`_, Boris Ranto) | |
24 | * build/ops: ceph-common needs python-argparse on older distros, but doesn't require it (`issue#12034 <http://tracker.ceph.com/issues/12034>`_, `pr#5217 <http://github.com/ceph/ceph/pull/5217>`_, Nathan Cutler) | |
25 | * build/ops: ceph.spec.in running fdupes unnecessarily (`issue#12301 <http://tracker.ceph.com/issues/12301>`_, `pr#5224 <http://github.com/ceph/ceph/pull/5224>`_, Nathan Cutler) | |
26 | * build/ops: ceph.spec.in: 50-rbd.rules conditional is wrong (`issue#12166 <http://tracker.ceph.com/issues/12166>`_, `pr#5225 <http://github.com/ceph/ceph/pull/5225>`_, Nathan Cutler) | |
27 | * build/ops: ceph.spec.in: useless %py_requires breaks SLE11-SP3 build (`issue#12351 <http://tracker.ceph.com/issues/12351>`_, `pr#5394 <http://github.com/ceph/ceph/pull/5394>`_, Nathan Cutler) | |
28 | * build/ops: fedora21 has junit, not junit4 (`issue#10728 <http://tracker.ceph.com/issues/10728>`_, `pr#6203 <http://github.com/ceph/ceph/pull/6203>`_, Ken Dreyer, Loic Dachary) | |
29 | * build/ops: upstart: configuration is too generous on restarts (`issue#11798 <http://tracker.ceph.com/issues/11798>`_, `pr#5992 <http://github.com/ceph/ceph/pull/5992>`_, Sage Weil) | |
30 | * common: Client admin socket leaks file descriptors (`issue#11535 <http://tracker.ceph.com/issues/11535>`_, `pr#4633 <http://github.com/ceph/ceph/pull/4633>`_, Jon Bernard) | |
31 | * common: FileStore calls syncfs(2) even it is not supported (`issue#12512 <http://tracker.ceph.com/issues/12512>`_, `pr#5529 <http://github.com/ceph/ceph/pull/5529>`_, Danny Al-Gaaf, Kefu Chai, Jianpeng Ma) | |
32 | * common: HeartBeat: include types (`issue#13088 <http://tracker.ceph.com/issues/13088>`_, `pr#6038 <http://github.com/ceph/ceph/pull/6038>`_, Sage Weil) | |
33 | * common: Malformed JSON command output when non-ASCII strings are present (`issue#7387 <http://tracker.ceph.com/issues/7387>`_, `pr#4635 <http://github.com/ceph/ceph/pull/4635>`_, Kefu Chai, Tim Serong) | |
34 | * common: Memory leak in Mutex.cc, pthread_mutexattr_init without pthread_mutexattr_destroy (`issue#11762 <http://tracker.ceph.com/issues/11762>`_, `pr#5403 <http://github.com/ceph/ceph/pull/5403>`_, Ketor Meng) | |
35 | * common: Thread:pthread_attr_destroy(thread_attr) when done with it (`issue#12570 <http://tracker.ceph.com/issues/12570>`_, `pr#6325 <http://github.com/ceph/ceph/pull/6325>`_, Piotr Dałek, Zheng Qiankun) | |
36 | * common: ThreadPool add/remove work queue methods not thread safe (`issue#12662 <http://tracker.ceph.com/issues/12662>`_, `pr#5991 <http://github.com/ceph/ceph/pull/5991>`_, Jason Dillaman) | |
37 | * common: buffer: critical bufferlist::zero bug (`issue#12252 <http://tracker.ceph.com/issues/12252>`_, `pr#5388 <http://github.com/ceph/ceph/pull/5388>`_, Haomai Wang) | |
38 | * common: log: take mutex while opening fd (`issue#12465 <http://tracker.ceph.com/issues/12465>`_, `pr#5406 <http://github.com/ceph/ceph/pull/5406>`_, Samuel Just) | |
39 | * common: recursive lock of md_config_t (0) (`issue#12614 <http://tracker.ceph.com/issues/12614>`_, `pr#5814 <http://github.com/ceph/ceph/pull/5814>`_, Josh Durgin) | |
40 | * crush: take crashes due to invalid arg (`issue#11602 <http://tracker.ceph.com/issues/11602>`_, `pr#4769 <http://github.com/ceph/ceph/pull/4769>`_, Sage Weil) | |
41 | * doc: backport v0.80.10 release notes to firefly (`issue#11090 <http://tracker.ceph.com/issues/11090>`_, `pr#5307 <http://github.com/ceph/ceph/pull/5307>`_, Loic Dachary, Sage Weil) | |
42 | * doc: update docs to point to download.ceph.com (`issue#13162 <http://tracker.ceph.com/issues/13162>`_, `pr#5993 <http://github.com/ceph/ceph/pull/5993>`_, Alfredo Deza) | |
43 | * fs: MDSMonitor: handle MDSBeacon messages properly (`issue#11590 <http://tracker.ceph.com/issues/11590>`_, `pr#5199 <http://github.com/ceph/ceph/pull/5199>`_, Kefu Chai) | |
44 | * fs: client nonce collision due to unshared pid namespaces (`issue#13032 <http://tracker.ceph.com/issues/13032>`_, `pr#6087 <http://github.com/ceph/ceph/pull/6087>`_, Josh Durgin, Sage Weil) | |
45 | * librbd: Objectcacher setting max object counts too low (`issue#7385 <http://tracker.ceph.com/issues/7385>`_, `pr#4639 <http://github.com/ceph/ceph/pull/4639>`_, Jason Dillaman) | |
46 | * librbd: aio calls may block (`issue#11056 <http://tracker.ceph.com/issues/11056>`_, `pr#4854 <http://github.com/ceph/ceph/pull/4854>`_, Haomai Wang, Sage Weil, Jason Dillaman) | |
47 | * librbd: internal.cc: 1967: FAILED assert(watchers.size() == 1) (`issue#12176 <http://tracker.ceph.com/issues/12176>`_, `pr#5171 <http://github.com/ceph/ceph/pull/5171>`_, Jason Dillaman) | |
48 | * mon: Clock skew causes missing summary and confuses Calamari (`issue#11877 <http://tracker.ceph.com/issues/11877>`_, `pr#4867 <http://github.com/ceph/ceph/pull/4867>`_, Thorsten Behrens) | |
49 | * mon: EC pools are not allowed as cache pools, disallow in the mon (`issue#11650 <http://tracker.ceph.com/issues/11650>`_, `pr#5389 <http://github.com/ceph/ceph/pull/5389>`_, Samuel Just) | |
50 | * mon: Make it more difficult to delete pools in firefly (`issue#11800 <http://tracker.ceph.com/issues/11800>`_, `pr#4788 <http://github.com/ceph/ceph/pull/4788>`_, Sage Weil) | |
51 | * mon: MonitorDBStore: get_next_key() only if prefix matches (`issue#11786 <http://tracker.ceph.com/issues/11786>`_, `pr#5360 <http://github.com/ceph/ceph/pull/5360>`_, Joao Eduardo Luis) | |
52 | * mon: PaxosService: call post_refresh() instead of post_paxos_update() (`issue#11470 <http://tracker.ceph.com/issues/11470>`_, `pr#5358 <http://github.com/ceph/ceph/pull/5358>`_, Joao Eduardo Luis) | |
53 | * mon: add a cache layer over MonitorDBStore (`issue#12638 <http://tracker.ceph.com/issues/12638>`_, `pr#5698 <http://github.com/ceph/ceph/pull/5698>`_, Kefu Chai) | |
54 | * mon: adding exsting pool as tier with --force-nonempty clobbers removed_snaps (`issue#11493 <http://tracker.ceph.com/issues/11493>`_, `pr#5236 <http://github.com/ceph/ceph/pull/5236>`_, Sage Weil, Samuel Just) | |
55 | * mon: ceph fails to compile with boost 1.58 (`issue#11576 <http://tracker.ceph.com/issues/11576>`_, `pr#5129 <http://github.com/ceph/ceph/pull/5129>`_, Kefu Chai) | |
56 | * mon: does not check for IO errors on every transaction (`issue#13089 <http://tracker.ceph.com/issues/13089>`_, `pr#6091 <http://github.com/ceph/ceph/pull/6091>`_, Sage Weil) | |
57 | * mon: get pools health'info have error (`issue#12402 <http://tracker.ceph.com/issues/12402>`_, `pr#5410 <http://github.com/ceph/ceph/pull/5410>`_, renhwztetecs) | |
58 | * mon: increase globalid default for firefly (`issue#13255 <http://tracker.ceph.com/issues/13255>`_, `pr#6010 <http://github.com/ceph/ceph/pull/6010>`_, Sage Weil) | |
59 | * mon: pgmonitor: wrong at/near target max“ reporting (`issue#12401 <http://tracker.ceph.com/issues/12401>`_, `pr#5409 <http://github.com/ceph/ceph/pull/5409>`_, huangjun) | |
60 | * mon: register_new_pgs() should check ruleno instead of its index (`issue#12210 <http://tracker.ceph.com/issues/12210>`_, `pr#5404 <http://github.com/ceph/ceph/pull/5404>`_, Xinze Chi) | |
61 | * mon: scrub error (osdmap encoding mismatch?) upgrading from 0.80 to ~0.80.2 (`issue#8815 <http://tracker.ceph.com/issues/8815>`_, `issue#8674 <http://tracker.ceph.com/issues/8674>`_, `issue#9064 <http://tracker.ceph.com/issues/9064>`_, `pr#5200 <http://github.com/ceph/ceph/pull/5200>`_, Sage Weil, Zhiqiang Wang, Samuel Just) | |
62 | * mon: the output is wrong when runing ceph osd reweight (`issue#12251 <http://tracker.ceph.com/issues/12251>`_, `pr#5408 <http://github.com/ceph/ceph/pull/5408>`_, Joao Eduardo Luis) | |
63 | * objecter: can get stuck in redirect loop if osdmap epoch == last_force_op_resend (`issue#11026 <http://tracker.ceph.com/issues/11026>`_, `pr#4597 <http://github.com/ceph/ceph/pull/4597>`_, Jianpeng Ma, Sage Weil) | |
64 | * objecter: pg listing can deadlock when throttling is in use (`issue#9008 <http://tracker.ceph.com/issues/9008>`_, `pr#5043 <http://github.com/ceph/ceph/pull/5043>`_, Guang Yang) | |
65 | * objecter: resend linger ops on split (`issue#9806 <http://tracker.ceph.com/issues/9806>`_, `pr#5062 <http://github.com/ceph/ceph/pull/5062>`_, Josh Durgin, Samuel Just) | |
66 | * osd: Cleanup boost optionals for boost 1.56 (`issue#9983 <http://tracker.ceph.com/issues/9983>`_, `pr#5039 <http://github.com/ceph/ceph/pull/5039>`_, William A. Kennington III) | |
67 | * osd: LibRadosTwoPools[EC]PP.PromoteSnap failure (`issue#10052 <http://tracker.ceph.com/issues/10052>`_, `pr#5050 <http://github.com/ceph/ceph/pull/5050>`_, Sage Weil) | |
68 | * osd: Mutex Assert from PipeConnection::try_get_pipe (`issue#12437 <http://tracker.ceph.com/issues/12437>`_, `pr#5815 <http://github.com/ceph/ceph/pull/5815>`_, David Zafman) | |
69 | * osd: PG stuck with remapped (`issue#9614 <http://tracker.ceph.com/issues/9614>`_, `pr#5044 <http://github.com/ceph/ceph/pull/5044>`_, Guang Yang) | |
70 | * osd: PG::handle_advance_map: on_pool_change after handling the map change (`issue#12809 <http://tracker.ceph.com/issues/12809>`_, `pr#5988 <http://github.com/ceph/ceph/pull/5988>`_, Samuel Just) | |
71 | * osd: PGLog: split divergent priors as well (`issue#11069 <http://tracker.ceph.com/issues/11069>`_, `pr#4631 <http://github.com/ceph/ceph/pull/4631>`_, Samuel Just) | |
72 | * osd: PGLog::proc_replica_log: correctly handle case where entries between olog.head and log.tail were split out (`issue#11358 <http://tracker.ceph.com/issues/11358>`_, `pr#5287 <http://github.com/ceph/ceph/pull/5287>`_, Samuel Just) | |
73 | * osd: WBThrottle::clear_object: signal on cond when we reduce throttle values (`issue#12223 <http://tracker.ceph.com/issues/12223>`_, `pr#5822 <http://github.com/ceph/ceph/pull/5822>`_, Samuel Just) | |
74 | * osd: cache full mode still skips young objects (`issue#10006 <http://tracker.ceph.com/issues/10006>`_, `pr#5051 <http://github.com/ceph/ceph/pull/5051>`_, Xinze Chi, Zhiqiang Wang) | |
75 | * osd: crash creating/deleting pools (`issue#12429 <http://tracker.ceph.com/issues/12429>`_, `pr#5526 <http://github.com/ceph/ceph/pull/5526>`_, John Spray) | |
76 | * osd: explicitly specify OSD features in MOSDBoot (`issue#10911 <http://tracker.ceph.com/issues/10911>`_, `pr#4960 <http://github.com/ceph/ceph/pull/4960>`_, Sage Weil) | |
77 | * osd: is_new_interval() fixes (`issue#11771 <http://tracker.ceph.com/issues/11771>`_, `issue#10399 <http://tracker.ceph.com/issues/10399>`_, `pr#5726 <http://github.com/ceph/ceph/pull/5726>`_, Samuel Just, Jason Dillaman) | |
78 | * osd: make the all osd/filestore thread pool suicide timeouts separately configurable (`issue#11439 <http://tracker.ceph.com/issues/11439>`_, `pr#5823 <http://github.com/ceph/ceph/pull/5823>`_, Samuel Just) | |
79 | * osd: object creation by write cannot use an offset on an erasure coded pool (`issue#11507 <http://tracker.ceph.com/issues/11507>`_, `pr#4632 <http://github.com/ceph/ceph/pull/4632>`_, Jianpeng Ma, Loic Dachary) | |
80 | * osd: os/FileJournal: Fix journal write fail, align for direct io (`issue#12943 <http://tracker.ceph.com/issues/12943>`_, `pr#5619 <http://github.com/ceph/ceph/pull/5619>`_, Xie Rui) | |
81 | * osd: osd/PGLog.cc: 732: FAILED assert(log.log.size() == log_keys_debug.size()) (`issue#12652 <http://tracker.ceph.com/issues/12652>`_, `pr#5820 <http://github.com/ceph/ceph/pull/5820>`_, Sage Weil) | |
82 | * osd: read on chunk-aligned xattr not handled (`issue#12309 <http://tracker.ceph.com/issues/12309>`_, `pr#5235 <http://github.com/ceph/ceph/pull/5235>`_, Sage Weil) | |
83 | * rgw: Change variable length array of std::strings (not legal in C++) to std::vector<std::string> (`issue#12467 <http://tracker.ceph.com/issues/12467>`_, `pr#4583 <http://github.com/ceph/ceph/pull/4583>`_, Daniel J. Hofmann) | |
84 | * rgw: Civetweb RGW appears to report full size of object as downloaded when only partially downloaded (`issue#11851 <http://tracker.ceph.com/issues/11851>`_, `pr#5234 <http://github.com/ceph/ceph/pull/5234>`_, Yehuda Sadeh) | |
85 | * rgw: Keystone PKI token expiration is not enforced (`issue#11367 <http://tracker.ceph.com/issues/11367>`_, `pr#4765 <http://github.com/ceph/ceph/pull/4765>`_, Anton Aksola) | |
86 | * rgw: Object copy bug (`issue#11639 <http://tracker.ceph.com/issues/11639>`_, `pr#4762 <http://github.com/ceph/ceph/pull/4762>`_, Javier M. Mellid) | |
87 | * rgw: RGW returns requested bucket name raw in "Bucket" response header (`issue#11860 <http://tracker.ceph.com/issues/11860>`_, `issue#12537 <http://tracker.ceph.com/issues/12537>`_, `pr#5730 <http://github.com/ceph/ceph/pull/5730>`_, Yehuda Sadeh, Wido den Hollander) | |
88 | * rgw: Swift API: response for PUT on /container does not contain the mandatory Content-Length header when FCGI is used (`issue#11036 <http://tracker.ceph.com/issues/11036>`_, `pr#5170 <http://github.com/ceph/ceph/pull/5170>`_, Radoslaw Zarzynski) | |
89 | * rgw: content length parsing calls strtol() instead of strtoll() (`issue#10701 <http://tracker.ceph.com/issues/10701>`_, `pr#5997 <http://github.com/ceph/ceph/pull/5997>`_, Yehuda Sadeh) | |
90 | * rgw: delete bucket does not remove .bucket.meta file (`issue#11149 <http://tracker.ceph.com/issues/11149>`_, `pr#4641 <http://github.com/ceph/ceph/pull/4641>`_, Orit Wasserman) | |
91 | * rgw: doesn't return 'x-timestamp' in header which is used by 'View Details' of OpenStack (`issue#8911 <http://tracker.ceph.com/issues/8911>`_, `pr#4584 <http://github.com/ceph/ceph/pull/4584>`_, Yehuda Sadeh) | |
92 | * rgw: init some manifest fields when handling explicit objs (`issue#11455 <http://tracker.ceph.com/issues/11455>`_, `pr#5729 <http://github.com/ceph/ceph/pull/5729>`_, Yehuda Sadeh) | |
93 | * rgw: logfile does not get chowned properly (`issue#12073 <http://tracker.ceph.com/issues/12073>`_, `pr#5233 <http://github.com/ceph/ceph/pull/5233>`_, Thorsten Behrens) | |
94 | * rgw: logrotate.conf calls service with wrong init script name (`issue#12043 <http://tracker.ceph.com/issues/12043>`_, `pr#5390 <http://github.com/ceph/ceph/pull/5390>`_, wuxingyi) | |
95 | * rgw: quota not respected in POST object (`issue#11323 <http://tracker.ceph.com/issues/11323>`_, `pr#4642 <http://github.com/ceph/ceph/pull/4642>`_, Sergey Arkhipov) | |
96 | * rgw: swift smoke test fails on TestAccountUTF8 (`issue#11091 <http://tracker.ceph.com/issues/11091>`_, `issue#11438 <http://tracker.ceph.com/issues/11438>`_, `issue#12939 <http://tracker.ceph.com/issues/12939>`_, `issue#12157 <http://tracker.ceph.com/issues/12157>`_, `issue#12158 <http://tracker.ceph.com/issues/12158>`_, `issue#12363 <http://tracker.ceph.com/issues/12363>`_, `pr#5532 <http://github.com/ceph/ceph/pull/5532>`_, Radoslaw Zarzynski, Orit Wasserman, Robin H. Johnson) | |
97 | * rgw: use correct objv_tracker for bucket instance (`issue#11416 <http://tracker.ceph.com/issues/11416>`_, `pr#4535 <http://github.com/ceph/ceph/pull/4535>`_, Yehuda Sadeh) | |
98 | * tests: ceph-fuse crash in test_client_recovery (`issue#12673 <http://tracker.ceph.com/issues/12673>`_, `pr#5813 <http://github.com/ceph/ceph/pull/5813>`_, Loic Dachary) | |
99 | * tests: kernel_untar_build fails on EL7 (`issue#11758 <http://tracker.ceph.com/issues/11758>`_, `pr#6000 <http://github.com/ceph/ceph/pull/6000>`_, Greg Farnum) | |
100 | * tests: qemu workunit refers to apt-mirror.front.sepia.ceph.com (`issue#13420 <http://tracker.ceph.com/issues/13420>`_, `pr#6328 <http://github.com/ceph/ceph/pull/6328>`_, Yuan Zhou, Sage Weil) | |
101 | * tools: src/ceph-disk : disk zap sgdisk invocation (`issue#11143 <http://tracker.ceph.com/issues/11143>`_, `pr#4636 <http://github.com/ceph/ceph/pull/4636>`_, Thorsten Behrens, Owen Synge) | |
102 | * tools: ceph-disk: sometimes the journal symlink is not created (`issue#10146 <http://tracker.ceph.com/issues/10146>`_, `pr#5541 <http://github.com/ceph/ceph/pull/5541>`_, Dan van der Ster) | |
103 | * tools: ceph-disk: support NVMe device partitions (`issue#11612 <http://tracker.ceph.com/issues/11612>`_, `pr#4771 <http://github.com/ceph/ceph/pull/4771>`_, Ilja Slepnev) | |
104 | * tools: ceph-post-file fails on rhel7 (`issue#11836 <http://tracker.ceph.com/issues/11836>`_, `pr#5037 <http://github.com/ceph/ceph/pull/5037>`_, Joseph McDonald, Sage Weil) | |
105 | * tools: ceph_argparse_flag has no regular 3rd parameter (`issue#11543 <http://tracker.ceph.com/issues/11543>`_, `pr#4582 <http://github.com/ceph/ceph/pull/4582>`_, Thorsten Behrens) | |
106 | * tools: use a new disk as journal disk,ceph-disk prepare fail (`issue#10983 <http://tracker.ceph.com/issues/10983>`_, `pr#4630 <http://github.com/ceph/ceph/pull/4630>`_, Loic Dachary) | |
107 | ||
108 | ||
109 | v0.80.10 Firefly | |
110 | ================ | |
111 | ||
112 | This is a bugfix release for Firefly. | |
113 | ||
114 | We recommend that all Firefly users upgrade. | |
115 | ||
116 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.10.txt>`. | |
117 | ||
118 | Notable Changes | |
119 | --------------- | |
120 | ||
121 | * build/ops: ceph.spec.in: package mkcephfs on EL6 (`issue#11955 <http://tracker.ceph.com/issues/11955>`_, `pr#4924 <http://github.com/ceph/ceph/pull/4924>`_, Ken Dreyer) | |
122 | * build/ops: debian: ceph-test and rest-bench debug packages should require their respective binary packages (`issue#11673 <http://tracker.ceph.com/issues/11673>`_, `pr#4766 <http://github.com/ceph/ceph/pull/4766>`_, Ken Dreyer) | |
123 | * build/ops: run RGW as root (`issue#11453 <http://tracker.ceph.com/issues/11453>`_, `pr#4638 <http://github.com/ceph/ceph/pull/4638>`_, Ken Dreyer) | |
124 | * common: messages/MWatchNotify: include an error code in the message (`issue#9193 <http://tracker.ceph.com/issues/9193>`_, `pr#3944 <http://github.com/ceph/ceph/pull/3944>`_, Sage Weil) | |
125 | * common: Rados.shutdown() dies with Illegal instruction (core dumped) (`issue#10153 <http://tracker.ceph.com/issues/10153>`_, `pr#3963 <http://github.com/ceph/ceph/pull/3963>`_, Federico Simoncelli) | |
126 | * common: SimpleMessenger: allow RESETSESSION whenever we forget an endpoint (`issue#10080 <http://tracker.ceph.com/issues/10080>`_, `pr#3915 <http://github.com/ceph/ceph/pull/3915>`_, Greg Farnum) | |
127 | * common: WorkQueue: make wait timeout on empty queue configurable (`issue#10817 <http://tracker.ceph.com/issues/10817>`_, `pr#3941 <http://github.com/ceph/ceph/pull/3941>`_, Samuel Just) | |
128 | * crush: set_choose_tries = 100 for erasure code rulesets (`issue#10353 <http://tracker.ceph.com/issues/10353>`_, `pr#3824 <http://github.com/ceph/ceph/pull/3824>`_, Loic Dachary) | |
129 | * doc: backport ceph-disk man page to Firefly (`issue#10724 <http://tracker.ceph.com/issues/10724>`_, `pr#3936 <http://github.com/ceph/ceph/pull/3936>`_, Nilamdyuti Goswami) | |
130 | * doc: Fix ceph command manpage to match ceph -h (`issue#10676 <http://tracker.ceph.com/issues/10676>`_, `pr#3996 <http://github.com/ceph/ceph/pull/3996>`_, David Zafman) | |
131 | * fs: mount.ceph: avoid spurious error message (`issue#10351 <http://tracker.ceph.com/issues/10351>`_, `pr#3927 <http://github.com/ceph/ceph/pull/3927>`_, Yan, Zheng) | |
132 | * librados: Fix memory leak in python rados bindings (`issue#10723 <http://tracker.ceph.com/issues/10723>`_, `pr#3935 <http://github.com/ceph/ceph/pull/3935>`_, Josh Durgin) | |
133 | * librados: fix resources leakage in RadosClient::connect() (`issue#10425 <http://tracker.ceph.com/issues/10425>`_, `pr#3828 <http://github.com/ceph/ceph/pull/3828>`_, Radoslaw Zarzynski) | |
134 | * librados: Translate operation flags from C APIs (`issue#10497 <http://tracker.ceph.com/issues/10497>`_, `pr#3930 <http://github.com/ceph/ceph/pull/3930>`_, Matt Richards) | |
135 | * librbd: acquire cache_lock before refreshing parent (`issue#5488 <http://tracker.ceph.com/issues/5488>`_, `pr#4206 <http://github.com/ceph/ceph/pull/4206>`_, Jason Dillaman) | |
136 | * librbd: snap_remove should ignore -ENOENT errors (`issue#11113 <http://tracker.ceph.com/issues/11113>`_, `pr#4245 <http://github.com/ceph/ceph/pull/4245>`_, Jason Dillaman) | |
137 | * mds: fix assertion caused by system clock backwards (`issue#11053 <http://tracker.ceph.com/issues/11053>`_, `pr#3970 <http://github.com/ceph/ceph/pull/3970>`_, Yan, Zheng) | |
138 | * mon: ignore osd failures from before up_from (`issue#10762 <http://tracker.ceph.com/issues/10762>`_, `pr#3937 <http://github.com/ceph/ceph/pull/3937>`_, Sage Weil) | |
139 | * mon: MonCap: take EntityName instead when expanding profiles (`issue#10844 <http://tracker.ceph.com/issues/10844>`_, `pr#3942 <http://github.com/ceph/ceph/pull/3942>`_, Joao Eduardo Luis) | |
140 | * mon: Monitor: fix timecheck rounds period (`issue#10546 <http://tracker.ceph.com/issues/10546>`_, `pr#3932 <http://github.com/ceph/ceph/pull/3932>`_, Joao Eduardo Luis) | |
141 | * mon: OSDMonitor: do not trust small values in osd epoch cache (`issue#10787 <http://tracker.ceph.com/issues/10787>`_, `pr#3823 <http://github.com/ceph/ceph/pull/3823>`_, Sage Weil) | |
142 | * mon: OSDMonitor: fallback to json-pretty in case of invalid formatter (`issue#9538 <http://tracker.ceph.com/issues/9538>`_, `pr#4475 <http://github.com/ceph/ceph/pull/4475>`_, Loic Dachary) | |
143 | * mon: PGMonitor: several stats output error fixes (`issue#10257 <http://tracker.ceph.com/issues/10257>`_, `pr#3826 <http://github.com/ceph/ceph/pull/3826>`_, Joao Eduardo Luis) | |
144 | * objecter: fix map skipping (`issue#9986 <http://tracker.ceph.com/issues/9986>`_, `pr#3952 <http://github.com/ceph/ceph/pull/3952>`_, Ding Dinghua) | |
145 | * osd: cache tiering: fix the atime logic of the eviction (`issue#9915 <http://tracker.ceph.com/issues/9915>`_, `pr#3949 <http://github.com/ceph/ceph/pull/3949>`_, Zhiqiang Wang) | |
146 | * osd: cancel_pull: requeue waiters (`issue#11244 <http://tracker.ceph.com/issues/11244>`_, `pr#4415 <http://github.com/ceph/ceph/pull/4415>`_, Samuel Just) | |
147 | * osd: check that source OSD is valid for MOSDRepScrub (`issue#9555 <http://tracker.ceph.com/issues/9555>`_, `pr#3947 <http://github.com/ceph/ceph/pull/3947>`_, Sage Weil) | |
148 | * osd: DBObjectMap: lock header_lock on sync() (`issue#9891 <http://tracker.ceph.com/issues/9891>`_, `pr#3948 <http://github.com/ceph/ceph/pull/3948>`_, Samuel Just) | |
149 | * osd: do not ignore deleted pgs on startup (`issue#10617 <http://tracker.ceph.com/issues/10617>`_, `pr#3933 <http://github.com/ceph/ceph/pull/3933>`_, Sage Weil) | |
150 | * osd: ENOENT on clone (`issue#11199 <http://tracker.ceph.com/issues/11199>`_, `pr#4385 <http://github.com/ceph/ceph/pull/4385>`_, Samuel Just) | |
151 | * osd: erasure-code-profile set races with erasure-code-profile rm (`issue#11144 <http://tracker.ceph.com/issues/11144>`_, `pr#4383 <http://github.com/ceph/ceph/pull/4383>`_, Loic Dachary) | |
152 | * osd: FAILED assert(soid < scrubber.start || soid >= scrubber.end) (`issue#11156 <http://tracker.ceph.com/issues/11156>`_, `pr#4185 <http://github.com/ceph/ceph/pull/4185>`_, Samuel Just) | |
153 | * osd: FileJournal: fix journalq population in do_read_entry() (`issue#6003 <http://tracker.ceph.com/issues/6003>`_, `pr#3960 <http://github.com/ceph/ceph/pull/3960>`_, Samuel Just) | |
154 | * osd: fix negative degraded objects during backfilling (`issue#7737 <http://tracker.ceph.com/issues/7737>`_, `pr#4021 <http://github.com/ceph/ceph/pull/4021>`_, Guang Yang) | |
155 | * osd: get the currently atime of the object in cache pool for eviction (`issue#9985 <http://tracker.ceph.com/issues/9985>`_, `pr#3950 <http://github.com/ceph/ceph/pull/3950>`_, Sage Weil) | |
156 | * osd: load_pgs: we need to handle the case where an upgrade from earlier versions which ignored non-existent pgs resurrects a pg with a prehistoric osdmap (`issue#11429 <http://tracker.ceph.com/issues/11429>`_, `pr#4556 <http://github.com/ceph/ceph/pull/4556>`_, Samuel Just) | |
157 | * osd: ObjectStore: Don't use largest_data_off to calc data_align. (`issue#10014 <http://tracker.ceph.com/issues/10014>`_, `pr#3954 <http://github.com/ceph/ceph/pull/3954>`_, Jianpeng Ma) | |
158 | * osd: osd_types: op_queue_age_hist and fs_perf_stat should be in osd_stat_t::o... (`issue#10259 <http://tracker.ceph.com/issues/10259>`_, `pr#3827 <http://github.com/ceph/ceph/pull/3827>`_, Samuel Just) | |
159 | * osd: PG::actingset should be used when checking the number of acting OSDs for... (`issue#11454 <http://tracker.ceph.com/issues/11454>`_, `pr#4453 <http://github.com/ceph/ceph/pull/4453>`_, Guang Yang) | |
160 | * osd: PG::all_unfound_are_queried_or_lost for non-existent osds (`issue#10976 <http://tracker.ceph.com/issues/10976>`_, `pr#4416 <http://github.com/ceph/ceph/pull/4416>`_, Mykola Golub) | |
161 | * osd: PG: always clear_primary_state (`issue#10059 <http://tracker.ceph.com/issues/10059>`_, `pr#3955 <http://github.com/ceph/ceph/pull/3955>`_, Samuel Just) | |
162 | * osd: PGLog.h: 279: FAILED assert(log.log.size() == log_keys_debug.size()) (`issue#10718 <http://tracker.ceph.com/issues/10718>`_, `pr#4382 <http://github.com/ceph/ceph/pull/4382>`_, Samuel Just) | |
163 | * osd: PGLog: include rollback_info_trimmed_to in (read|write)_log (`issue#10157 <http://tracker.ceph.com/issues/10157>`_, `pr#3964 <http://github.com/ceph/ceph/pull/3964>`_, Samuel Just) | |
164 | * osd: pg stuck stale after create with activation delay (`issue#11197 <http://tracker.ceph.com/issues/11197>`_, `pr#4384 <http://github.com/ceph/ceph/pull/4384>`_, Samuel Just) | |
165 | * osd: ReplicatedPG: fail a non-blocking flush if the object is being scrubbed (`issue#8011 <http://tracker.ceph.com/issues/8011>`_, `pr#3943 <http://github.com/ceph/ceph/pull/3943>`_, Samuel Just) | |
166 | * osd: ReplicatedPG::on_change: clean up callbacks_for_degraded_object (`issue#8753 <http://tracker.ceph.com/issues/8753>`_, `pr#3940 <http://github.com/ceph/ceph/pull/3940>`_, Samuel Just) | |
167 | * osd: ReplicatedPG::scan_range: an object can disappear between the list and t... (`issue#10150 <http://tracker.ceph.com/issues/10150>`_, `pr#3962 <http://github.com/ceph/ceph/pull/3962>`_, Samuel Just) | |
168 | * osd: requeue blocked op before flush it was blocked on (`issue#10512 <http://tracker.ceph.com/issues/10512>`_, `pr#3931 <http://github.com/ceph/ceph/pull/3931>`_, Sage Weil) | |
169 | * rgw: check for timestamp for s3 keystone auth (`issue#10062 <http://tracker.ceph.com/issues/10062>`_, `pr#3958 <http://github.com/ceph/ceph/pull/3958>`_, Abhishek Lekshmanan) | |
170 | * rgw: civetweb should use unique request id (`issue#11720 <http://tracker.ceph.com/issues/11720>`_, `pr#4780 <http://github.com/ceph/ceph/pull/4780>`_, Orit Wasserman) | |
171 | * rgw: don't allow negative / invalid content length (`issue#11890 <http://tracker.ceph.com/issues/11890>`_, `pr#4829 <http://github.com/ceph/ceph/pull/4829>`_, Yehuda Sadeh) | |
172 | * rgw: fail s3 POST auth if keystone not configured (`issue#10698 <http://tracker.ceph.com/issues/10698>`_, `pr#3966 <http://github.com/ceph/ceph/pull/3966>`_, Yehuda Sadeh) | |
173 | * rgw: flush xml header on get acl request (`issue#10106 <http://tracker.ceph.com/issues/10106>`_, `pr#3961 <http://github.com/ceph/ceph/pull/3961>`_, Yehuda Sadeh) | |
174 | * rgw: generate new tag for object when setting object attrs (`issue#11256 <http://tracker.ceph.com/issues/11256>`_, `pr#4571 <http://github.com/ceph/ceph/pull/4571>`_, Yehuda Sadeh) | |
175 | * rgw: generate the "Date" HTTP header for civetweb. (`issue#11871,11891 <http://tracker.ceph.com/issues/11871,11891>`_, `pr#4851 <http://github.com/ceph/ceph/pull/4851>`_, Radoslaw Zarzynski) | |
176 | * rgw: keystone token cache does not work correctly (`issue#11125 <http://tracker.ceph.com/issues/11125>`_, `pr#4414 <http://github.com/ceph/ceph/pull/4414>`_, Yehuda Sadeh) | |
177 | * rgw: merge manifests correctly when there's prefix override (`issue#11622 <http://tracker.ceph.com/issues/11622>`_, `pr#4697 <http://github.com/ceph/ceph/pull/4697>`_, Yehuda Sadeh) | |
178 | * rgw: send appropriate op to cancel bucket index pending operation (`issue#10770 <http://tracker.ceph.com/issues/10770>`_, `pr#3938 <http://github.com/ceph/ceph/pull/3938>`_, Yehuda Sadeh) | |
179 | * rgw: shouldn't need to disable rgw_socket_path if frontend is configured (`issue#11160 <http://tracker.ceph.com/issues/11160>`_, `pr#4275 <http://github.com/ceph/ceph/pull/4275>`_, Yehuda Sadeh) | |
180 | * rgw: Swift API. Dump container's custom metadata. (`issue#10665 <http://tracker.ceph.com/issues/10665>`_, `pr#3934 <http://github.com/ceph/ceph/pull/3934>`_, Dmytro Iurchenko) | |
181 | * rgw: Swift API. Support for X-Remove-Container-Meta-{key} header. (`issue#10475 <http://tracker.ceph.com/issues/10475>`_, `pr#3929 <http://github.com/ceph/ceph/pull/3929>`_, Dmytro Iurchenko) | |
182 | * rgw: use correct objv_tracker for bucket instance (`issue#11416 <http://tracker.ceph.com/issues/11416>`_, `pr#4379 <http://github.com/ceph/ceph/pull/4379>`_, Yehuda Sadeh) | |
183 | * tests: force checkout of submodules (`issue#11157 <http://tracker.ceph.com/issues/11157>`_, `pr#4079 <http://github.com/ceph/ceph/pull/4079>`_, Loic Dachary) | |
184 | * tools: Backport ceph-objectstore-tool changes to firefly (`issue#12327 <http://tracker.ceph.com/issues/12327>`_, `pr#3866 <http://github.com/ceph/ceph/pull/3866>`_, David Zafman) | |
185 | * tools: ceph-objectstore-tool: Output only unsupported features when incomatible (`issue#11176 <http://tracker.ceph.com/issues/11176>`_, `pr#4126 <http://github.com/ceph/ceph/pull/4126>`_, David Zafman) | |
186 | * tools: ceph-objectstore-tool: Use exit status 11 for incompatible import attemp... (`issue#11139 <http://tracker.ceph.com/issues/11139>`_, `pr#4129 <http://github.com/ceph/ceph/pull/4129>`_, David Zafman) | |
187 | * tools: Fix do_autogen.sh so that -L is allowed (`issue#11303 <http://tracker.ceph.com/issues/11303>`_, `pr#4247 <http://github.com/ceph/ceph/pull/4247>`_, Alfredo Deza) | |
188 | ||
189 | v0.80.9 Firefly | |
190 | =============== | |
191 | ||
192 | This is a bugfix release for firefly. It fixes a performance | |
193 | regression in librbd, an important CRUSH misbehavior (see below), and | |
194 | several RGW bugs. We have also backported support for flock/fcntl | |
195 | locks to ceph-fuse and libcephfs. | |
196 | ||
197 | We recommend that all Firefly users upgrade. | |
198 | ||
199 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.9.txt>`. | |
200 | ||
201 | Adjusting CRUSH maps | |
202 | -------------------- | |
203 | ||
204 | * This point release fixes several issues with CRUSH that trigger | |
205 | excessive data migration when adjusting OSD weights. These are most | |
206 | obvious when a very small weight change (e.g., a change from 0 to | |
207 | .01) triggers a large amount of movement, but the same set of bugs | |
208 | can also lead to excessive (though less noticeable) movement in | |
209 | other cases. | |
210 | ||
211 | However, because the bug may already have affected your cluster, | |
212 | fixing it may trigger movement *back* to the more correct location. | |
213 | For this reason, you must manually opt-in to the fixed behavior. | |
214 | ||
215 | In order to set the new tunable to correct the behavior:: | |
216 | ||
217 | ceph osd crush set-tunable straw_calc_version 1 | |
218 | ||
219 | Note that this change will have no immediate effect. However, from | |
220 | this point forward, any 'straw' bucket in your CRUSH map that is | |
221 | adjusted will get non-buggy internal weights, and that transition | |
222 | may trigger some rebalancing. | |
223 | ||
224 | You can estimate how much rebalancing will eventually be necessary | |
225 | on your cluster with:: | |
226 | ||
227 | ceph osd getcrushmap -o /tmp/cm | |
228 | crushtool -i /tmp/cm --num-rep 3 --test --show-mappings > /tmp/a 2>&1 | |
229 | crushtool -i /tmp/cm --set-straw-calc-version 1 -o /tmp/cm2 | |
230 | crushtool -i /tmp/cm2 --reweight -o /tmp/cm2 | |
231 | crushtool -i /tmp/cm2 --num-rep 3 --test --show-mappings > /tmp/b 2>&1 | |
232 | wc -l /tmp/a # num total mappings | |
233 | diff -u /tmp/a /tmp/b | grep -c ^+ # num changed mappings | |
234 | ||
235 | Divide the number of changed lines by the total number of lines in | |
236 | /tmp/a. We've found that most clusters are under 10%. | |
237 | ||
238 | You can force all of this rebalancing to happen at once with:: | |
239 | ||
240 | ceph osd crush reweight-all | |
241 | ||
242 | Otherwise, it will happen at some unknown point in the future when | |
243 | CRUSH weights are next adjusted. | |
244 | ||
245 | Notable Changes | |
246 | --------------- | |
247 | ||
248 | * ceph-fuse: flock, fcntl lock support (Yan, Zheng, Greg Farnum) | |
249 | * crush: fix straw bucket weight calculation, add straw_calc_version tunable (#10095 Sage Weil) | |
250 | * crush: fix tree bucket (Rongzu Zhu) | |
251 | * crush: fix underflow of tree weights (Loic Dachary, Sage Weil) | |
252 | * crushtool: add --reweight (Sage Weil) | |
253 | * librbd: complete pending operations before losing image (#10299 Jason Dillaman) | |
254 | * librbd: fix read caching performance regression (#9854 Jason Dillaman) | |
255 | * librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman) | |
256 | * mon: fix dump of chooseleaf_vary_r tunable (Sage Weil) | |
257 | * osd: fix PG ref leak in snaptrimmer on peering (#10421 Kefu Chai) | |
258 | * osd: handle no-op write with snapshot (#10262 Sage Weil) | |
259 | * radosgw-admin: create subuser when creating user (#10103 Yehuda Sadeh) | |
260 | * rgw: change multipart uplaod id magic (#10271 Georgio Dimitrakakis, Yehuda Sadeh) | |
261 | * rgw: don't overwrite bucket/object owner when setting ACLs (#10978 Yehuda Sadeh) | |
262 | * rgw: enable IPv6 for embedded civetweb (#10965 Yehuda Sadeh) | |
263 | * rgw: fix partial swift GET (#10553 Yehuda Sadeh) | |
264 | * rgw: fix quota disable (#9907 Dong Lei) | |
265 | * rgw: index swift keys appropriately (#10471 Hemant Burman, Yehuda Sadeh) | |
266 | * rgw: make setattrs update bucket index (#5595 Yehuda Sadeh) | |
267 | * rgw: pass civetweb configurables (#10907 Yehuda Sadeh) | |
268 | * rgw: remove swift user manifest (DLO) hash calculation (#9973 Yehuda Sadeh) | |
269 | * rgw: return correct len for 0-len objects (#9877 Yehuda Sadeh) | |
270 | * rgw: S3 object copy content-type fix (#9478 Yehuda Sadeh) | |
271 | * rgw: send ETag on S3 object copy (#9479 Yehuda Sadeh) | |
272 | * rgw: send HTTP status reason explicitly in fastcgi (Yehuda Sadeh) | |
273 | * rgw: set ulimit -n from sysvinit (el6) init script (#9587 Sage Weil) | |
274 | * rgw: update swift subuser permission masks when authenticating (#9918 Yehuda Sadeh) | |
275 | * rgw: URL decode query params correctly (#10271 Georgio Dimitrakakis, Yehuda Sadeh) | |
276 | * rgw: use attrs when reading object attrs (#10307 Yehuda Sadeh) | |
277 | * rgw: use \r\n for http headers (#9254 Benedikt Fraunhofer, Yehuda Sadeh) | |
278 | ||
279 | ||
280 | v0.80.8 Firefly | |
281 | =============== | |
282 | ||
283 | This is a long-awaited bugfix release for firefly. It has several | |
284 | important (but relatively rare) OSD peering fixes, performance issues | |
285 | when snapshots are trimmed, several RGW fixes, a paxos corner case | |
286 | fix, and some packaging updates. | |
287 | ||
288 | We recommend that all users for v0.80.x firefly upgrade when it is | |
289 | convenient to do so. | |
290 | ||
291 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.8.txt>`. | |
292 | ||
293 | Notable Changes | |
294 | --------------- | |
295 | ||
296 | * build: remove stack-execute bit from assembled code sections (#10114 Dan Mick) | |
297 | * ceph-disk: fix dmcrypt key permissions (#9785 Loic Dachary) | |
298 | * ceph-disk: fix keyring location (#9653 Loic Dachary) | |
299 | * ceph-disk: make partition checks more robust (#9721 #9665 Loic Dachary) | |
300 | * ceph: cleanly shut down librados context on shutdown (#8797 Dan Mick) | |
301 | * common: add $cctid config metavariable (#6228 Adam Crume) | |
302 | * crush: align rule and ruleset ids (#9675 Xiaoxi Chen) | |
303 | * crush: fix negative weight bug during create_or_move_item (#9998 Pawel Sadowski) | |
304 | * crush: fix potential buffer overflow in erasure rules (#9492 Johnu George) | |
305 | * debian: fix python-ceph -> ceph file movement (Sage Weil) | |
306 | * libcephfs,ceph-fuse: fix flush tid wraparound bug (#9869 Greg Farnum, Yan, Zheng) | |
307 | * libcephfs: close fd befure umount (#10415 Yan, Zheng) | |
308 | * librados: fix crash from C API when read timeout is enabled (#9582 Sage Weil) | |
309 | * librados: handle reply race with pool deletion (#10372 Sage Weil) | |
310 | * librbd: cap memory utilization for read requests (Jason Dillaman) | |
311 | * librbd: do not close a closed parent image on failure (#10030 Jason Dillaman) | |
312 | * librbd: fix diff tests (#10002 Josh Durgin) | |
313 | * librbd: protect list_children from invalid pools (#10123 Jason Dillaman) | |
314 | * make check improvemens (Loic Dachary) | |
315 | * mds: fix ctime updates (#9514 Greg Farnum) | |
316 | * mds: fix journal import tool (#10025 John Spray) | |
317 | * mds: fix rare NULL deref in cap flush handler (Greg Farnum) | |
318 | * mds: handle unknown lock messages (Yan, Zheng) | |
319 | * mds: store backtrace for straydir (Yan, Zheng) | |
320 | * mon: abort startup if disk is full (#9502 Joao Eduardo Luis) | |
321 | * mon: add paxos instrumentation (Sage Weil) | |
322 | * mon: fix double-free in rare OSD startup path (Sage Weil) | |
323 | * mon: fix osdmap trimming (#9987 Sage Weil) | |
324 | * mon: fix paxos corner cases (#9301 #9053 Sage Weil) | |
325 | * osd: cancel callback on blacklisted watchers (#8315 Samuel Just) | |
326 | * osd: cleanly abort set-alloc-hint operations during upgrade (#9419 David Zafman) | |
327 | * osd: clear rollback PG metadata on PG deletion (#9293 Samuel Just) | |
328 | * osd: do not abort deep scrub if hinfo is missing (#10018 Loic Dachary) | |
329 | * osd: erasure-code regression tests (Loic Dachary) | |
330 | * osd: fix distro metadata reporting for SUSE (#8654 Danny Al-Gaaf) | |
331 | * osd: fix full OSD checks during backfill (#9574 Samuel Just) | |
332 | * osd: fix ioprio parsing (#9677 Loic Dachary) | |
333 | * osd: fix journal direct-io shutdown (#9073 Mark Kirkwood, Ma Jianpeng, Somnath Roy) | |
334 | * osd: fix journal dump (Ma Jianpeng) | |
335 | * osd: fix occasional stall during peering or activation (Sage Weil) | |
336 | * osd: fix past_interval display bug (#9752 Loic Dachary) | |
337 | * osd: fix rare crash triggered by admin socket dump_ops_in_filght (#9916 Dong Lei) | |
338 | * osd: fix snap trimming performance issues (#9487 #9113 Samuel Just, Sage Weil, Dan van der Ster, Florian Haas) | |
339 | * osd: fix snapdir handling on cache eviction (#8629 Sage Weil) | |
340 | * osd: handle map gaps in map advance code (Sage Weil) | |
341 | * osd: handle undefined CRUSH results in interval check (#9718 Samuel Just) | |
342 | * osd: include shard in JSON dump of ghobject (#10063 Loic Dachary) | |
343 | * osd: make backfill reservation denial handling more robust (#9626 Samuel Just) | |
344 | * osd: make misdirected op checks handle EC + primary affinity (#9835 Samuel Just, Sage Weil) | |
345 | * osd: mount XFS with inode64 by default (Sage Weil) | |
346 | * osd: other misc bugs (#9821 #9875 Samuel Just) | |
347 | * rgw: add .log to default log path (#9353 Alexandre Marangone) | |
348 | * rgw: clean up fcgi request context (#10194 Yehuda Sadeh) | |
349 | * rgw: convet header underscores to dashes (#9206 Yehuda Sadeh) | |
350 | * rgw: copy object data if copy target is in different pool (#9039 Yehuda Sadeh) | |
351 | * rgw: don't try to authenticate CORS peflight request (#8718 Robert Hubbard, Yehuda Sadeh) | |
352 | * rgw: fix civetweb URL decoding (#8621 Yehuda Sadeh) | |
353 | * rgw: fix hash calculation during PUT (Yehuda Sadeh) | |
354 | * rgw: fix misc bugs (#9089 #9201 Yehuda Sadeh) | |
355 | * rgw: fix object tail test (#9226 Sylvain Munaut, Yehuda Sadeh) | |
356 | * rgw: make sysvinit script run rgw under systemd context as needed (#10125 Loic Dachary) | |
357 | * rgw: separate civetweb log from rgw log (Yehuda Sadeh) | |
358 | * rgw: set length for keystone token validations (#7796 Mark Kirkwood, Yehuda Sadeh) | |
359 | * rgw: subuser creation fixes (#8587 Yehuda Sadeh) | |
360 | * rpm: misc packaging improvements (Sandon Van Ness, Dan Mick, Erik Logthenberg, Boris Ranto) | |
361 | * rpm: use standard udev rules for CentOS7/RHEL7 (#9747 Loic Dachary) | |
362 | ||
363 | ||
364 | v0.80.7 Firefly | |
365 | =============== | |
366 | ||
367 | This release fixes a few critical issues with v0.80.6, particularly | |
368 | with clusters running mixed versions. | |
369 | ||
370 | We recommend that all v0.80.x Firefly users upgrade to this release. | |
371 | ||
372 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.7.txt>`. | |
373 | ||
374 | Notable Changes | |
375 | --------------- | |
376 | ||
377 | * osd: fix invalid memory reference in log trimming (#9731 Samuel Just) | |
378 | * osd: fix use-after-free in cache tiering code (#7588 Sage Weil) | |
379 | * osd: remove bad backfill assertion for mixed-version clusters (#9696 Samuel Just) | |
380 | ||
381 | ||
382 | ||
383 | v0.80.6 Firefly | |
384 | =============== | |
385 | ||
386 | This is a major bugfix release for firefly, fixing a range of issues | |
387 | in the OSD and monitor, particularly with cache tiering. There are | |
388 | also important fixes in librados, with the watch/notify mechanism used | |
389 | by librbd, and in radosgw. | |
390 | ||
391 | A few pieces of new functionality of been backported, including improved | |
392 | 'ceph df' output (view amount of writeable space per pool), support for | |
393 | non-default cluster names when using sysvinit or systemd, and improved | |
394 | (and fixed) support for dmcrypt. | |
395 | ||
396 | We recommend that all v0.80.x Firefly users upgrade to this release. | |
397 | ||
398 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.6.txt>`. | |
399 | ||
400 | Notable Changes | |
401 | --------------- | |
402 | ||
403 | * build: fix atomic64_t on i386 (#8969 Sage Weil) | |
404 | * build: fix build on alpha (Michael Cree, Dmitry Smirnov) | |
405 | * build: fix build on hppa (Dmitry Smirnov) | |
406 | * build: fix yasm detection on x32 arch (Sage Weil) | |
407 | * ceph-disk: fix 'list' function with dmcrypt (Sage Weil) | |
408 | * ceph-disk: fix dmcrypt support (Alfredo Deza) | |
409 | * ceph: allow non-default cluster to be specified (#8944) | |
410 | * common: fix dup log messages to mon (#9080 Sage Weil) | |
411 | * global: write pid file when -f is used (systemd, upstart) (Alexandre Oliva) | |
412 | * librados: fix crash when read timeout is enabled (#9362 Matthias Kiefer, Sage Weil) | |
413 | * librados: fix lock leaks in error paths (#9022 Pavan Rallabhandi) | |
414 | * librados: fix watch resend on PG acting set change (#9220 Samuel Just) | |
415 | * librados: python: fix aio_read handling with \0 (Mohammad Salehe) | |
416 | * librbd: add interface to invalidate cached data (Josh Durgin) | |
417 | * librbd: fix crash when using clone of flattened image (#8845 Josh Durgin) | |
418 | * librbd: fix error path cleanup on open (#8912 Josh Durgin) | |
419 | * librbd: fix null pointer check (Danny Al-Gaaf) | |
420 | * librbd: limit dirty object count (Haomai Wang) | |
421 | * mds: fix rstats for root and mdsdir (Yan, Zheng) | |
422 | * mon: add 'get' command for new cache tier pool properties (Joao Eduardo Luis) | |
423 | * mon: add 'osd pool get-quota' (#8523 Joao Eduardo Luis) | |
424 | * mon: add cluster fingerprint (Sage Weil) | |
425 | * mon: disallow nonsensical cache-mode transitions (#8155 Joao Eduardo Luis) | |
426 | * mon: fix cache tier rounding error on i386 (Sage Weil) | |
427 | * mon: fix occasional memory leak (#9176 Sage Weil) | |
428 | * mon: fix reported latency for 'osd perf' (#9269 Samuel Just) | |
429 | * mon: include 'max avail' in 'ceph df' output (Sage Weil, Xioaxi Chen) | |
430 | * mon: persistently mark pools where scrub may find incomplete clones (#8882 Sage Weil) | |
431 | * mon: preload erasure plugins (Loic Dachary) | |
432 | * mon: prevent cache-specific settings on non-tier pools (#8696 Joao Eduardo Luis) | |
433 | * mon: reduce log spam (Aanchal Agrawal, Sage Weil) | |
434 | * mon: warn when cache pools have no hit_sets enabled (Sage Weil) | |
435 | * msgr: fix trivial memory leak (Sage Weil) | |
436 | * osd: automatically scrub PGs with invalid stats (#8147 Sage Weil) | |
437 | * osd: avoid sharing PG metadata that is not durable (Samuel Just) | |
438 | * osd: cap hit_set size (#9339 Samuel Just) | |
439 | * osd: create default erasure profile if needed (#8601 Loic Dachary) | |
440 | * osd: dump tid as JSON int (not string) where appropriate (Joao Eduardo Luis) | |
441 | * osd: encode blacklist in deterministic order (#9211 Sage Weil) | |
442 | * osd: fix behavior when cache tier has no hit_sets enabled (#8982 Sage Weil) | |
443 | * osd: fix cache tier flushing of snapshots (#9054 Samuel Just) | |
444 | * osd: fix cache tier op ordering when going from full to non-full (#8931 Sage Weil) | |
445 | * osd: fix crash on dup recovery reservation (#8863 Sage Weil) | |
446 | * osd: fix division by zero when pg_num adjusted with no OSDs (#9052 Sage Weil) | |
447 | * osd: fix hint crash in experimental keyvaluestore_dev backend (Hoamai Wang) | |
448 | * osd: fix leak in copyfrom cancellation (#8894 Samuel Just) | |
449 | * osd: fix locking for copyfrom finish (#8889 Sage Weil) | |
450 | * osd: fix long filename handling in backend (#8701 Sage Weil) | |
451 | * osd: fix min_size check with backfill (#9497 Samuel Just) | |
452 | * osd: fix mount/remount sync race (#9144 Sage Weil) | |
453 | * osd: fix object listing + erasure code bug (Guang Yang) | |
454 | * osd: fix race on reconnect to failed OSD (#8944 Greg Farnum) | |
455 | * osd: fix recovery reservation deadlock (Samuel Just) | |
456 | * osd: fix tiering agent arithmetic for negative values (#9082 Karan Singh) | |
457 | * osd: improve shutdown order (#9218 Sage Weil) | |
458 | * osd: improve subop discard logic (#9259 Samuel Just) | |
459 | * osd: introduce optional sleep, io priority for scrub and snap trim (Sage Weil) | |
460 | * osd: make scrub check for and remove stale erasure-coded objects (Samuel Just) | |
461 | * osd: misc fixes (#9481 #9482 #9179 Sameul Just) | |
462 | * osd: mix keyvaluestore_dev improvements (Haomai Wang) | |
463 | * osd: only require CRUSH features for rules that are used (#8963 Sage Weil) | |
464 | * osd: preload erasure plugins on startup (Loic Dachary) | |
465 | * osd: prevent PGs from falling behind when consuming OSDMaps (#7576 Sage Weil) | |
466 | * osd: prevent old clients from using tiered pools (#8714 Sage Weil) | |
467 | * osd: set min_size on erasure pools to data chunk count (Sage Weil) | |
468 | * osd: trim old erasure-coded objects more aggressively (Samuel Just) | |
469 | * rados: enforce erasure code alignment (Lluis Pamies-Juarez) | |
470 | * rgw: align object stripes with erasure pool alignment (#8442 Yehuda Sadeh) | |
471 | * rgw: don't send error body on HEAD for civetweb (#8539 Yehuda Sadeh) | |
472 | * rgw: fix crash in CORS preflight request (Yehuda Sadeh) | |
473 | * rgw: fix decoding of + in URL (#8702 Brian Rak) | |
474 | * rgw: fix object removal on object create (#8972 Patrycja Szabowska, Yehuda Sadeh) | |
475 | * systemd: use systemd-run when starting radosgw (JuanJose Galvez) | |
476 | * sysvinit: support non-default cluster name (Alfredo Deza) | |
477 | ||
478 | ||
479 | v0.80.5 Firefly | |
480 | =============== | |
481 | ||
482 | This release fixes a few important bugs in the radosgw and fixes | |
483 | several packaging and environment issues, including OSD log rotation, | |
484 | systemd environments, and daemon restarts on upgrade. | |
485 | ||
486 | We recommend that all v0.80.x Firefly users upgrade, particularly if they | |
487 | are using upstart, systemd, or radosgw. | |
488 | ||
489 | Notable Changes | |
490 | --------------- | |
491 | ||
492 | * ceph-dencoder: do not needlessly link to librgw, librados, etc. (Sage Weil) | |
493 | * do not needlessly link binaries to leveldb (Sage Weil) | |
494 | * mon: fix mon crash when no auth keys are present (#8851, Joao Eduardo Luis) | |
495 | * osd: fix cleanup (and avoid occasional crash) during shutdown (#7981, Sage Weil) | |
496 | * osd: fix log rotation under upstart (Sage Weil) | |
497 | * rgw: fix multipart upload when object has irregular size (#8846, Yehuda Sadeh, Sylvain Munaut) | |
498 | * rgw: improve bucket listing S3 compatibility (#8858, Yehuda Sadeh) | |
499 | * rgw: improve delimited bucket listing (Yehuda Sadeh) | |
500 | * rpm: do not restart daemons on upgrade (#8849, Alfredo Deza) | |
501 | ||
502 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.5.txt>`. | |
503 | ||
504 | v0.80.4 Firefly | |
505 | =============== | |
506 | ||
507 | This Firefly point release fixes an potential data corruption problem | |
508 | when ceph-osd daemons run on top of XFS and service Firefly librbd | |
509 | clients. A recently added allocation hint that RBD utilizes triggers | |
510 | an XFS bug on some kernels (Linux 3.2, and likely others) that leads | |
511 | to data corruption and deep-scrub errors (and inconsistent PGs). This | |
512 | release avoids the situation by disabling the allocation hint until we | |
513 | can validate which kernels are affected and/or are known to be safe to | |
514 | use the hint on. | |
515 | ||
516 | We recommend that all v0.80.x Firefly users urgently upgrade, | |
517 | especially if they are using RBD. | |
518 | ||
519 | Notable Changes | |
520 | --------------- | |
521 | ||
522 | * osd: disable XFS extsize hint by default (#8830, Samuel Just) | |
523 | * rgw: fix extra data pool default name (Yehuda Sadeh) | |
524 | ||
525 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.4.txt>`. | |
526 | ||
527 | ||
528 | v0.80.3 Firefly | |
529 | =============== | |
530 | ||
531 | This is the third Firefly point release. It includes a single fix | |
532 | for a radosgw regression that was discovered in v0.80.2 right after it | |
533 | was released. | |
534 | ||
535 | We recommend that all v0.80.x Firefly users upgrade. | |
536 | ||
537 | Notable Changes | |
538 | --------------- | |
539 | ||
540 | * radosgw: fix regression in manifest decoding (#8804, Sage Weil) | |
541 | ||
542 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.3.txt>`. | |
543 | ||
544 | ||
545 | v0.80.2 Firefly | |
546 | =============== | |
547 | ||
548 | This is the second Firefly point release. It contains a range of | |
549 | important fixes, including several bugs in the OSD cache tiering, some | |
550 | compatibility checks that affect upgrade situations, several radosgw | |
551 | bugs, and an irritating and unnecessary feature bit check that | |
552 | prevents older clients from communicating with a cluster with any | |
553 | erasure coded pools. | |
554 | ||
555 | One someone large change in this point release is that the ceph RPM | |
556 | package is separated into a ceph and ceph-common package, similar to | |
557 | Debian. The ceph-common package contains just the client libraries | |
558 | without any of the server-side daemons. | |
559 | ||
560 | We recommend that all v0.80.x Firefly users skip this release and use | |
561 | v0.80.3. | |
562 | ||
563 | Notable Changes | |
564 | --------------- | |
565 | ||
566 | * ceph-disk: better debug logging (Alfredo Deza) | |
567 | * ceph-disk: fix preparation of OSDs with dmcrypt (#6700, Stephen F Taylor) | |
568 | * ceph-disk: partprobe on prepare to fix dm-crypt (#6966, Eric Eastman) | |
569 | * do not require ERASURE_CODE feature from clients (#8556, Sage Weil) | |
570 | * libcephfs-java: build with older JNI headers (Greg Farnum) | |
571 | * libcephfs-java: fix build with gcj-jdk (Dmitry Smirnov) | |
572 | * librados: fix osd op tid for redirected ops (#7588, Samuel Just) | |
573 | * librados: fix rados_pool_list buffer bounds checks (#8447, Sage Weil) | |
574 | * librados: resend ops when pool overlay changes (#8305, Sage Weil) | |
575 | * librbd, ceph-fuse: reduce CPU overhead for clean object check in cache (Haomai Wang) | |
576 | * mon: allow deletion of cephfs pools (John Spray) | |
577 | * mon: fix default pool ruleset choice (#8373, John Spray) | |
578 | * mon: fix health summary for mon low disk warning (Sage Weil) | |
579 | * mon: fix 'osd pool set <pool> cache_target_full_ratio' (Geoffrey Hartz) | |
580 | * mon: fix quorum feature check (Greg Farnum) | |
581 | * mon: fix request forwarding in mixed firefly+dumpling clusters 9#8727, Joao Eduardo Luis) | |
582 | * mon: fix rule vs ruleset check in 'osd pool set ... crush_ruleset' command (John Spray) | |
583 | * mon: make osd 'down' count accurate (Sage Weil) | |
584 | * mon: set 'next commit' in primary-affinity reply (Ilya Dryomov) | |
585 | * mon: verify CRUSH features are supported by all mons (#8738, Greg Farnum) | |
586 | * msgr: fix sequence negotiation during connection reset (Guang Yang) | |
587 | * osd: block scrub on blocked objects (#8011, Samuel Just) | |
588 | * osd: call XFS hint ioctl less often (#8241, Ilya Dryomov) | |
589 | * osd: copy xattr spill out marker on clone (Haomai Wang) | |
590 | * osd: fix flush of snapped objects (#8334, Samuel Just) | |
591 | * osd: fix hashindex restart of merge operation (#8332, Samuel Just) | |
592 | * osd: fix osdmap subscription bug causing startup hang (Greg Farnum) | |
593 | * osd: fix potential null deref (#8328, Sage Weil) | |
594 | * osd: fix shutdown race (#8319, Sage Weil) | |
595 | * osd: handle 'none' in CRUSH results properly during peering (#8507, Samuel Just) | |
596 | * osd: set no spill out marker on new objects (Greg Farnum) | |
597 | * osd: skip op ordering debug checks on tiered pools (#8380, Sage Weil) | |
598 | * rados: enforce 'put' alignment (Lluis Pamies-Juarez) | |
599 | * rest-api: fix for 'rx' commands (Ailing Zhang) | |
600 | * rgw: calc user manifest etag and fix check (#8169, #8436, Yehuda Sadeh) | |
601 | * rgw: fetch attrs on multipart completion (#8452, Yehuda Sadeh, Sylvain Munaut) | |
602 | * rgw: fix buffer overflow for long instance ids (#8608, Yehuda Sadeh) | |
603 | * rgw: fix entity permission check on metadata put (#8428, Yehuda Sadeh) | |
604 | * rgw: fix multipart retry race (#8269, Yehuda Sadeh) | |
605 | * rpm: split ceph into ceph and ceph-common RPMs (Sandon Van Ness, Dan Mick) | |
606 | * sysvinit: continue startin daemons after failure doing mount (#8554, Sage Weil) | |
607 | ||
608 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.2.txt>`. | |
609 | ||
610 | v0.80.1 Firefly | |
611 | =============== | |
612 | ||
613 | This first Firefly point release fixes a few bugs, the most visible | |
614 | being a problem that prevents scrub from completing in some cases. | |
615 | ||
616 | Notable Changes | |
617 | --------------- | |
618 | ||
619 | * osd: revert incomplete scrub fix (Samuel Just) | |
620 | * rgw: fix stripe calculation for manifest objects (Yehuda Sadeh) | |
621 | * rgw: improve handling, memory usage for abort reads (Yehuda Sadeh) | |
622 | * rgw: send Swift user manifest HTTP header (Yehuda Sadeh) | |
623 | * libcephfs, ceph-fuse: expose MDS session state via admin socket (Yan, Zheng) | |
624 | * osd: add simple throttle for snap trimming (Sage Weil) | |
625 | * monclient: fix possible hang from ill-timed monitor connection failure (Sage Weil) | |
626 | * osd: fix trimming of past HitSets (Sage Weil) | |
627 | * osd: fix whiteouts for non-writeback cache modes (Sage Weil) | |
628 | * osd: prevent divide by zero in tiering agent (David Zafman) | |
629 | * osd: prevent busy loop when tiering agent can do no work (David Zafman) | |
630 | ||
631 | For more detailed information, see :download:`the complete changelog <../changelog/v0.80.1.txt>`. | |
632 | ||
633 | ||
634 | v0.80 Firefly | |
635 | ============= | |
636 | ||
637 | This release will form the basis for our long-term supported release | |
638 | Firefly, v0.80.x. The big new features are support for erasure coding | |
639 | and cache tiering, although a broad range of other features, fixes, | |
640 | and improvements have been made across the code base. Highlights include: | |
641 | ||
642 | * *Erasure coding*: support for a broad range of erasure codes for lower | |
643 | storage overhead and better data durability. | |
644 | * *Cache tiering*: support for creating 'cache pools' that store hot, | |
645 | recently accessed objects with automatic demotion of colder data to | |
646 | a base tier. Typically the cache pool is backed by faster storage | |
647 | devices like SSDs. | |
648 | * *Primary affinity*: Ceph now has the ability to skew selection of | |
649 | OSDs as the "primary" copy, which allows the read workload to be | |
650 | cheaply skewed away from parts of the cluster without migrating any | |
651 | data. | |
652 | * *Key/value OSD backend* (experimental): An alternative storage backend | |
653 | for Ceph OSD processes that puts all data in a key/value database like | |
654 | leveldb. This provides better performance for workloads dominated by | |
655 | key/value operations (like radosgw bucket indices). | |
656 | * *Standalone radosgw* (experimental): The radosgw process can now run | |
657 | in a standalone mode without an apache (or similar) web server or | |
658 | fastcgi. This simplifies deployment and can improve performance. | |
659 | ||
660 | We expect to maintain a series of stable releases based on v0.80 | |
661 | Firefly for as much as a year. In the meantime, development of Ceph | |
662 | continues with the next release, Giant, which will feature work on the | |
663 | CephFS distributed file system, more alternative storage backends | |
664 | (like RocksDB and f2fs), RDMA support, support for pyramid erasure | |
665 | codes, and additional functionality in the block device (RBD) like | |
666 | copy-on-read and multisite mirroring. | |
667 | ||
668 | ||
669 | Upgrade Sequencing | |
670 | ------------------ | |
671 | ||
672 | * If your existing cluster is running a version older than v0.67 | |
673 | Dumpling, please first upgrade to the latest Dumpling release before | |
674 | upgrading to v0.80 Firefly. Please refer to the :ref:`dumpling-upgrade` | |
675 | documentation. | |
676 | ||
677 | * We recommend adding the following to the [mon] section of your | |
678 | ceph.conf prior to upgrade:: | |
679 | ||
680 | mon warn on legacy crush tunables = false | |
681 | ||
682 | This will prevent health warnings due to the use of legacy CRUSH | |
683 | placement. Although it is possible to rebalance existing data | |
684 | across your cluster (see the upgrade notes below), we do not | |
685 | normally recommend it for production environments as a large amount | |
686 | of data will move and there is a significant performance impact from | |
687 | the rebalancing. | |
688 | ||
689 | * Upgrade daemons in the following order: | |
690 | ||
691 | #. Monitors | |
692 | #. OSDs | |
693 | #. MDSs and/or radosgw | |
694 | ||
695 | If the ceph-mds daemon is restarted first, it will wait until all | |
696 | OSDs have been upgraded before finishing its startup sequence. If | |
697 | the ceph-mon daemons are not restarted prior to the ceph-osd | |
698 | daemons, they will not correctly register their new capabilities | |
699 | with the cluster and new features may not be usable until they are | |
700 | restarted a second time. | |
701 | ||
702 | * Upgrade radosgw daemons together. There is a subtle change in behavior | |
703 | for multipart uploads that prevents a multipart request that was initiated | |
704 | with a new radosgw from being completed by an old radosgw. | |
705 | ||
706 | ||
707 | Upgrading from v0.79 | |
708 | -------------------- | |
709 | ||
710 | * OSDMap's json-formatted dump changed for keys 'full' and 'nearfull'. | |
711 | What was previously being outputted as 'true' or 'false' strings are | |
712 | now being outputted 'true' and 'false' booleans according to json syntax. | |
713 | ||
714 | * HEALTH_WARN on 'mon osd down out interval == 0'. Having this option set | |
715 | to zero on the leader acts much like having the 'noout' flag set. This | |
716 | warning will only be reported if the monitor getting the 'health' or | |
717 | 'status' request has this option set to zero. | |
718 | ||
719 | * Monitor 'auth' commands now require the mon 'x' capability. This matches | |
720 | dumpling v0.67.x and earlier, but differs from emperor v0.72.x. | |
721 | ||
722 | * A librados WATCH operation on a non-existent object now returns ENOENT; | |
723 | previously it did not. | |
724 | ||
725 | * Librados interface change: As there are no partial writes, the rados_write() | |
726 | and rados_append() operations now return 0 on success like rados_write_full() | |
727 | always has. This includes the C++ interface equivalents and AIO return | |
728 | values for the aio variants. | |
729 | ||
730 | * The radosgw init script (sysvinit) how requires that the 'host = ...' line in | |
731 | ceph.conf, if present, match the short hostname (the output of 'hostname -s'), | |
732 | not the fully qualified hostname or the (occasionally non-short) output of | |
733 | 'hostname'. Failure to adjust this when upgrading from emperor or dumpling | |
734 | may prevent the radosgw daemon from starting. | |
735 | ||
736 | Upgrading from v0.72 Emperor | |
737 | ---------------------------- | |
738 | ||
739 | * See notes above. | |
740 | ||
741 | * The 'ceph -s' or 'ceph status' command's 'num_in_osds' field in the | |
742 | JSON and XML output has been changed from a string to an int. | |
743 | ||
744 | * The recently added 'ceph mds set allow_new_snaps' command's syntax | |
745 | has changed slightly; it is now 'ceph mds set allow_new_snaps true'. | |
746 | The 'unset' command has been removed; instead, set the value to | |
747 | 'false'. | |
748 | ||
749 | * The syntax for allowing snapshots is now 'mds set allow_new_snaps | |
750 | <true|false>' instead of 'mds <set,unset> allow_new_snaps'. | |
751 | ||
752 | * 'rbd ls' on a pool which never held rbd images now exits with code | |
753 | 0. It outputs nothing in plain format, or an empty list in | |
754 | non-plain format. This is consistent with the behavior for a pool | |
755 | which used to hold images, but contains none. Scripts relying on | |
756 | this behavior should be updated. | |
757 | ||
758 | * The MDS requires a new OSD operation TMAP2OMAP, added in this release. When | |
759 | upgrading, be sure to upgrade and restart the ceph-osd daemons before the | |
760 | ceph-mds daemon. The MDS will refuse to start if any up OSDs do not support | |
761 | the new feature. | |
762 | ||
763 | * The 'ceph mds set_max_mds N' command is now deprecated in favor of | |
764 | 'ceph mds set max_mds N'. | |
765 | ||
766 | * The 'osd pool create ...' syntax has changed for erasure pools. | |
767 | ||
768 | * The default CRUSH rules and layouts are now using the 'bobtail' | |
769 | tunables and defaults. Upgaded clusters using the old values will | |
770 | now present with a health WARN state. This can be disabled by | |
771 | adding 'mon warn on legacy crush tunables = false' to ceph.conf and | |
772 | restarting the monitors. Alternatively, you can switch to the new | |
773 | tunables with 'ceph osd crush tunables firefly,' but keep in mind | |
774 | that this will involve moving a *significant* portion of the data | |
775 | already stored in the cluster and in a large cluster may take | |
776 | several days to complete. We do not recommend adjusting tunables on a | |
777 | production cluster. | |
778 | ||
779 | * We now default to the 'bobtail' CRUSH tunable values that are first supported | |
780 | by Ceph clients in bobtail (v0.56) and Linux kernel version v3.9. If you | |
781 | plan to access a newly created Ceph cluster with an older kernel client, you | |
782 | should use 'ceph osd crush tunables legacy' to switch back to the legacy | |
783 | behavior. Note that making that change will likely result in some data | |
784 | movement in the system, so adjust the setting before populating the new | |
785 | cluster with data. | |
786 | ||
787 | * We now set the HASHPSPOOL flag on newly created pools (and new | |
788 | clusters) by default. Support for this flag first appeared in | |
789 | v0.64; v0.67 Dumpling is the first major release that supports it. | |
790 | It is first supported by the Linux kernel version v3.9. If you plan | |
791 | to access a newly created Ceph cluster with an older kernel or | |
792 | clients (e.g, librados, librbd) from a pre-dumpling Ceph release, | |
793 | you should add 'osd pool default flag hashpspool = false' to the | |
794 | '[global]' section of your 'ceph.conf' prior to creating your | |
795 | monitors (e.g., after 'ceph-deploy new' but before 'ceph-deploy mon | |
796 | create ...'). | |
797 | ||
798 | * The configuration option 'osd pool default crush rule' is deprecated | |
799 | and replaced with 'osd pool default crush replicated ruleset'. 'osd | |
800 | pool default crush rule' takes precedence for backward compatibility | |
801 | and a deprecation warning is displayed when it is used. | |
802 | ||
803 | * As part of fix for #6796, 'ceph osd pool set <pool> <var> <arg>' now | |
804 | receives <arg> as an integer instead of a string. This affects how | |
805 | 'hashpspool' flag is set/unset: instead of 'true' or 'false', it now | |
806 | must be '0' or '1'. | |
807 | ||
808 | * The behavior of the CRUSH 'indep' choose mode has been changed. No | |
809 | ceph cluster should have been using this behavior unless someone has | |
810 | manually extracted a crush map, modified a CRUSH rule to replace | |
811 | 'firstn' with 'indep', recompiled, and reinjected the new map into | |
812 | the cluster. If the 'indep' mode is currently in use on a cluster, | |
813 | the rule should be modified to use 'firstn' instead, and the | |
814 | administrator should wait until any data movement completes before | |
815 | upgrading. | |
816 | ||
817 | * The 'osd dump' command now dumps pool snaps as an array instead of an | |
818 | object. | |
819 | ||
820 | ||
821 | Upgrading from v0.67 Dumpling | |
822 | ----------------------------- | |
823 | ||
824 | * See notes above. | |
825 | ||
826 | * ceph-fuse and radosgw now use the same default values for the admin | |
827 | socket and log file paths that the other daemons (ceph-osd, | |
828 | ceph-mon, etc.) do. If you run these daemons as non-root, you may | |
829 | need to adjust your ceph.conf to disable these options or to adjust | |
830 | the permissions on /var/run/ceph and /var/log/ceph. | |
831 | ||
832 | * The MDS now disallows snapshots by default as they are not | |
833 | considered stable. The command 'ceph mds set allow_snaps' will | |
834 | enable them. | |
835 | ||
836 | * For clusters that were created before v0.44 (pre-argonaut, Spring | |
837 | 2012) and store radosgw data, the auto-upgrade from TMAP to OMAP | |
838 | objects has been disabled. Before upgrading, make sure that any | |
839 | buckets created on pre-argonaut releases have been modified (e.g., | |
840 | by PUTing and then DELETEing an object from each bucket). Any | |
841 | cluster created with argonaut (v0.48) or a later release or not | |
842 | using radosgw never relied on the automatic conversion and is not | |
843 | affected by this change. | |
844 | ||
845 | * Any direct users of the 'tmap' portion of the librados API should be | |
846 | aware that the automatic tmap -> omap conversion functionality has | |
847 | been removed. | |
848 | ||
849 | * Most output that used K or KB (e.g., for kilobyte) now uses a | |
850 | lower-case k to match the official SI convention. Any scripts that | |
851 | parse output and check for an upper-case K will need to be modified. | |
852 | ||
853 | * librados::Rados::pool_create_async() and librados::Rados::pool_delete_async() | |
854 | don't drop a reference to the completion object on error, caller needs to take | |
855 | care of that. This has never really worked correctly and we were leaking an | |
856 | object | |
857 | ||
858 | * 'ceph osd crush set <id> <weight> <loc..>' no longer adds the osd to the | |
859 | specified location, as that's a job for 'ceph osd crush add'. It will | |
860 | however continue to work just the same as long as the osd already exists | |
861 | in the crush map. | |
862 | ||
863 | * The OSD now enforces that class write methods cannot both mutate an | |
864 | object and return data. The rbd.assign_bid method, the lone | |
865 | offender, has been removed. This breaks compatibility with | |
866 | pre-bobtail librbd clients by preventing them from creating new | |
867 | images. | |
868 | ||
869 | * librados now returns on commit instead of ack for synchronous calls. | |
870 | This is a bit safer in the case where both OSDs and the client crash, and | |
871 | is probably how it should have been acting from the beginning. Users are | |
872 | unlikely to notice but it could result in lower performance in some | |
873 | circumstances. Those who care should switch to using the async interfaces, | |
874 | which let you specify safety semantics precisely. | |
875 | ||
876 | * The C++ librados AioComplete::get_version() method was incorrectly | |
877 | returning an int (usually 32-bits). To avoid breaking library | |
878 | compatibility, a get_version64() method is added that returns the | |
879 | full-width value. The old method is deprecated and will be removed | |
880 | in a future release. Users of the C++ librados API that make use of | |
881 | the get_version() method should modify their code to avoid getting a | |
882 | value that is truncated from 64 to to 32 bits. | |
883 | ||
884 | ||
885 | Notable changes since v0.79 | |
886 | --------------------------- | |
887 | ||
888 | * ceph-fuse, libcephfs: fix several caching bugs (Yan, Zheng) | |
889 | * ceph-fuse: trim inodes in response to mds memory pressure (Yan, Zheng) | |
890 | * librados: fix inconsistencies in API error values (David Zafman) | |
891 | * librados: fix watch operations with cache pools (Sage Weil) | |
892 | * librados: new snap rollback operation (David Zafman) | |
893 | * mds: fix respawn (John Spray) | |
894 | * mds: misc bugs (Yan, Zheng) | |
895 | * mds: misc multi-mds fixes (Yan, Zheng) | |
896 | * mds: use shared_ptr for requests (Greg Farnum) | |
897 | * mon: fix peer feature checks (Sage Weil) | |
898 | * mon: require 'x' mon caps for auth operations (Joao Luis) | |
899 | * mon: shutdown when removed from mon cluster (Joao Luis) | |
900 | * msgr: fix locking bug in authentication (Josh Durgin) | |
901 | * osd: fix bug in journal replay/restart (Sage Weil) | |
902 | * osd: many many many bug fixes with cache tiering (Samuel Just) | |
903 | * osd: track omap and hit_set objects in pg stats (Samuel Just) | |
904 | * osd: warn if agent cannot enable due to invalid (post-split) stats (Sage Weil) | |
905 | * rados bench: track metadata for multiple runs separately (Guang Yang) | |
906 | * rgw: fixed subuser modify (Yehuda Sadeh) | |
907 | * rpm: fix redhat-lsb dependency (Sage Weil, Alfredo Deza) | |
908 | ||
909 | ||
910 | Notable changes since v0.72 Emperor | |
911 | ----------------------------------- | |
912 | ||
913 | * buffer: some zero-copy groundwork (Josh Durgin) | |
914 | * build: misc improvements (Ken Dreyer) | |
915 | * ceph-conf: stop creating bogus log files (Josh Durgin, Sage Weil) | |
916 | * ceph-crush-location: new hook for setting CRUSH location of osd daemons on start) | |
917 | * ceph-disk: avoid fd0 (Loic Dachary) | |
918 | * ceph-disk: generalize path names, add tests (Loic Dachary) | |
919 | * ceph-disk: misc improvements for puppet (Loic Dachary) | |
920 | * ceph-disk: several bug fixes (Loic Dachary) | |
921 | * ceph-fuse: fix race for sync reads (Sage Weil) | |
922 | * ceph-fuse, libcephfs: fix several caching bugs (Yan, Zheng) | |
923 | * ceph-fuse: trim inodes in response to mds memory pressure (Yan, Zheng) | |
924 | * ceph-kvstore-tool: expanded command set and capabilities (Joao Eduardo Luis) | |
925 | * ceph.spec: fix build dependency (Loic Dachary) | |
926 | * common: bloom filter improvements (Sage Weil) | |
927 | * common: check preexisting admin socket for active daemon before removing (Loic Dachary) | |
928 | * common: fix aligned buffer allocation (Loic Dachary) | |
929 | * common: fix authentication on big-endian architectures (Dan Mick) | |
930 | * common: fix config variable substitution (Loic Dachary) | |
931 | * common: portability changes to support libc++ (Noah Watkins) | |
932 | * common: switch to unordered_map from hash_map (Noah Watkins) | |
933 | * config: recursive metavariable expansion (Loic Dachary) | |
934 | * crush: default to bobtail tunables (Sage Weil) | |
935 | * crush: fix off-by-one error in recent refactor (Sage Weil) | |
936 | * crush: many additional tests (Loic Dachary) | |
937 | * crush: misc fixes, cleanups (Loic Dachary) | |
938 | * crush: new rule steps to adjust retry attempts (Sage Weil) | |
939 | * crush, osd: s/rep/replicated/ for less confusion (Loic Dachary) | |
940 | * crush: refactor descend_once behavior; support set_choose*_tries for replicated rules (Sage Weil) | |
941 | * crush: usability and test improvements (Loic Dachary) | |
942 | * debian: change directory ownership between ceph and ceph-common (Sage Weil) | |
943 | * debian: integrate misc fixes from downstream packaging (James Page) | |
944 | * doc: big update to install docs (John Wilkins) | |
945 | * doc: many many install doc improvements (John Wilkins) | |
946 | * doc: many many updates (John Wilkins) | |
947 | * doc: misc fixes (David Moreau Simard, Kun Huang) | |
948 | * erasure-code: improve buffer alignment (Loic Dachary) | |
949 | * erasure-code: rewrite region-xor using vector operations (Andreas Peters) | |
950 | * init: fix startup ordering/timeout problem with OSDs (Dmitry Smirnov) | |
951 | * libcephfs: fix resource leak (Zheng Yan) | |
952 | * librados: add C API coverage for atomic write operations (Christian Marie) | |
953 | * librados: fix inconsistencies in API error values (David Zafman) | |
954 | * librados: fix throttle leak (and eventual deadlock) (Josh Durgin) | |
955 | * librados: fix watch operations with cache pools (Sage Weil) | |
956 | * librados: new snap rollback operation (David Zafman) | |
957 | * librados, osd: new TMAP2OMAP operation (Yan, Zheng) | |
958 | * librados: read directly into user buffer (Rutger ter Borg) | |
959 | * librbd: fix use-after-free aio completion bug #5426 (Josh Durgin) | |
960 | * librbd: localize/distribute parent reads (Sage Weil) | |
961 | * librbd: skip zeroes/holes when copying sparse images (Josh Durgin) | |
962 | * mailmap: affiliation updates (Loic Dachary) | |
963 | * mailmap updates (Loic Dachary) | |
964 | * many portability improvements (Noah Watkins) | |
965 | * many unit test improvements (Loic Dachary) | |
966 | * mds: always store backtrace in default pool (Yan, Zheng) | |
967 | * mds: cope with MDS failure during creation (John Spray) | |
968 | * mds: fix cap migration behavior (Yan, Zheng) | |
969 | * mds: fix client session flushing (Yan, Zheng) | |
970 | * mds: fix crash from client sleep/resume (Zheng Yan) | |
971 | * mds: fix many many multi-mds bugs (Yan, Zheng) | |
972 | * mds: fix readdir end check (Zheng Yan) | |
973 | * mds: fix Resetter locking (Alexandre Oliva) | |
974 | * mds: fix respawn (John Spray) | |
975 | * mds: inline data support (Li Wang, Yunchuan Wen) | |
976 | * mds: misc bugs (Yan, Zheng) | |
977 | * mds: misc fixes for directory fragments (Zheng Yan) | |
978 | * mds: misc fixes for larger directories (Zheng Yan) | |
979 | * mds: misc fixes for multiple MDSs (Zheng Yan) | |
980 | * mds: misc multi-mds fixes (Yan, Zheng) | |
981 | * mds: remove .ceph directory (John Spray) | |
982 | * mds: store directories in omap instead of tmap (Yan, Zheng) | |
983 | * mds: update old-format backtraces opportunistically (Zheng Yan) | |
984 | * mds: use shared_ptr for requests (Greg Farnum) | |
985 | * misc cleanups from coverity (Xing Lin) | |
986 | * misc coverity fixes, cleanups (Danny Al-Gaaf) | |
987 | * misc coverity fixes (Xing Lin, Li Wang, Danny Al-Gaaf) | |
988 | * misc portability fixes (Noah Watkins, Alan Somers) | |
989 | * misc portability fixes (Noah Watkins, Christophe Courtaut, Alan Somers, huanjun) | |
990 | * misc portability work (Noah Watkins) | |
991 | * mon: add erasure profiles and improve erasure pool creation (Loic Dachary) | |
992 | * mon: add 'mon getmap EPOCH' (Joao Eduardo Luis) | |
993 | * mon: allow adjustment of cephfs max file size via 'ceph mds set max_file_size' (Sage Weil) | |
994 | * mon: allow debug quorum_{enter,exit} commands via admin socket | |
995 | * mon: 'ceph osd pg-temp ...' and primary-temp commands (Ilya Dryomov) | |
996 | * mon: change mds allow_new_snaps syntax to be more consistent (Sage Weil) | |
997 | * mon: clean up initial crush rule creation (Loic Dachary) | |
998 | * mon: collect misc metadata about osd (os, kernel, etc.), new 'osd metadata' command (Sage Weil) | |
999 | * mon: do not create erasure rules by default (Sage Weil) | |
1000 | * mon: do not generate spurious MDSMaps in certain cases (Sage Weil) | |
1001 | * mon: do not use keyring if auth = none (Loic Dachary) | |
1002 | * mon: fix peer feature checks (Sage Weil) | |
1003 | * mon: fix pg_temp leaks (Joao Eduardo Luis) | |
1004 | * mon: fix pool count in 'ceph -s' output (Sage Weil) | |
1005 | * mon: handle more whitespace (newline, tab) in mon capabilities (Sage Weil) | |
1006 | * mon: improve (replicate or erasure) pool creation UX (Loic Dachary) | |
1007 | * mon: infrastructure to handle mixed-version mon cluster and cli/rest API (Greg Farnum) | |
1008 | * mon: MForward tests (Loic Dachary) | |
1009 | * mon: mkfs now idempotent (Loic Dachary) | |
1010 | * mon: only seed new osdmaps to current OSDs (Sage Weil) | |
1011 | * mon, osd: create erasure style crush rules (Loic Dachary, Sage Weil) | |
1012 | * mon: 'osd crush show-tunables' (Sage Weil) | |
1013 | * mon: 'osd dump' dumps pool snaps as array, not object (Dan Mick) | |
1014 | * mon, osd: new 'erasure' pool type (still not fully supported) | |
1015 | * mon: persist quorum features to disk (Greg Farnum) | |
1016 | * mon: prevent extreme changes in pool pg_num (Greg Farnum) | |
1017 | * mon: require 'x' mon caps for auth operations (Joao Luis) | |
1018 | * mon: shutdown when removed from mon cluster (Joao Luis) | |
1019 | * mon: take 'osd pool set ...' value as an int, not string (Joao Eduardo Luis) | |
1020 | * mon: track osd features in OSDMap (Joao Luis, David Zafman) | |
1021 | * mon: trim MDSMaps (Joao Eduardo Luis) | |
1022 | * mon: warn if crush has non-optimal tunables (Sage Weil) | |
1023 | * mount.ceph: add -n for autofs support (Steve Stock) | |
1024 | * msgr: fix locking bug in authentication (Josh Durgin) | |
1025 | * msgr: fix messenger restart race (Xihui He) | |
1026 | * msgr: improve connection error detection between clients and monitors (Greg Farnum, Sage Weil) | |
1027 | * osd: add/fix CPU feature detection for jerasure (Loic Dachary) | |
1028 | * osd: add HitSet tracking for read ops (Sage Weil, Greg Farnum) | |
1029 | * osd: avoid touching leveldb for some xattrs (Haomai Wang, Sage Weil) | |
1030 | * osd: backfill to multiple targets (David Zafman) | |
1031 | * osd: backfill to osds not in acting set (David Zafman) | |
1032 | * osd: cache pool support for snapshots (Sage Weil) | |
1033 | * osd: client IO path changes for EC (Samuel Just) | |
1034 | * osd: default to 3x replication | |
1035 | * osd: do not include backfill targets in acting set (David Zafman) | |
1036 | * osd: enable new hashpspool layout by default (Sage Weil) | |
1037 | * osd: erasure plugin benchmarking tool (Loic Dachary) | |
1038 | * osd: fix and cleanup misc backfill issues (David Zafman) | |
1039 | * osd: fix bug in journal replay/restart (Sage Weil) | |
1040 | * osd: fix copy-get omap bug (Sage Weil) | |
1041 | * osd: fix linux kernel version detection (Ilya Dryomov) | |
1042 | * osd: fix memstore segv (Haomai Wang) | |
1043 | * osd: fix object_info_t encoding bug from emperor (Sam Just) | |
1044 | * osd: fix omap_clear operation to not zap xattrs (Sam Just, Yan, Zheng) | |
1045 | * osd: fix several bugs with tier infrastructure | |
1046 | * osd: fix throttle thread (Haomai Wang) | |
1047 | * osd: fix XFS detection (Greg Farnum, Sushma Gurram) | |
1048 | * osd: generalize scrubbing infrastructure to allow EC (David Zafman) | |
1049 | * osd: handle more whitespace (newline, tab) in osd capabilities (Sage Weil) | |
1050 | * osd: ignore num_objects_dirty on scrub for old pools (Sage Weil) | |
1051 | * osd: improved scrub checks on clones (Sage Weil, Sam Just) | |
1052 | * osd: improve locking in fd lookup cache (Samuel Just, Greg Farnum) | |
1053 | * osd: include more info in pg query result (Sage Weil) | |
1054 | * osd, librados: fix full cluster handling (Josh Durgin) | |
1055 | * osd: many erasure fixes (Sam Just) | |
1056 | * osd: many many many bug fixes with cache tiering (Samuel Just) | |
1057 | * osd: move to jerasure2 library (Loic Dachary) | |
1058 | * osd: new 'chassis' type in default crush hierarchy (Sage Weil) | |
1059 | * osd: new keyvaluestore-dev backend based on leveldb (Haomai Wang) | |
1060 | * osd: new OSDMap encoding (Greg Farnum) | |
1061 | * osd: new tests for erasure pools (David Zafman) | |
1062 | * osd: preliminary cache pool support (no snaps) (Greg Farnum, Sage Weil) | |
1063 | * osd: reduce scrub lock contention (Guang Yang) | |
1064 | * osd: requery unfound on stray notify (#6909) (Samuel Just) | |
1065 | * osd: some PGBackend infrastructure (Samuel Just) | |
1066 | * osd: support for new 'memstore' (memory-backed) backend (Sage Weil) | |
1067 | * osd: track erasure compatibility (David Zafman) | |
1068 | * osd: track omap and hit_set objects in pg stats (Samuel Just) | |
1069 | * osd: warn if agent cannot enable due to invalid (post-split) stats (Sage Weil) | |
1070 | * rados: add 'crush location', smart replica selection/balancing (Sage Weil) | |
1071 | * rados bench: track metadata for multiple runs separately (Guang Yang) | |
1072 | * rados: some performance optimizations (Yehuda Sadeh) | |
1073 | * rados tool: fix listomapvals (Josh Durgin) | |
1074 | * rbd: add 'rbdmap' init script for mapping rbd images on book (Adam Twardowski) | |
1075 | * rbd: add rbdmap support for upstart (Laurent Barbe) | |
1076 | * rbd: expose kernel rbd client options via 'rbd map' (Ilya Dryomov) | |
1077 | * rbd: fix bench-write command (Hoamai Wang) | |
1078 | * rbd: make 'rbd list' return empty list and success on empty pool (Josh Durgin) | |
1079 | * rbd: prevent deletion of images with watchers (Ilya Dryomov) | |
1080 | * rbd: support for 4096 mapped devices, up from ~250 (Ilya Dryomov) | |
1081 | * rest-api: do not fail when no OSDs yet exist (Dan Mick) | |
1082 | * rgw: add 'status' command to sysvinit script (David Moreau Simard) | |
1083 | * rgw: allow multiple frontends (Yehuda Sadeh) | |
1084 | * rgw: allow use of an erasure data pool (Yehuda Sadeh) | |
1085 | * rgw: convert bucket info to new format on demand (Yehuda Sadeh) | |
1086 | * rgw: fixed subuser modify (Yehuda Sadeh) | |
1087 | * rgw: fix error setting empty owner on ACLs (Yehuda Sadeh) | |
1088 | * rgw: fix fastcgi deadlock (do not return data from librados callback) (Yehuda Sadeh) | |
1089 | * rgw: fix many-part multipart uploads (Yehuda Sadeh) | |
1090 | * rgw: fix misc CORS bugs (Robin H. Johnson) | |
1091 | * rgw: fix object placement read op (Yehuda Sadeh) | |
1092 | * rgw: fix reading bucket policy (#6940) | |
1093 | * rgw: fix read_user_buckets 'max' behavior (Yehuda Sadeh) | |
1094 | * rgw: fix several CORS bugs (Robin H. Johnson) | |
1095 | * rgw: fix use-after-free when releasing completion handle (Yehuda Sadeh) | |
1096 | * rgw: improve swift temp URL support (Yehuda Sadeh) | |
1097 | * rgw: make multi-object delete idempotent (Yehuda Sadeh) | |
1098 | * rgw: optionally defer to bucket ACLs instead of object ACLs (Liam Monahan) | |
1099 | * rgw: prototype mongoose frontend (Yehuda Sadeh) | |
1100 | * rgw: several doc fixes (Alexandre Marangone) | |
1101 | * rgw: support for password (instead of admin token) for keystone authentication (Christophe Courtaut) | |
1102 | * rgw: switch from mongoose to civetweb (Yehuda Sadeh) | |
1103 | * rgw: user quotas (Yehuda Sadeh) | |
1104 | * rpm: fix redhat-lsb dependency (Sage Weil, Alfredo Deza) | |
1105 | * specfile: fix RPM build on RHEL6 (Ken Dreyer, Derek Yarnell) | |
1106 | * specfile: ship libdir/ceph (Key Dreyer) | |
1107 | * sysvinit, upstart: prevent both init systems from starting the same daemons (Josh Durgin) | |
1108 | ||
1109 | ||
1110 | Notable changes since v0.67 Dumpling | |
1111 | ------------------------------------ | |
1112 | ||
1113 | * build cleanly under clang (Christophe Courtaut) | |
1114 | * build: Makefile refactor (Roald J. van Loon) | |
1115 | * build: fix [/usr]/sbin locations (Alan Somers) | |
1116 | * ceph-disk: fix journal preallocation | |
1117 | * ceph-fuse, radosgw: enable admin socket and logging by default | |
1118 | * ceph-fuse: fix problem with readahead vs truncate race (Yan, Zheng) | |
1119 | * ceph-fuse: trim deleted inodes from cache (Yan, Zheng) | |
1120 | * ceph-fuse: use newer fuse api (Jianpeng Ma) | |
1121 | * ceph-kvstore-tool: new tool for working with leveldb (copy, crc) (Joao Luis) | |
1122 | * ceph-post-file: new command to easily share logs or other files with ceph devs | |
1123 | * ceph: improve parsing of CEPH_ARGS (Benoit Knecht) | |
1124 | * ceph: make -h behave when monitors are down | |
1125 | * ceph: parse CEPH_ARGS env variable | |
1126 | * common: bloom_filter improvements, cleanups | |
1127 | * common: cache crc32c values where possible | |
1128 | * common: correct SI is kB not KB (Dan Mick) | |
1129 | * common: fix looping on BSD (Alan Somers) | |
1130 | * common: migrate SharedPtrRegistry to use boost::shared_ptr<> (Loic Dachary) | |
1131 | * common: misc portability fixes (Noah Watkins) | |
1132 | * crc32c: fix optimized crc32c code (it now detects arch support properly) | |
1133 | * crc32c: improved intel-optimized crc32c support (~8x faster on my laptop!) | |
1134 | * crush: fix name caching | |
1135 | * doc: erasure coding design notes (Loic Dachary) | |
1136 | * hadoop: removed old version of shim to avoid confusing users (Noah Watkins) | |
1137 | * librados, mon: ability to query/ping out-of-quorum monitor status (Joao Luis) | |
1138 | * librados: fix async aio completion wakeup | |
1139 | * librados: fix installed header #includes (Dan Mick) | |
1140 | * librados: get_version64() method for C++ API | |
1141 | * librados: hello_world example (Greg Farnum) | |
1142 | * librados: sync calls now return on commit (instead of ack) (Greg Farnum) | |
1143 | * librbd python bindings: fix parent image name limit (Josh Durgin) | |
1144 | * librbd, ceph-fuse: avoid some sources of ceph-fuse, rbd cache stalls | |
1145 | * mds: avoid leaking objects when deleting truncated files (Yan, Zheng) | |
1146 | * mds: fix F_GETLK (Yan, Zheng) | |
1147 | * mds: fix LOOKUPSNAP bug | |
1148 | * mds: fix heap profiler commands (Joao Luis) | |
1149 | * mds: fix locking deadlock (David Disseldorp) | |
1150 | * mds: fix many bugs with stray (unlinked) inodes (Yan, Zheng) | |
1151 | * mds: fix many directory fragmentation bugs (Yan, Zheng) | |
1152 | * mds: fix mds rejoin with legacy parent backpointer xattrs (Alexandre Oliva) | |
1153 | * mds: fix rare restart/failure race during fs creation | |
1154 | * mds: fix standby-replay when we fall behind (Yan, Zheng) | |
1155 | * mds: fix stray directory purging (Yan, Zheng) | |
1156 | * mds: notify clients about deleted files (so they can release from their cache) (Yan, Zheng) | |
1157 | * mds: several bug fixes with clustered mds (Yan, Zheng) | |
1158 | * mon, osd: improve osdmap trimming logic (Samuel Just) | |
1159 | * mon, osd: initial CLI for configuring tiering | |
1160 | * mon: a few 'ceph mon add' races fixed (command is now idempotent) (Joao Luis) | |
1161 | * mon: allow (un)setting HASHPSPOOL flag on existing pools (Joao Luis) | |
1162 | * mon: allow cap strings with . to be unquoted | |
1163 | * mon: allow logging level of cluster log (/var/log/ceph/ceph.log) to be adjusted | |
1164 | * mon: avoid rewriting full osdmaps on restart (Joao Luis) | |
1165 | * mon: continue to discover peer addr info during election phase | |
1166 | * mon: disallow CephFS snapshots until 'ceph mds set allow_new_snaps' (Greg Farnum) | |
1167 | * mon: do not expose uncommitted state from 'osd crush {add,set} ...' (Joao Luis) | |
1168 | * mon: fix 'ceph osd crush reweight ...' (Joao Luis) | |
1169 | * mon: fix 'osd crush move ...' command for buckets (Joao Luis) | |
1170 | * mon: fix byte counts (off by factor of 4) (Dan Mick, Joao Luis) | |
1171 | * mon: fix paxos corner case | |
1172 | * mon: kv properties for pools to support EC (Loic Dachary) | |
1173 | * mon: make 'osd pool rename' idempotent (Joao Luis) | |
1174 | * mon: modify 'auth add' semantics to make a bit more sense (Joao Luis) | |
1175 | * mon: new 'osd perf' command to dump recent performance information (Samuel Just) | |
1176 | * mon: new and improved 'ceph -s' or 'ceph status' command (more info, easier to read) | |
1177 | * mon: some auth check cleanups (Joao Luis) | |
1178 | * mon: track per-pool stats (Joao Luis) | |
1179 | * mon: warn about pools with bad pg_num | |
1180 | * mon: warn when mon data stores grow very large (Joao Luis) | |
1181 | * monc: fix small memory leak | |
1182 | * new wireshark patches pulled into the tree (Kevin Jones) | |
1183 | * objecter, librados: redirect requests based on cache tier config | |
1184 | * objecter: fix possible hang when cluster is unpaused (Josh Durgin) | |
1185 | * osd, librados: add new COPY_FROM rados operation | |
1186 | * osd, librados: add new COPY_GET rados operations (used by COPY_FROM) | |
1187 | * osd: 'osd recover clone overlap limit' option to limit cloning during recovery (Samuel Just) | |
1188 | * osd: COPY_GET on-wire encoding improvements (Greg Farnum) | |
1189 | * osd: add 'osd heartbeat min healthy ratio' configurable (was hard-coded at 33%) | |
1190 | * osd: add option to disable pg log debug code (which burns CPU) | |
1191 | * osd: allow cap strings with . to be unquoted | |
1192 | * osd: automatically detect proper xattr limits (David Zafman) | |
1193 | * osd: avoid extra copy in erasure coding reference implementation (Loic Dachary) | |
1194 | * osd: basic cache pool redirects (Greg Farnum) | |
1195 | * osd: basic whiteout, dirty flag support (not yet used) | |
1196 | * osd: bloom_filter encodability, fixes, cleanups (Loic Dachary, Sage Weil) | |
1197 | * osd: clean up and generalize copy-from code (Greg Farnum) | |
1198 | * osd: cls_hello OSD class example | |
1199 | * osd: erasure coding doc updates (Loic Dachary) | |
1200 | * osd: erasure coding plugin infrastructure, tests (Loic Dachary) | |
1201 | * osd: experiemental support for ZFS (zfsonlinux.org) (Yan, Zheng) | |
1202 | * osd: fix RWORDER flags | |
1203 | * osd: fix exponential backoff of slow request warnings (Loic Dachary) | |
1204 | * osd: fix handling of racing read vs write (Samuel Just) | |
1205 | * osd: fix version value returned by various operations (Greg Farnum) | |
1206 | * osd: generalized temp object infrastructure | |
1207 | * osd: ghobject_t infrastructure for EC (David Zafman) | |
1208 | * osd: improvements for compatset support and storage (David Zafman) | |
1209 | * osd: infrastructure to copy objects from other OSDs | |
1210 | * osd: instrument peering states (David Zafman) | |
1211 | * osd: misc copy-from improvements | |
1212 | * osd: opportunistic crc checking on stored data (off by default) | |
1213 | * osd: properly enforce RD/WR flags for rados classes | |
1214 | * osd: reduce blocking on backing fs (Samuel Just) | |
1215 | * osd: refactor recovery using PGBackend (Samuel Just) | |
1216 | * osd: remove old magical tmap->omap conversion | |
1217 | * osd: remove old pg log on upgrade (Samuel Just) | |
1218 | * osd: revert xattr size limit (fixes large rgw uploads) | |
1219 | * osd: use fdatasync(2) instead of fsync(2) to improve performance (Sam Just) | |
1220 | * pybind: fix blacklisting nonce (Loic Dachary) | |
1221 | * radosgw-agent: multi-region replication/DR | |
1222 | * rgw: complete in-progress requests before shutting down | |
1223 | * rgw: default log level is now more reasonable (Yehuda Sadeh) | |
1224 | * rgw: fix S3 auth with response-* query string params (Sylvain Munaut, Yehuda Sadeh) | |
1225 | * rgw: fix a few minor memory leaks (Yehuda Sadeh) | |
1226 | * rgw: fix acl group check (Yehuda Sadeh) | |
1227 | * rgw: fix inefficient use of std::list::size() (Yehuda Sadeh) | |
1228 | * rgw: fix major CPU utilization bug with internal caching (Yehuda Sadeh, Mark Nelson) | |
1229 | * rgw: fix ordering of write operations (preventing data loss on crash) (Yehuda Sadeh) | |
1230 | * rgw: fix ordering of writes for mulitpart upload (Yehuda Sadeh) | |
1231 | * rgw: fix various CORS bugs (Yehuda Sadeh) | |
1232 | * rgw: fix/improve swift COPY support (Yehuda Sadeh) | |
1233 | * rgw: improve help output (Christophe Courtaut) | |
1234 | * rgw: misc fixes to support DR (Josh Durgin, Yehuda Sadeh) | |
1235 | * rgw: per-bucket quota (Yehuda Sadeh) | |
1236 | * rgw: validate S3 tokens against keystone (Roald J. van Loon) | |
1237 | * rgw: wildcard support for keystone roles (Christophe Courtaut) | |
1238 | * rpm: fix junit dependencies (Alan Grosskurth) | |
1239 | * sysvinit radosgw: fix status return code (Danny Al-Gaaf) | |
1240 | * sysvinit rbdmap: fix error 'service rbdmap stop' (Laurent Barbe) | |
1241 | * sysvinit: add condrestart command (Dan van der Ster) | |
1242 | * sysvinit: fix shutdown order (mons last) (Alfredo Deza) | |
1243 | ||
1244 | ||
1245 | v0.79 | |
1246 | ===== | |
1247 | ||
1248 | This release is intended to serve as a release candidate for firefly, | |
1249 | which will hopefully be v0.80. No changes are being made to the code | |
1250 | base at this point except those that fix bugs. Please test this | |
1251 | release if you intend to make use of the new erasure-coded pools or | |
1252 | cache tiers in firefly. | |
1253 | ||
1254 | This release fixes a range of bugs found in v0.78 and streamlines the | |
1255 | user experience when creating erasure-coded pools. There is also a | |
1256 | raft of fixes for the MDS (multi-mds, directory fragmentation, and | |
1257 | large directories). The main notable new piece of functionality is a | |
1258 | small change to allow radosgw to use an erasure-coded pool for object | |
1259 | data. | |
1260 | ||
1261 | ||
1262 | Upgrading | |
1263 | --------- | |
1264 | * Erasure pools created with v0.78 will no longer function with v0.79. You | |
1265 | will need to delete the old pool and create a new one. | |
1266 | ||
1267 | * A bug was fixed in the authentication handshake with big-endian | |
1268 | architectures that prevent authentication between big- and | |
1269 | little-endian machines in the same cluster. If you have a cluster | |
1270 | that consists entirely of big-endian machines, you will need to | |
1271 | upgrade all daemons and clients and restart. | |
1272 | ||
1273 | * The 'ceph.file.layout' and 'ceph.dir.layout' extended attributes are | |
1274 | no longer included in the listxattr(2) results to prevent problems with | |
1275 | 'cp -a' and similar tools. | |
1276 | ||
1277 | * Monitor 'auth' read-only commands now expect the user to have 'rx' caps. | |
1278 | This is the same behavior that was present in dumpling, but in emperor | |
1279 | and more recent development releases the 'r' cap was sufficient. The | |
1280 | affected commands are:: | |
1281 | ||
1282 | ceph auth export | |
1283 | ceph auth get | |
1284 | ceph auth get-key | |
1285 | ceph auth print-key | |
1286 | ceph auth list | |
1287 | ||
1288 | Notable Changes | |
1289 | --------------- | |
1290 | * ceph-conf: stop creating bogus log files (Josh Durgin, Sage Weil) | |
1291 | * common: fix authentication on big-endian architectures (Dan Mick) | |
1292 | * debian: change directory ownership between ceph and ceph-common (Sage Weil) | |
1293 | * init: fix startup ordering/timeout problem with OSDs (Dmitry Smirnov) | |
1294 | * librbd: skip zeroes/holes when copying sparse images (Josh Durgin) | |
1295 | * mds: cope with MDS failure during creation (John Spray) | |
1296 | * mds: fix crash from client sleep/resume (Zheng Yan) | |
1297 | * mds: misc fixes for directory fragments (Zheng Yan) | |
1298 | * mds: misc fixes for larger directories (Zheng Yan) | |
1299 | * mds: misc fixes for multiple MDSs (Zheng Yan) | |
1300 | * mds: remove .ceph directory (John Spray) | |
1301 | * misc coverity fixes, cleanups (Danny Al-Gaaf) | |
1302 | * mon: add erasure profiles and improve erasure pool creation (Loic Dachary) | |
1303 | * mon: 'ceph osd pg-temp ...' and primary-temp commands (Ilya Dryomov) | |
1304 | * mon: fix pool count in 'ceph -s' output (Sage Weil) | |
1305 | * msgr: improve connection error detection between clients and monitors (Greg Farnum, Sage Weil) | |
1306 | * osd: add/fix CPU feature detection for jerasure (Loic Dachary) | |
1307 | * osd: improved scrub checks on clones (Sage Weil, Sam Just) | |
1308 | * osd: many erasure fixes (Sam Just) | |
1309 | * osd: move to jerasure2 library (Loic Dachary) | |
1310 | * osd: new tests for erasure pools (David Zafman) | |
1311 | * osd: reduce scrub lock contention (Guang Yang) | |
1312 | * rgw: allow use of an erasure data pool (Yehuda Sadeh) | |
1313 | ||
1314 | ||
1315 | v0.78 | |
1316 | ===== | |
1317 | ||
1318 | This development release includes two key features: erasure coding and | |
1319 | cache tiering. A huge amount of code was merged for this release and | |
1320 | several additional weeks were spent stabilizing the code base, and it | |
1321 | is now in a state where it is ready to be tested by a broader user | |
1322 | base. | |
1323 | ||
1324 | This is *not* the firefly release. Firefly will be delayed for at | |
1325 | least another sprint so that we can get some operational experience | |
1326 | with the new code and do some additional testing before committing to | |
1327 | long term support. | |
1328 | ||
1329 | .. note:: Please note that while it is possible to create and test | |
1330 | erasure coded pools in this release, the pools will not be | |
1331 | usable when you upgrade to v0.79 as the OSDMap encoding will | |
1332 | subtlely change. Please do not populate your test pools | |
1333 | with important data that can't be reloaded. | |
1334 | ||
1335 | Upgrading | |
1336 | --------- | |
1337 | ||
1338 | * Upgrade daemons in the following order: | |
1339 | ||
1340 | #. Monitors | |
1341 | #. OSDs | |
1342 | #. MDSs and/or radosgw | |
1343 | ||
1344 | If the ceph-mds daemon is restarted first, it will wait until all | |
1345 | OSDs have been upgraded before finishing its startup sequence. If | |
1346 | the ceph-mon daemons are not restarted prior to the ceph-osd | |
1347 | daemons, they will not correctly register their new capabilities | |
1348 | with the cluster and new features may not be usable until they are | |
1349 | restarted a second time. | |
1350 | ||
1351 | * Upgrade radosgw daemons together. There is a subtle change in behavior | |
1352 | for multipart uploads that prevents a multipart request that was initiated | |
1353 | with a new radosgw from being completed by an old radosgw. | |
1354 | ||
1355 | * CephFS recently added support for a new 'backtrace' attribute on | |
1356 | file data objects that is used for lookup by inode number (i.e., NFS | |
1357 | reexport and hard links), and will later be used by fsck repair. | |
1358 | This replaces the existing anchor table mechanism that is used for | |
1359 | hard link resolution. In order to completely phase that out, any | |
1360 | inode that has an outdated backtrace attribute will get updated when | |
1361 | the inode itself is modified. This will result in some extra workload | |
1362 | after a legacy CephFS file system is upgraded. | |
1363 | ||
1364 | * The per-op return code in librados' ObjectWriteOperation interface | |
1365 | is now filled in. | |
1366 | ||
1367 | * The librados cmpxattr operation now handles xattrs containing null bytes as | |
1368 | data rather than null-terminated strings. | |
1369 | ||
1370 | * Compound operations in librados that create and then delete the same object | |
1371 | are now explicitly disallowed (they fail with -EINVAL). | |
1372 | ||
1373 | * The default leveldb cache size for the ceph-osd daemon has been | |
1374 | increased from 4 MB to 128 MB. This will increase the memory | |
1375 | footprint of that process but tends to increase performance of omap | |
1376 | (key/value) objects (used for CephFS and the radosgw). If memory in your | |
1377 | deployment is tight, you can preserve the old behavio by adding:: | |
1378 | ||
1379 | leveldb write buffer size = 0 | |
1380 | leveldb cache size = 0 | |
1381 | ||
1382 | to your ceph.conf to get back the (leveldb) defaults. | |
1383 | ||
1384 | Notable Changes | |
1385 | --------------- | |
1386 | * ceph-brag: new client and server tools (Sebastien Han, Babu Shanmugam) | |
1387 | * ceph-disk: use partx on RHEL or CentOS instead of partprobe (Alfredo Deza) | |
1388 | * ceph: fix combination of 'tell' and interactive mode (Joao Eduardo Luis) | |
1389 | * ceph-fuse: fix bugs with inline data and multiple MDSs (Zheng Yan) | |
1390 | * client: fix getcwd() to use new LOOKUPPARENT operation (Zheng Yan) | |
1391 | * common: fall back to json-pretty for admin socket (Loic Dachary) | |
1392 | * common: fix 'config dump' debug prefix (Danny Al-Gaaf) | |
1393 | * common: misc coverity fixes (Danny Al-Gaaf) | |
1394 | * common: throtller, shared_cache performance improvements, TrackedOp (Greg Farnum, Samuel Just) | |
1395 | * crush: fix JSON schema for dump (John Spray) | |
1396 | * crush: misc cleanups, tests (Loic Dachary) | |
1397 | * crush: new vary_r tunable (Sage Weil) | |
1398 | * crush: prevent invalid buckets of type 0 (Sage Weil) | |
1399 | * keyvaluestore: add perfcounters, misc bug fixes (Haomai Wang) | |
1400 | * keyvaluestore: portability improvements (Noah Watkins) | |
1401 | * libcephfs: API changes to better support NFS reexport via Ganesha (Matt Benjamin, Adam Emerson, Andrey Kuznetsov, Casey Bodley, David Zafman) | |
1402 | * librados: API documentation improvements (John Wilkins, Josh Durgin) | |
1403 | * librados: fix object enumeration bugs; allow iterator assignment (Josh Durgin) | |
1404 | * librados: streamline tests (Josh Durgin) | |
1405 | * librados: support for atomic read and omap operations for C API (Josh Durgin) | |
1406 | * librados: support for osd and mon command timeouts (Josh Durgin) | |
1407 | * librbd: pass allocation hints to OSD (Ilya Dryomov) | |
1408 | * logrotate: fix bug that prevented rotation for some daemons (Loic Dachary) | |
1409 | * mds: avoid duplicated discovers during recovery (Zheng Yan) | |
1410 | * mds: fix file lock owner checks (Zheng Yan) | |
1411 | * mds: fix LOOKUPPARENT, new LOOKUPNAME ops for reliable NFS reexport (Zheng Yan) | |
1412 | * mds: fix xattr handling on setxattr (Zheng Yan) | |
1413 | * mds: fix xattrs in getattr replies (Sage Weil) | |
1414 | * mds: force backtrace updates for old inodes on update (Zheng Yan) | |
1415 | * mds: several multi-mds and dirfrag bug fixes (Zheng Yan) | |
1416 | * mon: encode erasure stripe width in pool metadata (Loic Dachary) | |
1417 | * mon: erasure code crush rule creation (Loic Dachary) | |
1418 | * mon: erasure code plugin support (Loic Dachary) | |
1419 | * mon: fix bugs in initial post-mkfs quorum creation (Sage Weil) | |
1420 | * mon: fix error output to terminal during startup (Joao Eduardo Luis) | |
1421 | * mon: fix legacy CRUSH tunables warning (Sage Weil) | |
1422 | * mon: fix osd_epochs lower bound tracking for map trimming (Sage Weil) | |
1423 | * mon: fix OSDMap encoding features (Sage Weil, Aaron Ten Clay) | |
1424 | * mon: fix 'pg dump' JSON output (John Spray) | |
1425 | * mon: include dirty stats in 'ceph df detail' (Sage Weil) | |
1426 | * mon: list quorum member names in quorum order (Sage Weil) | |
1427 | * mon: prevent addition of non-empty cache tier (Sage Weil) | |
1428 | * mon: prevent deletion of CephFS pools (John Spray) | |
1429 | * mon: warn when cache tier approaches 'full' (Sage Weil) | |
1430 | * osd: allocation hint, with XFS support (Ilya Dryomov) | |
1431 | * osd: erasure coded pool support (Samuel Just) | |
1432 | * osd: fix bug causing slow/stalled recovery (#7706) (Samuel Just) | |
1433 | * osd: fix bugs in log merging (Samuel Just) | |
1434 | * osd: fix/clarify end-of-object handling on read (Loic Dachary) | |
1435 | * osd: fix impolite mon session backoff, reconnect behavior (Greg Farnum) | |
1436 | * osd: fix SnapContext cache id bug (Samuel Just) | |
1437 | * osd: increase default leveldb cache size and write buffer (Sage Weil, Dmitry Smirnov) | |
1438 | * osd: limit size of 'osd bench ...' arguments (Joao Eduardo Luis) | |
1439 | * osdmaptool: new --test-map-pgs mode (Sage Weil, Ilya Dryomov) | |
1440 | * osd, mon: add primary-affinity to adjust selection of primaries (Sage Weil) | |
1441 | * osd: new 'status' admin socket command (Sage Weil) | |
1442 | * osd: simple tiering agent (Sage Weil) | |
1443 | * osd: store checksums for erasure coded object stripes (Samuel Just) | |
1444 | * osd: tests for objectstore backends (Haomai Wang) | |
1445 | * osd: various refactoring and bug fixes (Samuel Just, David Zafman) | |
1446 | * rados: add 'set-alloc-hint' command (Ilya Dryomov) | |
1447 | * rbd-fuse: fix enumerate_images overflow, memory leak (Ilya Dryomov) | |
1448 | * rbdmap: fix upstart script (Stephan Renatus) | |
1449 | * rgw: avoid logging system events to usage log (Yehuda Sadeh) | |
1450 | * rgw: fix Swift range reponse (Yehuda Sadeh) | |
1451 | * rgw: improve scalability for manifest objects (Yehuda Sadeh) | |
1452 | * rgw: misc fixes for multipart objects, policies (Yehuda Sadeh) | |
1453 | * rgw: support non-standard MultipartUpload command (Yehuda Sadeh) | |
1454 | ||
1455 | ||
1456 | ||
1457 | v0.77 | |
1458 | ===== | |
1459 | ||
1460 | This is the final development release before the Firefly feature | |
1461 | freeze. The main items in this release include some additional | |
1462 | refactoring work in the OSD IO path (include some locking | |
1463 | improvements), per-user quotas for the radosgw, a switch to civetweb | |
1464 | from mongoose for the prototype radosgw standalone mode, and a | |
1465 | prototype leveldb-based backend for the OSD. The C librados API also | |
1466 | got support for atomic write operations (read side transactions will | |
1467 | appear in v0.78). | |
1468 | ||
1469 | Upgrading | |
1470 | --------- | |
1471 | ||
1472 | * The 'ceph -s' or 'ceph status' command's 'num_in_osds' field in the | |
1473 | JSON and XML output has been changed from a string to an int. | |
1474 | ||
1475 | * The recently added 'ceph mds set allow_new_snaps' command's syntax | |
1476 | has changed slightly; it is now 'ceph mds set allow_new_snaps true'. | |
1477 | The 'unset' command has been removed; instead, set the value to | |
1478 | 'false'. | |
1479 | ||
1480 | * The syntax for allowing snapshots is now 'mds set allow_new_snaps | |
1481 | <true|false>' instead of 'mds <set,unset> allow_new_snaps'. | |
1482 | ||
1483 | Notable Changes | |
1484 | --------------- | |
1485 | ||
1486 | * osd: client IO path changes for EC (Samuel Just) | |
1487 | * common: portability changes to support libc++ (Noah Watkins) | |
1488 | * common: switch to unordered_map from hash_map (Noah Watkins) | |
1489 | * rgw: switch from mongoose to civetweb (Yehuda Sadeh) | |
1490 | * osd: improve locking in fd lookup cache (Samuel Just, Greg Farnum) | |
1491 | * doc: many many updates (John Wilkins) | |
1492 | * rgw: user quotas (Yehuda Sadeh) | |
1493 | * mon: persist quorum features to disk (Greg Farnum) | |
1494 | * mon: MForward tests (Loic Dachary) | |
1495 | * mds: inline data support (Li Wang, Yunchuan Wen) | |
1496 | * rgw: fix many-part multipart uploads (Yehuda Sadeh) | |
1497 | * osd: new keyvaluestore-dev backend based on leveldb (Haomai Wang) | |
1498 | * rbd: prevent deletion of images with watchers (Ilya Dryomov) | |
1499 | * osd: avoid touching leveldb for some xattrs (Haomai Wang, Sage Weil) | |
1500 | * mailmap: affiliation updates (Loic Dachary) | |
1501 | * osd: new OSDMap encoding (Greg Farnum) | |
1502 | * osd: generalize scrubbing infrastructure to allow EC (David Zafman) | |
1503 | * rgw: several doc fixes (Alexandre Marangone) | |
1504 | * librados: add C API coverage for atomic write operations (Christian Marie) | |
1505 | * rgw: improve swift temp URL support (Yehuda Sadeh) | |
1506 | * rest-api: do not fail when no OSDs yet exist (Dan Mick) | |
1507 | * common: check preexisting admin socket for active daemon before removing (Loic Dachary) | |
1508 | * osd: handle more whitespace (newline, tab) in osd capabilities (Sage Weil) | |
1509 | * mon: handle more whitespace (newline, tab) in mon capabilities (Sage Weil) | |
1510 | * rgw: make multi-object delete idempotent (Yehuda Sadeh) | |
1511 | * crush: fix off-by-one error in recent refactor (Sage Weil) | |
1512 | * rgw: fix read_user_buckets 'max' behavior (Yehuda Sadeh) | |
1513 | * mon: change mds allow_new_snaps syntax to be more consistent (Sage Weil) | |
1514 | ||
1515 | ||
1516 | v0.76 | |
1517 | ===== | |
1518 | ||
1519 | This release includes another batch of updates for firefly | |
1520 | functionality. Most notably, the cache pool infrastructure now | |
1521 | support snapshots, the OSD backfill functionality has been generalized | |
1522 | to include multiple targets (necessary for the coming erasure pools), | |
1523 | and there were performance improvements to the erasure code plugin on | |
1524 | capable processors. The MDS now properly utilizes (and seamlessly | |
1525 | migrates to) the OSD key/value interface (aka omap) for storing directory | |
1526 | objects. There continue to be many other fixes and improvements for | |
1527 | usability and code portability across the tree. | |
1528 | ||
1529 | Upgrading | |
1530 | --------- | |
1531 | ||
1532 | * 'rbd ls' on a pool which never held rbd images now exits with code | |
1533 | 0. It outputs nothing in plain format, or an empty list in | |
1534 | non-plain format. This is consistent with the behavior for a pool | |
1535 | which used to hold images, but contains none. Scripts relying on | |
1536 | this behavior should be updated. | |
1537 | ||
1538 | * The MDS requires a new OSD operation TMAP2OMAP, added in this release. When | |
1539 | upgrading, be sure to upgrade and restart the ceph-osd daemons before the | |
1540 | ceph-mds daemon. The MDS will refuse to start if any up OSDs do not support | |
1541 | the new feature. | |
1542 | ||
1543 | * The 'ceph mds set_max_mds N' command is now deprecated in favor of | |
1544 | 'ceph mds set max_mds N'. | |
1545 | ||
1546 | Notable Changes | |
1547 | --------------- | |
1548 | ||
1549 | * build: misc improvements (Ken Dreyer) | |
1550 | * ceph-disk: generalize path names, add tests (Loic Dachary) | |
1551 | * ceph-disk: misc improvements for puppet (Loic Dachary) | |
1552 | * ceph-disk: several bug fixes (Loic Dachary) | |
1553 | * ceph-fuse: fix race for sync reads (Sage Weil) | |
1554 | * config: recursive metavariable expansion (Loic Dachary) | |
1555 | * crush: usability and test improvements (Loic Dachary) | |
1556 | * doc: misc fixes (David Moreau Simard, Kun Huang) | |
1557 | * erasure-code: improve buffer alignment (Loic Dachary) | |
1558 | * erasure-code: rewrite region-xor using vector operations (Andreas Peters) | |
1559 | * librados, osd: new TMAP2OMAP operation (Yan, Zheng) | |
1560 | * mailmap updates (Loic Dachary) | |
1561 | * many portability improvements (Noah Watkins) | |
1562 | * many unit test improvements (Loic Dachary) | |
1563 | * mds: always store backtrace in default pool (Yan, Zheng) | |
1564 | * mds: store directories in omap instead of tmap (Yan, Zheng) | |
1565 | * mon: allow adjustment of cephfs max file size via 'ceph mds set max_file_size' (Sage Weil) | |
1566 | * mon: do not create erasure rules by default (Sage Weil) | |
1567 | * mon: do not generate spurious MDSMaps in certain cases (Sage Weil) | |
1568 | * mon: do not use keyring if auth = none (Loic Dachary) | |
1569 | * mon: fix pg_temp leaks (Joao Eduardo Luis) | |
1570 | * osd: backfill to multiple targets (David Zafman) | |
1571 | * osd: cache pool support for snapshots (Sage Weil) | |
1572 | * osd: fix and cleanup misc backfill issues (David Zafman) | |
1573 | * osd: fix omap_clear operation to not zap xattrs (Sam Just, Yan, Zheng) | |
1574 | * osd: ignore num_objects_dirty on scrub for old pools (Sage Weil) | |
1575 | * osd: include more info in pg query result (Sage Weil) | |
1576 | * osd: track erasure compatibility (David Zafman) | |
1577 | * rbd: make 'rbd list' return empty list and success on empty pool (Josh Durgin) | |
1578 | * rgw: fix object placement read op (Yehuda Sadeh) | |
1579 | * rgw: fix several CORS bugs (Robin H. Johnson) | |
1580 | * specfile: fix RPM build on RHEL6 (Ken Dreyer, Derek Yarnell) | |
1581 | * specfile: ship libdir/ceph (Key Dreyer) | |
1582 | ||
1583 | ||
1584 | v0.75 | |
1585 | ===== | |
1586 | ||
1587 | This is a big release, with lots of infrastructure going in for | |
1588 | firefly. The big items include a prototype standalone frontend for | |
1589 | radosgw (which does not require apache or fastcgi), tracking for read | |
1590 | activity on the osds (to inform tiering decisions), preliminary cache | |
1591 | pool support (no snapshots yet), and lots of bug fixes and other work | |
1592 | across the tree to get ready for the next batch of erasure coding | |
1593 | patches. | |
1594 | ||
1595 | For comparison, here are the diff stats for the last few versions:: | |
1596 | ||
1597 | v0.75 291 files changed, 82713 insertions(+), 33495 deletions(-) | |
1598 | v0.74 192 files changed, 17980 insertions(+), 1062 deletions(-) | |
1599 | v0.73 148 files changed, 4464 insertions(+), 2129 deletions(-) | |
1600 | ||
1601 | Upgrading | |
1602 | --------- | |
1603 | ||
1604 | - The 'osd pool create ...' syntax has changed for erasure pools. | |
1605 | ||
1606 | - The default CRUSH rules and layouts are now using the latest and | |
1607 | greatest tunables and defaults. Clusters using the old values will | |
1608 | now present with a health WARN state. This can be disabled by | |
1609 | adding 'mon warn on legacy crush tunables = false' to ceph.conf. | |
1610 | ||
1611 | ||
1612 | Notable Changes | |
1613 | --------------- | |
1614 | ||
1615 | * common: bloom filter improvements (Sage Weil) | |
1616 | * common: fix config variable substitution (Loic Dachary) | |
1617 | * crush, osd: s/rep/replicated/ for less confusion (Loic Dachary) | |
1618 | * crush: refactor descend_once behavior; support set_choose*_tries for replicated rules (Sage Weil) | |
1619 | * librados: fix throttle leak (and eventual deadlock) (Josh Durgin) | |
1620 | * librados: read directly into user buffer (Rutger ter Borg) | |
1621 | * librbd: fix use-after-free aio completion bug #5426 (Josh Durgin) | |
1622 | * librbd: localize/distribute parent reads (Sage Weil) | |
1623 | * mds: fix Resetter locking (Alexandre Oliva) | |
1624 | * mds: fix cap migration behavior (Yan, Zheng) | |
1625 | * mds: fix client session flushing (Yan, Zheng) | |
1626 | * mds: fix many many multi-mds bugs (Yan, Zheng) | |
1627 | * misc portability work (Noah Watkins) | |
1628 | * mon, osd: create erasure style crush rules (Loic Dachary, Sage Weil) | |
1629 | * mon: 'osd crush show-tunables' (Sage Weil) | |
1630 | * mon: clean up initial crush rule creation (Loic Dachary) | |
1631 | * mon: improve (replicate or erasure) pool creation UX (Loic Dachary) | |
1632 | * mon: infrastructure to handle mixed-version mon cluster and cli/rest API (Greg Farnum) | |
1633 | * mon: mkfs now idempotent (Loic Dachary) | |
1634 | * mon: only seed new osdmaps to current OSDs (Sage Weil) | |
1635 | * mon: track osd features in OSDMap (Joao Luis, David Zafman) | |
1636 | * mon: warn if crush has non-optimal tunables (Sage Weil) | |
1637 | * mount.ceph: add -n for autofs support (Steve Stock) | |
1638 | * msgr: fix messenger restart race (Xihui He) | |
1639 | * osd, librados: fix full cluster handling (Josh Durgin) | |
1640 | * osd: add HitSet tracking for read ops (Sage Weil, Greg Farnum) | |
1641 | * osd: backfill to osds not in acting set (David Zafman) | |
1642 | * osd: enable new hashpspool layout by default (Sage Weil) | |
1643 | * osd: erasure plugin benchmarking tool (Loic Dachary) | |
1644 | * osd: fix XFS detection (Greg Farnum, Sushma Gurram) | |
1645 | * osd: fix copy-get omap bug (Sage Weil) | |
1646 | * osd: fix linux kernel version detection (Ilya Dryomov) | |
1647 | * osd: fix memstore segv (Haomai Wang) | |
1648 | * osd: fix several bugs with tier infrastructure | |
1649 | * osd: fix throttle thread (Haomai Wang) | |
1650 | * osd: preliminary cache pool support (no snaps) (Greg Farnum, Sage Weil) | |
1651 | * rados tool: fix listomapvals (Josh Durgin) | |
1652 | * rados: add 'crush location', smart replica selection/balancing (Sage Weil) | |
1653 | * rados: some performance optimizations (Yehuda Sadeh) | |
1654 | * rbd: add rbdmap support for upstart (Laurent Barbe) | |
1655 | * rbd: expose kernel rbd client options via 'rbd map' (Ilya Dryomov) | |
1656 | * rbd: fix bench-write command (Hoamai Wang) | |
1657 | * rbd: support for 4096 mapped devices, up from ~250 (Ilya Dryomov) | |
1658 | * rgw: allow multiple frontends (Yehuda Sadeh) | |
1659 | * rgw: convert bucket info to new format on demand (Yehuda Sadeh) | |
1660 | * rgw: fix misc CORS bugs (Robin H. Johnson) | |
1661 | * rgw: prototype mongoose frontend (Yehuda Sadeh) | |
1662 | ||
1663 | ||
1664 | ||
1665 | v0.74 | |
1666 | ===== | |
1667 | ||
1668 | This release includes a few substantial pieces for Firefly, including | |
1669 | a long-overdue switch to 3x replication by default and a switch to the | |
1670 | "new" CRUSH tunables by default (supported since bobtail). There is | |
1671 | also a fix for a long-standing radosgw bug (stalled GET) that has | |
1672 | already been backported to emperor and dumpling. | |
1673 | ||
1674 | Upgrading | |
1675 | --------- | |
1676 | ||
1677 | * We now default to the 'bobtail' CRUSH tunable values that are first supported | |
1678 | by Ceph clients in bobtail (v0.56) and Linux kernel version v3.9. If you | |
1679 | plan to access a newly created Ceph cluster with an older kernel client, you | |
1680 | should use 'ceph osd crush tunables legacy' to switch back to the legacy | |
1681 | behavior. Note that making that change will likely result in some data | |
1682 | movement in the system, so adjust the setting before populating the new | |
1683 | cluster with data. | |
1684 | ||
1685 | * We now set the HASHPSPOOL flag on newly created pools (and new | |
1686 | clusters) by default. Support for this flag first appeared in | |
1687 | v0.64; v0.67 Dumpling is the first major release that supports it. | |
1688 | It is first supported by the Linux kernel version v3.9. If you plan | |
1689 | to access a newly created Ceph cluster with an older kernel or | |
1690 | clients (e.g, librados, librbd) from a pre-dumpling Ceph release, | |
1691 | you should add 'osd pool default flag hashpspool = false' to the | |
1692 | '[global]' section of your 'ceph.conf' prior to creating your | |
1693 | monitors (e.g., after 'ceph-deploy new' but before 'ceph-deploy mon | |
1694 | create ...'). | |
1695 | ||
1696 | * The configuration option 'osd pool default crush rule' is deprecated | |
1697 | and replaced with 'osd pool default crush replicated ruleset'. 'osd | |
1698 | pool default crush rule' takes precedence for backward compatibility | |
1699 | and a deprecation warning is displayed when it is used. | |
1700 | ||
1701 | Notable Changes | |
1702 | --------------- | |
1703 | ||
1704 | * buffer: some zero-copy groundwork (Josh Durgin) | |
1705 | * ceph-disk: avoid fd0 (Loic Dachary) | |
1706 | * crush: default to bobtail tunables (Sage Weil) | |
1707 | * crush: many additional tests (Loic Dachary) | |
1708 | * crush: misc fixes, cleanups (Loic Dachary) | |
1709 | * crush: new rule steps to adjust retry attempts (Sage Weil) | |
1710 | * debian: integrate misc fixes from downstream packaging (James Page) | |
1711 | * doc: big update to install docs (John Wilkins) | |
1712 | * libcephfs: fix resource leak (Zheng Yan) | |
1713 | * misc coverity fixes (Xing Lin, Li Wang, Danny Al-Gaaf) | |
1714 | * misc portability fixes (Noah Watkins, Alan Somers) | |
1715 | * mon, osd: new 'erasure' pool type (still not fully supported) | |
1716 | * mon: add 'mon getmap EPOCH' (Joao Eduardo Luis) | |
1717 | * mon: collect misc metadata about osd (os, kernel, etc.), new 'osd metadata' command (Sage Weil) | |
1718 | * osd: default to 3x replication | |
1719 | * osd: do not include backfill targets in acting set (David Zafman) | |
1720 | * osd: new 'chassis' type in default crush hierarchy (Sage Weil) | |
1721 | * osd: requery unfound on stray notify (#6909) (Samuel Just) | |
1722 | * osd: some PGBackend infrastructure (Samuel Just) | |
1723 | * osd: support for new 'memstore' (memory-backed) backend (Sage Weil) | |
1724 | * rgw: fix fastcgi deadlock (do not return data from librados callback) (Yehuda Sadeh) | |
1725 | * rgw: fix reading bucket policy (#6940) | |
1726 | * rgw: fix use-after-free when releasing completion handle (Yehuda Sadeh) | |
1727 | ||
1728 | ||
1729 | v0.73 | |
1730 | ===== | |
1731 | ||
1732 | This release, the first development release after emperor, includes | |
1733 | many bug fixes and a few additional pieces of functionality. The | |
1734 | first batch of larger changes will be landing in the next version, | |
1735 | v0.74. | |
1736 | ||
1737 | Upgrading | |
1738 | --------- | |
1739 | ||
1740 | - As part of fix for #6796, 'ceph osd pool set <pool> <var> <arg>' now | |
1741 | receives <arg> as an integer instead of a string. This affects how | |
1742 | 'hashpspool' flag is set/unset: instead of 'true' or 'false', it now | |
1743 | must be '0' or '1'. | |
1744 | ||
1745 | - The behavior of the CRUSH 'indep' choose mode has been changed. No | |
1746 | ceph cluster should have been using this behavior unless someone has | |
1747 | manually extracted a crush map, modified a CRUSH rule to replace | |
1748 | 'firstn' with 'indep', recompiled, and reinjected the new map into | |
1749 | the cluster. If the 'indep' mode is currently in use on a cluster, | |
1750 | the rule should be modified to use 'firstn' instead, and the | |
1751 | administrator should wait until any data movement completes before | |
1752 | upgrading. | |
1753 | ||
1754 | - The 'osd dump' command now dumps pool snaps as an array instead of an | |
1755 | object. | |
1756 | ||
1757 | - The radosgw init script (sysvinit) how requires that the 'host = ...' line in | |
1758 | ceph.conf, if present, match the short hostname (the output of 'hostname -s'), | |
1759 | not the fully qualified hostname or the (occasionally non-short) output of | |
1760 | 'hostname'. Failure to adjust this when upgrading from emperor or dumpling | |
1761 | may prevent the radosgw daemon from starting. | |
1762 | ||
1763 | ||
1764 | Notable Changes | |
1765 | --------------- | |
1766 | ||
1767 | * ceph-crush-location: new hook for setting CRUSH location of osd daemons on start | |
1768 | * ceph-kvstore-tool: expanded command set and capabilities (Joao Eduardo Luis) | |
1769 | * ceph.spec: fix build dependency (Loic Dachary) | |
1770 | * common: fix aligned buffer allocation (Loic Dachary) | |
1771 | * doc: many many install doc improvements (John Wilkins) | |
1772 | * mds: fix readdir end check (Zheng Yan) | |
1773 | * mds: update old-format backtraces opportunistically (Zheng Yan) | |
1774 | * misc cleanups from coverity (Xing Lin) | |
1775 | * misc portability fixes (Noah Watkins, Christophe Courtaut, Alan Somers, huanjun) | |
1776 | * mon: 'osd dump' dumps pool snaps as array, not object (Dan Mick) | |
1777 | * mon: allow debug quorum_{enter,exit} commands via admin socket | |
1778 | * mon: prevent extreme changes in pool pg_num (Greg Farnum) | |
1779 | * mon: take 'osd pool set ...' value as an int, not string (Joao Eduardo Luis) | |
1780 | * mon: trim MDSMaps (Joao Eduardo Luis) | |
1781 | * osd: fix object_info_t encoding bug from emperor (Sam Just) | |
1782 | * rbd: add 'rbdmap' init script for mapping rbd images on book (Adam Twardowski) | |
1783 | * rgw: add 'status' command to sysvinit script (David Moreau Simard) | |
1784 | * rgw: fix error setting empty owner on ACLs (Yehuda Sadeh) | |
1785 | * rgw: optionally defer to bucket ACLs instead of object ACLs (Liam Monahan) | |
1786 | * rgw: support for password (instead of admin token) for keystone authentication (Christophe Courtaut) | |
1787 | * sysvinit, upstart: prevent both init systems from starting the same daemons (Josh Durgin) |