注意
本文档适用于 Ceph 的开发版本。
Jewel
Jewel 是 Ceph 的第 10 个稳定版本。它以珍宝鱿鱼(Histioteuthis reversa)命名。
v10.2.11 Jewel
此点版本带来了一些重要的错误修复,以及一些重要的安全修复。这预计将是最后一个 Jewel 版本。我们建议所有 Jewel 10.2.x 用户升级。
值得注意的变更
CVE 2018-1128: auth: cephx 授权程序容易受到重放攻击 (issue#24836, Sage Weil)
CVE 2018-1129: auth: cephx 签名检查较弱 (issue#24837, Sage Weil)
CVE 2018-10861: mon: 针对池操作的 auth 检查不正确 (issue#24838, Jason Dillaman)
RBD C API 的 rbd_discard 方法和 C++ API 的 Image::discard 方法现在强制执行 2GB 的最大长度。此限制可防止结果代码溢出。
新的 OSD 现在默认使用 rocksdb 来存储 omap 数据,而不是 leveldb。omap 用于 RGW 存储桶索引和 CephFS 目录,当单个 leveldb 在高写入或删除工作负载下增长到 10GB 时,如果 leveldb 的单线程压缩无法跟上,可能会导致高延迟。rocksdb 支持多线程压缩,可以避免这个问题。
CephFS 客户端现在会捕获启动期间清除 dentry 失败的情况,并拒绝启动,因为可能会出现一致性和不可修剪的缓存问题。新的选项 client_die_on_failed_dentry_invalidate (默认值: true) 可以关闭以允许客户端继续(危险!)。
在 10.2.10 及更早版本中,未检查密钥环 caps 的有效性,因此 caps 字符串可以是任何内容。从 10.2.11 开始,将验证 caps 字符串,并且向 “ceph auth add” 等提供带有无效 caps 字符串的密钥环将导致错误。
变更日志
admin: bump sphinx to 1.6 (issue#21717, pr#18166, Kefu Chai, Alfredo Deza)
auth: ceph auth add does not sanity-check caps (issue#22525, pr#21367, Jing Li, Nathan Cutler, Kefu Chai, Sage Weil)
build/ops: rpm: bump epoch ahead of ceph-common in RHEL base (issue#20508, pr#21190, Ken Dreyer)
build/ops: upstart: radosgw-all does not start on boot if ceph-base is not installed (issue#18313, pr#16294, Ken Dreyer)
ceph_authtool: add mode option (issue#23513, pr#21197, Sébastien Han)
ceph-disk: factor out the retry logic into a decorator (issue#21728, pr#18169, Kefu Chai)
ceph-disk: fix --runtime omission when enabling ceph-osd@$ID.service units for device-backed OSDs (issue#21498, pr#17942, Carl Xiong)
ceph-disk flake8 test fails on very old, and very new, versions of flake8 (issue#22207, pr#19153, Nathan Cutler)
cephfs: ceph.in: pass RADOS inst to LibCephFS (issue#21406, issue#21967, pr#19907, Patrick Donnelly)
cephfs: client::mkdirs not handle well when two clients send mkdir request for a same dir (issue#20592, pr#20271, dongdong tao)
cephfs: client: prevent fallback to remount when dentry_invalidate_cb is true but root->dir is NULL (issue#23211, pr#21189, Zhi Zhang)
cephfs: fix tmap_upgrade crash (issue#23529, pr#21208, “Yan, Zheng”)
cephfs: fuse client: ::rmdir() uses a deleted memory structure of dentry leads … (issue#22536, pr#19993, YunfeiGuan)
cephfs-journal-tool: add “set pool_id” option (issue#22631, pr#20111, dongdong tao)
cephfs-journal-tool: move shutdown to the deconstructor of MDSUtility (issue#22734, pr#20333, dongdong tao)
cephfs: osdc: “FAILED assert(bh->last_write_tid > tid)” in powercycle-wip-yuri-master-1.19.18-distro-basic-smithi (issue#22741, pr#20312, “Yan, Zheng”)
cephfs: osdc/Journaler: make sure flush() writes enough data (issue#22824, pr#20435, “Yan, Zheng”)
cephfs: Processes stuck waiting for write with ceph-fuse (issue#22008, issue#22207, pr#19141, “Yan, Zheng”)
ceph-fuse: failure to remount in startup test does not handle client_die_on_failed_remount properly (issue#22269, pr#21162, Patrick Donnelly)
ceph.in: bypass codec when writing raw binary data (issue#23185, pr#20763, Oleh Prypin)
ceph-objectstore-tool command to trim the pg log (issue#23242, pr#20882, Josh Durgin, David Zafman)
ceph-objectstore-tool: “$OBJ get-omaphdr” and “$OBJ list-omap” scan all pgs instead of using specific pg (issue#21327, pr#20284, David Zafman)
ceph.restart + ceph_manager.wait_for_clean is racy (issue#15778, pr#20508, Warren Usui, Sage Weil)
ceph_volume_client: fix setting caps for IDs (issue#21501, pr#18084, Ramana Raja)
class rbd.Image discard----OSError: [errno 2147483648] error discarding region (issue#16465, issue#21966, pr#20287, Nathan Cutler, Huan Zhang, Jason Dillaman)
cli/crushtools/build.t sometimes fails in jenkins’ make check run (issue#21758, pr#21158, Kefu Chai)
client reconnect gather race (issue#22263, pr#21163, “Yan, Zheng”)
client: release revoking Fc after invalidate cache (issue#22652, pr#19975, “Yan, Zheng”)
client: set client_try_dentry_invalidate to false by default (issue#21423, pr#17925, “Yan, Zheng”)
[cli] rename of non-existent image results in seg fault (issue#21248, pr#20280, Jason Dillaman)
CLI unit formatting tests are broken (issue#24733, pr#22913, Jason Dillaman)
common: compute SimpleLRU’s size with contents.size() instead of lru.… (issue#22613, pr#19978, Xuehan Xu)
common/config: set rocksdb_cache_size to OPT_U64 (issue#22104, pr#18850, Vikhyat Umrao, liuhongtong)
common: fix typo in rados bench write JSON output (issue#24199, pr#22407, Sandor Zeestraten)
config: lower default omap entries recovered at once (issue#21897, pr#19927, Josh Durgin)
core: Addition of online osd ‘omap’compaction command (issue#19592, pr#17101, liuchang0812, Sage Weil)
core: global/signal_handler.cc: fix typo (issue#21432, pr#17883, Kefu Chai)
core: librados: Double free in rados_getxattrs_next (issue#22042, pr#20381, Gu Zhongyan)
core: Objecter::C_ObjectOperation_sparse_read throws/catches exceptions on -ENOENT (issue#21844, pr#18743, Jason Dillaman)
Deleting a pool with active notify linger ops can result in seg fault (issue#23966, pr#22188, Kefu Chai, Jason Dillaman)
doc: clarify Path Restriction instructions (issue#16906, pr#19795, huanwen ren)
doc: clarify Path Restriction instructions (issue#16906, pr#19840, Drunkard Zhang)
doc: remove region from INSTALL CEPH OBJECT GATEWAY (issue#21610, pr#18303, Orit Wasserman)
Filestore rocksdb compaction readahead option not set by default (issue#21505, pr#20446, Mark Nelson)
follow-on: osd: be_select_auth_object() sanity check oi soid (issue#20471, pr#20622, David Zafman)
HashIndex: randomize split threshold by a configurable amount (issue#15835, pr#19906, Josh Durgin)
include/fs_types: fix unsigned integer overflow (issue#22494, pr#19611, runsisi)
install-deps.sh: point gcc to the one shipped by distro (issue#22220, pr#19461, Kefu Chai)
install-deps.sh: readlink /usr/bin/gcc not /usr/bin/x86_64-linux-gnu-gcc (issue#22220, pr#19521, Kefu Chai)
install-deps.sh: update g++ symlink also (issue#22220, pr#19656, Kefu Chai)
journal: Message too long error when appending journal (issue#23526, pr#21215, Mykola Golub)
[journal] tags are not being expired if no other clients are registered (issue#21960, pr#20282, Jason Dillaman)
legal: remove doc license ambiguity (issue#23336, pr#20999, Nathan Cutler)
librados: copy out data to users’ buffer for xio (issue#20616, pr#17594, Vu Pham)
librbd: cannot clone all image-metas if we have more than 64 key/value pairs (issue#21814, pr#21228, PCzhangPC)
librbd: cannot copy all image-metas if we have more than 64 key/value pairs (issue#21815, pr#21203, PCzhangPC)
librbd: create+truncate for whole-object layered discards (issue#23285, pr#21219, Jason Dillaman)
librbd: list_children should not attempt to refresh image (issue#21670, pr#21224, Jason Dillaman)
librbd: object map batch update might cause OSD suicide timeout (issue#22716, issue#21797, pr#21220, Song Shun, Jason Dillaman)
librbd: set deleted parent pointer to null (issue#22158, pr#19098, Jason Dillaman)
log: Fix AddressSanitizer: new-delete-type-mismatch (issue#23324, pr#21084, Brad Hubbard)
mds: FAILED assert(get_version() < pv) in CDir::mark_dirty (issue#21584, pr#21156, Yan, Zheng, “Yan, Zheng”)
mds: fix dump last_sent (issue#22562, pr#19961, dongdong tao)
mds: fix integer overflow (issue#21067, pr#17188, Henry Chang)
mds: fix scrub crash (issue#22730, pr#20335, dongdong tao)
mds: session reference leak (issue#22821, pr#21175, Nathan Cutler, “Yan, Zheng”)
mds: unbalanced auth_pin/auth_unpin in RecoveryQueue code (issue#22647, pr#20067, “Yan, Zheng”)
mds: underwater dentry check in CDir::_omap_fetched is racy (issue#23032, pr#21185, Yan, Zheng)
mon/LogMonitor: call no_reply() on ignored log message (issue#24180, pr#22431, Sage Weil)
mon/MDSMonitor: no_reply on MMDSLoadTargets (issue#23769, pr#22189, Sage Weil)
mon/OSDMonitor.cc: fix expected_num_objects interpret error (issue#22530, pr#22050, Yang Honggang)
mon/OSDMonitor: fix dividing by zero in OSDUtilizationDumper (issue#22662, pr#20344, Mingxin Liu)
ObjectStore/StoreTest.FiemapHoles/3 fails with kstore (issue#21716, pr#20143, Kefu Chai, Ning Yao)
osd: also check the exsistence of clone obc for “CEPH_SNAPDIR” requests (issue#17445, pr#17707, Xuehan Xu)
osdc/Objecter: prevent double-invocation of linger op callback (issue#23872, pr#21754, Jason Dillaman)
osd: objecter sends out of sync with pg epochs for proxied ops (issue#22123, pr#20518, Sage Weil)
osd ops (sent and?) arrive at osd out of order (issue#19133, issue#19139, pr#17893, Jianpeng Ma, Sage Weil)
osd: OSDMap cache assert on shutdown (issue#21737, pr#21184, Greg Farnum)
osd: osd_scrub_during_recovery only considers primary, not replicas (issue#18206, pr#17815, David Zafman)
osd/PrimaryLogPG: dump snap_trimq size (issue#22448, pr#21200, Piotr Dałek)
osd: recover_replicas: object added to missing set for backfill, but is not in recovering, error! (issue#18162, issue#14513, pr#18690, huangjun, Adam C. Emerson, David Zafman)
osd: replica read can trigger cache promotion (issue#20919, pr#21199, Sage Weil)
osd: update heartbeat peers when a new OSD is added (issue#18004, pr#20108, Pan Liu)
performance: Only scan for omap corruption once (issue#21328, pr#18951, David Zafman)
qa: failures from pjd fstest (issue#21383, pr#21152, “Yan, Zheng”)
qa: src/test/libcephfs/test.cc:376: Expected: (len) > (0), actual: -34 vs 0 (issue#22221, pr#21172, Patrick Donnelly)
qa: use xfs instead of btrfs w/ filestore (issue#20169, issue#20911, pr#18165, Sage Weil)
qa: use xfs instead of btrfs w/ filestore (issue#21481, pr#17847, Patrick Donnelly)
radosgw: fix awsv4 header line sort order (issue#21607, pr#18080, Marcus Watts)
rbd: clean up warnings when mirror commands used on non-setup pool (issue#21319, pr#21227, Jason Dillaman)
rbd: disk usage on empty pool no longer returns an error message (issue#22200, pr#19186, Jason Dillaman)
[rbd] image-meta list does not return all entries (issue#21179, pr#20281, Jason Dillaman)
rbd: is_qemu_running in qemu_rebuild_object_map.sh and qemu_dynamic_features.sh may return false positive (issue#23502, pr#21207, Mykola Golub)
rbd: [journal] allocating a new tag after acquiring the lock should use on-disk committed position (issue#22945, pr#21206, Jason Dillaman)
rbd: librbd: filter out potential race with image rename (issue#18435, pr#19855, Jason Dillaman)
rbd ls -l crashes with SIGABRT (issue#21558, pr#19801, Jason Dillaman)
rbd-mirror: cluster watcher should ensure it has latest OSD map (issue#22461, pr#19644, Jason Dillaman)
rbd-mirror: fix potential infinite loop when formatting status message (issue#22932, pr#20418, Mykola Golub)
rbd-mirror: ignore permission errors on rbd_mirroring object (issue#20571, pr#21225, Jason Dillaman)
rbd-mirror: strip environment/CLI overrides for remote cluster (issue#21894, pr#21223, Jason Dillaman)
[rbd-nbd] Fedora does not register resize events (issue#22131, pr#19115, Jason Dillaman)
rbd-nbd: fix ebusy when do map (issue#23528, pr#21232, Li Wang)
rbd: possible deadlock in various maintenance operations (issue#22120, pr#20285, Jason Dillaman)
rbd: rbd crashes during map (issue#21808, pr#18843, Peter Keresztes Schmidt)
rbd: rbd-mirror split brain test case can have a false-positive failure until teuthology (issue#22485, pr#21205, Jason Dillaman)
rbd: TestLibRBD.RenameViaLockOwner may still fail with -ENOENT (issue#23068, pr#20627, Mykola Golub)
repair_test fails due to race with osd start (issue#20705, pr#20146, Sage Weil)
rgw: 15912 15673 (Fix duplicate tag removal during GC, cls/refcount: store and use list of retired tags) (issue#20107, pr#16708, Jens Rosenboom)
rgw: abort in listing mapped nbd devices when running in a container (issue#22012, issue#22011, pr#20286, Li Wang, Pan Liu)
rgw: add ability to sync user stats from admin api (issue#21301, pr#20179, Nathan Johnson)
rgw: add cors header rule check in cors option request (issue#22002, pr#19057, yuliyang)
rgw: add radosgw-admin sync error trim to trim sync error log (issue#23287, pr#21210, fang yuxiang)
rgw: add xml output header in RGWCopyObj_ObjStore_S3 response msg (issue#22416, pr#19887, Enming Zhang)
rgw: automated trimming of datalog and mdlog (issue#18227, pr#20061, Casey Bodley)
rgw: bi list entry count incremented on error, distorting error code (issue#21205, pr#18207, Nathan Cutler)
rgw: boto3 v4 SignatureDoesNotMatch failure due to sorting of sse-kms headers (issue#21832, pr#18772, Nathan Cutler)
rgw: bucket resharding should not update bucket ACL or user stats (issue#22124, pr#20421, Orit Wasserman)
rgw: copying part without http header x-amz-copy-source-range will be mistaken for copying object (issue#22729, pr#21294, Malcolm Lee)
rgw: core dump, recursive lock of RGWKeystoneTokenCache (issue#23171, pr#20639, Mark Kogan, Adam Kupczyk)
rgw: data sync of versioned objects, note updating bi marker (issue#18885, pr#21213, Yehuda Sadeh)
rgw: dont log EBUSY errors in ‘sync error list’ (issue#22473, pr#19908, Casey Bodley)
rgw: ECANCELED in rgw_get_system_obj() leads to infinite loop (issue#17996, pr#20561, Yehuda Sadeh)
rgw: file deadlock on lru evicting (issue#22736, pr#20076, Matt Benjamin)
rgw: file write error (issue#21455, pr#18304, Yao Zongyou)
rgw: fix chained cache invalidation to prevent cache size growth (issue#22410, pr#19469, Mark Kogan)
rgw: fix doubled underscore with s3/swift server-side copy (issue#22529, pr#19747, Matt Benjamin)
rgw: fix GET website response error code (issue#22272, pr#19488, Dmitry Plyakin)
rgw: fix index update in dir_suggest_changes (issue#24280, pr#22677, Tianshan Qu)
rgw: fix marker encoding problem (issue#20463, pr#17731, Orit Wasserman, Marcus Watts)
rgw: fix swift anonymous access (issue#22259, pr#19194, Marcus Watts)
rgw: Fix swift object expiry not deleting objects (issue#22084, pr#18925, Pavan Rallabhandi)
rgw: fix the bug that part’s index can’t be removed after completing (issue#19604, pr#16763, Zhang Shaowen, Matt Benjamin)
rgw: fix the max-uploads parameter not work (issue#22825, pr#20479, Xin Liao)
rgw: inefficient buffer usage for PUTs (issue#23207, pr#21098, Marcus Watts)
rgw: libcurl & ssl fixes (issue#22951, issue#23203, issue#23162, pr#20749, Marcus Watts, Abhishek Lekshmanan, Jesse Williamson)
rgw: list bucket which enable versioning get wrong result when user marker (issue#21500, pr#20291, yuliyang)
rgw: log includes zero byte sometimes (issue#20037, pr#17151, Abhishek Lekshmanan)
rgw: make init env methods return an error (issue#23039, pr#20800, Abhishek Lekshmanan)
RGW: Multipart upload may double the quota (issue#21586, pr#18121, Sibei Gao, Matt Benjamin)
rgw: multisite: data sync status advances despite failure in RGWListBucketIndexesCR (issue#21735, pr#20269, Casey Bodley)
rgw: multisite: Get bucket location which is located in another zonegroup, will return 301 Moved Permanently (issue#21125, pr#18305, Shasha Lu, lvshuhua, Jiaying Ren)
rgw: null instance mtime incorrect when enable versioning (issue#21743, pr#20262, Shasha Lu)
rgw: radosgw-admin: add an option to reset user stats (issue#23335, issue#23322, pr#20877, Abhishek Lekshmanan)
rgw: release cls lock if taken in RGWCompleteMultipart (issue#21596, issue#22368, pr#18116, Casey Bodley, Matt Benjamin)
rgw: resharding needs to set back the bucket ACL after link (issue#22742, pr#20039, Orit Wasserman)
rgw: resolve Random 500 errors in Swift PutObject (22517) (issue#22517, issue#21560, pr#19769, Adam C. Emerson, Matt Benjamin)
rgw: rgw_file: recursive lane lock can occur in LRU drain (issue#20374, pr#17149, Matt Benjamin)
rgw: S3 POST policy should not require Content-Type (issue#20201, pr#19635, Matt Benjamin)
rgw: s3website error handler uses original object name (issue#23201, issue#20307, pr#21100, liuhong, Casey Bodley)
rgw: segfaults after running radosgw-admin data sync init (issue#22083, pr#19783, Casey Bodley, Abhishek Lekshmanan)
rgw: segmentation fault when starting radosgw after reverting .rgw.root (issue#21996, pr#20292, Orit Wasserman, Casey Bodley)
rgw: stale bucket index entry remains after object deletion (issue#22555, pr#20293, J. Eric Ivancich)
rgw: system user can’t delete bucket completely (issue#22248, pr#21212, Casey Bodley)
rgw: tcmalloc (issue#23469, pr#21073, Matt Benjamin)
rgw: upldate the max-buckets when the quota is uploaded (issue#22745, pr#20496, zhaokun)
rgw: user creation can overwrite existing user even if different uid is given (issue#21685, pr#20074, Casey Bodley)
RHEL 7.3 Selinux denials at OSD start (issue#19200, pr#18780, Boris Ranto)
scrub errors not cleared on replicas can cause inconsistent pg state when replica takes over primary (issue#23267, pr#21194, David Zafman)
snapset xattr corruption propagated from primary to other shards (issue#20186, issue#18409, issue#21907, pr#20331, David Zafman)
systemd: Add explicit Before=ceph.target (issue#21477, pr#17841, Tim Serong)
table of contents doesn’t render for luminous/jewel docs (issue#23780, pr#21503, Alfredo Deza)
test: Adjust for Jewel quirk caused of differences with master (issue#23006, pr#20463, David Zafman)
test/CMakeLists: disable test_pidfile.sh (issue#20975, pr#20557, Sage Weil)
test_health_warnings.sh can fail (issue#21121, pr#20289, Sage Weil)
test/librbd: fixed metadata tests under upgrade scenarios (issue#21911, pr#18548, Jason Dillaman)
test/librbd: utilize unique pool for cache tier testing (issue#11502, pr#20524, Jason Dillaman)
tests: rbd_mirror_helpers.sh request_resync_image function saves image id to wrong variable (issue#21663, pr#19804, Jason Dillaman)
tests: test_admin_socket.sh may fail on wait_for_clean (issue#23499, pr#21125, Mykola Golub)
tests: tests/librbd: updated test_notify to handle new release lock semantics (issue#21912, pr#18560, Jason Dillaman)
tests: unittest_pglog timeout (issue#23504, issue#18030, pr#21135, Nathan Cutler, Loic Dachary)
tools: ceph-objectstore-tool set-size should clear data-digest (issue#22112, pr#20070, David Zafman)
Ubuntu amd64 client can not discover the ubuntu arm64 ceph cluster (issue#19705, pr#18294, Kefu Chai)
v10.2.10 Jewel
此点版本带来了 Ceph 所有主要组件中的一些重要错误修复,我们建议所有 Jewel 10.2.x 用户升级。
有关更改的详细列表,请参阅 :download: 完整的变更日志 <../changelog/v10.2.10txt>
值得注意的变更
build/ops: Add fix subcommand to ceph-disk, fix SELinux denials, and speed up upgrade from non-SELinux enabled ceph to an SELinux enabled one (issue#20077, issue#20184, issue#19545, pr#14346, Boris Ranto)
build/ops: deb: Fix logrotate packaging (issue#19938, pr#15428, Nathan Cutler)
build/ops: extended, customizable systemd ceph-disk timeout (issue#18740, pr#15051, Alexey Sheplyakov)
build/ops: rpm: fix python-Sphinx package name for SUSE (issue#19924, pr#15196, Nathan Cutler, Jan Matejek)
build/ops: rpm: set subman cron attributes in spec file (issue#20074, pr#15473, Thomas Serlin)
cephfs: ceph-fuse segfaults at mount time, assert in ceph::log::Log::stop (issue#18157, pr#16963, Greg Farnum)
cephfs: df reports negative disk “used” value when quota exceed (issue#20178, pr#16151, John Spray)
cephfs: get_quota_root sends lookupname op for every buffered write (issue#20945, pr#17396, Dan van der Ster)
cephfs: osdc/Filer: truncate large file party by party (issue#19755, pr#15442, “Yan, Zheng”)
core: an OSD was seen getting ENOSPC even with osd_failsafe_full_ratio passed (issue#20544, issue#16878, issue#19733, issue#15912, pr#15050, Sage Weil, David Zafman)
core: disable skewed utilization warning by default (issue#20730, pr#17210, David Zafman)
core: interval_set: optimize intersect_of insert operations (issue#21229, pr#17514, Zac Medico)
core: kv: let ceph_logger destructed after db reset (issue#21336, pr#17626, wumingqiao)
core: test_envlibrados_for_rocksdb.yaml fails on crypto restart (issue#19741, pr#16293, Kefu Chai)
libradosstriper silently fails to delete empty objects in jewel (issue#20325, pr#15760, Stan K)
librbd: fail IO request when exclusive lock cannot be obtained (issue#20168, issue#21251, pr#17402, Jason Dillaman)
librbd: prevent self-blacklisting during break lock (issue#18666, pr#17412, Jason Dillaman)
librbd: reacquire lock should update lock owner client id (issue#19929, pr#17385, Jason Dillaman)
mds: damage reporting by ino number is useless (issue#18509, issue#16016, pr#14699, John Spray, Michal Jarzabek)
mds: log rotation doesn’t work if mds has respawned (issue#19291, pr#14673, Patrick Donnelly)
mds: save projected path into inode_t::stray_prior_path (issue#20340, pr#16150, “Yan, Zheng”)
mon: crash on shutdown, lease_ack_timeout event (issue#19825, pr#15083, Kefu Chai, Michal Jarzabek, Alexey Sheplyakov)
mon: Disallow enabling ‘hashpspool’ option to a pool without some kind of --i-understand-this-will-remap-all-pgs flag (issue#18468, pr#13507, Vikhyat Umrao)
mon: factor mon_osd_full_ratio into MAX AVAIL calc (issue#18522, pr#15236, Sage Weil)
mon: fail to form large quorum; msg/async busy loop (issue#20230, pr#15726, Haomai Wang, Michal Jarzabek)
mon: fix force_pg_create pg stuck in creating bug (issue#18298, pr#17008, Alexey Sheplyakov)
mon: osd crush set crushmap need sanity check (issue#19302, pr#16144, Loic Dachary)
osd: Add heartbeat message for Jumbo Frames (MTU 9000) (issue#20087, issue#20323, pr#16059, Piotr Dałek, Sage Weil, Greg Farnum)
osd: fix infinite loops in fiemap (issue#19996, pr#15189, Sage Weil, Ning Yao)
osd: leaked MOSDMap (issue#18293, pr#14943, Sage Weil)
osd: objecter full_try behavior not consistent with osd (issue#19430, pr#15474, Sage Weil)
osd: omap threadpool heartbeat is only reset every 100 values (issue#20375, pr#16167, Josh Durgin)
osd: osd_internal_types: wake snaptrimmer on put_read lock, too (issue#19131, pr#16015, Sage Weil)
osd: PrimaryLogPG: do not call on_shutdown() if (pg.deleting) (issue#19902, pr#15065, Kefu Chai)
osd: rados ls on pool with no access returns no error (issue#20043, issue#19790, pr#16473, Nathan Cutler, Kefu Chai, John Spray, Sage Weil, Brad Hubbard)
osd: ReplicatedPG: solve cache tier osd high memory consumption (issue#20464, pr#16169, Peng Xie)
osd: Reset() snaptrimmer on shutdown and do not default-abort on leaked pg refs (issue#19931, pr#15322, Greg Farnum)
osd: scrub_to specifies clone ver, but transaction include head write ver (issue#20041, pr#16405, David Zafman)
osd: unlock sdata_op_ordering_lock with sdata_lock hold to avoid missing wakeup signal (issue#20427, pr#15947, Alexey Sheplyakov)
qa: add a sleep after restarting osd before “tell”ing it (issue#16239, pr#15475, Kefu Chai)
rbd: api: is_exclusive_lock_owner shouldn’t return -EBUSY (issue#20182, pr#16296, Jason Dillaman)
rbd: cli: ensure positional arguments exist before casting (issue#20185, pr#16295, Jason Dillaman)
rbd: cli: map with cephx disabled results in error message (issue#19035, pr#16297, Jason Dillaman)
rbd: default features should be negotiated with the OSD (issue#17010, pr#14874, Mykola Golub, Jason Dillaman)
rbd: Enabling mirroring for a pool with clones may fail (issue#19798, issue#19130, pr#14663, Mykola Golub, Jason Dillaman)
rbd-mirror: image sync should send NOCACHE advise flag (issue#17127, pr#16285, Mykola Golub)
rbd: object-map: batch updates during trim operation (issue#17356, pr#15460, Mykola Golub, Venky Shankar, Nathan Cutler)
rbd: Potential IO hang if image is flattened while read request is in-flight (issue#19832, pr#15464, Jason Dillaman)
rbd: rbd_clone_copy_on_read ineffective with exclusive-lock (issue#18888, pr#16124, Nathan Cutler, Venky Shankar, Jason Dillaman)
rbd: rbd-mirror: ensure missing images are re-synced when detected (issue#19811, pr#15488, Jason Dillaman)
rbd: rbd-mirror: failover and failback of unmodified image results in split-brain (issue#19858, pr#14977, Jason Dillaman)
rbd: rbd-nbd: kernel reported invalid device size (0, expected 1073741824) (issue#19871, pr#15463, Mykola Golub)
rgw: add the remove-x-delete feature to cancel swift object expiration (issue#19074, pr#14659, Jing Wenjun)
rgw: aws4: add rgw_s3_auth_aws4_force_boto2_compat conf option (issue#16463, pr#17009, Javier M. Mellid)
rgw: bucket index check in radosgw-admin removes valid index (issue#18470, pr#16856, Zhang Shaowen, Pavan Rallabhandi)
rgw: cls: ceph::timespan tag_timeout wrong units (issue#20380, pr#16289, Matt Benjamin)
rgw: Custom data header support (issue#19644, pr#15966, Pavan Rallabhandi)
rgw: datalog trim can’t work as expected (issue#20190, pr#16299, Zhang Shaowen)
rgw: Delete non-empty bucket in slave zonegroup (issue#19313, pr#15477, Zhang Shaowen)
rgw: Do not decrement stats cache when the cache values are zero (issue#20661, issue#20934, pr#16720, Aleksei Gutikov, Pavan Rallabhandi)
rgw: fix crash caused by shard id out of range when listing data log (issue#19732, pr#15465, redickwang)
rgw: fix hangs in RGWRealmReloader::reload on SIGHUP (issue#20686, pr#17281, fang.yuxiang)
rgw: fix infinite loop in rest api for log list (issue#20386, pr#15988, xierui, Casey Bodley)
rgw: fix race in RGWCompleteMultipart (issue#20861, pr#16767, Abhishek Varshney, Matt Benjamin)
rgw: Fix up to 1000 entries at a time in check_bad_index_multipart (issue#20772, pr#16880, Orit Wasserman, Matt Benjamin)
rgw: folders starting with _ underscore are not in bucket index (issue#19432, pr#16276, Giovani Rinaldi, Orit Wasserman)
rgw: ‘gc list --include-all’ command infinite loop the first 1000 items (issue#19978, pr#15719, Shasha Lu, fang yuxiang)
rgw: meta sync thread crash at RGWMetaSyncShardCR (issue#20251, pr#16711, fang yuxiang, Nathan Cutler)
rgw: multipart copy-part remove ‘/’ for s3 java sdk request header (issue#20075, pr#16266, donglingpeng)
rgw: multipart parts on versioned bucket create versioned bucket index entries (issue#19604, issue#17964, pr#17278, Zhang Shaowen)
rgw: multisite: after CreateBucket is forwarded to master, local bucket may use different value for bucket index shards (issue#19745, pr#15450, Shasha Lu)
rgw: multisite: bucket zonegroup redirect not working (issue#19488, pr#15448, Casey Bodley)
rgw: multisite: fixes for meta sync across periods (issue#18639, pr#15556, Casey Bodley)
rgw: multisite: lock is not released when RGWMetaSyncShardCR::full_sync() fails to write marker (issue#18077, pr#17155, Zhang Shaowen)
rgw: multisite: log_meta on secondary zone causes continuous loop of metadata sync (issue#20357, issue#20244, pr#17148, Orit Wasserman, Casey Bodley)
rgw: multisite: memory leak on failed lease in RGWDataSyncShardCR (issue#19861, issue#19834, issue#19446, pr#15457, Casey Bodley, weiqiaomiao)
rgw: multisite: operating bucket’s acl&cors is not restricted on slave zone (issue#16888, pr#15453, Casey Bodley, Shasha Lu, Guo Zhandong)
rgw: multisite: realm rename does not propagate to other clusters (issue#19746, pr#15454, Casey Bodley)
rgw: multisite: rest api fails to decode large period on “period commit” (issue#19505, pr#15447, Casey Bodley)
rgw: multisite: RGWPeriodPuller does not call RGWPeriod::reflect() on new period (issue#19816, issue#19817, pr#17167, Casey Bodley)
rgw: multisite: RGWRadosRemoveOmapKeysCR::request_complete return val is wrong (issue#20539, pr#17156, Shasha Lu)
rgw: not initialized pointer cause rgw crash with ec data pool (issue#20542, pr#17164, Aleksei Gutikov, fang yuxiang)
rgw: radosgw-admin: bucket rm with --bypass-gc and without --purge-data doesn’t throw error message (issue#20688, pr#17159, Abhishek Varshney)
rgw: radosgw-admin data sync run crash (issue#20423, pr#17165, Shasha Lu)
rgw: radosgw-admin: fix bucket limit check argparse, div(0) (issue#20966, pr#16952, Matt Benjamin)
rgw: reduce log level of ‘storing entry at’ in cls_log (issue#19835, pr#15455, Willem Jan Withagen)
rgw: remove unnecessary ‘error in read_id for object name: default’ (issue#19922, pr#15197, weiqiaomiao)
rgw: replace ‘+’ with “%20” in canonical query string for s3 v4 auth (issue#20501, pr#16951, Zhang Shaowen, Matt Benjamin)
rgw: rgw_common.cc: modify the end check in RGWHTTPArgs::sys_get (issue#16072, pr#16268, zhao kun)
rgw: rgw_file: cannot delete bucket w/uxattrs (issue#20061, issue#20047, issue#19214, issue#20045, pr#15459, Matt Benjamin)
rgw: rgw_file: fix size and (c|m)time unix attrs in write_finish (issue#19653, pr#15449, Matt Benjamin)
rgw: rgw_file: incorrect lane lock behavior in evict_block() (issue#21141, pr#17597, Matt Benjamin)
rgw: rgw_file: prevent conflict of mkdir between restarts (issue#20275, pr#17147, Gui Hecheng)
rgw: rgw_file: v3 write timer does not close open handles (issue#19932, pr#15456, Matt Benjamin)
rgw: Segmentation fault when exporting rgw bucket in nfs-ganesha (issue#20663, pr#17285, Matt Benjamin)
rgw: send data-log list infinitely (issue#20951, pr#17287, fang.yuxiang)
rgw: set latest object’s acl failed (issue#18649, pr#15451, Zhang Shaowen)
rgw: Truncated objects (issue#20107, pr#17166, Yehuda Sadeh)
rgw: uninitialized memory is accessed during creation of bucket’s metadata (issue#20774, pr#17280, Radoslaw Zarzynski)
rgw: usage logging on tenated buckets causes invalid memory reads (issue#20779, pr#17279, Radoslaw Zarzynski)
rgw: user quota did not work well on multipart upload (issue#19285, issue#19602, pr#17277, Zhang Shaowen)
rgw: VersionIdMarker and NextVersionIdMarker are not returned when listing object versions (issue#19886, pr#16316, Zhang Shaowen)
rgw: when uploading objects continuously into a versioned bucket, some objects will not sync (issue#18208, pr#15452, lvshuhua)
tools: ceph cli: Rados object in state configuring race (issue#16477, pr#15762, Loic Dachary)
tools: ceph-disk: dmcrypt cluster must default to ceph (issue#20893, pr#16870, Loic Dachary)
tools: ceph-disk: don’t activate suppressed journal devices (issue#19489, pr#16703, David Disseldorp)
tools: ceph-disk: separate ceph-osd --check-needs-* logs (issue#19888, pr#15503, Loic Dachary)
tools: ceph-disk: systemd unit timesout too quickly (issue#20229, pr#17133, Loic Dachary)
tools: ceph-disk: Use stdin for ‘config-key put’ command (issue#21059, pr#17084, Brad Hubbard, Loic Dachary, Sage Weil)
tools: libradosstriper processes arbitrary printf placeholders in user input (issue#20240, pr#17574, Stan K)
v10.2.9 Jewel
This point release fixes a regression introduced in v10.2.8.
We recommend that all Jewel users upgrade.
For more detailed information, see the complete changelog.
Notable Changes
cephfs: Damaged MDS with 10.2.8 (issue#20599, pr#16282, Nathan Cutler)
v10.2.8 Jewel
This point release brought a number of important bugfixes in all major components of Ceph. However, it also introduced a regression that could cause MDS damage, and a new release, v10.2.9, was published to address this. Therefore, Jewel users should not upgrade to this version - instead, we recommend upgrading directly to v10.2.9.
For more detailed information, see the complete changelog.
OSD Removal Caveat
There was a bug introduced in Jewel (#19119) that broke the mapping behavior when an “out” OSD that still existed in the CRUSH map was removed with ‘osd rm’. This could result in ‘misdirected op’ and other errors. The bug is now fixed, but the fix itself introduces the same risk because the behavior may vary between clients and OSDs. To avoid problems, please ensure that all OSDs are removed from the CRUSH map before deleting them. That is, be sure to do
ceph osd crush rm osd.123
before
ceph osd rm osd.123
Snap Trimmer Improvements
This release greatly improves control and throttling of the snap trimmer. It introduces the “osd max trimming pgs” option (defaulting to 2), which limits how many PGs on an OSD can be trimming snapshots at a time. And it restores the safe use of the “osd snap trim sleep” option, which defaults to 0 but otherwise adds the given number of seconds in delay between every dispatch of trim operations to the underlying system.
Other Notable Changes
build/ops: “osd marked itself down” will not recognised if host runs mon + osd on shutdown/reboot (issue#18516, pr#13492, Boris Ranto)
build/ops: ceph-base package missing dependency for psmisc (issue#19129, pr#13786, Nathan Cutler)
build/ops: enable build of ceph-resource-agents package on rpm-based os (issue#17613, issue#19546, pr#13606, Nathan Cutler)
build/ops: rbdmap.service not included in debian packaging (jewel-only) (issue#19547, pr#14383, Ken Dreyer)
cephfs: Journaler may execute on_safe contexts prematurely (issue#20055, pr#15468, “Yan, Zheng”)
cephfs: MDS assert failed when shutting down (issue#19204, pr#14683, John Spray)
cephfs: MDS goes readonly writing backtrace for a file whose data pool has been removed (issue#19401, pr#14682, John Spray)
cephfs: MDS server crashes due to inconsistent metadata (issue#19406, pr#14676, John Spray)
cephfs: No output for ceph mds rmfailed 0 --yes-i-really-mean-it command (issue#16709, pr#14674, John Spray)
cephfs: Test failure: test_data_isolated (tasks.cephfs.test_volume_client.TestVolumeClient) (issue#18914, pr#14685, “Yan, Zheng”)
cephfs: Test failure: test_open_inode (issue#18661, pr#14669, John Spray)
cephfs: The mount point break off when mds switch hanppened (issue#19437, pr#14679, Guan yunfei)
cephfs: ceph-fuse does not recover after lost connection to MDS (issue#16743, issue#18757, pr#14698, Kefu Chai, Henrik Korkuc, Patrick Donnelly)
cephfs: client: fix the cross-quota rename boundary check conditions (issue#18699, pr#14667, Greg Farnum)
cephfs: mds is crushed, after I set about 400 64KB xattr kv pairs to a file (issue#19033, pr#14684, Yang Honggang)
cephfs: non-local quota changes not visible until some IO is done (issue#17939, pr#15466, John Spray, Nathan Cutler)
cephfs: normalize file open flags internally used by cephfs (issue#18872, issue#19890, pr#15000, Jan Fajerski, “Yan, Zheng”)
common: monitor creation with IPv6 public network segfaults (issue#19371, pr#14324, Fabian Grünbichler)
common: radosstriper: protect aio_write API from calls with 0 bytes (issue#14609, pr#13254, Sebastien Ponce)
core: Objecter::epoch_barrier isn’t respected in _op_submit() (issue#19396, pr#14332, Ilya Dryomov)
core: clear divergent_priors set off disk (issue#17916, pr#14596, Greg Farnum)
core: improve snap trimming, enable restriction of parallelism (issue#19241, pr#14492, Samuel Just, Greg Farnum)
core: os/filestore/HashIndex: be loud about splits (issue#18235, pr#13788, Dan van der Ster)
core: os/filestore: fix clang static check warn use-after-free (issue#19311, pr#14044, liuchang0812, yaoning)
core: transient jerasure unit test failures (issue#18070, issue#17762, issue#18128, issue#17951, pr#14701, Kefu Chai, Pan Liu, Loic Dachary, Jason Dillaman)
core: two instances of omap_digest mismatch (issue#18533, pr#14204, Samuel Just, David Zafman)
doc: Improvements to crushtool manpage (issue#19649, pr#14635, Loic Dachary, Nathan Cutler)
doc: PendingReleaseNotes: note about 19119 (issue#19119, pr#13732, Sage Weil)
doc: admin ops: fix the quota section (issue#19397, pr#14654, Chu, Hua-Rong)
doc: radosgw-admin: add the ‘object stat’ command to usage (issue#19013, pr#13872, Pavan Rallabhandi)
doc: rgw S3 create bucket should not do response in json (issue#18889, pr#13874, Abhishek Lekshmanan)
fs: Invalid error code returned by MDS is causing a kernel client WARNING (issue#19205, pr#13831, Jan Fajerski, xie xingguo)
librbd: Incomplete declaration for ContextWQ in librbd/Journal.h (issue#18862, pr#14152, Boris Ranto)
librbd: Issues with C API image metadata retrieval functions (issue#19588, pr#14666, Mykola Golub)
librbd: Possible deadlock performing a synchronous API action while refresh in-progress (issue#18419, pr#13154, Jason Dillaman)
librbd: is_exclusive_lock_owner API should ping OSD (issue#19287, pr#14481, Jason Dillaman)
librbd: remove image header lock assertions (issue#18244, pr#13809, Jason Dillaman)
mds: C_MDSInternalNoop::complete doesn’t free itself (issue#19501, pr#14677, “Yan, Zheng”)
mds: Too many stat ops when trying to probe a large file (issue#19955, pr#15472, “Yan, Zheng”)
mds: avoid reusing deleted inode in StrayManager::_purge_stray_logged (issue#18877, pr#14670, Zhi Zhang)
mds: enable start when session ino info is corrupt (issue#19708, issue#16842, pr#14700, John Spray)
mds: fragment space check can cause replayed request fail (issue#18660, pr#14668, “Yan, Zheng”)
mds: heartbeat timeout during rejoin, when working with large amount of caps/inodes (issue#19118, pr#14672, John Spray)
mds: issue new caps when sending reply to client (issue#19635, pr#15438, “Yan, Zheng”)
mon: OSDMonitor: make ‘osd crush move …’ work on osds (issue#18587, pr#13261, Sage Weil)
mon: fix ‘sortbitwise’ warning on jewel (issue#20578, pr#15208, huanwen ren, Sage Weil)
mon: make get_mon_log_message() atomic (issue#19427, pr#14587, Kefu Chai)
mon: remove bad rocksdb option (issue#19392, pr#14236, Sage Weil)
msg: IPv6 Heartbeat packets are not marked with DSCP QoS - simple messenger (issue#18887, pr#13450, Yan Jun, Robin H. Johnson)
msg: set close on exec flag (issue#16390, pr#13585, Kefu Chai)
osd: --flush-journal: sporadic segfaults on exit (issue#18820, pr#13477, Alexey Sheplyakov)
osd: Give requested scrubs a higher priority (issue#15789, pr#14686, David Zafman)
osd: Implement asynchronous scrub sleep (issue#19986, issue#19497, pr#15529, Brad Hubbard)
osd: Object level shard errors are tracked and used if no auth available (issue#20089, pr#15416, David Zafman)
osd: ReplicatedPG: try with pool’s use-gmt setting if hitset archive not found (issue#19185, pr#13827, Kefu Chai)
osd: allow client throttler to be adjusted on-fly, without restart (issue#18791, pr#13214, Piotr Dałek)
osd: bypass readonly ops when osd full (issue#19394, pr#14181, Jianpeng Ma, yaoning)
osd: degraded and misplaced status output inaccurate (issue#18619, pr#14325, David Zafman)
osd: new added OSD always down when full flag is set (issue#15025, pr#14326, Mingxin Liu)
osd: pg_pool_t::encode(): be compatible with Hammer <= 0.94.6 (issue#19508, pr#14392, Alexey Sheplyakov)
osd: pre-jewel “osd rm” incrementals are misinterpreted (issue#19119, pr#13884, Ilya Dryomov)
osd: preserve allocation hint attribute during recovery (issue#19083, pr#13647, yaoning)
osd: promote throttle parameters are reversed (issue#19773, pr#14791, Mark Nelson)
osd: reindex properly on pg log split (issue#18975, pr#14047, Alexey Sheplyakov)
osd: restrict want_acting to up+acting on recovery completion (issue#18929, pr#13541, Sage Weil)
rbd-nbd: check /sys/block/nbdX/size to ensure kernel mapped correctly (issue#18335, pr#13932, Mykola Golub, Alexey Sheplyakov)
rbd: [api] temporarily restrict (rbd_)mirror_peer_add from adding multiple peers (issue#19256, pr#14664, Jason Dillaman)
rbd: qemu crash triggered by network issues (issue#18436, pr#13244, Jason Dillaman)
rbd: rbd --pool=x rename y z does not work (issue#18326, pr#14148, Gaurav Kumar Garg)
rbd: systemctl stop rbdmap unmaps all rbds and not just the ones in /etc/ceph/rbdmap (issue#18884, issue#18262, pr#14083, David Disseldorp, Nathan Cutler)
rgw: “cluster [WRN] bad locator @X on object @X….” in cluster log (issue#18980, pr#14064, Casey Bodley)
rgw: ‘radosgw-admin sync status’ on master zone of non-master zonegroup (issue#18091, pr#13779, Jing Wenjun)
rgw: Change loglevel to 20 for ‘System already converted’ message (issue#18919, pr#13834, Vikhyat Umrao)
rgw: Use decoded URI when verifying TempURL (issue#18590, pr#13724, Alexey Sheplyakov)
rgw: a few cases where rgw_obj is incorrectly initialized (issue#19096, pr#13842, Yehuda Sadeh)
rgw: add apis to support ragweed suite (issue#19804, pr#14851, Yehuda Sadeh)
rgw: add bucket size limit check to radosgw-admin (issue#17925, pr#14787, Matt Benjamin)
rgw: allow system users to read SLO parts (issue#19027, pr#14752, Casey Bodley)
rgw: don’t return skew time in pre-signed url (issue#18828, issue#18829, pr#14605, liuchang0812)
rgw: failure to create s3 type subuser from admin rest api (issue#16682, pr#14815, snakeAngel2015)
rgw: fix break inside of yield in RGWFetchAllMetaCR (issue#17655, pr#14066, Casey Bodley)
rgw: fix failed to create bucket if a non-master zonegroup has a single zone (issue#19756, pr#14766, weiqiaomiao)
rgw: health check errors out incorrectly (issue#19025, pr#13865, Pavan Rallabhandi)
rgw: list_plain_entries() stops before bi_log entries (issue#19876, pr#15383, Casey Bodley)
rgw: multisite: fetch_remote_obj() gets wrong version when copying from remote (issue#19599, pr#14607, Zhang Shaowen, Casey Bodley)
rgw: multisite: some yields in RGWMetaSyncShardCR::full_sync() resume in incremental_sync() (issue#18076, pr#13837, Casey Bodley, Abhishek Lekshmanan)
rgw: only append zonegroups to rest params if not empty (issue#20078, pr#15312, Yehuda Sadeh, Karol Mroz)
rgw: pullup civet chunked (issue#19736, pr#14776, Matt Benjamin)
rgw: rgw_file: fix event expire check, don’t expire directories being read (issue#19623, issue#19270, issue#19625, issue#19624, issue#19634, issue#19435, pr#14653, Gui Hecheng, Matt Benjamin)
rgw: swift: disable revocation thread under certain circumstances (issue#19499, issue#9493, pr#14789, Marcus Watts)
rgw: the swift container acl does not support field .ref (issue#18484, pr#13833, Jing Wenjun)
rgw: typo in rgw_admin.cc (issue#19026, pr#13863, Ronak Jain)
rgw: unsafe access in RGWListBucket_ObjStore_SWIFT::send_response() (issue#19249, pr#14661, Yehuda Sadeh)
rgw: upgrade to multisite v2 fails if there is a zone without zone info (issue#19231, pr#14136, Danny Al-Gaaf, Orit Wasserman)
rgw: use separate http_manager for read_sync_status (issue#19236, pr#14195, Casey Bodley, Shasha Lu)
rgw: when converting region_map we need to use rgw_zone_root_pool (issue#19195, pr#14143, Orit Wasserman)
rgw: zonegroupmap set does not work (issue#19498, issue#18725, pr#14660, Orit Wasserman, Casey Bodley)
rgw:fix memory leaks in data/md sync (issue#20088, pr#15382, weiqiaomiao)
tests: ‘ceph auth import -i’ overwrites caps, should alert user before overwrite (issue#18932, pr#13544, Vikhyat Umrao)
tests: New upgrade test for #19508 (issue#19829, issue#19508, pr#14930, Nathan Cutler)
tests: [ FAILED ] TestLibRBD.ImagePollIO in upgrade:client-upgrade-kraken-distro-basic-smithi (issue#18617, pr#13107, Jason Dillaman)
tests: [librados_test_stub] cls_cxx_map_get_XYZ methods don’t return correct value (issue#19597, pr#14665, Jason Dillaman)
tests: additional rbd-mirror test stability improvements (issue#18935, pr#14154, Jason Dillaman)
tests: api_misc: [ FAILED ] LibRadosMiscConnectFailure.ConnectFailure (issue#15368, pr#14763, Sage Weil)
tests: buffer overflow in test LibCephFS.DirLs (issue#18941, pr#14671, “Yan, Zheng”)
tests: clone workunit using the branch specified by task (issue#19429, pr#14371, Kefu Chai, Dan Mick)
tests: drop upgrade/hammer-jewel-x (issue#20574, pr#15933, Nathan Cutler)
tests: dummy suite fails in OpenStack (issue#18259, pr#14070, Nathan Cutler)
tests: eliminate race condition in Thrasher constructor (issue#18799, pr#13608, Nathan Cutler)
tests: enable quotas for pre-luminous quota tests (issue#20412, pr#15936, Patrick Donnelly)
tests: fix oversight in yaml comment (issue#20581, pr#14449, Nathan Cutler)
tests: move swift.py task from teuthology to ceph, phase one (jewel) (issue#20392, pr#15870, Nathan Cutler, Sage Weil, Warren Usui, Greg Farnum, Ali Maredia, Tommi Virtanen, Zack Cerza, Sam Lang, Yehuda Sadeh, Joe Buck, Josh Durgin)
tests: qa/Fixed upgrade sequence to 10.2.0 -> 10.2.7 -> latest -x (10.2.8) (issue#20572, pr#16089, Yuri Weinstein)
tests: qa/suites/upgrade/hammer-x: set “sortbitwise” for jewel clusters (issue#20342, pr#15842, Nathan Cutler)
tests: qa/workunits/rados/test-upgrade-*: whitelist tests for master (part 1) (issue#20577, pr#15360, Sage Weil)
tests: qa/workunits/rados/test-upgrade-*: whitelist tests for master (part 2) (issue#20576, pr#15778, Kefu Chai)
tests: qa/workunits/rados/test-upgrade-*: whitelist tests the right way (issue#20575, pr#15824, Kefu Chai)
tests: rados: sleep before ceph tell osd.0 flush_pg_stats after restart (issue#16239, issue#20489, pr#14710, Kefu Chai, Nathan Cutler)
tests: run upgrade/client-upgrade on latest CentOS 7.3 (issue#20573, pr#16088, Nathan Cutler)
tests: run-rbd-unit-tests.sh assert in lockdep_will_lock, TestLibRBD.ObjectMapConsistentSnap (issue#17447, pr#14150, Jason Dillaman)
tests: systemd test backport to jewel (issue#19717, pr#14694, Vasu Kulkarni)
tests: test/librados/tmap_migrate: g_ceph_context->put() upon return (issue#20579, pr#14809, Kefu Chai)
tests: test_notify.py: rbd.InvalidArgument: error updating features for image test_notify_clone2 (issue#19692, pr#14680, Jason Dillaman)
tests: upgrade/hammer-x failing with OSD has the store locked when Thrasher runs ceph-objectstore-tool on down PG (issue#19556, pr#14416, Nathan Cutler)
tests: upgrade:hammer-x/stress-split-erasure-code-x86_64 fails in 10.2.8 integration testing (issue#20413, pr#15904, Nathan Cutler)
tools: brag fails to count “in” mds (issue#19192, pr#14112, Oleh Prypin, Peng Zhang)
tools: ceph-disk does not support cluster names different than ‘ceph’ (issue#17821, pr#14765, Loic Dachary)
tools: ceph-disk: Racing between partition creation and device node creation (issue#19428, pr#14329, Erwan Velu)
tools: ceph-disk: bluestore --setgroup incorrectly set with user (issue#18955, pr#13489, craigchi)
tools: ceph-disk: ceph-disk list reports mount error for OSD having mount options with SELinux context (issue#17331, pr#14402, Brad Hubbard)
tools: ceph-disk: do not setup_statedir on trigger (issue#19941, pr#15504, Loic Dachary)
tools: ceph-disk: enable directory backed OSD at boot time (issue#19628, pr#14602, Loic Dachary)
tools: rados: RadosImport::import should return an error if Rados::connect fails (issue#19319, pr#14113, Brad Hubbard)
v10.2.7 Jewel
This point release fixes several important bugs in RBD mirroring, librbd & RGW.
We recommend that all v10.2.x users upgrade.
For more detailed information, see the complete changelog.
Notable Changes
librbd: possible race in ExclusiveLock handle_peer_notification (issue#19368, pr#14233, Mykola Golub)
osd: Increase priority for inactive PGs backfill (issue#18350, pr#13232, Bartłomiej Święcki)
osd: Scrub improvements and other fixes (issue#17857, issue#18114, issue#13937, issue#18113, pr#13146, Kefu Chai, David Zafman)
osd: fix OSD network address in OSD heartbeat_check log message (issue#18657, pr#13108, Vikhyat Umrao)
rbd-mirror: deleting a snapshot during sync can result in read errors (issue#18990, pr#13596, Jason Dillaman)
rgw: ‘period update’ does not remove short_zone_ids of deleted zones (issue#15618, pr#14140, Casey Bodley)
rgw: DUMPABLE flag is cleared by setuid preventing coredumps (issue#19089, pr#13844, Brad Hubbard)
rgw: clear data_sync_cr if RGWDataSyncControlCR fails (issue#17569, pr#13886, Casey Bodley)
rgw: fix openssl (issue#11239, issue#19098, issue#16535, pr#14215, Marcus Watts)
rgw: fix swift cannot disable object versioning with empty X-Versions-Location (issue#18852, pr#13823, Jing Wenjun)
rgw: librgw: RGWLibFS::setattr fails on directories (issue#18808, pr#13778, Matt Benjamin)
rgw: make sending Content-Length in 204 and 304 controllable (issue#16602, pr#13503, Radoslaw Zarzynski, Matt Benjamin)
rgw: multipart uploads copy part support (issue#12790, pr#13219, Yehuda Sadeh, Javier M. Mellid, Matt Benjamin)
rgw: multisite: RGWMetaSyncShardControlCR gives up on EIO (issue#19019, pr#13867, Casey Bodley)
rgw: radosgw/swift: clean up flush / newline behavior (issue#18473, pr#14100, Nathan Cutler, Marcus Watts, Matt Benjamin)
rgw: radosgw/swift: clean up flush / newline behavior. (issue#18473, pr#13143, Marcus Watts, Matt Benjamin)
rgw: rgw_fh: RGWFileHandle dtor must also cond-unlink from FHCache (issue#19112, pr#14231, Matt Benjamin)
rgw: rgw_file: avoid interning .. in FHCache table and don’t ref for them (issue#19036, pr#13848, Matt Benjamin)
rgw: rgw_file: interned RGWFileHandle objects need parent refs (issue#18650, pr#13583, Matt Benjamin)
rgw: rgw_file: restore (corrected) fix for dir partial match (return of FLAG_EXACT_MATCH) (issue#19060, issue#18992, issue#19059, pr#13858, Matt Benjamin)
rgw: rgw_file: FHCache residence check should be exhaustive (issue#19111, pr#14169, Matt Benjamin)
rgw: rgw_file: ensure valid_s3_object_name for directories, too (issue#19066, pr#13717, Matt Benjamin)
rgw: rgw_file: fix marker computation (issue#19018, issue#18989, issue#18992, issue#18991, pr#13869, Matt Benjamin)
rgw: rgw_file: wip dir orphan (issue#18992, issue#18989, issue#19018, issue#18991, pr#14205, Gui Hecheng, Matt Benjamin)
rgw: rgw_file: various fixes (pr#14206, Matt Benjamin)
rgw: rgw_file: expand argv (pr#14230, Matt Benjamin)
v10.2.6 Jewel
This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
We recommend that all v10.2.x users upgrade.
For more detailed information, see the complete changelog.
OSDs No Longer Send ENXIO by Default
In previous versions, if a client sent an op to the wrong OSD, the OSD would reply with ENXIO. The rationale here is that the client or OSD is clearly buggy and we want to surface the error as clearly as possible. We now only send the ENXIO reply if the osd_enxio_on_misdirected_op option is enabled (it’s off by default). This means that a VM using librbd that previously would have gotten an EIO and gone read-only will now see a blocked/hung IO instead.
Other Notable Changes
build/ops: add hostname sanity check to run-{c}make-check.sh (issue#18134, pr#12302, Nathan Cutler)
build/ops: add ldap lib to rgw lib deps based on build config (issue#17313, pr#13183, Nathan Cutler)
build/ops: ceph-create-keys loops forever (issue#17753, pr#11884, Alfredo Deza)
build/ops: ceph daemons DUMPABLE flag is cleared by setuid preventing coredumps (issue#17650, pr#11736, Patrick Donnelly)
build/ops: fixed compilation error when --with-radowsgw=no (issue#18512, pr#12729, Pan Liu)
build/ops: fixed the issue when --disable-server, compilation fails. (issue#18120, pr#12239, Pan Liu)
build/ops: fix undefined crypto references with --with-xio (issue#18133, pr#12296, Nathan Cutler)
build/ops: install-deps.sh based on /etc/os-release (issue#18466, issue#18198, pr#12405, Jan Fajerski, Nitin A Kamble, Nathan Cutler)
build/ops: Remove the runtime dependency on lsb_release (issue#17425, pr#11875, John Coyle, Brad Hubbard)
build/ops: rpm: /etc/ceph/rbdmap is packaged with executable access rights (issue#17395, pr#11855, Ken Dreyer)
build/ops: selinux: Allow ceph to manage tmp files (issue#17436, pr#13048, Boris Ranto)
build/ops: systemd: Restart Mon after 10s in case of failure (issue#18635, pr#13058, Wido den Hollander)
build/ops: systemd restarts Ceph Mon to quickly after failing to start (issue#18635, pr#13184, Wido den Hollander)
ceph-disk: fix flake8 errors (issue#17898, pr#11976, Ken Dreyer)
cephfs: fuse client crash when adding a new osd (issue#17270, pr#11860, John Spray)
cli: ceph-disk: convert none str to str before printing it (issue#18371, pr#13187, Kefu Chai)
client: Fix lookup of “/..” in jewel (issue#18408, pr#12766, Jeff Layton)
client: fix stale entries in command table (issue#17974, pr#12137, John Spray)
client: populate metadata during mount (issue#18361, pr#13085, John Spray)
cli: implement functionality for adding, editing and removing omap values with binary keys (issue#18123, pr#12755, Jason Dillaman)
common: Improve linux dcache hash algorithm (issue#17599, pr#11529, Yibo Cai)
common: utime.h: fix timezone issue in round_to_* funcs. (issue#14862, pr#11508, Zhao Chao)
doc: Python Swift client commands in Quick Developer Guide don’t match configuration in vstart.sh (issue#17746, pr#13043, Ronak Jain)
librbd: allow to open an image without opening parent image (issue#18325, pr#13130, Ricardo Dias)
librbd: metadata_set API operation should not change global config setting (issue#18465, pr#13168, Mykola Golub)
librbd: new API method to force break a peer’s exclusive lock (issue#15632, issue#16773, issue#17188, issue#16988, issue#17210, issue#17251, issue#18429, issue#17227, issue#18327, issue#17015, pr#12890, Danny Al-Gaaf, Mykola Golub, Jason Dillaman)
librbd: properly order concurrent updates to the object map (issue#16176, pr#12909, Jason Dillaman)
librbd: restore journal access when force disabling mirroring (issue#17588, pr#11916, Mykola Golub)
mds: Cannot create deep directories when caps contain path=/somepath (issue#17858, pr#12154, Patrick Donnelly)
mds: cephfs metadata pool: deep-scrub error omap_digest != best guess omap_digest (issue#17177, pr#12380, Yan, Zheng)
mds: cephfs test failures (ceph.com/qa is broken, should be download.ceph.com/qa) (issue#18574, pr#13023, John Spray)
mds: ceph-fuse crash during snapshot tests (issue#18460, pr#13120, Yan, Zheng)
mds: ceph_volume_client: fix recovery from partial auth update (issue#17216, pr#11656, Ramana Raja)
mds: ceph_volume_client.py : Error: Can’t handle arrays of non-strings (issue#17800, pr#12325, Ramana Raja)
mds: Cleanly reject session evict command when in replay (issue#17801, pr#12153, Yan, Zheng)
mds: client segfault on ceph_rmdir path / (issue#9935, pr#13029, Michal Jarzabek)
mds: Clients without pool-changing caps shouldn’t be allowed to change pool_namespace (issue#17798, pr#12155, John Spray)
mds: Decode errors on backtrace will crash MDS (issue#18311, pr#12836, Nathan Cutler, John Spray)
mds: false failing to respond to cache pressure warning (issue#17611, pr#11861, Yan, Zheng)
mds: finish clientreplay requests before requesting active state (issue#18461, pr#13113, Yan, Zheng)
mds: fix incorrect assertion in Server::_dir_is_nonempty() (issue#18578, pr#13459, Yan, Zheng)
mds: fix MDSMap upgrade decoding (issue#17837, pr#13139, John Spray, Patrick Donnelly)
mds: fix missing ll_get for ll_walk (issue#18086, pr#13125, Gui Hecheng)
mds: Fix mount root for ceph_mount users and change tarball format (issue#18312, issue#18254, pr#12592, Jeff Layton)
mds: fix null pointer dereference in Locker::handle_client_caps (issue#18306, pr#13060, Yan, Zheng)
mds: lookup of /.. in returns -ENOENT (issue#18408, pr#12783, Jeff Layton)
mds: MDS crashes on missing metadata object (issue#18179, pr#13119, Yan, Zheng)
mds: mds fails to respawn if executable has changed (issue#17531, pr#11873, Patrick Donnelly)
mds: MDS: false failing to respond to cache pressure warning (issue#17716, pr#11856, Yan, Zheng)
mds: MDS goes damaged on blacklist (failed to read JournalPointer: -108 ((108) Cannot send after transport endpoint shutdown) (issue#17236, pr#11413, John Spray)
mds: MDS long-time blocked ops. ceph-fuse locks up with getattr of file (issue#17275, pr#11858, Yan, Zheng)
mds: speed up readdir by skipping unwanted dn (issue#18519, pr#12921, Xiaoxi Chen)
mds: standby-replay daemons can sometimes miss events (issue#17954, pr#13126, John Spray)
mon: cache tiering: base pool last_force_resend not respected (racing read got wrong version) (issue#18366, pr#13115, Sage Weil)
mon: ceph osd down detection behaviour (issue#18104, pr#12677, xie xingguo)
mon: Error EINVAL: removing mon.a at 172.21.15.16:6789/0, there will be 1 monitors (issue#17725, pr#11999, Joao Eduardo Luis)
mon: health does not report pgs stuck in more than one state (issue#17515, pr#11660, Sage Weil)
mon: monitor assertion failure when deactivating mds in (invalid) fscid 0 (issue#17518, pr#11862, Patrick Donnelly)
mon: monitor cannot start because of FAILED assert(info.state == MDSMap::STATE_STANDBY) (issue#18166, pr#13123, John Spray, Patrick Donnelly)
mon: osd flag health message is misleading (issue#18175, pr#13117, Sage Weil)
mon: OSDMonitor: clear jewel+ feature bits when talking to Hammer OSD (issue#18582, pr#13131, Piotr Dałek)
mon: OSDs marked OUT wrongly after monitor failover (issue#17719, pr#11947, Dong Wu)
mon: peon wrongly delete routed pg stats op before receive pg stats ack (issue#18458, pr#13045, Mingxin Liu)
mon: send updated monmap to its subscribers (issue#17558, pr#11743, Kefu Chai)
msgr: don’t truncate message sequence to 32-bits (issue#16122, pr#12416, Yan, Zheng)
msgr: msg/simple: clear_pipe when wait() is mopping up pipes (issue#15784, pr#13062, Sage Weil)
msgr: msg/simple/Pipe: error decoding addr (issue#18072, pr#12291, Sage Weil)
osd: Add config option to disable new scrubs during recovery (issue#17866, pr#11944, Wido den Hollander)
osd: collection_list shadow return value # (issue#17713, pr#11737, Haomai Wang)
osd: do not send ENXIO on misdirected op by default (issue#18751, pr#13255, Sage Weil)
osd: FileStore: fiemap cannot be totally retrieved in xfs when the number of extents > 1364 (issue#17610, pr#11998, Kefu Chai, Ning Yao)
osd: leveldb corruption leads to Operation not permitted not handled and assert (issue#18037, pr#12789, Nathan Cutler)
osd: limit omap data in push op (issue#16128, pr#11991, Wanlong Gao)
osd: osd crashes when radosgw-admin bi list --max-entries=1 command runing (issue#17745, pr#11758, weiqiaomiao)
osd: osd_max_backfills default has changed, documentation should reflect that. (issue#17701, pr#11735, huangjun)
osd: OSDMonitor: only reject MOSDBoot based on up_from if inst matches (issue#17899, pr#12868, Samuel Just)
osd: osd/PG: publish PG stats when backfill-related states change (issue#18369, pr#12875, Alexey Sheplyakov, Sage Weil)
osd: Remove extra call to reg_next_scrub() during splits (issue#16474, pr#11606, David Zafman)
osd: Revert “Merge pull request #12978 from asheplyakov/jewel-18581” (issue#18809, pr#13280, Samuel Just)
osd: update_log_missing does not order correctly with osd_ops (issue#17789, pr#11997, Samuel Just)
qa/tasks: backport rbd_fio fixes to jewel (issue#13512, pr#13104, Ilya Dryomov)
qa/tasks/workunits: backport misc fixes to jewel (issue#18336, pr#12912, Sage Weil)
rados: crash adding snap to purged_snaps in ReplicatedPG::WaitingOnReplicas (part 2) (issue#15943, issue#18504, pr#12791, Samuel Just)
rados: Memory leaks in object_list_begin and object_list_end (issue#18252, pr#13118, Brad Hubbard)
rados: The request lock RPC message might be incorrectly ignored (issue#17030, pr#10865, Jason Dillaman)
rbd: add image id block name prefix APIs (issue#18270, pr#12529, Jason Dillaman)
rbd: add max_part and nbds_max options in rbd nbd map, in order to keep consistent with (issue#18186, pr#12426, Pan Liu)
rbd: Attempting to remove an image w/ incompatible features results in partial removal (issue#18315, pr#13156, Dongsheng Yang)
rbd: bench-write will crash if --io-size is 4G (issue#18422, pr#13129, Gaurav Kumar Garg)
rbd: diff calculate can hide parent extents when examining first snapshot in clone (issue#18068, pr#12322, Jason Dillaman)
rbd: Exclusive lock improperly initialized on read-only image when using snap_set API (issue#17618, pr#11852, Jason Dillaman)
rbd: FAILED assert(m_processing == 0) while running test_lock_fence.sh (issue#17973, pr#12323, Venky Shankar)
rbd: Improve error reporting from rbd feature enable/disable (issue#16985, pr#13157, Gaurav Kumar Garg)
rbd: JournalMetadata flooding with errors when being blacklisted (issue#18243, pr#12739, Jason Dillaman)
rbd: librbd: use proper snapshot when computing diff parent overlap (issue#18200, pr#12649, Xiaoxi Chen)
rbd: partition func should be enabled When load nbd.ko for rbd-nbd (issue#18115, pr#12754, Pan Liu)
rbd: Potential race when removing two-way mirroring image (issue#18447, pr#13233, Mykola Golub)
rbd: [qa] crash in journal-enabled fsx run (issue#18618, pr#13128, Jason Dillaman)
rbd: ‘rbd du’ of missing image does not return error (issue#16987, pr#11854, Dongsheng Yang)
rbd: rbd-mirror: gmock warnings in bootstrap request unit tests (issue#18048, issue#18012, issue#18156, issue#16991, issue#18051, pr#12425, Mykola Golub)
rbd: rbd-mirror: image sync object map reload logs message (issue#16179, pr#12753, runsisi)
rbd: rbd-mirror: snap protect of non-layered image results in split-brain (issue#16962, pr#11869, Mykola Golub)
rbd: [rbd-mirror] sporadic image replayer shut down failure (issue#18441, pr#13155, Jason Dillaman)
rbd: rbd-nbd: disallow mapping images >2TB in size (issue#17219, pr#11870, Mykola Golub)
rbd: rbd-nbd: invalid error code for “failed to read nbd request” messages (issue#18242, pr#12756, Mykola Golub)
rbd: status json format has duplicated/overwritten key (issue#18261, pr#12741, Mykola Golub)
rbd: TestLibRBD.DiscardAfterWrite doesn’t handle rbd_skip_partial_discard = true (issue#17750, pr#11853, Jason Dillaman)
rbd: truncate can cause unflushed snapshot data lose (issue#17193, pr#12324, Yan, Zheng)
: ReplicatedBackend: take read locks for clone sources during recovery (issue#17831, issue#18583, pr#12978, Samuel Just)
rgw: add option to log custom HTTP headers (rgw_log_http_headers) (issue#18891, pr#12490, Matt Benjamin)
rgw: add suport for Swift-at-root dependent features of Swift API (issue#18526, issue#16673, pr#11497, Pritha Srivastava, Radoslaw Zarzynski, Pete Zaitcev, Abhishek Lekshmanan)
rgw: add support for the prefix parameter in account listing of Swift API (issue#17931, pr#12258, Radoslaw Zarzynski)
rgw: Add workaround for upgrade issues for older jewel versions (issue#17820, pr#12316, Orit Wasserman)
rgw: be aware abount tenants on cls_user_bucket -> rgw_bucket conversion (issue#18364, issue#16355, pr#13276, Radoslaw Zarzynski)
rgw: bucket check remove _multipart_ prefix (issue#13724, pr#11470, Weijun Duan)
rgw: bucket resharding (issue#17549, issue#17550, pr#13341, Yehuda Sadeh, Robin H. Johnson)
rgw: disable virtual hosting of buckets when no hostnames are configured (issue#17440, issue#15975, issue#17136, pr#11760, Casey Bodley, Robin H. Johnson)
rgw: do not abort when accept a CORS request with short origin (issue#18187, pr#12397, LiuYang)
rgw: don’t store empty chains in gc (issue#17897, pr#12174, Yehuda Sadeh)
rgw:fix for deleting objects name beginning and ending with underscores of one bucket using POST method of js sdk. (issue#17888, pr#12320, Casey Bodley)
rgw: fix period update crash (issue#18631, pr#13273, Orit Wasserman)
rgw: fix put_acls for objects starting and ending with underscore (issue#17625, pr#11675, Orit Wasserman)
rgw: fix use of marker in List::list_objects() (issue#18331, pr#13358, Yehuda Sadeh)
rgw: for the create_bucket api, if the input creation_time is zero, we … (issue#16597, pr#11990, weiqiaomiao)
rgw: Have a flavor of bucket deletion in radosgw-admin to bypass garbage collection (issue#15557, pr#10661, Pavan Rallabhandi)
rgw: json encode/decode of RGWBucketInfo missing index_type field (issue#17755, pr#11759, Yehuda Sadeh)
rgw: ldap: enforce simple_bind w/LDAPv3 redux (issue#18339, pr#12678, Weibing Zhang)
rgw: leak from RGWMetaSyncShardCR::incremental_sync (issue#18412, issue#18300, pr#13004, Casey Bodley, Sage Weil)
rgw: leak in RGWFetchAllMetaCR (issue#17812, pr#11872, Casey Bodley)
rgw: librgw: objects created from s3 apis are not visible from nfs mount point (issue#18651, pr#13177, Matt Benjamin)
rgw: log name instead of id for SystemMetaObj on failure (issue#15776, pr#12622, Wido den Hollander, Abhishek Lekshmanan)
rgw: multimds: mds entering up:replay and processing down mds aborts (issue#17670, pr#11857, Patrick Donnelly)
rgw: multipart upload copy (issue#12790, pr#13068, Yehuda Sadeh, Javier M. Mellid, Matt Benjamin)
rgw: multisite: after finishing full sync on a bucket, incremental sync starts over from the beginning (issue#17661, issue#17624, pr#11864, Zengran Zhang, Casey Bodley)
rgw: multisite: assert(next) failed in RGWMetaSyncCR (issue#17044, pr#11477, Casey Bodley)
rgw: multisite: coroutine deadlock assertion on error in FetchAllMetaCR (issue#17571, pr#11866, Casey Bodley)
rgw: multisite: coroutine deadlock in RGWMetaSyncCR after ECANCELED errors (issue#17465, pr#12738, Casey Bodley)
rgw: multisite doesn’t retry RGWFetchAllMetaCR on failed lease (issue#17047, pr#11476, Casey Bodley)
rgw: multisite: ECANCELED & 500 error on bucket delete (issue#17698, pr#12044, Casey Bodley)
rgw: multisite: failed assertion in ‘radosgw-admin bucket sync status’ (issue#18083, pr#12314, Casey Bodley)
rgw: multisite: fix ref counting of completions (issue#17792, issue#18414, issue#17793, issue#18407, pr#13001, Casey Bodley)
rgw: multisite: metadata master can get the wrong value for ‘oldest_log_period’ (issue#16894, pr#11868, Casey Bodley)
rgw: multisite: obsolete ‘radosgw-admin period prepare’ command (issue#17387, pr#11574, Gaurav Kumar Garg)
rgw: multisite: race between ReadSyncStatus and InitSyncStatus leads to EIO errors (issue#17568, pr#11865, Casey Bodley)
rgw: multisite requests failing with ‘400 Bad Request’ with civetweb 1.8 (issue#17822, pr#12313, Casey Bodley)
rgw: multisite: segfault after changing value of rgw_data_log_num_shards (issue#18488, pr#13180, Casey Bodley)
rgw: multisite: sync status reports master is on a different period (issue#18064, pr#13175, Abhishek Lekshmanan)
rgw: multisite upgrade from hammer -> jewel ignores rgw_region_root_pool (issue#17963, pr#12156, Casey Bodley)
rgw: radosgw-admin period update reverts deleted zonegroup (issue#17239, pr#13171, Orit Wasserman)
rgw: Realm set does not create a new period (issue#18333, pr#13182, Orit Wasserman)
rgw: remove spurious mount entries for RGW buckets (issue#17850, pr#12045, Matt Benjamin)
rgw: Replacing ‘+’ with “%20” in canonical uri for s3 v4 auth. (issue#17076, pr#12542, Pritha Srivastava)
rgw: rgw-admin: missing command to modify placement targets (issue#18078, pr#12428, Yehuda Sadeh, Casey Bodley)
rgw: RGWRados::get_system_obj() sends unnecessary stat request before read (issue#17580, pr#11867, Casey Bodley)
rgw: rgw_rest_s3: apply missed base64 try-catch (issue#17663, pr#11672, Matt Benjamin)
rgw: RGW will not list Argonaut-era bucket via HTTP (but radosgw-admin works) (issue#17372, pr#11863, Yehuda Sadeh)
rgw: sends omap_getvals with (u64)-1 limit (issue#17985, pr#12419, Yehuda Sadeh, Sage Weil)
rgw: slave zonegroup cannot enable the bucket versioning (issue#18003, pr#13173, Orit Wasserman)
rgw: TempURL properly handles accounts created with the implicit tenant (issue#17961, pr#12079, Radoslaw Zarzynski)
rgw: the value of total_time is wrong in the result of ‘radosgw-admin log show’ opt (issue#17598, pr#11876, weiqiaomiao)
rgw: Unable to commit period zonegroup change (issue#17364, pr#12315, Orit Wasserman)
rgw: valgrind “invalid read size 4” RGWGetObj (issue#18071, pr#12997, Matt Benjamin)
rgw: work around curl_multi_wait bug with non-blocking reads (issue#15915, issue#16368, issue#16695, pr#11627, John Coyle, Casey Bodley)
tests: add require_jewel_osds before upgrading last hammer node (issue#18719, pr#13161, Nathan Cutler)
tests: add require_jewel_osds to upgrade/hammer-x/tiering (issue#18920, pr#13404, Nathan Cutler)
tests: assertion failure in a radosgw-admin related task (issue#17167, pr#12764, Orit Wasserman)
tests: Cannot reserve CentOS 7.2 smithi machines (issue#18416, issue#18401, pr#13050, Nathan Cutler, Sage Weil, Yuri Weinstein)
tests: ignore bogus ceph-objectstore-tool error in ceph_manager (issue#16263, pr#13240, Nathan Cutler, Kefu Chai)
tests: objecter_requests workunit fails on wip branches (issue#18393, pr#12761, Sage Weil)
tests: qa/suites/upgrade/hammer-x: break stress split ec symlinks (issue#19006, pr#13533, Nathan Cutler)
tests: qa/suites/upgrade/hammer-x/stress-split: finish thrashing before final upgrade (issue#19004, pr#13222, Sage Weil)
tests: qa/tasks/ceph_deploy.py: use dev option (issue#18736, pr#13106, Vasu Kulkarni)
tests: qa/workunits/rbd: use more recent qemu-iotests that support Xenial (issue#18149, issue#10773, pr#13103, Jason Dillaman)
tests: remove qa/suites/buildpackages (issue#18846, pr#13299, Loic Dachary)
tests: SUSE yaml facets in qa/distros/all are out of date (issue#18856, issue#18846, pr#13331, Nathan Cutler)
tests: update rbd/singleton/all/formatted-output.yaml to support ceph-ci (issue#18440, pr#12822, Nathan Cutler, Venky Shankar)
tests: update Ubuntu image url after ceph.com refactor (issue#18542, pr#12959, Jason Dillaman)
tests: upgrade:hammer-x: install firefly only on Ubuntu 14.04 (issue#18089, pr#13153, Nathan Cutler)
tests: use ceph-jewel branch for s3tests (issue#18384, pr#12745, Nathan Cutler)
tests: Workunits needlessly wget from git.ceph.com (issue#18336, issue#18271, issue#18388, pr#12686, Nathan Cutler, Sage Weil)
test: temporarily disable fork()’ing tests (issue#16556, issue#17832, pr#11953, John Spray)
test: test fails due to The UNIX domain socket path (issue#16014, pr#12151, Loic Dachary)
tools: ceph-disk: ceph-disk@.service races with ceph-osd@.service (issue#17889, issue#17813, pr#12147, Loic Dachary)
tools: ceph-disk --dmcrypt create must not require admin key (issue#17849, pr#12033, Loic Dachary)
tools: ceph-disk prepare writes osd log 0 with root owner (issue#18538, pr#13025, Samuel Matzek)
tools: crushtool --compile is create output despite of missing item (issue#17306, pr#11410, Kefu Chai)
tools: rados bench seq must verify the hostname (issue#17526, pr#13049, Loic Dachary)
tools: snapshotted RBD extent objects can’t be manually evicted from a cache tier (issue#17896, pr#11968, Mingxin Liu)
tools: systemd/ceph-disk: reduce ceph-disk flock contention (issue#18049, issue#13160, pr#12210, David Disseldorp)
v10.2.5 Jewel
This point release fixes an important regression introduced in v10.2.4.
We recommend that all v10.2.x users upgrade.
Notable Changes
For more detailed information, see the complete changelog.
msg/simple/Pipe: avoid returning 0 on poll timeout (issue#18185, pr#12376, Sage Weil)
v10.2.4 Jewel
This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
We recommend that all v10.2.x users upgrade. Also note the following when upgrading from hammer
Upgrading from hammer
When the last hammer OSD in a cluster containing jewel MONs is upgraded to jewel, as of 10.2.4 the jewel MONs will issue this warning: “all OSDs are running jewel or later but the ‘require_jewel_osds’ osdmap flag is not set” and change the cluster health status to HEALTH_WARN.
This is a signal for the admin to do “ceph osd set require_jewel_osds” - by doing this, the upgrade path is complete and no more pre-Jewel OSDs may be added to the cluster.
Notable Changes
For more detailed information, see the complete changelog.
build/ops: aarch64: Compiler-based detection of crc32 extended CPU type is broken (issue#17516, pr#11492, Alexander Graf)
build/ops: allow building RGW with LDAP disabled (issue#17312, pr#11478, Daniel Gryniewicz)
build/ops: backport ‘logrotate: Run as root/ceph’ (issue#17381, pr#11201, Boris Ranto)
build/ops: ceph installs stuff in %_udevrulesdir but does not own that directory (issue#16949, pr#10862, Nathan Cutler)
build/ops: ceph-osd-prestart.sh fails confusingly when data directory does not exist (issue#17091, pr#10812, Nathan Cutler)
build/ops: disable LTTng-UST in openSUSE builds (issue#16937, pr#10794, Michel Normand)
build/ops: i386 tarball gitbuilder failure on master (issue#16398, pr#10855, Vikhyat Umrao, Kefu Chai)
build/ops: include more files in “make dist” tarball (issue#17560, pr#11431, Ken Dreyer)
build/ops: incorrect value of CINIT_FLAG_DEFER_DROP_PRIVILEGES (issue#16663, pr#10278, Casey Bodley)
build/ops: remove SYSTEMD_RUN from initscript (issue#7627, issue#16441, issue#16440, pr#9872, Vladislav Odintsov)
build/ops: systemd: add install section to rbdmap.service file (issue#17541, pr#11158, Jelle vd Kooij)
common: Enable/Disable of features is allowed even the features are already enabled/disabled (issue#16079, pr#11460, Lu Shi)
common: Log.cc: Assign LOG_INFO priority to syslog calls (issue#15808, pr#11231, Brad Hubbard)
common: Proxied operations shouldn’t result in error messages if replayed (issue#16130, pr#11461, Vikhyat Umrao)
common: Request exclusive lock if owner sends -ENOTSUPP for proxied maintenance op (issue#16171, pr#10784, Jason Dillaman)
common: msgr/async: Messenger thread long time lock hold risk (issue#15758, pr#10761, Wei Jin)
doc: fix description for rsize and rasize (issue#17357, pr#11171, Andreas Gerstmayr)
filestore: can get stuck in an unbounded loop during scrub (issue#17859, pr#12001, Sage Weil)
fs: Failure in snaptest-git-ceph.sh (issue#17172, pr#11419, Yan, Zheng)
fs: Log path as well as ino when detecting metadata damage (issue#16973, pr#11418, John Spray)
fs: client: FAILED assert(root_ancestor->qtree == __null) (issue#16066, issue#16067, pr#10107, Yan, Zheng)
fs: client: add missing client_lock for get_root (issue#17197, pr#10921, Patrick Donnelly)
fs: client: fix shutdown with open inodes (issue#16764, pr#10958, John Spray)
fs: client: nlink count is not maintained correctly (issue#16668, pr#10877, Jeff Layton)
fs: multimds: allow_multimds not required when max_mds is set in ceph.conf at startup (issue#17105, pr#10997, Patrick Donnelly)
librados: memory leaks from ceph::crypto (WITH_NSS) (issue#17205, pr#11409, Casey Bodley)
librados: modify Pipe::connect() to return the error code (issue#15308, pr#11193, Vikhyat Umrao)
librados: remove new setxattr overload to avoid breaking the C++ ABI (issue#18058, pr#12207, Josh Durgin)
librbd: cannot disable journaling or remove non-mirrored, non-primary image (issue#16740, pr#11337, Jason Dillaman)
librbd: discard after write can result in assertion failure (issue#17695, pr#11644, Jason Dillaman)
librbd::Operations: update notification failed: (2) No such file or directory (issue#17549, pr#11420, Jason Dillaman)
mds: Crash in Client::_invalidate_kernel_dcache when reconnecting during unmount (issue#17253, pr#11414, Yan, Zheng)
mds: Duplicate damage table entries (issue#17173, pr#11412, John Spray)
mds: Failure in dirfrag.sh (issue#17286, pr#11416, Yan, Zheng)
mds: Failure in snaptest-git-ceph.sh (issue#17271, pr#11415, Yan, Zheng)
mon: Ceph Status - Segmentation Fault (issue#16266, pr#11408, Brad Hubbard)
mon: Display full flag in ceph status if full flag is set (issue#15809, pr#9388, Vikhyat Umrao)
mon: Error EINVAL: removing mon.a at 172.21.15.16:6789/0, there will be 1 monitors (issue#17725, pr#12267, Joao Eduardo Luis)
mon: OSDMonitor: only reject MOSDBoot based on up_from if inst matches (issue#17899, pr#12067, Samuel Just)
mon: OSDMonitor: Missing nearfull flag set (issue#17390, pr#11272, Igor Podoski)
mon: Upgrading 0.94.6 -> 0.94.9 saturating mon node networking (issue#17365, issue#17386, pr#11679, Sage Weil, xie xingguo)
mon: ceph mon Segmentation fault after set crush_ruleset ceph 10.2.2 (issue#16653, pr#10861, song baisen)
mon: crash: crush/CrushWrapper.h: 940: FAILED assert(successful_detach) (issue#16525, pr#10496, Kefu Chai)
mon: don’t crash on invalid standby_for_fscid (issue#17466, pr#11389, John Spray)
mon: fix missing osd metadata (again) (issue#17685, pr#11642, John Spray)
mon: osdmonitor: decouple adjust_heartbeat_grace and min_down_reporters (issue#17055, pr#10757, Zengran Zhang)
mon: the %USED of ceph df is wrong (issue#16933, pr#10860, Kefu Chai)
osd: condition OSDMap encoding on features (issue#18015, pr#12167, Sage Weil)
osd: PG::_update_calc_stats wrong for CRUSH_ITEM_NONE up set items (issue#16998, pr#10883, Samuel Just)
osd: PG::choose_acting valgrind error or ./common/hobject.h: 182: FAILED assert(!max || (*this == hobject_t(hobject_t::get_max()))) (issue#13967, pr#10885, Tao Chang)
osd: Potential crash during journal::Replay shut down (issue#16433, pr#10645, Jason Dillaman)
osd: add peer_addr in heartbeat_check log message (issue#15762, pr#9739, Vikhyat Umrao, Sage Weil)
osd: adjust scrub boundary to object without SnapSet (issue#17470, pr#11311, Samuel Just)
osd: ceph osd df does not show summarized info correctly if one or more OSDs are out (issue#16706, pr#10759, xie xingguo)
osd: journal: do not prematurely flag object recorder as closed (issue#17590, pr#11634, Jason Dillaman)
osd: mark_all_unfound_lost() leaves unapplied changes (issue#16156, pr#10886, Samuel Just)
osd: segfault in ObjectCacher::FlusherThread (issue#16610, pr#10864, Yan, Zheng)
qa: remove EnumerateObjects from librados upgrade tests (pr#11728, Josh Durgin)
rbd: Disabling pool mirror mode with registered peers results orphaned mirrored images (issue#16984, pr#10857, Jason Dillaman)
rbd: ImageWatcher: use after free within C_UnwatchAndFlush (issue#17289, issue#17254, pr#11466, Jason Dillaman)
rbd: Prevent the creation of a clone from a non-primary mirrored image (issue#16449, pr#10650, Mykola Golub)
rbd: RBD should restrict mirror enable/disable actions on parents/clones (issue#16056, pr#11459, zhuangzeqiang)
rbd: TestJournalReplay: sporadic assert(m_state == STATE_READY || m_state == STATE_STOPPING) failure (issue#17566, pr#11590, Jason Dillaman)
rbd: bench io-size should not be larger than image size (issue#16967, pr#10796, Jason Dillaman)
rbd: ceph 10.2.2 rbd status on image format 2 returns (2) No such file or directory (issue#16887, pr#10652, Jason Dillaman)
rbd: helgrind: TestLibRBD.TestIOPP potential deadlock closing an image with read-ahead enabled (issue#17198, pr#11463, Jason Dillaman)
rbd: image.stat() call in librbdpy fails sometimes (issue#17310, pr#11464, Jason Dillaman)
rbd: krbd qa scripts and concurrent.sh test fix (issue#17223, pr#11018, Ilya Dryomov)
rbd: krbd-related CLI patches (issue#17554, pr#11400, Ilya Dryomov)
rbd: mirror: improve resiliency of stress test case (issue#16855, issue#16555, issue#14738, issue#15259, issue#17446, issue#17355, issue#16538, issue#16974, issue#17283, issue#17317, issue#17416, issue#16227, pr#11433, Mykola Golub, Ricardo Dias, Jason Dillaman)
rbd: rbd-nbd IO hang (issue#16921, pr#11467, Jason Dillaman)
rbd: update_features API needs to support backwards/forward compatibility (issue#17330, pr#11462, Jason Dillaman)
rgw: COPY broke multipart files uploaded under dumpling (issue#16435, pr#10866, Yehuda Sadeh)
rgw: Config parameter rgw keystone make new tenants in radosgw multitenancy does not work (issue#17293, pr#11473, SirishaGuduru)
rgw: Do not archive metadata by default (issue#17256, pr#11321, Pavan Rallabhandi, Matt Benjamin)
rgw: ERROR: got unexpected error when trying to read object: -2 (issue#17111, pr#11472, Yang Honggang)
rgw: Modification for TEST S3 ACCESS section in INSTALL CEPH OBJECT GATEWAY page (issue#15603, pr#11475, la-sguduru)
rgw: RGW loses realm/period/zonegroup/zone data: period overwritten if somewhere in the cluster is still running Hammer (issue#17371, pr#11519, Orit Wasserman)
rgw: RGWDataSyncCR fails on errors from RGWListBucketIndexesCR (issue#17073, pr#11330, Casey Bodley)
rgw: S3 object versioning fails when applied on a non-master zone (issue#16494, pr#11367, Yehuda Sadeh)
rgw: add orphan options to radosgw-admin --help and man page (issue#17281, issue#17280, pr#11139, Ken Dreyer, Thomas Serlin)
rgw: back off bucket sync on failures, don’t store marker (issue#16742, pr#11021, Yehuda Sadeh)
rgw: combined LDAP backports (issue#17544, issue#17185, pr#11332, Harald Klein, Matt Benjamin)
rgw: cors auto memleak (issue#16564, pr#10656, Yan Jun)
rgw: default quota fixes (issue#16410, pr#10832, Pavan Rallabhandi, Daniel Gryniewicz)
rgw: doc: description of multipart part entity is wrong (issue#17504, pr#11342, weiqiaomiao)
rgw: don’t loop forever when reading data from 0 sized segment. (issue#17692, pr#11626, Marcus Watts)
rgw: fix put_acls for objects starting and ending with underscore (issue#17625, pr#11669, Orit Wasserman)
rgw: fix regression with handling double underscore (issue#17443, issue#16856, pr#11563, Yehuda Sadeh, Orit Wasserman)
rgw: handle empty POST condition (issue#17635, pr#11662, Yehuda Sadeh)
rgw: metadata sync can skip markers for failed/incomplete entries (issue#16759, pr#10657, Yehuda Sadeh)
rgw: nfs backports (issue#17393, issue#17311, issue#17367, issue#17319, issue#17321, issue#17322, issue#17323, issue#17325, issue#17326, issue#17327, pr#11335, Min Chen, Yan Jun, Weibing Zhang, Matt Benjamin)
rgw: period commit loses zonegroup changes: region_map converted repeatedly (issue#17051, pr#10890, Casey Bodley)
rgw: period commit return error when the current period has a zonegroup which doesn’t have a master zone (issue#17110, pr#10867, weiqiaomiao)
rgw: radosgw daemon core when reopen logs (issue#17036, pr#10868, weiqiaomiao)
rgw: rgw file uses too much CPU in gc/idle thread (issue#16976, pr#10889, Matt Benjamin)
rgw: s3tests-test-readwrite failing with 500 (issue#16930, pr#11471, Yehuda Sadeh)
rgw: upgrade from old multisite to new multisite fails (issue#16751, pr#10891, Orit Wasserman)
rgw:response information is error when geting token of swift account (issue#15195, pr#11474, Qiankun Zheng)
rgw:user email can modify to empty when it has values (issue#13286, pr#11469, Yehuda Sadeh, Weijun Duan)
tests: ceph-disk must ignore debug monc (issue#17607, pr#11548, Loic Dachary)
tests: fix TestClsRbd.mirror_image failure in upgrade:jewel-x-master-distro-basic-vps (issue#16529, pr#10888, Jason Dillaman)
tests: scsi_debug fails /dev/disk/by-partuuid (issue#17100, pr#11411, Loic Dachary)
tests: test/ceph_test_msgr: do not use Message::middle for holding transient… (issue#17365, issue#17728, issue#16955, pr#11742, Haomai Wang, Kefu Chai, Michal Jarzabek, Sage Weil)
tools: Missing comma in ceph-create-keys causes concatenation of arguments (issue#17815, pr#11822, Patrick Donnelly)
tools: add a tool to rebuild mon store from OSD (issue#17179, issue#17400, pr#11126, Kefu Chai, xie xingguo)
tools: ceph-create-keys: sometimes blocks forever if mds allow is set (issue#16255, pr#11417, John Spray)
tools: ceph-disk should timeout when a lock cannot be acquired (issue#16580, pr#10758, Loic Dachary)
tools: ceph-disk: expected systemd unit failures are confusing (issue#15990, pr#10884, Boris Ranto)
tools: ceph-disk: using a regular file as a journal fails (issue#16280, issue#17662, pr#11657, Jayashree Candadai, Anirudha Bose, Loic Dachary, Shylesh Kumar)
tools: ceph-objectstore-tool crashes if --journal-path <a-directory> (issue#17307, pr#11407, Kefu Chai)
tools: ceph-objectstore-tool: add a way to split filestore directories offline (issue#17220, pr#11252, Josh Durgin)
tools: ceph-post-file: use new ssh key (issue#14267, pr#11746, David Galloway)
v10.2.3 Jewel
This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
We recommend that all v10.2.x users upgrade.
For more detailed information, see the complete changelog.
Notable Changes
build/ops: 60-ceph-partuuid-workaround-rules still needed by debian jessie (udev 215-17) (issue#16351, pr#10653, runsisi, Loic Dachary)
build/ops: ceph Resource Agent does not work with systemd (issue#14828, pr#9917, Nathan Cutler)
build/ops: ceph-base requires parted (issue#16095, pr#10008, Ken Dreyer)
build/ops: ceph-osd-prestart.sh contains Upstart-specific code (issue#15984, pr#10364, Nathan Cutler)
build/ops: mount.ceph: move from ceph-base to ceph-common and add symlink in /sbin for SUSE (issue#16598, issue#16645, pr#10357, Nathan Cutler, Dan Horák, Ricardo Dias, Kefu Chai)
build/ops: need rocksdb commit 7ca731b12ce for ppc64le build (issue#17092, pr#10816, Nathan Cutler)
build/ops: rpm: OBS needs ExclusiveArch (issue#16936, pr#10614, Michel Normand)
cli: ceph command line tool chokes on ceph –w (the dash is unicode ‘en dash’ &ndash, copy-paste to reproduce) (issue#12287, pr#10420, Oleh Prypin, Kefu Chai)
common: expose buffer const_iterator symbols (issue#16899, pr#10552, Noah Watkins)
common: global-init: fixup chown of the run directory along with log and asok files (issue#15607, pr#8754, Karol Mroz)
fs: ceph-fuse: link to libtcmalloc or jemalloc (issue#16655, pr#10303, Yan, Zheng)
fs: client: crash in unmount when fuse_use_invalidate_cb is enabled (issue#16137, pr#10106, Yan, Zheng)
fs: client: fstat cap release (issue#15723, pr#9562, Yan, Zheng, Noah Watkins)
fs: essential backports for OpenStack Manila (issue#15406, issue#15614, issue#15615, pr#10453, John Spray, Ramana Raja, Xiaoxi Chen)
fs: fix double-unlock on shutdown (issue#17126, pr#10847, Greg Farnum)
fs: fix mdsmap print_summary with standby replays (issue#15705, pr#9547, John Spray)
fs: fuse mounted file systems fails SAMBA CTDB ping_pong rw test with v9.0.2 (issue#12653, issue#15634, pr#10108, Yan, Zheng)
librados: Missing export for rados_aio_get_version in src/include/rados/librados.h (issue#15535, pr#9574, Jim Wright)
librados: osd: bad flags can crash the osd (issue#16012, pr#9997, Sage Weil)
librbd: Close journal and object map before flagging exclusive lock as released (issue#16450, pr#10053, Jason Dillaman)
librbd: Crash when utilizing advisory locking API functions (issue#16364, pr#10051, Jason Dillaman)
librbd: ExclusiveLock object leaked when switching to snapshot (issue#16446, pr#10054, Jason Dillaman)
librbd: FAILED assert(object_no < m_object_map.size()) (issue#16561, pr#10647, Jason Dillaman)
librbd: Image removal doesn’t necessarily clean up all rbd_mirroring entries (issue#16471, pr#10009, Jason Dillaman)
librbd: Object map/fast-diff invalidated if journal replays the same snap remove event (issue#16350, pr#10010, Jason Dillaman)
librbd: Timeout sending mirroring notification shouldn’t result in failure (issue#16470, pr#10052, Jason Dillaman)
librbd: Whitelist EBUSY error from snap unprotect for journal replay (issue#16445, pr#10055, Jason Dillaman)
librbd: cancel all tasks should wait until finisher is done (issue#16517, pr#9752, Haomai Wang)
librbd: delay acquiring lock if image watch has failed (issue#16923, pr#10827, Jason Dillaman)
librbd: fix missing return statement if failed to get mirror image state (issue#16600, pr#10144, runsisi)
librbd: flag image as updated after proxying maintenance op (issue#16404, pr#9883, Jason Dillaman)
librbd: mkfs.xfs slow performance with discards and object map (issue#16707, issue#16689, pr#10649, Jason Dillaman)
librbd: potential use after free on refresh error (issue#16519, pr#9952, Mykola Golub)
librbd: rbd-nbd does not properly handle resize notifications (issue#15715, pr#10679, Mykola Golub)
librbd: the option ‘rbd_cache_writethrough_until_flush=true’ dosn’t work (issue#16740, issue#16386, issue#16708, issue#16654, issue#16478, pr#10797, Mykola Golub, xinxin shu, Xiaowei Chen, Jason Dillaman)
mds: tell command blocks forever with async messenger (TestVolumeClient.test_evict_client failure) (issue#16288, pr#10501, Douglas Fuller)
mds: Confusing MDS log message when shut down with stalled journaler reads (issue#15689, pr#9557, John Spray)
mds: Deadlock on shutdown active rank while busy with metadata IO (issue#16042, pr#10502, Patrick Donnelly)
mds: Failing file operations on kernel based cephfs mount point leaves unaccessible file behind on hammer 0.94.7 (issue#16013, pr#10199, Yan, Zheng)
mds: Fix shutting down mds timed-out due to deadlock (issue#16396, pr#10500, Zhi Zhang)
mds: MDSMonitor fixes (issue#16136, pr#9561, xie xingguo)
mds: MDSMonitor::check_subs() is very buggy (issue#16022, pr#10103, Yan, Zheng)
mds: Session::check_access() is buggy (issue#16358, pr#10105, Yan, Zheng)
mds: StrayManager.cc: 520: FAILED assert(dnl->is_primary()) (issue#15920, pr#9559, Yan, Zheng)
mds: enforce a dirfrag limit on entries (issue#16164, pr#10104, Patrick Donnelly)
mds: fix SnapRealm::have_past_parents_open() (issue#16299, pr#10499, Yan, Zheng)
mds: fix getattr starve setattr (issue#16154, pr#9560, Yan, Zheng)
mds: wrongly treat symlink inode as normal file/dir when symlink inode is stale on kcephfs (issue#15702, pr#9405, Zhi Zhang)
mon: “mon metadata” fails when only one monitor exists (issue#15866, pr#10654, John Spray, Kefu Chai)
mon: Monitor: validate prefix on handle_command() (issue#16297, pr#10036, You Ji)
mon: OSDMonitor: drop pg temps from not the current primary (issue#16127, pr#9998, Samuel Just)
mon: prepare_pgtemp needs to only update up_thru if newer than the existing one (issue#16185, pr#10001, Samuel Just)
msgr: AsyncConnection::lockmsg/async lockdep cycle: AsyncMessenger::lock, MDSDaemon::mds_lock, AsyncConnection::lock (issue#16237, pr#10004, Haomai Wang)
msgr: async messenger mon crash (issue#16378, issue#16418, pr#9996, Haomai Wang)
msgr: backports of all asyncmsgr fixes to jewel (issue#15503, issue#15372, pr#9633, Yan Jun, Haomai Wang, Piotr Dałek)
msgr: msg/async: connection race hang (issue#15849, pr#10003, Haomai Wang)
osd: FileStore: umount hang because sync thread doesn’t exit (issue#15695, pr#9105, Kefu Chai)
osd: Fixes for list-inconsistent-* (issue#15766, issue#16192, issue#15719, pr#9565, David Zafman)
osd: New pools have bogus stuck inactive/unclean HEALTH_ERR messages until they are first active and clean (issue#14952, pr#10007, Sage Weil)
osd: OSD crash with Hammer to Jewel Upgrade: void FileStore::init_temp_collections() (issue#16672, pr#10561, David Zafman)
osd: OSD failed to subscribe skipped osdmaps after ceph osd pause (issue#17023, pr#10804, Kefu Chai)
osd: ObjectCacher split BufferHead read fix (issue#16002, pr#10074, Greg Farnum)
osd: ReplicatedBackend doesn’t increment stats on pull, only push (issue#16277, pr#10421, Kefu Chai)
osd: Scrub error: 0/1 pinned (issue#15952, pr#9576, Samuel Just)
osd: crash adding snap to purged_snaps in ReplicatedPG::WaitingOnReplicas (issue#15943, pr#9575, Samuel Just)
osd: partprobe intermittent issues during ceph-disk prepare (issue#15176, pr#10497, Marius Vollmer, Loic Dachary)
osd: saw valgrind issues in ReplicatedPG::new_repop (issue#16801, pr#10760, Kefu Chai)
osd: sparse_read on ec pool should return extends with correct offset (issue#16138, pr#10006, kofiliu)
osd:sched_time not actually randomized (issue#15890, pr#9578, xie xingguo)
rbd: ImageReplayer::is_replaying does not include flush state (issue#16970, pr#10790, Jason Dillaman)
rbd: Journal duplicate op detection can cause lockdep error (issue#16363, pr#10044, Jason Dillaman)
rbd: Journal needs to handle duplicate maintenance op tids (issue#16362, pr#10045, Jason Dillaman)
rbd: Unable to disable journaling feature if in unexpected mirror state (issue#16348, pr#10042, Jason Dillaman)
rbd: bashism in src/rbdmap (issue#16608, pr#10786, Jason Dillaman)
rbd: doc: format 2 now is the default image format (issue#17026, pr#10732, Chengwei Yang)
rbd: hen journaling is enabled, a flush request shouldn’t flush the cache (issue#15761, pr#10041, Yuan Zhou)
rbd: possible race condition during journal transition from replay to ready (issue#16198, pr#10047, Jason Dillaman)
rbd: qa/workunits/rbd: respect RBD_CREATE_ARGS environment variable (issue#16289, pr#9721, Mykola Golub)
rbd: rbd-mirror should disable proxied maintenance ops for non-primary image (issue#16411, pr#10050, Jason Dillaman)
rbd: rbd-mirror: FAILED assert(m_local_image_ctx->object_map != nullptr) (issue#16558, pr#10646, Jason Dillaman)
rbd: rbd-mirror: FAILED assert(m_on_update_status_finish == nullptr) (issue#16956, pr#10792, Jason Dillaman)
rbd: rbd-mirror: FAILED assert(m_state == STATE_STOPPING) (issue#16980, pr#10791, Jason Dillaman)
rbd: rbd-mirror: ensure replay status formatter has completed before stopping replay (issue#16352, pr#10043, Jason Dillaman)
rbd: rbd-mirror: include local pool id in resync throttle unique key (issue#16536, issue#15239, issue#16488, issue#16491, issue#16329, issue#15108, issue#15670, pr#10678, Ricardo Dias, Jason Dillaman)
rbd: rbd-mirror: potential race condition accessing local image journal (issue#16230, pr#10046, Jason Dillaman)
rbd: rbd-mirror: reduce memory footprint during journal replay (issue#16321, issue#16489, issue#16622, issue#16539, issue#16223, issue#16349, pr#10684, Mykola Golub, Jason Dillaman)
rgw: A query on a static large object fails with 404 error (issue#16015, pr#9544, Radoslaw Zarzynski)
rgw: Add zone rename to radosgw_admin (issue#16934, pr#10663, Shilpa Jagannath)
rgw: Bucket index shards orphaned after bucket delete (issue#16412, pr#10525, Orit Wasserman)
rgw: Bug when using port 443s in rgw. (issue#16548, pr#10664, Pritha Srivastava)
rgw: Fallback to Host header for bucket name. (issue#15975, pr#10693, Robin H. Johnson)
rgw: Fix civetweb IPv6 (issue#16928, pr#10580, Robin H. Johnson)
rgw: Increase log level for messages occuring while running rgw admin command (issue#16935, pr#10765, Shilpa Jagannath)
rgw: No Last-Modified, Content-Size and X-Object-Manifest headers if no segments in DLO manifest (issue#15812, pr#9265, Radoslaw Zarzynski)
rgw: RGWPeriodPuller tries to pull from itself (issue#16939, pr#10764, Casey Bodley)
rgw: Set Access-Control-Allow-Origin to a Asterisk if allowed in a rule (issue#15348, pr#9453, Wido den Hollander)
rgw: Swift API returns double space usage and objects of account metadata (issue#16188, pr#10148, Albert Tu)
rgw: account/container metadata not actually present in a request are deleted during POST through Swift API (issue#15977, issue#15779, pr#9542, Radoslaw Zarzynski)
rgw: add socket backlog setting for via ceph.conf (issue#16406, pr#10216, Feng Guo)
rgw: add tenant support to multisite sync (issue#16469, issue#16121, issue#16665, pr#10845, Yehuda Sadeh, Josh Durgin, Casey Bodley, Pritha Srivastava)
rgw: add_zone only clears master_zone if --master=false (issue#15901, pr#9327, Casey Bodley)
rgw: aws4 parsing issue (issue#15940, issue#15939, pr#9545, Yehuda Sadeh)
rgw: aws4: add STREAMING-AWS4-HMAC-SHA256-PAYLOAD support (issue#16146, pr#10167, Radoslaw Zarzynski, Javier M. Mellid)
rgw: backport merge of static sites fixes (issue#15555, issue#15532, issue#15531, pr#9568, Robin H. Johnson)
rgw: can set negative max_buckets on RGWUserInfo (issue#14534, pr#10655, Yehuda Sadeh)
rgw: cleanup radosgw-admin temp command as it was deprecated (issue#16023, pr#9390, Vikhyat Umrao)
rgw: comparing return code to ERR_NOT_MODIFIED in rgw_rest_s3.cc (needs minus sign) (issue#16327, pr#9790, Nathan Cutler)
rgw: custom metadata aren’t camelcased in Swift’s responses (issue#15902, pr#9267, Radoslaw Zarzynski)
rgw: data sync stops after getting error in all data log sync shards (issue#16530, pr#10073, Yehuda Sadeh)
rgw: default zone and zonegroup cannot be added to a realm (issue#16839, pr#10658, Casey Bodley)
rgw: document multi tenancy (issue#16635, pr#10217, Pete Zaitcev)
rgw: don’t unregister request if request is not connected to manager (issue#15911, pr#9242, Yehuda Sadeh)
rgw: failed to create bucket after upgrade from hammer to jewel (issue#16627, pr#10524, Orit Wasserman)
rgw: fix ldap bindpw parsing (issue#16286, pr#10518, Matt Benjamin)
rgw: fix multi-delete query param parsing. (issue#16618, pr#10188, Robin H. Johnson)
rgw: improve support for Swift’s object versioning. (issue#15925, pr#10710, Radoslaw Zarzynski)
rgw: initial slashes are not properly handled in Swift’s BulkDelete (issue#15948, pr#9316, Radoslaw Zarzynski)
rgw: master: build failures with boost > 1.58 (issue#16392, issue#16391, pr#10026, Abhishek Lekshmanan)
rgw: multisite segfault on ~RGWRealmWatcher if realm was deleted (issue#16817, pr#10660, Casey Bodley)
rgw: multisite sync races with deletes (issue#16222, issue#16464, issue#16220, issue#16143, pr#10293, Yehuda Sadeh, Casey Bodley)
rgw: multisite: preserve zone’s extra pool (issue#16712, pr#10537, Abhishek Lekshmanan)
rgw: object expirer’s hints might be trimmed without processing in some circumstances (issue#16705, issue#16684, pr#10763, Radoslaw Zarzynski)
rgw: radosgw-admin failure for user create after upgrade from hammer to jewel (issue#15937, pr#9294, Orit Wasserman, Abhishek Lekshmanan)
rgw: radosgw-admin: EEXIST messages for create operations (issue#15720, pr#9268, Abhishek Lekshmanan)
rgw: radosgw-admin: inconsistency in uid/email handling (issue#13598, pr#10520, Matt Benjamin)
rgw: realm pull fails when using apache frontend (issue#15846, pr#9266, Orit Wasserman)
rgw: retry on bucket sync errors (issue#16108, pr#9425, Yehuda Sadeh)
rgw: s3website: x-amz-website-redirect-location header returns malformed HTTP response (issue#15531, pr#9099, Robin H. Johnson)
rgw: segfault in RGWOp_MDLog_Notify (issue#16666, pr#10662, Casey Bodley)
rgw: segmentation fault on error_repo in data sync (issue#16603, pr#10523, Casey Bodley)
rgw: selinux denials in RGW (issue#16126, pr#10519, Boris Ranto)
rgw: support size suffixes for --max-size in radosgw-admin command (issue#16004, pr#9743, Vikhyat Umrao)
rgw: updating CORS/ACLs might not work in some circumstances (issue#15976, pr#9543, Radoslaw Zarzynski)
rgw: use zone endpoints instead of zonegroup endpoints (issue#16834, pr#10659, Casey Bodley)
tests: improve rbd-mirror test case coverage (issue#16197, pr#9631, Mykola Golub, Jason Dillaman)
tests: rados/test.sh workunit timesout on OpenStack (issue#15403, pr#8904, Loic Dachary)
tools: ceph-disk: Accept bcache devices as data disks (issue#13278, pr#8497, Peter Sabaini)
tools: rados: Add cleanup message with time to rados bench output (issue#15704, pr#9740, Vikhyat Umrao)
tools: src/script/subman fails with KeyError: ‘nband’ (issue#16961, pr#10625, Loic Dachary, Ali Maredia)
v10.2.2 Jewel
This point release fixes several important bugs in RBD mirroring, RGW multi-site, CephFS, and RADOS.
We recommend that all v10.2.x users upgrade.
For more detailed information, see the complete changelog.
Notable Changes
ceph: cli: exception when pool name has non-ascii characters (issue#15913, pr#9320, Ricardo Dias)
ceph-disk: workaround gperftool hang (issue#13522, issue#16103, pr#9427, Loic Dachary)
cephfs: backports needed for Manila (issue#15599, issue#15417, issue#15045, pr#9430, John Spray, Ramana Raja, Xiaoxi Chen)
ceph.spec.in: drop support for RHEL<7 and SUSE<1210 in jewel and above (issue#15725, issue#15627, issue#13445, issue#15822, issue#15472, issue#15987, issue#15516, issue#15549, pr#8938, Boris Ranto, Sage Weil, Nathan Cutler, Lars Marowsky-Bree)
ceph_test_librbd_fsx crashes during journal replay shut down (issue#16123, pr#9556, Jason Dillaman)
client: fix bugs accidentally disabling readahead (issue#16024, pr#9656, Patrick Donnelly, Greg Farnum)
cls_journal: initialize empty commit position upon client register (issue#15757, pr#9376, runsisi, Venky Shankar)
cls::rbd: mirror_image_status_list returned max 64 items (pr#9069, Mykola Golub)
cls_rbd: mirror image status summary should read full directory (issue#16178, pr#9608, Jason Dillaman)
common: BackoffThrottle spins unnecessarily with very small backoff while the throttle is full (issue#15953, pr#9579, Samuel Just)
common: Do not link lttng into libglobal (pr#9194, Karol Mroz)
debian: install systemd target files (issue#15573, pr#8815, Kefu Chai, Sage Weil)
doc: update mirroring guide to include pool/image status commands (issue#15746, pr#9180, Mykola Golub)
librbd: Disabling journaling feature results in “Transport endpoint is not connected” error (issue#15863, pr#9548, Yuan Zhou)
librbd: do not shut down exclusive lock while acquiring’ (issue#16291, issue#16260, pr#9691, Jason Dillaman)
librbd: Initial python APIs to support mirroring (issue#15656, pr#9550, Mykola Golub)
librbd: journal IO error results in failed assertion in AioCompletion (issue#16077, issue#15034, issue#15791, pr#9611, Hector Martin, Jason Dillaman)
librbd: journal: live replay might skip entries from previous object set (issue#15864, issue#15665, pr#9217, Jason Dillaman)
librbd: journal: support asynchronous shutdown (issue#15949, issue#14530, issue#15993, pr#9373, Jason Dillaman)
librbd: Metadata config overrides are applied synchronously (issue#15928, pr#9318, Jason Dillaman)
librbd: Object Map is showing as invalid, even when Object Map is disabled for that Image. (issue#16076, pr#9555, xinxin shu)
librbd: prevent error messages when journal externally disabled (issue#16114, pr#9610, Zhiqiang Wang, Jason Dillaman)
librbd: recursive lock possible when disabling journaling (issue#16235, pr#9654, Jason Dillaman)
librbd: refresh image if needed in mirror functions (issue#16096, pr#9609, Jon Bernard)
librbd: remove should ignore mirror errors from older OSDs (issue#16268, pr#9692, Jason Dillaman)
librbd: reuse ImageCtx::finisher and SafeTimer for lots of images case (issue#13938, pr#9580, Haomai Wang)
librbd: validate image metadata configuration overrides (issue#15522, pr#9554, zhuangzeqiang)
mds: order directories by hash and fix simultaneous readdir races (issue#15508, pr#9655, Yan, Zheng, Greg Farnum)
mon: Hammer (0.94.3) OSD does not delete old OSD Maps in a timely fashion (maybe at all?) (issue#13990, pr#9100, Kefu Chai)
mon/Monitor: memory leak on Monitor::handle_ping() (issue#15793, pr#9270, xie xingguo)
osd: acting_primary not updated on split (issue#15523, pr#8968, Sage Weil)
osd: boot race with noup being set (issue#15678, pr#9101, Sage Weil)
osd: deadlock in OSD::_committed_osd_maps (issue#15701, pr#9103, Xinze Chi)
osd: hobject_t::get_max() vs is_max() discrepancy (issue#16113, pr#9614, Samuel Just)
osd: LibRadosWatchNotifyPPTests/LibRadosWatchNotifyPP.WatchNotify2Timeout/1 segv (issue#15760, pr#9104, Sage Weil)
osd: remove reliance on FLAG_OMAP for reads (pr#9638, Samuel Just)
osd valgrind invalid reads/writes (issue#15870, pr#9237, Samuel Just)
pybind: rbd API should default features parameter to None (issue#15982, pr#9553, Mykola Golub)
qa: dynamic_features.sh races with image deletion (issue#15500, pr#9552, Mykola Golub)
qa/workunits: ensure replay has started before checking position (issue#16248, pr#9674, Jason Dillaman)
qa/workunits/rbd: fixed rbd_mirror teuthology runtime errors (pr#9232, Jason Dillaman)
radosgw-admin: fix ‘period push’ handling of --url (issue#15926, pr#9210, Casey Bodley)
rbd-mirror: Delete local image mirror when remote image mirroring is disabled (issue#15916, issue#14421, pr#9372, runsisi, Mykola Golub, Ricardo Dias)
rbd-mirror: do not propagate deletions when pool unavailable (issue#16229, pr#9630, Jason Dillaman)
rbd-mirror: do not re-use image id from mirror directory if creating image (issue#16253, pr#9673, Jason Dillaman)
rbd-mirror: FAILED assert(!m_status_watcher) (issue#16245, issue#16290, pr#9690, Mykola Golub)
rbd-mirror: fix deletion propagation edge cases (issue#16226, pr#9629, Jason Dillaman)
rbd-mirror: fix journal shut down ordering (issue#16165, pr#9628, Jason Dillaman)
rbd-mirror: potential crash during image status update (issue#15909, pr#9226, Mykola Golub, Jason Dillaman)
rbd-mirror: refresh image after creating sync point (issue#16196, pr#9627, Jason Dillaman)
rbd-mirror: replicate cloned images (issue#14937, pr#9423, Jason Dillaman)
rbd-mirror should disable the rbd cache for local images (issue#15930, pr#9317, Jason Dillaman)
rbd-mirror: support bootstrap canceling (issue#16201, pr#9612, Mykola Golub)
rbd-mirror: support multiple replicated pools (issue#16045, pr#9409, Jason Dillaman)
rgw: fix manager selection when APIs customized (issue#15974, issue#15973, pr#9245, Robin H. Johnson)
rgw: keep track of written_objs correctly (issue#15886, pr#9239, Yehuda Sadeh)
rpm: ceph gid mismatch on upgrade from hammer with pre-existing ceph user (SUSE) (issue#15869, pr#9424, Nathan Cutler)
systemd: ceph-{mds,mon,osd,radosgw} systemd unit files need wants=time-sync.target (issue#15419, pr#8802, Nathan Cutler)
test: failure in journal.sh workunit test (issue#16011, pr#9377, Mykola Golub)
tests: rm -fr /tmp/virtualenv (issue#16087, pr#9403, Loic Dachary)
v10.2.1 Jewel
This is the first bugfix release for Jewel. It contains several annoying packaging and init system fixes and a range of important bugfixes across RBD, RGW, and CephFS.
We recommend that all v10.2.x users upgrade.
For more detailed information, see the complete changelog.
Notable Changes
cephfs: CephFSVolumeClient should isolate volumes by RADOS namespace (issue#15400, pr#8787, Xiaoxi Chen)
cephfs: handle standby-replay nodes properly in upgrades (issue#15591, pr#8971, John Spray)
ceph-{mds,mon,osd} packages need scriptlets with systemd code (issue#14941, pr#8801, Boris Ranto, Nathan Cutler)
ceph_test_keyvaluedb: fix (issue#15435, pr#9051, Allen Samuels, Sage Weil)
cmake: add missing source file to rbd_mirror/image_replayer (pr#9052, Casey Bodley)
cmake: fix rbd compile errors (pr#9076, runsisi, Jason Dillaman)
journal: incorrectly computed object offset within set (issue#15765, pr#9038, Jason Dillaman)
librbd: client-side handling for incompatible object map sizes (issue#15642, pr#9039, Jason Dillaman)
librbd: constrain size of AioWriteEvent journal entries (issue#15750, pr#9048, Jason Dillaman)
librbd: does not crash if image header is too short (pr#9044, Kefu Chai)
librbd: Errors encountered disabling object-map while flatten is in-progress (issue#15572, pr#8869, Jason Dillaman)
librbd: fix get/list mirror image status API (issue#15771, pr#9036, Mykola Golub)
librbd: Parent image is closed twice if error encountered while opening (issue#15574, pr#8867, Jason Dillaman)
librbd: possible double-free of object map invalidation request upon error (issue#15643, pr#8865, runsisi)
librbd: possible race condition leads to use-after-free (issue#15690, pr#9009, Jason Dillaman)
librbd: potential concurrent event processing during journal replay (issue#15755, pr#9040, Jason Dillaman)
librbd: Potential double free of SetSnapRequest instance (issue#15571, pr#8803, runsisi)
librbd: put the validation of image snap context earlier (pr#9046, runsisi)
librbd: reduce log level for image format 1 warning (issue#15577, pr#9003, Jason Dillaman)
mds/MDSAuthCap parse no longer fails on paths with hyphens (issue#15465, pr#8969, John Spray)
mds: MDS incarnation no longer gets lost after remove filesystem (issue#15399, pr#8970, John Spray)
mon/OSDMonitor: avoid underflow in reweight-by-utilization if max_change=1 (issue#15655, pr#9006, Samuel Just)
python: clone operation will fail if config overridden with “rbd default format = 1” (issue#15685, pr#8972, Jason Dillaman)
radosgw-admin: add missing --zonegroup-id to usage (issue#15650, pr#9019, Casey Bodley)
radosgw-admin: update usage for zone[group] modify (issue#15651, pr#9016, Casey Bodley)
radosgw-admin: zonegroup remove command (issue#15684, pr#9015, Casey Bodley)
rbd CLI to retrieve rbd mirror state for a pool / specific image (issue#15144, issue#14420, pr#8868, Mykola Golub)
rbd disk-usage CLI command should support calculating full image usage (issue#14540, pr#8870, Jason Dillaman)
rbd: helpful error message on map failure (issue#15721, pr#9041, Venky Shankar)
rbd: help message distinction between commands and aliases (issue#15521, pr#9004, Yongqiang He)
rbd-mirror: admin socket commands to start/stop/restart mirroring (issue#15718, pr#9010, Mykola Golub, Josh Durgin)
rbd-mirror can crash if start up is interrupted (issue#15630, pr#8866, Jason Dillaman)
rbd-mirror: image sync needs to handle snapshot size and protection status (issue#15110, pr#9050, Jason Dillaman)
rbd-mirror: lockdep error during bootstrap (issue#15664, pr#9008, Jason Dillaman)
rbd-nbd: fix rbd-nbd aio callback error handling (issue#15604, pr#9005, Chang-Yi Lee)
rgw: add AWS4 completion support for RGW_OP_SET_BUCKET_WEBSITE (issue#15626, pr#9018, Javier M. Mellid)
rgw admin output (issue#15747, pr#9054, Casey Bodley)
rgw: fix issue #15597 (issue#15597, pr#9020, Yehuda Sadeh)
rgw: fix printing wrong X-Storage-Url in Swift’s TempAuth. (issue#15667, pr#9021, Radoslaw Zarzynski)
rgw: handle stripe transition when flushing final pending_data_bl (issue#15745, pr#9053, Yehuda Sadeh)
rgw: leak fixes (issue#15792, pr#9022, Yehuda Sadeh)
rgw: multisite: Issues with Deleting Buckets (issue#15540, pr#8930, Abhishek Lekshmanan)
rgw: period commit fix (issue#15828, pr#9081, Casey Bodley)
rgw: period delete fixes (issue#15469, pr#9047, Casey Bodley)
rgw: radosgw-admin zone set cuts pool names short if name starts with a period (issue#15598, pr#9029, Yehuda Sadeh)
rgw: segfault at RGWAsyncGetSystemObj (issue#15565, issue#15625, pr#9017, Yehuda Sadeh)
several backports (issue#15588, issue#15655, pr#8853, Alexandre Derumier, xie xingguo, Alfredo Deza)
systemd: fix typo in preset file (pr#8843, Nathan Cutler)
tests: make check fails on ext4 (issue#15837, pr#9063, Loic Dachary, Sage Weil)
v10.2.0 Jewel
This major release of Ceph is the foundation for the next long-term stable release series. There have been many major changes since the Infernalis (9.2.x) and Hammer (0.94.x) releases, and the upgrade process is non-trivial. Please read these release notes carefully.
Major Changes from Infernalis
CephFS:
This is the first release in which CephFS is declared stable! Several features are disabled by default, including snapshots and multiple active MDS servers.
The repair and disaster recovery tools are now feature-complete.
A new cephfs-volume-manager module is included that provides a high-level interface for creating “shares” for OpenStack Manila and similar projects.
There is now experimental support for multiple CephFS file systems within a single cluster.
RGW:
The multisite feature has been almost completely rearchitected and rewritten to support any number of clusters/sites, bidirectional fail-over, and active/active configurations.
You can now access radosgw buckets via NFS (experimental).
The AWS4 authentication protocol is now supported.
There is now support for S3 request payer buckets.
The new multitenancy infrastructure improves compatibility with Swift, which provides a separate container namespace for each user/tenant.
The OpenStack Keystone v3 API is now supported. There are a range of other small Swift API features and compatibility improvements as well, including bulk delete and SLO (static large objects).
RBD:
There is new support for mirroring (asynchronous replication) of RBD images across clusters. This is implemented as a per-RBD image journal that can be streamed across a WAN to another site, and a new rbd-mirror daemon that performs the cross-cluster replication.
The exclusive-lock, object-map, fast-diff, and journaling features can be enabled or disabled dynamically. The deep-flatten features can be disabled dynamically but not re-enabled.
The RBD CLI has been rewritten to provide command-specific help and full bash completion support.
RBD snapshots can now be renamed.
RADOS:
BlueStore, a new OSD backend, is included as an experimental feature. The plan is for it to become the default backend in the K or L release.
The OSD now persists scrub results and provides a librados API to query results in detail.
We have revised our documentation to recommend against using ext4 as the underlying filesystem for Ceph OSD daemons due to problems supporting our long object name handling.
Major Changes from Hammer
General:
Ceph daemons are now managed via systemd (with the exception of Ubuntu Trusty, which still uses upstart).
Ceph daemons run as ‘ceph’ user instead of ‘root’.
On Red Hat distros, there is also an SELinux policy.
RADOS:
The RADOS cache tier can now proxy write operations to the base tier, allowing writes to be handled without forcing migration of an object into the cache.
The SHEC erasure coding support is no longer flagged as experimental. SHEC trades some additional storage space for faster repair.
There is now a unified queue (and thus prioritization) of client IO, recovery, scrubbing, and snapshot trimming.
There have been many improvements to low-level repair tooling (ceph-objectstore-tool).
The internal ObjectStore API has been significantly cleaned up in order to facilitate new storage backends like BlueStore.
RGW:
The Swift API now supports object expiration.
There are many Swift API compatibility improvements.
RBD:
The
rbd ducommand shows actual usage (quickly, when object-map is enabled).The object-map feature has seen many stability improvements.
The object-map and exclusive-lock features can be enabled or disabled dynamically.
You can now store user metadata and set persistent librbd options associated with individual images.
The new deep-flatten features allow flattening of a clone and all of its snapshots. (Previously snapshots could not be flattened.)
The export-diff command is now faster (it uses aio). There is also a new fast-diff feature.
The --size argument can be specified with a suffix for units (e.g.,
--size 64G).There is a new
rbd statuscommand that, for now, shows who has the image open/mapped.
CephFS:
You can now rename snapshots.
There have been ongoing improvements around administration, diagnostics, and the check and repair tools.
The caching and revocation of client cache state due to unused inodes has been dramatically improved.
The ceph-fuse client behaves better on 32-bit hosts.
Distro compatibility
Starting with Infernalis, we have dropped support for many older distributions so that we can move to a newer compiler toolchain (e.g., C++11). Although it is still possible to build Ceph on older distributions by installing backported development tools, we are not building and publishing release packages for ceph.com.
We now build packages for the following distributions and architectures
x86_64
CentOS 7.x. We have dropped support for CentOS 6 (and other RHEL 6 derivatives, like Scientific Linux 6).
Debian Jessie 8.x. Debian Wheezy 7.x’s g++ has incomplete support for C++11 (and no systemd).
Ubuntu Xenial 16.04 and Trusty 14.04. Ubuntu Precise 12.04 is no longer supported.
Fedora 22 or later.
aarch64 / arm64
Ubuntu Xenial 16.04.
Upgrading from Infernalis or Hammer
We now recommend against using
ext4as the underlying file system for Ceph OSDs, especially when RGW or other users of long RADOS object names are used. For more information about why, please see Filesystem Recommendations.If you have an existing cluster that uses ext4 for the OSDs but uses only RBD and/or CephFS, then the ext4 limitations will not affect you. Before upgrading, be sure add the following to
ceph.confto allow the OSDs to startosd max object name len = 256 osd max object namespace len = 64
Keep in mind that if you set these lower object name limits and later decide to use RGW on this cluster, it will have problems storing S3/Swift objects with long names. This startup check can also be disabled via the below option, although this is not recommended
osd check max object name len on startup = false
There are no major compatibility changes since Infernalis. Simply upgrading the daemons on each host and restarting all daemons is sufficient.
The rbd CLI no longer accepts the deprecated ‘--image-features’ option during create, import, and clone operations. The ‘--image-feature’ option should be used instead.
The rbd legacy image format (version 1) is deprecated with the Jewel release. Attempting to create a new version 1 RBD image will result in a warning. Future releases of Ceph will remove support for version 1 RBD images.
The ‘send_pg_creates’ and ‘map_pg_creates’ mon CLI commands are obsolete and no longer supported.
A new configure option ‘mon_election_timeout’ is added to specifically limit max waiting time of monitor election process, which was previously restricted by ‘mon_lease’.
CephFS filesystems created using versions older than Firefly (0.80) must use the new ‘cephfs-data-scan tmap_upgrade’ command after upgrading to Jewel. See ‘Upgrading’ in the CephFS documentation for more information.
The ‘ceph mds setmap’ command has been removed.
The default RBD image features for new images have been updated to enable the following: exclusive lock, object map, fast-diff, and deep-flatten. These features are not currently supported by the RBD kernel driver nor older RBD clients. They can be disabled on a per-image basis via the RBD CLI, or the default features can be updated to the pre-Jewel setting by adding the following to the client section of the Ceph configuration file
rbd default features = 1
The rbd legacy image format (version 1) is deprecated with the Jewel release.
After upgrading, users should set the ‘sortbitwise’ flag to enable the new internal object sort order
ceph osd set sortbitwise
This flag is important for the new object enumeration API and for new backends like BlueStore.
The rbd CLI no longer permits creating images and snapshots with potentially ambiguous names (e.g. the ‘/’ and ‘@’ characters are disallowed). The validation can be temporarily disabled by adding “--rbd-validate-names=false” to the rbd CLI when creating an image or snapshot. It can also be disabled by adding the following to the client section of the Ceph configuration file
rbd validate names = false
Upgrading from Hammer
All cluster nodes must first upgrade to Hammer v0.94.4 or a later v0.94.z release; only then is it possible to upgrade to Jewel 10.2.z.
For all distributions that support systemd (CentOS 7, Fedora, Debian Jessie 8.x, OpenSUSE), ceph daemons are now managed using native systemd files instead of the legacy sysvinit scripts. For example
systemctl start ceph.target # start all daemons systemctl status ceph-osd@12 # check status of osd.12
The main notable distro that is not yet using systemd is Ubuntu trusty 14.04. (The next Ubuntu LTS, 16.04, will use systemd instead of upstart.)
Ceph daemons now run as user and group
cephby default. The ceph user has a static UID assigned by Fedora and Debian (also used by derivative distributions like RHEL/CentOS and Ubuntu). On SUSE the same UID/GID as in Fedora and Debian will be used, provided it is not already assigned. In the unlikely event the preferred UID or GID is assigned to a different user/group, ceph will get a dynamically assigned UID/GID.If your systems already have a ceph user, upgrading the package will cause problems. We suggest you first remove or rename the existing ‘ceph’ user and ‘ceph’ group before upgrading.
When upgrading, administrators have two options
Add the following line to
ceph.confon all hostssetuser match path = /var/lib/ceph/$type/$cluster-$id
This will make the Ceph daemons run as root (i.e., not drop privileges and switch to user ceph) if the daemon’s data directory is still owned by root. Newly deployed daemons will be created with data owned by user ceph and will run with reduced privileges, but upgraded daemons will continue to run as root.
Fix the data ownership during the upgrade. This is the preferred option, but it is more work and can be very time consuming. The process for each host is to
Upgrade the ceph package. This creates the ceph user and group. For example
ceph-deploy install --stable jewel HOST
Stop the daemon(s)
service ceph stop # fedora, centos, rhel, debian stop ceph-all # ubuntu
Fix the ownership
chown -R ceph:ceph /var/lib/ceph chown -R ceph:ceph /var/log/ceph
Restart the daemon(s)
start ceph-all # ubuntu systemctl start ceph.target # debian, centos, fedora, rhel
Alternatively, the same process can be done with a single daemon type, for example by stopping only monitors and chowning only
/var/lib/ceph/mon.
The on-disk format for the experimental KeyValueStore OSD backend has changed. You will need to remove any OSDs using that backend before you upgrade any test clusters that use it.
When a pool quota is reached, librados operations now block indefinitely, the same way they do when the cluster fills up. (Previously they would return -ENOSPC.) By default, a full cluster or pool will now block. If your librados application can handle ENOSPC or EDQUOT errors gracefully, you can get error returns instead by using the new librados OPERATION_FULL_TRY flag.
The return code for librbd’s rbd_aio_read and Image::aio_read API methods no longer returns the number of bytes read upon success. Instead, it returns 0 upon success and a negative value upon failure.
‘ceph scrub’, ‘ceph compact’ and ‘ceph sync force’ are now DEPRECATED. Users should instead use ‘ceph mon scrub’, ‘ceph mon compact’ and ‘ceph mon sync force’.
‘ceph mon_metadata’ should now be used as ‘ceph mon metadata’. There is no need to deprecate this command (same major release since it was first introduced).
The --dump-json option of “osdmaptool” is replaced by --dump json.
The commands of “pg ls-by-{pool,primary,osd}” and “pg ls” now take “recovering” instead of “recovery”, to include the recovering pgs in the listed pgs.
Upgrading from Firefly
Upgrading directly from Firefly v0.80.z is not recommended. It is possible to do a direct upgrade, but not without downtime, as all OSDs must be stopped, upgraded, and then restarted. We recommend that clusters be first upgraded to Hammer v0.94.6 or a later v0.94.z release; only then is it possible to upgrade to Jewel 10.2.z for an online upgrade (see below).
To do an offline upgrade directly from Firefly, all Firefly OSDs must be stopped and marked down before any Jewel OSDs will be allowed to start up. This fencing is enforced by the Jewel monitor, so you should use an upgrade procedure like
Upgrade Ceph on monitor hosts
Restart all ceph-mon daemons
- Set noout:
ceph osd set noout
Upgrade Ceph on all OSD hosts
Stop all ceph-osd daemons
- Mark all OSDs down with something like:
ceph osd down seq 0 1000
Start all ceph-osd daemons
- Let the cluster settle and then unset noout:
ceph osd unset noout
Upgrade and restart any remaining daemons (ceph-mds, radosgw)
Notable Changes since Infernalis
aarch64: add optimized version of crc32c (Yazen Ghannam, Steve Capper)
Adding documentation on how to use new dynamic throttle scheme (pr#8069, Somnath Roy)
admin/build-doc: depend on zlib1g-dev and graphviz (pr#7522, Ken Dreyer)
auth: cache/reuse crypto lib key objects, optimize msg signature check (Sage Weil)
auth: fail if rotating key is missing (do not spam log) (pr#6473, Qiankun Zheng)
auth: fix crash when bad keyring is passed (pr#6698, Dunrong Huang)
auth: make keyring without mon entity type return -EACCES (pr#5734, Xiaowei Chen)
AUTHORS: update email (pr#7854, Yehuda Sadeh)
auth: reinit NSS after fork() (#11128 Yan, Zheng)
authtool: update --help and manpage to match code. (pr#8456, Robin H. Johnson)
autotools: fix out of tree build (Krxysztof Kosinski)
autotools: improve make check output (Loic Dachary)
Be more careful about directory fragmentation and scrubbing (issue#15167, pr#8180, Yan, Zheng)
bluestore: latest and greatest (issue#14210, issue#13801, pr#6896, xie.xingguo, Jianpeng Ma, YiQiang Chen, Sage Weil, Ning Yao)
buffer: add invalidate_crc() (Piotr Dalek)
buffer: add symmetry operator==() and operator!=() (pr#7974, Kefu Chai)
buffer: fix internal iterator invalidation on rebuild, get_contiguous (pr#6962, Sage Weil)
buffer: fix zero bug (#12252 Haomai Wang)
buffer: hide iterator_impl symbols (issue#14788, pr#7688, Kefu Chai)
buffer: increment history alloc as well in raw_combined (issue#14955, pr#7910, Samuel Just)
buffer: make usable outside of ceph source again (pr#6863, Josh Durgin)
buffer: raw_combined allocations buffer and ref count together (pr#7612, Sage Weil)
buffer: some cleanup (Michal Jarzabek)
buffer: use move construct to append/push_back/push_front (pr#7455, Haomai Wang)
build: Adding build requires (pr#7742, Erwan Velu)
build: a few armhf (32-bit build) fixes (pr#7999, Eric Lee, Sage Weil)
build: allow jemalloc with rocksdb-static (pr#7368, Somnath Roy)
build: allow tcmalloc-minimal (Thorsten Behrens)
build: build internal plugins and classes as modules (pr#6462, James Page)
build: C++11 now supported
build: cmake check fixes (pr#6787, Orit Wasserman)
build: cmake: fix nss linking (Danny Al-Gaaf)
build: cmake: misc fixes (Orit Wasserman, Casey Bodley)
build: cmake tweaks (pr#6254, John Spray)
build: disable LTTNG by default (#11333 Josh Durgin)
build: do not build ceph-dencoder with tcmalloc (#10691 Boris Ranto)
build: fix a few warnings (pr#6847, Orit Wasserman)
build: fix bz2-dev dependency (pr#6948, Samuel Just)
build: fix compiling warnings (pr#8366, Dongsheng Yang)
build: Fixing BTRFS issue at ‘make check’ (pr#7805, Erwan Velu)
build: fix Jenkins make check errors due to deep-scrub randomization (pr#6671, David Zafman)
build: fix junit detection on Fedora 22 (Ira Cooper)
build: fix pg ref disabling (William A. Kennington III)
build: fix ppc build (James Page)
build: fix the autotools and cmake build (the new fusestore needs libfuse) (pr#7393, Kefu Chai)
build: fix warnings (pr#7197, Kefu Chai, xie xingguo)
build: fix warnings (pr#7315, Kefu Chai)
build: FreeBSD related fixes (pr#7170, Mykola Golub)
build: Gentoo: _FORTIFY_SOURCE fix. (issue#13920, pr#6739, Robin H. Johnson)
build: install-deps: misc fixes (Loic Dachary)
build: install-deps.sh improvements (Loic Dachary)
build: install-deps: support OpenSUSE (Loic Dachary)
build: kill warnings (pr#7397, Kefu Chai)
build: make_dist_tarball.sh (Sage Weil)
build: many cmake improvements
build: misc cmake fixes (Matt Benjamin)
build: misc fixes (Boris Ranto, Ken Dreyer, Owen Synge)
build: misc make check fixes (pr#7153, Sage Weil)
build: more CMake package check fixes (pr#6108, Daniel Gryniewicz)
build: move libexec scripts to standardize across distros (issue#14687, issue#14705, issue#14723, pr#7636, Nathan Cutler, Kefu Chai)
build/ops: enable CR in CentOS 7 (issue#13997, pr#6844, Loic Dachary)
build/ops: rbd-replay moved from ceph-test-dbg to ceph-common-dbg (issue#13785, pr#6578, Loic Dachary)
build/ops: systemd ceph-disk unit must not assume /bin/flock (issue#13975, pr#6803, Loic Dachary)
build: OSX build fixes (Yan, Zheng)
build: Refrain from versioning and packaging EC testing plugins (issue#14756, issue#14723, pr#7637, Nathan Cutler, Kefu Chai)
build: remove rest-bench
build: Respect TMPDIR for virtualenv. (pr#8457, Robin H. Johnson)
build: spdk submodule; cmake (pr#7503, Kefu Chai)
build: workaround an automake bug for “make check” (issue#14723, pr#7626, Kefu Chai)
ceph-authtool: fix return code on error (Gerhard Muntingh)
ceph: bash auto complete for CLI based on mon command descriptions (pr#7693, Adam Kupczyk)
ceph_daemon.py: Resolved ImportError to work with python3 (pr#7937, Sarthak Munshi)
ceph-detect-init: add debian/jessie test (pr#8074, Kefu Chai)
ceph-detect-init: added Linux Mint (Michal Jarzabek)
ceph-detect-init: add missing test case (pr#8105, Nathan Cutler)
ceph-detect-init: fix py3 test (pr#7025, Kefu Chai)
ceph-detect-init: fix py3 test (pr#7243, Kefu Chai)
ceph_detect_init/__init__.py: remove shebang (pr#7731, Nathan Cutler)
ceph-detect-init: return correct value on recent SUSE distros (issue#14770, pr#7909, Nathan Cutler)
ceph-detect-init: robust init system detection (Owen Synge)
ceph-detect-init/run-tox.sh: FreeBSD: No init detect (pr#8373, Willem Jan Withagen)
ceph-detect-init: Ubuntu >= 15.04 uses systemd (pr#6873, James Page)
ceph-disk: Add destroy and deactivate option (issue#7454, pr#5867, Vicente Cheng)
ceph-disk: add -f flag for btrfs mkfs (pr#7222, Darrell Enns)
ceph-disk: Add --setuser and --setgroup options for ceph-disk (pr#7351, Mike Shuey)
ceph-disk: ceph-disk list fails on /dev/cciss!c0d0 (issue#13970, issue#14233, issue#14230, pr#6879, Loic Dachary)
ceph-disk: compare parted output with the dereferenced path (issue#13438, pr#6219, Joe Julian)
ceph-disk: deactivate / destroy PATH arg are optional (pr#7756, Loic Dachary)
ceph-disk: do not always fail when re-using a partition (pr#8508, You Ji)
ceph-disk: ensure ‘zap’ only operates on a full disk (#11272 Loic Dachary)
ceph-disk: fixes to respect init system (Loic Dachary, Owen Synge)
ceph-disk: fix failures when preparing disks with udev > 214 (issue#14080, issue#14094, pr#6926, Loic Dachary, Ilya Dryomov)
ceph-disk: fix prepare --help (pr#7758, Loic Dachary)
ceph-disk: Fix trivial typo (pr#7472, Brad Hubbard)
ceph-disk: fix zap sgdisk invocation (Owen Synge, Thorsten Behrens)
ceph-disk: flake8 fixes (pr#7646, Loic Dachary)
ceph-disk: follow ceph-osd hints when creating journal (#9580 Sage Weil)
ceph-disk: get Nonetype when ceph-disk list with --format plain on single device. (pr#6410, Vicente Cheng)
ceph-disk: handle re-using existing partition (#10987 Loic Dachary)
ceph-disk: improve parted output parsing (#10983 Loic Dachary)
ceph-disk: Improving ‘make check’ for ceph-disk (pr#7762, Erwan Velu)
ceph-disk: install pip > 6.1 (#11952 Loic Dachary)
ceph-disk: key management support (issue#14669, pr#7552, Loic Dachary)
ceph-disk: make some arguments as required if necessary (pr#7687, Dongsheng Yang)
ceph-disk: make suppression work for activate-all and activate-journal (Dan van der Ster)
ceph-disk: many fixes (Loic Dachary, Alfredo Deza)
ceph-disk: pass --cluster arg on prepare subcommand (Kefu Chai)
ceph-disk: s/dmcrpyt/dmcrypt/ (issue#14838, pr#7744, Loic Dachary, Frode Sandholtbraaten)
ceph-disk: support bluestore (issue#13422, pr#7218, Loic Dachary, Sage Weil)
ceph-disk: support for multipath devices (Loic Dachary)
ceph-disk: support NVMe device partitions (#11612 Ilja Slepnev)
ceph-disk/test: fix test_prepare.py::TestPrepare tests (pr#7549, Kefu Chai)
ceph-disk: warn for prepare partitions with bad GUIDs (issue#13943, pr#6760, David Disseldorp)
ceph: fix ‘df’ units (Zhe Zhang)
ceph: fix parsing in interactive cli mode (#11279 Kefu Chai)
ceph: fix tell behavior (pr#6329, David Zafman)
cephfs-data-scan: many additions, improvements (John Spray)
cephfs-data-scan: scan_frags (pr#5941, John Spray)
cephfs-data-scan: scrub tag filtering (#12133 and #12145) (issue#12133, issue#12145, pr#5685, John Spray)
ceph-fuse: add process to ceph-fuse --help (pr#6821, Wei Feng)
ceph-fuse: do not require successful remount when unmounting (#10982 Greg Farnum)
ceph-fuse: fix double decreasing the count to trim caps (issue#14319, pr#7229, Zhi Zhang)
ceph-fuse: fix double free of args (pr#7015, Ilya Shipitsin)
ceph-fuse: fix fsync() (pr#6388, Yan, Zheng)
ceph-fuse: Fix potential filehandle ref leak at umount (issue#14800, pr#7686, Zhi Zhang)
ceph-fuse, libcephfs: don’t clear COMPLETE when trimming null (Yan, Zheng)
ceph-fuse, libcephfs: drop inode when rmdir finishes (#11339 Yan, Zheng)
ceph-fuse,libcephfs: 修复客户端在关闭时处理“丢失”的开放目录(issue#14996, pr#7994, Yan, Zheng)
ceph-fuse,libcephfs: 修复因为释放的fd没有被放回而导致空闲fd最终耗尽的问题(issue#14798, pr#7685, Zhi Zhang)
ceph-fuse,libcephfs: 修复 uninline (#11356 Yan, Zheng)
ceph-fuse, libcephfs: 对我们“拥有”的目录持有排他caps (#11226 Greg Farnum)
ceph-fuse: 在32位主机上大部分行为正常 (Yan, Zheng)
ceph-fuse: 未指定参数时打印用法信息(pr#6868, Bo Cai)
ceph-fuse: 轮换日志文件(pr#8485, Sage Weil)
ceph-fuse: 启动ceph-fuse时,首先启动日志线程(issue#13443, pr#6224, Wenjun Huang)
ceph: 改进 'tell' 命令的错误输出 (#11101 Kefu Chai)
ceph: 改进错误消息(issue#11101, pr#7106, Kefu Chai)
ceph.in: 使用 ceph command 时避免 broken pipe 错误(issue#14354, pr#7212, Bo Cai)
ceph.in: 修复 automake 构建的 dev python 路径(pr#8360, Josh Durgin)
ceph.in: 修复 automake 的 python libpath(pr#8362, Josh Durgin)
ceph.in: 细微的 python3 特定更改(pr#7947, Sarthak Munshi)
ceph-kvstore-tool: 处理命令行中错误的输出文件(pr#6093, Kefu Chai)
ceph-mds: 添加 --help/-h(pr#6850, Cilang Zhao)
ceph-monstore-tool: 修复 store-copy (Huangjun)
ceph: 新增 'ceph daemonperf' 命令 (John Spray, Mykola Golub)
ceph_objectstore_bench: 修复竞态条件、错误(issue#13516, pr#6681, Igor Fedotov)
ceph-objectstore-tool: 修复许多 ceph-objectstore-tool 操作的 --dry-run(pr#6545, David Zafman)
ceph-objectstore-tool: 许多改进 (David Zafman)
ceph-objectstore-tool: 重构和清理 (John Spray)
ceph-post-file: 杂项修复 (Joey McDonald, Sage Weil)
ceph-rest-api: 修复 fs/flag/set(pr#8428, Sage Weil)
ceph.spec.in: 添加 BuildRequires: systemd(issue#13860, pr#6692, Nathan Cutler)
ceph.spec.in: 添加版权声明(issue#14694, pr#7569, Nathan Cutler)
ceph.spec.in: 添加许可证声明(pr#7574, Nathan Cutler)
ceph.spec.in: 显式禁用 lttng 和 babeltrace(issue#14844, pr#7857, Kefu Chai)
ceph.spec.in: 在 systemd 平台上不安装 Ceph RA(issue#14828, pr#7894, Nathan Cutler)
ceph.spec.in: 修复 SUSE 的 openldap 和 openssl 构建依赖项(issue#15138, pr#8120, Nathan Cutler)
ceph.spec.in: 在 SUSE OBS 中设置 lowmem_builder 时限制 _smp_mflags(issue#13858, pr#6691, Nathan Cutler)
ceph_test_libcephfs: 容忍 readdir 中的重复条目(issue#14377, pr#7246, Yan, Zheng)
ceph_test_msgr: 减小测试大小以修复内存大小(pr#8127, Haomai Wang)
ceph_test_msgr: 使用 send_message 而不是 keepalive 来唤醒连接(pr#6605, Haomai Wang)
ceph_test_rados_misc: 缩短挂载超时(pr#8209, Sage Weil)
ceph_test_rados: 测试流水线读取 (Zhiqiang Wang)
check-generated.sh: 无法从 sh source bash(pr#8521, Michal Jarzabek)
cleanup(pr#8058, Yehuda Sadeh, Orit Wasserman)
cleanup: 移除杂项死代码(pr#7201, Erwan Velu)
client: 更好地检查 MDS 可用性(pr#6253, John Spray)
client: 添加选项来控制目录大小的计算方式(pr#7323, Yan, Zheng)
client: 避免在 Client::check_pool_perm() 中创建孤立对象(issue#13782, pr#6603, Yan, Zheng)
client: 避免发送不必要的 FLUSHSNAP 消息 (Yan, Zheng)
client: 处理读取时检查 Fh 是否可读(issue#11517, pr#7209, Yan, Zheng)
client: 在 shutdown() 中关闭 mds 会话(pr#6269, John Spray)
client: 当 inode 不再使用时不要使页面缓存失效(pr#6380, Yan, Zheng)
client: 在命令回复时不标记为 mark_down(pr#6204, John Spray)
client: 从 ints 中删除前缀(pr#6275, John Coyle)
client: 计算 oldest tid 时排除 setfilelock (Yan, Zheng)
client: 修复 check_pool_perm 中的错误处理 (John Spray)
client: 创建快照前刷新内核页面缓存(issue#10436, pr#7495, Yan, Zheng)
client: fsync 仅等待 inode 的 caps 刷新 (Yan, Zheng)
client: 当缓存大小超过限制时使内核 dcache 失效 (Yan, Zheng)
client: 使 fsync 等待不安全的 dir 操作 (Yan, Zheng)
client: 修改日志中的一个词语(pr#6906, YongQiang He)
client: 锁定查找 dentry 以避免 inode 被释放 (Yan, Zheng)
client: 正确修剪未链接的 inode(issue#13903, pr#7297, Yan, Zheng)
client: 移除 MetaRequest 中未使用的 Mutex(pr#7655, Greg Farnum)
client: flock 操作的 sys/file.h 包含(pr#6282, John Coyle)
client: 使用 null snapc 检查池权限(issue#13714, pr#6497, Yan, Zheng)
cls/cls_rbd.cc: 修复 metadata_name_from_key 的误用(issue#13922, pr#6661, Xiaoxi Chen)
cls/cls_rbd: 按引用传递字符串(pr#7232, Jeffrey Lu)
cls_hello: 修复描述注释中的语法错误(pr#7951, Brad Hubbard)
cls_journal: 修复 -EEXIST 检查(pr#8413, runsisi)
cls_rbd: 为错误情况添加防护(issue#14316, issue#14317, pr#7165, xie xingguo)
cls_rbd: 将 object_map_update 更改为成功时返回 0,并添加日志记录(pr#6467, Douglas Fuller)
cls_rbd: 为 object_map_save 启用对象映射校验和(issue#14280, pr#7149, Douglas Fuller)
cls_rbd: 修复 cls::rbd::image_set 中的 -EEXIST 检查(pr#8371, runsisi)
cls_rbd: 修复 ceph-dencoder 的测试(pr#7793, Kefu Chai)
cls_rbd: mirror_image_list 应返回全局图像 ID(pr#8297, Jason Dillaman)
cls_rbd: 镜像目录(issue#14419, pr#7620, Josh Durgin)
cls_rbd: 在对象映射更新期间传递 WILLNEED fadvise 标志(issue#15332, pr#8380, Jason Dillaman)
cls_rbd: 防止过大的对象映射(issue#15121, pr#8099, Jason Dillaman)
cls_rbd: read_peers: 在下一个 cls_cxx_map_get_vals 上更新 last_read(pr#8374, Mykola Golub)
cls/rgw: 修复 FTBFS(pr#8142, Kefu Chai)
cls/rgw: 修复 timespan 的使用(issue#15181, pr#8212, Yehuda Sadeh)
cmake: 将 common/fs_types.cc 添加到 libcommon(pr#7898, Orit Wasserman)
cmake: 将 common/PluginRegistry.cc 添加到 CMakeLists.txt(pr#6805, Pete Zaitcev)
cmake: 将新的单元测试添加到 make check(pr#7572, Ali Maredia)
cmake: 添加 ENABLE_GIT_VERSION 以避免重复构建(pr#7171, Kefu Chai)
cmake: 将 ErasureCode.cc 添加到 jerasure 插件(pr#7808, Casey Bodley)
cmake: 添加 FindOpenSSL.cmake(pr#8106, Marcus Watts, Matt Benjamin)
cmake: 将 KernelDevice.cc 添加到 libos_srcs(pr#7507, Kefu Chai)
cmake: 添加对 HAVE_EXECINFO_H 的缺失检查(pr#7270, Casey Bodley)
cmake: 添加缺失的 librbd image_watcher 源文件(issue#14823, pr#7717, Casey Bodley)
cmake: 添加缺失的 librbd/MirrorWatcher.cc 和 librd/ObjectWatcher.cc(pr#8399, Orit Wasserman)
cmake: 为 pk11pub.h 添加 nss 后缀(pr#6556, Samuel Just)
cmake: 将 rgw_basic_types.cc 添加到 librgw.a(pr#6786, Orit Wasserman)
cmake: 将 StandardPolicy.cc 添加到 librbd(pr#8368, Kefu Chai)
cmake: 将 TracepointProvider.cc 添加到 libcommon(pr#6823, Orit Wasserman)
cmake: 避免 LDAP 头文件检测的误报(pr#8100, Matt Benjamin)
cmake: 构建 cython 模块并更改路径为 bin/, lib/(pr#8351, John Spray, Ali Maredia)
cmake: 也在默认路径中检查 libsnappy(pr#7366, Kefu Chai)
cmake: 清理和更多 automake 功能(pr#7103, Casey Bodley, Ali Maredia)
cmake: 为 GNU 特定的 strerror_r 定义 STRERROR_R_CHAR_P(pr#6751, Ilya Dryomov)
cmake: 检测 bzip2 和 lz4(pr#7126, Kefu Chai)
cmake: feb5(pr#7541, Matt Benjamin)
cmake: 修复 bluestore 的构建(pr#7099, John Spray)
cmake: 修复文件列表(pr#6539, Yehuda Sadeh)
cmake: 修复 mrun 以处理 cmake 构建结构(pr#8237, Orit Wasserman)
cmake: 修复各种 EC 源文件的路径(pr#7748, Ali Maredia, Matt Benjamin)
cmake: 修复 test_rados_api_list 的构建(pr#8438, Kefu Chai)
cmake: 修复测试的构建(pr#7523, Kefu Chai)
cmake: 修复 trusty 上的构建(pr#7249, Kefu Chai)
cmake: 对于 CMake 版本 <= 2.8.11,使用 LINK_PRIVATE 和 LINK_PUBLIC(pr#7474, Tao Chang)
CMake: 对于 CMake 版本 <= 2.8.11,使用 LINK_PRIVATE(pr#8422, Haomai Wang)
cmake: 让 ceph-client-debug 链接 tcmalloc(pr#7314, Kefu Chai)
cmake: librbd 和 libjournal 构建修复(pr#6557, Ilya Dryomov)
cmake: 使 rocksdb 成为导入库(pr#7131, Ali Maredia)
cmake: 不需要从 run-cmake-check.sh 运行 configure(pr#6959, Orit Wasserman)
cmake(pr#7849, Ali Maredia)
cmake: 移除重复的 find_package libcurl 行。(pr#7972, Brad Hubbard)
cmake: 通过 WITH_CCACHE 构建选项支持 ccache(pr#6875, John Coyle)
cmake: test_build_libcephfs 需要 ${ALLOC_LIBS}(pr#7300, Ali Maredia)
cmake: 更新以适应最近的 librbd 更改(pr#6715, John Spray)
cmake: 更新以适应最近的 rbd 更改(pr#6818, Mykola Golub)
cmake: 使用 uname 而不是 arch。(pr#6358, John Coyle)
coc: 修复 apt-get 命令中的拼写错误(pr#6659, Chris Holcombe)
common: 为 perfcounters 添加描述 (Kiseleva Alyona)
common: 添加通用插件基础设施(pr#6696, Sage Weil)
common: 为 finisher 添加延迟 perf counter(pr#6175, Xinze Chi)
common: 添加 perf counter 描述 (Alyona Kiseleva)
common/address_help.cc: 修复 entity_addr_from_url() 中的内存泄漏(issue#14132, pr#6987, Qiankun Zheng)
common: 添加线程名称(pr#5882, Igor Podoski)
common: 添加 zlib 压缩插件(pr#7437, Alyona Kiseleva, Kiseleva Alyona)
common: tcmalloc 堆获取/设置操作的 admin socket 命令(pr#7512, Samuel Just)
common: 使 ceph_time clocks 在 BSD 下工作(pr#7340, Adam C. Emerson)
common: 允许在运行时启用/禁用 optracker(pr#5168, Jianpeng Ma)
common: 允许 OPT_INT 设置使用负值(issue#13829, pr#7390, Brad Hubbard, Kefu Chai)
common: assert: abort() 而不是 throw(pr#6804, Adam C. Emerson)
common: assert: __STRING 宏未被 musl libc 定义。(pr#6210, John Coyle)
common/bit_vector: 对块大小使用硬编码值(issue#14747, pr#7610, Jason Dillaman)
common: buffer: 将 cached_crc 和 cached_crc_adjust 计数添加到 perf dump(pr#6535, Ning Yao)
common: buffer/assert 细微修复(pr#6990, Matt Benjamin)
common: bufferlist 性能调优 (Piotr Dalek, Sage Weil)
common: buffer: 在 read_file 期间为 stat() 系统调用放置一个保护(pr#7956, xie xingguo)
common: buffer: 移除不需要的列表析构函数(pr#6456, Michal Jarzabek)
common/buffer: 用自旋锁替换 RWLock(pr#7294, Piotr Dałek)
common/ceph_context.cc: 修复初始化器顺序(pr#6838, Michal Jarzabek)
common: 更改 counter total/unhealthy_workers 的类型(pr#7254, Guang Yang)
common: 默认集群名称为配置文件前缀(pr#7364, Javen Wu)
common: 弃用或释放一堆功能位(pr#8214, Samuel Just)
common: 检测 int config 值的溢出 (#11484 Kefu Chai)
common: 不要在 mutex_debug 中使用不可移植的常量(pr#7766, Adam C. Emerson)
common: 当为零时不反转 hobject_t hash 位(pr#6653, Piotr Dałek)
common: 修复 bit_vector extent 计算 (#12611 Jason Dillaman)
common: 修复 utf8 的 json 解析 (#7387 Tim Serong)
common: 修复 pthread_mutexattr 泄漏 (#11762 Ketor Meng)
common: 修复 LTTNG vs fork 问题 (Josh Durgin)
common: 修复 OpTracker age histogram 计算(pr#5065, Zhiqiang Wang)
common: 修复 optracker 在启用/禁用模式之间切换时的竞态条件(pr#8330, xie xingguo)
common: 修复使用 perf reset 命令重置 Throttle 中的 max(issue#13517, pr#6300, Xinze Chi)
common: 修复 throttle max 更改 (Henry Chang)
common: 修复 decode 中的 time_t 转换(issue#15330, pr#8419, Adam C. Emerson)
common/Formatter: 如果没有输出,则避免换行符(pr#5351, Aran85)
common: 通过哈希表改进 shared_cache 和 simple_cache 效率(pr#6909, Ning Yao)
common/lockdep: 增加最大锁名称(pr#6961, Sage Weil)
common: log: 为 syslog 调用分配 LOG_DEBUG 优先级(issue#13993, pr#6815, Brad Hubbard)
common: log: 预测日志消息缓冲区分配大小(pr#6641, Adam Kupczyk)
common: 使互斥锁更高效
common: 使工作队列的添加/移除线程安全 (#12662 Jason Dillaman)
common/MemoryModel: 为 mallinfo() 添加显式功能检查。(pr#6252, John Coyle)
common: 新的时间保持通用代码和 Objecter 转换(pr#5782, Adam C. Emerson)
common/obj_bencher.cc: 提高带宽字段的精度(pr#8021, Piotr Dałek)
common/obj_bencher.cc: 更快的对象名称生成(pr#7863, Piotr Dałek)
common/obj_bencher.cc: 修复没有对象时验证崩溃的问题(pr#5853, Piotr Dałek)
common/obj_bencher.cc: 使验证错误致命(issue#14971, pr#7897, Piotr Dałek)
common: 优化调试日志代码(pr#6441, Adam Kupczyk)
common: 优化调试日志记录(pr#6307, Adam Kupczyk)
common: optracker 改进 (Zhiqiang Wang, Jianpeng Ma)
common/page.cc: _page_mask 位数过多(pr#7588, Dan Mick)
common: bufferlist history total alloc 的 perf counter(pr#6198, Xinze Chi)
common: PriorityQueue 测试 (Kefu Chai)
common: 通过使 stringify 函数中的 stringstream 线程本地化来减少 CPU 使用率(pr#6543, Evgeniy Firsov)
common: 重新启用 backtrace 支持(pr#6771, Jason Dillaman)
common: 从正确的线程设置线程名称(pr#7845, Igor Podoski)
common: signal_handler: 添加了使用可重入 strsignal() 实现而不是 sys_siglist[] 的支持(pr#6796, John Coyle)
common: snappy decompressor 在处理分段输入 bufferlist 时可能会断言失败(issue#14400, pr#7268, Igor Fedotov)
common: 一些异步压缩基础设施 (Haomai Wang)
common/str_map: 清理:通过对分隔符使用默认参数替换 get_str_map() 函数重载(pr#7266, Sahithi R V)
common/strtol.cc: 修复 coverity 警告(pr#7967, Kefu Chai)
common: SubProcess: 调用 err() 时避免缓冲区损坏(issue#15011, pr#8054, Erwan Velu)
common: SubProcess: 修复多重定义错误(pr#6790, Yunchuan Wen)
common: Thread: 移动复制构造函数和赋值操作符(pr#5133, Michal Jarzabek)
common: time: 让 skewing-now 调用 non-skewing now(pr#7466, Adam C. Emerson)
common/TrackedOp: 修复慢请求计数不准确的问题(issue#14804, pr#7690, xie xingguo)
common: interval_set 实现的单元测试(pr#6, Igor Fedotov)
common: 对 buffer 使用命名空间而不是子类(pr#6686, Michal Jarzabek)
common: SCA 运行中的各种修复(pr#7680, Danny Al-Gaaf)
common: WorkQueue: ContextWQ 的新 PointerWQ 基类(issue#13636, pr#6525, Jason Dillaman)
compat: 使用带有前缀的 typeof 扩展(pr#6216, John Coyle)
config: 将 $data_dir/config 添加到配置搜索路径(pr#7377, Sage Weil)
config: 当某个设置未被跟踪时发出警告(issue#11692, pr#7085, Kefu Chai)
config: 修复 osd_crush_initial_weight(pr#7975, You Ji)
config: 增加默认异步操作线程数(pr#7802, Piotr Dałek)
config_opts: 默认禁用 filestore throttle soft backoff(pr#8265, Samuel Just)
configure.ac: boost_iostreams 是必需的,而不是可选的(pr#7816, Hector Martin)
configure.ac: 宏修复(pr#6769, Igor Podoski)
configure.ac: 使 “--with-librocksdb-static” 默认设置为 ‘check’(issue#14463, pr#7317, Dan Mick)
configure.ac: 更新 cython 的帮助字符串(pr#7856, Josh Durgin)
configure: 为 Linux 构建添加 -D_LARGEFILE64_SOURCE。(pr#8402, Ira Cooper)
configure: 检测 bz2 和 lz4(issue#13850, issue#13981, pr#7030, Kefu Chai)
correct radosgw-admin command(pr#7006, YankunLi)
crush: 添加 --check 以验证悬空名称、最大 osd id (Kefu Chai)
crush: 添加 chooseleaf_stable 可调参数(pr#6572, Sangdi Xu, Sage Weil)
crush: 添加安全断言(issue#14496, pr#7344, songbaisen)
crush: 清理,与内核同步 (Ilya Dryomov)
crush: 清理空白字符删除(issue#14302, pr#7157, songbaisen)
crush/CrushTester: 检查重叠规则(pr#7139, Kefu Chai)
crush/CrushTester: 解决 boost::icl 中的一个 bug(pr#7560, Kefu Chai)
crush: 修复新 crush 可调参数的 cli 测试(pr#8107, Sage Weil)
crush: 修复无效 'take' 参数导致的崩溃 (#11602 Shiva Rkreddy, Sage Weil)
crush: 修复 straw2 中的除以2错误 (#11357 Yann Dupont, Sage Weil)
crush: 修复错误日志(pr#8430, Wei Jin)
crush: 修复 has_v4_buckets (#11364 Sage Weil)
crush: 修复 adjust_subtree_weight 上的子树基本权重 (#11855 Sage Weil)
crush: 修复拼写错误(pr#8518, Wei Jin)
crush: 从 get_immediate_parent 快速回复(issue#14334, pr#7181, song baisen)
crush: 在地图创建时尊重默认复制规则集配置 (Ilya Dryomov)
crushtool: 在非 crushmap 文件上调用时不崩溃(issue#8286, pr#8038, Brad Hubbard)
crushtool: 修复操作顺序、用法 (Sage Weil)
crushtool: 改进用法/提示消息(pr#7142, xie xingguo)
crushtool: 为 --build 选项设置 type 0 名称“device”(pr#6824, Sangdi Xu)
crush: 更新 tunable 文档。将默认配置文件更改为 jewel(pr#7964, Sage Weil)
crush: 在索引 buckets 数组之前验证 bucket id(issue#13477, pr#6246, Sage Weil)
crypto: 修复 NSS 泄漏 (Jason Dillaman)
crypto: 修复不平衡的 init/shutdown (#12598 Zheng Yan)
deb: 修复 rest-bench-dbg 和 ceph-test-dbg 依赖项 (Ken Dreyer)
debian/changelog: 移除版本中的多余 'v'(pr#7936, Dan Mick)
debian/changelog: 移除版本中的多余 'v'(pr#7938, Dan Mick)
debian: 在 build-requiers 中包含 cpio(pr#7533, Rémi BUISSON)
debian: 细微的软件包重组 (Ken Dreyer)
debian: 打包 librgw_file* tests(pr#7930, Ken Dreyer)
debian: jewel 的打包修复(pr#7807, Ken Dreyer, Ali Maredia)
debian/rpm split servers(issue#10587, pr#7746, Ken Dreyer)
debian/rules: 将 init-ceph 放入 /etc/init.d/ceph,而不是 ceph-base(issue#15329, pr#8406, Dan Mick)
deb, rpm: 将 ceph-objectstore-tool 移动到 ceph (Ken Dreyer)
doc: 将 ceph-detect-init(8) 源添加到 dist tarball(pr#7933, Ken Dreyer)
doc: 将 cinder 后端部分添加到 rbd-openstack.rst(pr#7923, RustShen)
doc: 在减小 rbd 块大小中添加 "--allow-shrink" 以区别于增加选项(pr#7020, Yehua)
doc: 将 orphans 命令添加到 radosgw-admin(8)(issue#14637, pr#7518, Ken Dreyer)
doc: 将 v0.80.11 添加到发布时间表(pr#6658, Loic Dachary)
doc: admin/build-doc: 在 debian 上添加 lxml 依赖项(pr#6610, Ken Dreyer)
doc: admin/build-doc: 使路径绝对化(pr#7119, Dan Mick)
doc: 修订 SubmittingPatches 中的 Fixes 说明(pr#8312, Nathan Cutler)
doc: 修订 rados.8(pr#7251, Kefu Chai)
doc/architecture.rst: 移除多余的词语“across”(pr#8179, Zhao Junwang)
doc/cephfs/posix: 更新(pr#6922, Sage Weil)
doc: 澄清启动单个 osd/mds/mon 的用法。(pr#7641, Patrick Donnelly)
doc: CodingStyle: 修复损坏的 URL(pr#6733, Kefu Chai)
doc: 将拼写错误 'restared' 更正为 'restarted'(pr#6734, Yilong Zhao)
doc: bugfixing 工作流的详细描述(pr#7941, Nathan Cutler)
doc/dev: 添加“Deploy a cluster for manual testing”部分(issue#15218, pr#8228, Nathan Cutler)
doc/dev: 添加关于中断正在运行的套件的部分(pr#8116, Nathan Cutler)
doc/dev: 继续编写 Testing in the cloud 章节(pr#7960, Nathan Cutler)
doc: dev: 文档 ceph-qa-suite(pr#6955, Loic Dachary)
doc/dev/index: 重构/重组(pr#6792, Nathan Cutler)
doc/dev/index.rst: 开始编写 Contributing to Ceph(pr#6727, Nathan Cutler)
doc/dev/index.rst: 修复标题(pr#6780, Nathan Cutler)
doc/dev: 将测试集成到叙述中(pr#7946, Nathan Cutler)
doc: dev: 测试简介(pr#6910, Loic Dachary)
doc/dev: 各种改进(pr#7954, Nathan Cutler)
doc: 文档对象语料库生成 (#11099 Alexis Normand)
doc: 文档“readforward”和“readproxy”缓存模式(pr#7023, Kefu Chai)
doc: 文档 region hostnames (Robin H. Johnson)
doc: 从 download.ceph.com 下载 GPG 密钥(issue#13603, pr#6384, Ken Dreyer)
doc: jewel 的草稿笔记(pr#8211, Loic Dachary, Sage Weil)
doc: 使用“setfattr”写入文件布局字段时,文件必须为空(pr#6848, Cilang Zhao)
doc: 修复 0.94.4 和 0.94.5 的排序问题(pr#7763, Loic Dachary)
doc: 修复 “List Multipart Upload Parts”响应实体的名称不正确(issue#14003, pr#6829, Lenz Grimmer)
doc: 修复 CRUSH map step take 参数(pr#7327, Ivan Grcic)
doc: 修复拼写错误(pr#6705, Jeremy Qian)
doc: 修复标题字体大小和类型不同(pr#8328, scienceluo)
doc: 修复性别中立性 (Alexandre Maragone)
doc: 修复 ERASURE CODING 部分中的图像(pr#7298, Rachana Patel)
doc: 修复安装文档 (#10957 Kefu Chai)
doc: 修复缓存分层中误导性的配置指南(pr#7000, Yuan Zhou)
doc: 修复 "mon osd down out subtree limit" 选项名称(pr#7164, François Lafont)
doc: 修复缓存分层中过时的内容(pr#6272, Yuan Zhou)
doc: 修复 S3 C# 示例(pr#7027, Dunrong Huang)
doc: 修复 sphinx 问题 (Kefu Chai)
doc: 修复 Jewel 发行说明中的拼写错误、重复内容等(pr#8342, xie xingguo)
doc: 修复 cephfs/quota 中的拼写错误(pr#6745, Drunkard Zhang)
doc: 修复拼写错误、缩进等(pr#7829, xie xingguo)
doc: 修复 developer guide 中的拼写错误(pr#6943, Nathan Cutler)
doc: 修复拼写错误(pr#7004, tianqing)
doc: 修复错误的连字符类型(pr#8252, xie xingguo)
doc: RBD 镜像管理文档的初步草稿(issue#15041, pr#8169, Jason Dillaman)
doc: INSTALL 重定向到在线文档(pr#6749, Loic Dachary)
doc: 解决 scrub 问题的细微改进(pr#6827, Mykola Golub)
doc: man page 更新 (Kefu Chai)
doc: mds 数据结构文档 (Yan, Zheng)
doc: 杂项更新 (Francois Lafont, Ken Dreyer, Kefu Chai, Owen Synge, Gael Fenet-Garde, Loic Dachary, Yannick Atchy-Dalama, Jiaying Ren, Kevin Caradant, Robert Maxime, Nicolas Yong, Germain Chipaux, Arthur Gorjux, Gabriel Sentucq, Clement Lebrun, Jean-Remi Deveaux, Clair Massot, Robin Tang, Thomas Laumondais, Jordan Dorne, Yuan Zhou, Valentin Thomas, Pierre Chaumont, Benjamin Troquereau, Benjamin Sesia, Vikhyat Umrao, Nilamdyuti Goswami, Vartika Rai, Florian Haas, Loic Dachary, Simon Guinot, Andy Allan, Alistair Israel, Ken Dreyer, Robin Rehu, Lee Revell, Florian Marsylle, Thomas Johnson, Bosse Klykken, Travis Rhoden, Ian Kelling)
doc: 修改 rbd-snapshot 文档中的注释部分。(pr#6908, Nilamdyuti Goswami)
doc: 注意到 cephfs auth stuff 是 jewel 中新增的(pr#6858, John Spray)
doc: osd-config 添加 op queue 的配置选项。(pr#7837, Robert LeBlanc)
doc: osd: s/schedued/scheduled/(pr#6872, Loic Dachary)
doc/rados/api/librados-intro.rst: 修复拼写错误(pr#7879, xie xingguo)
doc/rados/operations/crush: 修复格式(pr#8306, Kefu Chai)
doc: release-notes: v0.80.11 发行说明草稿(pr#6374, Loic Dachary)
doc: release-notes: v10.0.0 发行说明草稿(pr#6666, Loic Dachary)
doc/release-notes: 修复缩进(pr#8345, Kefu Chai)
doc/release-notes: v9.1.0(pr#6281, Loic Dachary)
doc/releases-notes: 修复构建错误(pr#6483, Kefu Chai)
doc: 移除 Ceph Monitors do lots of fsync()(issue#15288, pr#8327, Vikhyat Umrao)
doc: 移除 ceph-authtool/monmaptool doc 中多余的空格(pr#7244, Jiaying Ren)
doc: 移除 Create CephFS 下的 toctree 条目(pr#6241, Jevon Qiao)
doc: 移除标题中不必要的句点(pr#6775, Marc Koderer)
doc: 重命名 "Create a Ceph User" 部分并添加关于...的文字(issue#13502, pr#6297, ritz303)
doc: 修订 SubmittingPatches(pr#7292, Kefu Chai)
doc: rgw admin 使用 "region list" 而不是 "regions list"(pr#8517, Kris Jurka)
doc: rgw 解释 keystone 的 verify ssl 开关(pr#7862, Abhishek Lekshmanan)
doc: rgw: 将更改从下游移植到上游(pr#7264, Bara Ancincova)
doc: rgw_region_root_pool 选项应该在 [global] 中(issue#15244, pr#8271, Vikhyat Umrao)
doc: pools 文档的 rst 样式修复(pr#6816, Drunkard Zhang)
doc: Ceph 镜像的脚本和指南(pr#7384, Wido den Hollander)
docs: 修复新添加的 mirror 文档样式(pr#6127, Wido den Hollander)
doc: 小修复(pr#7813, xiexingguo)
doc: 规范 @param (不是 @parma, @parmam, @params)(pr#7714, Nathan Cutler)
doc: SubmittingPatches: 没有 next;只有 jewel(pr#6811, Nathan Cutler)
doc: swift tempurls (#10184 Abhishek Lekshmanan)
doc: 将 doxygen 集成切换回 breathe (#6115 Kefu Chai)
doc, tests: 将所有 https://ceph.net.cn/ 更新为 download.ceph.com(pr#6435, Alfredo Deza)
doc: 更新 ceph-disk 手册页,增加新功能 deactivate/destroy。(pr#6637, Vicente Cheng)
doc: 更新 CloudStack RBD 文档(pr#8308, Wido den Hollander)
doc: 使用新的池设置更新文档(pr#5951, Guang Yang)
doc: 更新 rados 命令手册页,包含 --run-name opt...(issue#12899, pr#5900, ritz303)
doc: 更新 infernalis 发行说明(pr#6575, vasukulkarni)
doc: 更新 admin/build-doc 依赖项列表(issue#14070, pr#6934, Nathan Cutler)
doc: 更新 radosgw-admin 示例(pr#6256, YankunLi)
doc: 更新发布日程文档 (Loic Dachary)
doc: 更新较新 Ceph 版本的操作系统建议(pr#6355, ritz303)
doc: 使用 'ceph auth get-or-create' 创建 RGW 密钥环(pr#6930, Wido den Hollander)
doc: mstart 的非常基本的文档(pr#8207, Abhishek Lekshmanan)
drop envz.h includes(pr#6285, John Coyle)
erasure-code: 清理 (Kefu Chai)
erasure-code: 改进测试 (Loic Dachary)
erasure-code: shec: 修复恢复 bug (Takanori Nakao, Shotaro Kawaguchi)
erasure-code: 将 ISA-L 更新到 2.13 (Yuan Zhou)
fix FTBFS introduced by d0af316(pr#7792, Kefu Chai)
fix: 使用正确的 init_flags 完成 CephContext(pr#6549, Yunchuan Wen)
fs: 对 “mds setmap” 命令更加谨慎,防止损坏(issue#14380, pr#7262, Yan, Zheng)
ghobject_t: 使用 # 而不是 ! 作为分隔符(pr#8055, Sage Weil)
global: 不要使用单个 pid-file 启动两个守护进程(issue#13422, pr#7075, shun song)
global: 不要使用单个 pid-file 启动两个守护进程 (part 2)(issue#13422, pr#7463, Loic Dachary)
global/global_init: 在 setuser_match_path 中扩展 metavariables(issue#15365, pr#8433, Sage Weil)
global/signal_handler: 在信号处理程序中打印线程名称(pr#8177, Jianpeng Ma)
gmock: 切换到子模块 (Danny Al-Gaaf, Loic Dachary)
hadoop: 添加 terasort 测试 (Noah Watkins)
helgrind: 额外的竞态条件librbd: 日志重放应遵循事件间依赖关系(pr#7274, Jason Dillaman)
helgrind: 修复实际(和想象中)的竞态条件(issue#14163, pr#7208, Jason Dillaman)
include/encoding: 不要尝试在列表编码中变得聪明(pr#7913, Sage Weil)
init-ceph: 当路径存在时执行 umount。(pr#6866, Xiaoxi Chen)
init-ceph.in: 允许在 'osd crush update on start' 中使用不区分大小写的 true(pr#7943, Eric Cook)
init-ceph.in: 如果 ceph-disk 不存在则跳过(issue#10587, pr#7286, Ken Dreyer)
init-ceph: 使用 getopt 使选项处理更灵活(issue#3015, pr#6089, Nathan Cutler)
init-radosgw: 与 sysv 版本合并;修复枚举 (Sage Weil)
java: 修复 libcephfs 绑定 (Noah Watkins)
journal: 用于(取消)注册和更新客户端的异步方法(pr#7832, Mykola Golub)
journal: 观察错误后断开观察(issue#14168, pr#7113, Jason Dillaman)
journal: 读取最后一个对象后触发重放完成事件(issue#13924, pr#6762, Jason Dillaman)
journal: 修复 JournalTrimmer::C_RemoveSet 的最终结果(pr#8516, runsisi)
journal: 修复 Future 和 journal 关闭之间的竞态条件(issue#15364, pr#8477, Jason Dillaman)
journal: 在元数据关闭时刷新提交位置(pr#7385, Mykola Golub)
journal: 改进提交位置跟踪(pr#7776, Jason Dillaman)
journal: 增量改进和修复(pr#6552, Mykola Golub)
journal: 防止在溢出对象中注入新记录的竞态(issue#15202, pr#8220, Jason Dillaman)
journal: 任务完成后重置 commit_position_task_ctx 指针(pr#7480, Mykola Golub)
journal: 在 journaler 之间重用通用线程(pr#7906, Jason Dillaman)
journal: 支持重放跳过的 splay 对象(pr#6687, Jason Dillaman)
krbd: 从 udevadm 中移除弃用的 --quiet 参数(issue#13560, pr#6394, Jason Dillaman)
kv: 修复 kv key 优化中的 bug(pr#6511, Sage Weil)
kv: 实现 value_as_ptr() 并在 .get() 中使用它(pr#7052, Piotr Dałek)
kv/KineticStore: 修复损坏的 split_key(pr#6574, Haomai Wang)
kv: 优化和清理内部键/值接口(pr#6312, Piotr Dałek, Sage Weil)
libcephfs: 添加 pread, pwrite (Jevon Qiao)
libcephfs,ceph-fuse: 缓存清理 (Zheng Yan)
libcephfs,ceph-fuse: 修复 cap 重新连接上的请求重发 (#10912 Yan, Zheng)
libcephfs: 修复 python 测试和修复缺少目录时的 getcwd(pr#7901, John Spray)
libcephfs: 通过将 loff_t 类型用法替换为 off_t 来提高可移植性(pr#6301, John Coyle)
libcephfs: 仅在 glibc 平台上检查文件偏移量(pr#6288, John Coyle)
libcephfs: 更新 LIBCEPHFS_VERSION 以指示接口已更改(pr#7551, Jevon Qiao)
librados: 添加配置观察者 (Alistair Strachan)
librados: 添加 c++ 风格 osd/pg 命令接口(pr#6893, Yunchuan Wen)
librados: 为处理满集群或满池添加 FULL_TRY 和 FULL_FORCE 标志 (Sage Weil)
librados: 为 copy-from 添加 src_fadvise_flags (Jianpeng Ma)
librados: aix gcc librados 移植(pr#6675, Rohan Mars)
librados: 避免 malloc(0)(在某些平台上可能返回 NULL)(issue#13944, pr#6779, Dan Mick)
librados: 在完成后取消 aio notification linger op(pr#8102, Jason Dillaman)
librados: 在 rados_monitor_log 中检查连接状态(issue#14499, pr#7350, David Disseldorp)
librados: 清理 Objecter.h(pr#6731, Jie Wang)
librados: 从 C 常量定义 C++ 标志 (Josh Durgin)
librados: 使用 objecter_timeout 而不是 osd_timeout 检测延迟的操作(pr#7629, Greg Farnum)
librados: 执行清理(pr#6488, xie xingguo)
librados: 不为 aio_watch() 清除句柄(pr#7771, xie xingguo)
librados: 每个操作的 fadvise 标志 (Jianpeng Ma)
librados: 修复 examples/librados/Makefile 错误。(pr#6320, You Ji)
librados: 修复 last_force_resent 处理 (#11026 Jianpeng Ma)
librados: 修复 C_TwoContexts 的内存泄漏 (Xiong Yiliang)
librados: 修复 notify completion 竞态 (#13114 Sage Weil)
librados: 修复池对齐 API 溢出问题(issue#13715, pr#6489, xie xingguo)
librados: 修复 pool_snap_list 中潜在的空指针访问(issue#13639, pr#6422, xie xingguo)
librados: 修复 EC 的 PromoteOn2ndRead 测试(pr#6373, Sage Weil)
librados: 修复池操作回调可能永远挂起的罕见竞态条件(issue#13642, pr#6426, xie xingguo)
librados: 修复 enumeration_objects API 引入的几个缺陷(issue#14299, issue#14301, issue#14300, pr#7156, xie xingguo)
librados: 修复 striper 当 stripe_count = 1 且 stripe_unit != object_size 时的错误 (#11120 Yan, Zheng)
librados: 修复新 aio watch/unwatch API 的测试失败(pr#7824, Jason Dillaman)
librados: 实现异步 watch/unwatch(pr#7649, Haomai Wang)
librados: include/rados/librados.h: 修复拼写错误(pr#6741, Nathan Cutler)
librados: 从配置文件初始化 crush_location。(issue#13473, pr#6243, Wei Luo)
librados, libcephfs: 随机化客户端 nonces (Josh Durgin)
librados: 混合锁周期(un)注册 asok 命令(pr#7581, John Spray)
librados: 迁移到 c++11 并发类型(pr#5931, Adam C. Emerson)
librados: 新样式(分片)对象列表(pr#6405, John Spray, Sage Weil)
librados: op perf counters (John Spray)
librados: list_(n)objects 中潜在的空指针访问(issue#13822, pr#6639, xie xingguo)
librados: pybind: 修复二进制 omap 值 (Robin H. Johnson)
librados: pybind: 修复 write() 方法返回代码 (Javier Guerra)
librados: aio_notify completion 处理上的竞态条件(pr#7864, Jason Dillaman)
librados: 移除 rados pool_stat_t 和 cluster_stat_t 的重复定义(pr#7330, Igor Fedotov)
librados: 在 pool_create 上尊重 default_crush_ruleset (#11640 Yuan Zhou)
librados: Revert “rados: Add new field flags for ceph_osd_op.copy_get.”(pr#8486, Sage Weil)
librados: 以更优雅的方式关闭 finisher(pr#7519, xie xingguo)
librados: Solaris 移植(pr#6416, Rohan Mars)
librados: 具有更高时间精度的 stat2(pr#7915, Yehuda Sadeh, Matt Benjamin)
librados: Striper: 修复不正确的 push_front -> append_zero 更改(pr#7578, Haomai Wang)
libradosstriper: 修复泄漏 (Danny Al-Gaaf)
librados_test_stub: 防止 notify/unwatch 竞态(pr#7540, Jason Dillaman)
librados: stat 命令传入的参数错误(issue#13703, pr#6476, xie xingguo)
librbd: 为 single-client-only features 添加 const (Josh Durgin)
librbd: 添加 deep-flatten 操作 (Jason Dillaman)
librbd: 添加 purge_on_error 缓存行为 (Jianpeng Ma)
librbd: 获取排他锁后分配新的日志标签(pr#7884, Jason Dillaman)
librbd: 允许存储额外元数据和图像(pr#7400, Haomai Wang)
librbd: API: 异步打开和关闭(issue#14264, pr#7259, Mykola Golub)
librbd: 阻塞写入操作后自动刷新 IO(issue#13913, pr#6742, Jason Dillaman)
librbd: 避免阻塞 aio API 方法 (#11056 Jason Dillaman)
librbd: 避免为每个图像创建两个线程(pr#7400, Haomai Wang)
librbd: 如果不支持镜像,避免抛出错误(pr#8417, Jason Dillaman)
librbd: 更好地处理 dup flatten 请求 (#11370 Jason Dillaman)
librbd: 更好地处理排他锁转换期(pr#7204, Jason Dillaman)
librbd: 阻塞维护操作直到日志准备就绪(issue#14510, pr#7382, Jason Dillaman)
librbd: 阻塞读取请求直到日志重放(pr#7627, Jason Dillaman)
librbd: 在 watch error 上取消正在进行的 ops (#11363 Jason Dillaman)
librbd: 尝试移除前检查 journal 是否存在(issue#13912, pr#6737, Jason Dillaman)
librbd: 当较旧的 OSD 不支持图像标志时清除错误(issue#14122, pr#7035, Jason Dillaman)
librbd: 纠正 RenameRequest.h 中的 include guard(pr#7143, Jason Dillaman)
librbd: 纠正 teuthology 测试中发现的问题(issue#14108, issue#14107, pr#6974, Jason Dillaman)
librbd: 修复 valgrind memcheck 发现的问题 (pr#8132, Jason Dillaman)
librbd: 修复禁用缓存时发现的问题 (issue#14123, pr#6979, Jason Dillaman)
librbd: 修复单元测试期间发现的竞争条件 (issue#14060, pr#6923, Jason Dillaman)
librbd: 尝试刷新 AIO 请求时发生死锁 (issue#13726, pr#6508, Jason Dillaman)
librbd: 新镜像默认使用 format 2 (#11348 Jason Dillaman)
librbd: 区分日志重放刷新与关闭 (pr#7698, Jason Dillaman)
librbd: 非排他锁所有者时禁用按需复制读取 (issue#14167, pr#7129, Jason Dillaman)
librbd: 删除镜像时禁用镜像复制 (issue#15265, pr#8375, Ricardo Dias)
librbd: 禁止不安全的 rbd_op_threads 值 (issue#15034, pr#8459, Josh Durgin)
librbd: 不忽略自管理快照释放结果 (issue#14170, pr#7043, Jason Dillaman)
librbd: 为池模式自动启用/禁用镜像复制 (issue#15143, pr#8204, Ricardo Dias)
librbd: 确保在关闭父镜像之前完成按需复制读取请求 (pr#6740, Jason Dillaman)
librbd: 确保 librados 回调在销毁前刷新 (issue#14092, pr#7040, Jason Dillaman)
librbd: 克隆期间如果父快照消失则退出 (issue#14118, pr#6968, xie xingguo)
librbd: 针对复制、导出、导入使用 fadvise (Jianpeng Ma)
librbd: 利用对象映射实现的快速差异计算 (Jason Dillaman)
librbd: 修复启用对象映射功能的问题 (issue#13558, pr#6339, xinxin shu)
librbd: 修复快速差异计算的bug (#11553 Jason Dillaman)
librbd: 修复镜像格式检测 (Zhiqiang Wang)
librbd: 修复动态功能更新的内部处理 (pr#7299, Jason Dillaman)
librbd: 修复日志 iohint (pr#6917, Jianpeng Ma)
librbd: 修复已知的测试用例竞争条件失败 (issue#13969, pr#6800, Jason Dillaman)
librbd: 修复锁排序问题 (#11577 Jason Dillaman)
librbd: 修复 merge-diff 处理 >2GB 差异文件的问题 (issue#14030, pr#6889, Yunchuan Wen)
librbd: 修复潜在的内存泄漏 (issue#14332, issue#14333, pr#7174, xie xingguo)
librbd: 修复大于缓存大小的读取 (Lu Shi)
librbd: 修复 snap_exists API 返回代码溢出 (issue#14129, pr#6986, xie xingguo)
librbd: 修复当另一个快照处于活动状态时创建快照的问题 (#11475 Jason Dillaman)
librbd: 修复关闭期间的状态机竞争条件 (pr#7761, Jason Dillaman)
librbd: 修复日志操作测试用例的竞争条件 (pr#6877, Jason Dillaman)
librbd: 修复 diff_iterate 中的 tracepoint 参数 (pr#6892, Yunchuan Wen)
librbd: flatten/copyup 修复 (Jason Dillaman)
librbd: 通过 admin socket 刷新和失效缓存 (issue#2468, pr#6453, Mykola Golub)
librbd: 处理 NOCACHE fadvise 标志 (Jinapeng Ma)
librbd: 处理断开连接时取消注册镜像监视器的问题 (pr#8094, Jason Dillaman)
librbd: 镜像刷新代码路径转换为异步状态机 (pr#6859, Jason Dillaman)
librbd: 包含缺失的 bool 类型头文件 (pr#6798, Mykola Golub)
librbd: 状态机单元测试的初步收集 (pr#6703, Jason Dillaman)
librbd: 集成维护操作的日志功能 (pr#6625, Jason Dillaman)
librbd: 集成 IO 操作的日志支持 (pr#6541, Jason Dillaman)
librbd: 将日志重放与 fsx 测试集成 (pr#7583, Jason Dillaman)
librbd: 用于跟踪排他锁转换的日志框架 (issue#13298, pr#7529, Jason Dillaman)
librbd: 日志相关的锁依赖清理 (pr#6777, Jason Dillaman)
librbd: 日志重放需要支持重新执行维护操作 (issue#14822, pr#7785, Jason Dillaman)
librbd: 日志重放应遵循事件间依赖关系 (pr#7019, Jason Dillaman)
librbd: 日志关闭刷新竞争条件 (issue#14434, pr#7302, Jason Dillaman)
librbd: lockdep, helgrind 验证 (Jason Dillaman, Josh Durgin)
librbd: 元数据过滤器修复 (Haomai Wang)
librbd: 杂项 aio 修复 (#5488 Jason Dillaman)
librbd: 杂项 rbd 修复 (#11478 #11113 #11342 #11380 Jason Dillaman, Zhiqiang Wang)
librbd: 新的 diff_iterate2 API (Jason Dillaman)
librbd: 释放 snap id 时不需要持有 owner_lock (issue#13914, pr#6736, Jason Dillaman)
librbd: 对象映射重建支持 (Jason Dillaman)
librbd: 仅当 AIO 完成队列为空时发送信号 (pr#6729, Jianpeng Ma)
librbd: 仅在持有排他锁时更新镜像标志 (#11791 Jason Dillaman)
librbd: 可选禁用分配提示 (Haomai Wang)
librbd: 可选验证新 RBD 池是否支持快照 (issue#13633, pr#6925, Jason Dillaman)
librbd: 撤销 commit 9b0e359 的部分更改 (issue#13969, pr#6789, Jason Dillaman)
librbd: 错误时性能计数器可能未初始化 (issue#13740, pr#6523, Jason Dillaman)
librbd: perf section name: 使用连字符分隔组件 (issue#13719, pr#6516, Mykola Golub)
librbd: 防止 resize 请求之间的竞争 (#12664 Jason Dillaman)
librbd: 正确处理快照删除 RPC 消息的重放 (issue#14164, pr#7042, Jason Dillaman)
librbd: readahead 修复 (Zhiqiang Wang)
librbd: 读取期间减少到用户缓冲区的内存复制 (pr#7548, Jianpeng Ma)
librbd: 减少常见错误条件日志的冗余 (issue#14234, pr#7114, Jason Dillaman)
librbd: 如果需要,在重放日志操作之前刷新镜像 (issue#14908, pr#7978, Jason Dillaman)
librbd: 从计时器线程中移除已取消的任务 (issue#14476, pr#7329, Douglas Fuller)
librbd: 移除 librbd::async_flatten 中重复的 read_only 测试 (pr#5856, runsisi)
librbd: 移除 open/close 状态机中最后同步的 librados 调用 (pr#7839, Jason Dillaman)
librbd: 重放刷新后的日志操作需要锁定 (pr#8028, Jason Dillaman)
librbd: resize 应该只更新头部的镜像大小 (issue#13674, pr#6447, Jason Dillaman)
librbd: 按 id 打开时检索镜像名称 (pr#7736, Mykola Golub)
librbd: 如果删除 object_map 头对象失败则返回错误 (issue#14098, pr#6958, xie xingguo)
librbd: 从 close 返回结果代码 (#12069 Jason Dillaman)
librbd: 撤销 “librbd: per CephContext 使用 task finisher” (issue#14780, pr#7667, Josh Durgin)
librbd: 发送镜像状态更新通知 (pr#8355, Jason Dillaman)
librbd: 在单 CPU 环境下发现的几个竞争条件 (pr#7653, Jason Dillaman)
librbd: 简化 32 位环境的 IO 方法签名 (pr#6700, Jason Dillaman)
librbd: 修复错误消息和 readahead 计数器的小问题 (issue#14127, pr#6983, xie xingguo)
librbd: 在 id 初始化后启动性能计数器 (issue#13720, pr#6494, Mykola Golub)
librbd: 在镜像中存储元数据,包括配置选项 (Haomai Wang)
librbd: 支持 eventfd 用于 AIO 完成通知 (pr#5465, Haomai Wang)
librbd: 获取镜像元数据时容忍旧 OSD (#11549 Jason Dillaman)
librbd: truncate 不需要将对象标记为存在于对象映射中 (issue#14789, pr#7772, xinxin shu)
librbd: snap remove 状态机中的未初始化状态 (pr#6982, Jason Dillaman)
librbd: 更新镜像池模式和镜像对等处理 (pr#7718, Jason Dillaman)
librbd: 使用异步 librados 通知 (pr#7668, Jason Dillaman)
librbd: 尽可能使用 write_full (Zhiqiang Wang)
log: 不重复向 stderr 输出错误 (issue#14616, pr#7983, Sage Weil)
log: 修复日志轮换导致的堆栈溢出竞争条件 (#12465 Samuel Just)
log: 修复刷新大日志行时的堆栈溢出 (issue#14707, pr#7599, Igor Fedotov)
logrotate.d: 优先使用 service 而非 invoke-rc.d (#11330 Win Hierman, Sage Weil)
log: 以可移植方式进行 segv (issue#14856, pr#7790, Kefu Chai)
log: 使用 delete[] (pr#7904, Sage Weil)
mailmap: 添加 UMCloud 关联 (pr#6820, Jiaying Ren)
mailmap for 10.0.4 (pr#7932, Abhishek Lekshmanan)
mailmap: 更改 Dongmao Zhang 的组织 (pr#7173, Dongmao Zhang)
mailmap: Igor Podoski 关联 (pr#7219, Igor Podoski)
mailmap: Jewel 更新 (pr#6750, Abhishek Lekshmanan)
mailmap: 修改成员信息 (pr#6468, Xiaowei Chen)
mailmap: 修订组织 (pr#6519, Li Wang)
mailmap: Ubuntu Kylin 名称更改为 Kylin Cloud (pr#6532, Loic Dachary)
mailmap: 更新 .organizationmap (pr#6565, chenji-kael)
mailmap 更新 (pr#7210, M Ranga Swami Reddy)
mailmap 更新 (pr#8522, M Ranga Swami Reddy)
mailmap: infernalis 更新 (pr#6495, Yann Dupont)
mailmap: 更新 (pr#6258, M Ranga Swami Reddy)
mailmap: 更新 (pr#6594, chenji-kael)
mailmap 更新 (pr#6992, Loic Dachary)
mailmap 更新 (pr#7189, Loic Dachary)
mailmap 更新 (pr#7528, Yann Dupont)
mailmap 更新 (pr#8256, Loic Dachary)
mailmap: Xie Xingguo 关联 (pr#6409, Loic Dachary)
Makefile-env.am: 为 CEPH_BUILD_VIRTUALENV 设置默认值 (part 2) (pr#8320, Loic Dachary)
makefile: 修复 rbdmap 手册页 (pr#8310, Kefu Chai)
makefile: 从 libclient.la 中移除 libedit (pr#7284, Kefu Chai)
makefiles: 从依赖项中移除 bz2-dev (issue#13981, pr#6939, Piotr Dałek)
man/8/ceph-disk: 修复格式问题 (pr#8003, Sage Weil)
man/8/ceph-disk: 修复格式问题 (pr#8012, Sage Weil)
man: 在 “rados” 手册页中记录 listwatchers 命令 (pr#7021, Kefu Chai)
mdsa: 更多快照修复,主要围绕快照 inode/dentry 跟踪 (pr#7798, Yan, Zheng)
mds: 将 cmapv 添加到 ESessions 默认构造函数初始化列表 (pr#8403, John Coyle)
mds: 为 MDSMap 添加 'damaged' 状态 (John Spray)
mds: 为 perfcounters 添加昵称 (John Spray)
mds: 在 auth caps 中添加 'p' 标志以控制设置布局中的池 (pr#6567, John Spray)
mds: 回复时推进 clientreplay (issue#14357, pr#7216, John Spray)
mds: 允许客户端在打开文件时请求 caps (issue#14360, pr#7952, Yan, Zheng)
mds: 避免在驱逐会话前发出 cap 警告 (John Spray)
mds: 避免陷入 XLOCKDONE (#11254 Yan, Zheng)
mds, client: 为 file_layout_t (以前为 ceph_file_layout) 添加命名空间 (pr#7098, Yan, Zheng, Sage Weil)
mds, client: 修复 handle_conf_change 周围的锁定问题 (issue#14365, issue#14374, pr#7312, John Spray)
mds: 禁用有问题的 rstat 传播到快照父级 (Yan, Zheng)
mds: 不将快照项目添加到布隆过滤器 (Yan, Zheng)
mds: 自杀时不双重关闭计时器 (issue#14697, pr#7616, Greg Farnum)
mds: 通过 asok 公开 frags (John Spray)
mds: 通过 status ASOK 命令公开恢复状态 (issue#14146, pr#7068, Yan, Zheng)
mds: 扩展现有池访问检查以包括特定的 RADOS 命名空间。(pr#8444, Yan, Zheng)
mds: filelock 死锁 (pr#7713, Yan, Zheng)
mds: 修复重新连接期间的客户端功能 (client.XXXX 不响应 mclientcaps(revoke)) (issue#11482, pr#6432, Yan, Zheng)
mds: 修复重启时的客户端 cap/消息重放顺序 (issue#14254, issue#13546, pr#7199, Yan, Zheng)
mds: 修复日志对象中预期的空洞 (#13167 Yan, Zheng)
mds: 修复 file_layout_t 遗留编码问题 (pr#8455, Sage Weil)
mds: 修复 fsmap 解码 (pr#8063, Greg Farnum)
mds: 修复 FSMap 升级与 map 中的守护进程 (pr#8073, John Spray, Greg Farnum)
mds: 修复处理缺失的 mydir dirfrag (#11641 John Spray)
mds: 修复 inode_t::compare() (issue#15038, pr#8014, Yan, Zheng)
mds: 修复大型客户端 id 的整数截断 (Henry Chang)
mds: 修复 shutdown 时的 mydir 副本问题 (#10743 John Spray)
mds: 修复乱序消息 (#11258 Yan, Zheng)
mds: 修复重新加入 (Yan, Zheng)
mds: 修复 scrub_path (pr#6684, John Spray)
mds: 修复在一次 setxattr 中设置整个文件布局 (John Spray)
mds: 修复 setvxattr (a536d114 中损坏) (issue#14029, pr#6941, John Spray)
mds: 修复 shutdown (John Spray)
mds: 修复 shutdown with strays (#10744 John Spray)
mds: 修复 SnapServer 在删除池时崩溃 (John Spray)
mds: 修复快照 bug (Yan, Zheng)
mds: 修复 standby replay 线程创建 (issue#14144, pr#7132, John Spray)
mds: 修复 stray 处理 (John Spray)
mds: 修复 'stripe_count > 1' 情况下的 stray 清除 (issue#15050, pr#8040, Yan, Zheng)
mds: 修复 stray 重集成 (Yan, Zheng)
mds: 修复 suicide beacon (John Spray)
mds: 在 do_open_truncate 中立即刷新 (#11011 John Spray)
mds: 函数参数 'df' 应按引用传递 (pr#7490, Na Xie)
mds: 处理杂项损坏问题 (John Spray)
mds: 实现快照重命名 (pr#5645, xinxin shu)
mds: 改进 dump 方法 (John Spray)
mds: 添加判断以避免访问 NULL 指针的风险 (pr#7358, Kongming Wu)
mds: 许多修复 (Yan, Zheng, John Spray, Greg Farnum)
mds: 许多快照和 stray 修复 (Yan, Zheng)
mds: messages/MOSDOp: 在 assert 中进行类型转换以消除警告 (issue#13625, pr#6414, David Zafman)
mds: 杂项修复 (Jianpeng Ma, Dan van der Ster, Zhang Zhi)
mds: 杂项日志清理和修复 (#10368 John Spray)
mds: 杂项修复改进 (John Spray)
mds: 杂项快照修复 (Zheng Yan)
mds: 杂项快照修复 (Yan, Zheng)
mds: 多文件系统支持 (issue#14952, pr#6953, John Spray, Sage Weil)
mds: 用于会话的新过滤 MDS tell 命令 (pr#6180, John Spray)
mds: 使用 omap 的新 SessionMap 存储 (#10649 John Spray)
mds: 可靠地持久化 completed_requests (#11048 John Spray)
mds: 为 stray dentry/inode 正确设置 STATE_STRAY/STATE_ORPHAN (issue#13777, pr#6553, Yan, Zheng)
mds: 在持久标志后面保护一些不稳定/实验性功能 (pr#8383, Greg Farnum)
mds: 减少内存消耗 (Yan, Zheng)
mds: 修复命令选项 “--hot-standby” (pr#6454, Wei Feng)
mds: 在 blacklist 时重新生成而不是自杀 (John Spray)
mds: ScrubStack 和 “tag path” 命令 (pr#5662, Yan, Zheng, John Spray, Greg Farnum)
mds: 分离 Journaler 中的 safe_pos (#10368 John Spray)
mds/Session: 使用 projected parent 进行 auth path 检查 (issue#13364, pr#6200, Sage Weil)
mds: 快照重命名支持 (#3645 Yan, Zheng)
mds: 在头部对象上存储布局 (#4161 John Spray)
mds: 拆除来自 tell 命令的连接 (issue#14048, pr#6933, John Spray)
mds: 限制清除 stray 操作 (#10390 John Spray)
mds: 容忍时钟向后跳转 (#11053 Yan, Zheng)
mds: 警告客户端未能推进 oldest_client_tid (#10657 Yan, Zheng)
mds: MDSDaemon suicide 时应该等待 messenger (pr#6996, Wei Feng)
messages/MOSDOp: 为 v6 编码清除 reqid inc (issue#15230, pr#8299, Sage Weil)
Minor fixes around data scan in some scenarios (pr#8115, Yan, Zheng)
mirrors: 更改 se.ceph.com 的联系电子邮件地址 (pr#8007, Wido den Hollander)
mirrors: 更新镜像的脚本和文档 (pr#7847, Wido den Hollander)
misc cleanups and fixes (Danny Al-Gaaf)
misc coverity fixes (Danny Al-Gaaf)
misc performance and cleanup (Nathan Cutler, Xinxin Shu)
misc: 创建 shared_ptr 时使用 make_shared (pr#7769, Somnath Roy)
mon: 为最大选举时间添加独立选项 (pr#7245, Sangdi Xu)
mon: 在 MonitorDBStore 上添加缓存 (Kefu Chai)
mon: 添加 'mon_metadata <id>' 命令 (Kefu Chai)
mon: 添加 'node ls …' 命令 (Kefu Chai)
mon: 为 mon 命令添加 NOFORWARD, OBSOLETE, DEPRECATE 标志 (Joao Eduardo Luis)
mon: 添加 osd blacklist clear (pr#6945, John Spray)
mon: 将 PG 计数添加到 'ceph osd df' 输出 (Michal Jarzabek)
mon: 添加 RAW USED 列到 ceph df detail (pr#7087, Ruifeng Yang)
mon: 如果 pg_temp 更新已挂起,则阻止 'ceph osd pg-temp …' (pr#6704, Sage Weil)
mon: 'ceph osd metadata' 可以转储所有 osd (Haomai Wang)
mon: 清理、重组一些 mon 命令 (Joao Eduardo Luis)
mon: 清理 set-quota 错误消息 (pr#7371, Abhishek Lekshmanan)
monclient: 避免时钟偏移时的密钥续订风暴 (issue#12065, pr#8258, Alexey Sheplyakov)
monclient: flush_log (John Spray)
mon: 也压缩完整 epoch (issue#14537, pr#7396, Kefu Chai)
mon: 创建池时考虑池大小 (issue#14509, pr#7359, songbaisen)
mon: 设置池 crush 规则时考虑池大小 (issue#14495, pr#7341, song baisen)
mon: 将日志消息降级到 level 2 (pr#6929, Kongming Wu)
mon: 检测 kv 后端故障 (Sage Weil)
mon: 禁止 >2 层的 tier (#11840 Kefu Chai)
mon: 禁止纠删码池作为 tier (#11650 Samuel Just)
mon: 不停用最后一个 mds (#10862 John Spray)
mon: 不为 split pgs 发送无用的 pg_create 消息 (pr#8247, Sage Weil)
mon: MRemoveSnaps 不需要 OSD W (#13777 John Spray)
mon: 丢弃无用的 rank init assignment (issue#14508, pr#7321, huanwen ren)
mon: 默认启用 'mon osd prime pg temp' (pr#7838, Robert LeBlanc)
mon: 修复 'osd df' 的平均利用率计算 (Mykola Golub)
mon: 修复 %USED 计算 (pr#7881, Adam Kupczyk)
mon: 修复 ceph df pool available 对 0 权重 OSD 的计算 (pr#6660, Chengyuan Li)
mon: 修复 PG 相关 Monitor 文件的编码风格 (pr#6881, Wido den Hollander)
mon: 修复新池的 CRUSH map 测试 (Sage Weil)
mon: 修复与 mondbstore->get() 更改相关的修复 (pr#6564, Piotr Dałek)
mon: 修复 keyring 权限 (issue#14950, pr#7880, Owen Synge)
mon: 修复 preinit 错误路径中的锁定问题 (issue#14473, pr#7353, huanwen ren)
mon: 修复调试时的 log dump 崩溃 (Mykola Golub)
mon: 修复 mds beacon replies (#11590 Kefu Chai)
mon: 修复元数据更新竞争条件 (Mykola Golub)
mon: 修复 min_last_epoch_clean 跟踪 (Kefu Chai)
mon: 修复 monmap 创建时间戳 (pr#7459, duanweijun)
mon: 修复 'pg ls' 排序顺序,状态名称 (#11569 Kefu Chai)
mon: 修复刷新 (#11470 Joao Eduardo Luis)
mon: 修复 osd id 的重用 (删除 osd 时清除 osd 信息) (issue#13988, pr#6900, Loic Dachary, Sage Weil)
mon: 修复 routed_request_tids 泄漏 (pr#6102, Ning Yao)
mon: 修复 config-key 数据同步 (pr#7363, Xiaowei Chen)
mon: 修复监控日志中无法更改订阅级别的问题 (pr#7031, Zhiqiang Wang)
mon: 修复 'osd df' 中的方差计算 (Sage Weil)
mon: 如果多个 PG 陷入 inactive 状态,则进入 ERR 状态 (issue#13923, pr#7253, Wido den Hollander)
mon: 改进 crushtool 调用 (Mykola Golub)
mon: 在新 pg 上将 last_* 时间戳初始化为创建时间 (issue#14952, pr#7980, Sage Weil)
mon: 即使在 standalone 模式下,也正确初始化记录的选举 epoch (issue#13627, pr#6407, huanwen ren)
mon: 使阻塞的操作消息更具可读性 (Jianpeng Ma)
mon: 使时钟偏移检查合理 (issue#14175, pr#7141, Joao Eduardo Luis)
mon: 使 osd get pool 'all' 只返回适用的字段 (#10891 Michal Jarzabek)
mon: mark_down_pgs 与 pg_map 的 osdmap epoch 同步 (pr#8208, Sage Weil)
mon/MDSMonitor: 为 “ceph mds rmfailed” 添加确认 (issue#14379, pr#7248, Yan, Zheng)
mon/MDSMonitor.cc: 在健康指标变化时正确记录 beacon (issue#14684, pr#7757, Yan, Zheng)
mon: 杂项缩放修复 (Sage Weil)
mon: 修改 OSDMonitor.cc 中的 dout 级别 (pr#6928, Yongqiang He)
mon/MonClient: 配置不正确时避免空指针错误 (issue#14405, pr#7276, Bo Cai)
mon/MonClient: 修复关闭竞争条件 (issue#13992, pr#8335, Sage Weil)
mon/monitor: 一些清理 (pr#7520, huanwen ren)
mon: MonmapMonitor: 不向客户端公开未提交的状态 (pr#6854, Joao Eduardo Luis)
mon: 规范化纠删码 profile 以用于存储和比较 (Loic Dachary)
mon: 只向支持的对等体发送 mon 元数据 (Sage Weil)
mon: 可选在 'osd create' 时指定 osd id (Mykola Golub)
mon/OSDMonitor: osdmap laggy 设置间隔的最大限制 (pr#7109, Zengran Zhang)
mon: osd [test-]reweight-by-{pg,utilization} 命令更新 (pr#7890, Dan van der Ster, Sage Weil)
mon: 'osd tree' 修复 (Kefu Chai)
mon: paxos is_recovering calc error (pr#7227, Weijun Duan)
mon: 定期后台 scrub (Joao Eduardo Luis)
mon/PGMap: 在状态报告中分别显示 rd/wr iops (pr#7072, Cilang Zhao)
mon: PGMonitor: acting primary diff with cur_stat, 不应将 pg 设置为 stale (pr#7083, Xiaowei Chen)
mon/PGMonitor: 可靠地标记 PGs 状态 (pr#8089, Sage Weil)
mon: PG Monitor 应报告等待 backfill (issue#12744, pr#7398, Abhishek Lekshmanan)
mon/pgmonitor: 在 get_rule_avail 中使用适当的强制转换 (pr#7705, huanwen ren)
mon: 防止 crush 规则引用的 bucket 被删除 (#11602 Sage Weil)
mon: 防止 pgp_num > pg_num (#12025 Xinxin Shu)
mon: 防止具有快照状态的池用作 tier (#11493 Sage Weil)
mon: CRUSH map 更改时 prime pg_temp (Sage Weil)
mon: 减少 pg health check 的 CPU 和内存管理器压力 (pr#7482, Piotr Dałek)
mon: 优化 check_remove_tier 检查 (#11504 John Spray)
mon: 拒绝大的 max_mds 值 (#12222 John Spray)
mon: 移除 'mds setmap' (issue#15136, pr#8121, Sage Weil)
mon: 移除 remove_legacy_versions() (pr#8324, Kefu Chai)
mon: 移除 'mds rm …' 中多余的 who 参数 (John Spray)
mon: 移除 update_from_paxos 不必要的注释 (pr#8400, Qinghua Jin)
mon: 移除未使用的变量 (issue#15292, pr#8337, Javier M. Mellid)
mon: 撤销 MonitorDBStore 的 WholeStoreIteratorImpl::get (issue#13742, pr#6522, Piotr Dałek)
mon: 当 cephx_verify_authorizer 返回 false 时,不应设置 isvalid = true (issue#13525, pr#6306, Ruifeng Yang)
mon: 在 ceph df detail 命令中显示池配额信息 (issue#14216, pr#7094, song baisen)
mon: MonmapMonitor.cc 中的一些清理 (pr#7418, huanwen ren)
mon: 标准化 Ceph 删除命令 (pr#7939, Dongsheng Yang)
mon: 简化会话处理,修复内存泄漏 (Sage Weil)
mon: 支持按子树级别 (默认为 host) 的 min_down_reporter (pr#6709, Xiaoxi Chen)
mon: 消除对象计数 skew 消息的混淆 (pr#7882, Piotr Dałek)
mon: 关闭时取消注册命令 (pr#7504, huanwen ren)
mon: 升级必须通过 hammer (Sage Weil)
mon: 警告 pg 未 scrub 的情况 (issue#13142, pr#6440, Michal Jarzabek)
mon: 警告虚假缓存 tier 配置 (Jianpeng Ma)
mount.ceph: 内存泄漏 (pr#6905, Qiankun Zheng)
mount.fuse.ceph: 更好地解析 mount 命令传递给 mount.fuse.ceph 的参数 (issue#14735, pr#7607, Florent Bautista)
mrun: 更新 cmake 二进制文件路径 (pr#8447, Casey Bodley)
msg: 为虚拟方法添加 override (pr#6977, Michal Jarzabek)
msg: 为 “random” Messenger 添加线程安全 + 修复随机函数错误用法 (pr#7650, Avner BenHanoch)
msg/async: AsyncConnection: 避免在 cleanup_handler 中进行调试日志记录 (pr#7547, Haomai Wang)
msg/async: AsyncMessenger: 修复几个 bug (pr#7831, Haomai Wang)
msg/async: AsyncMessenger: 修复 valgrind 泄漏 (pr#7725, Haomai Wang)
msg/async: 避免节流时的日志垃圾信息 (issue#15031, pr#8263, Kefu Chai)
msg/async: 一些修复 (pr#7379, Piotr Dałek)
msg/async: 清理死连接和杂项 (pr#7158, Haomai Wang)
msg/async: 不需要时,不计算 msg header crc (pr#7815, Piotr Dałek)
msg/async: 不使用 shared_ptr 管理 EventCallback (pr#7028, Haomai Wang)
msg/async: Event: 修复时钟偏移问题 (pr#7949, Wei Jin)
msg/async: 修复数组边界 (pr#7451, Wei Jin)
msg: async: 修复 perf counter 描述并简化 _send_keepalive_or_ack (pr#8046, xie xingguo)
msg/async: 修复潜在的竞争条件 (pr#7453, Haomai Wang)
msg/async: 修复发送 closed local_connection 消息问题 (pr#7255, Haomai Wang)
msg/async: 让接收者尽快确认消息 (pr#6478, Haomai Wang)
msg/async: 减少消息确认的额外 tcp 包 (pr#7380, Haomai Wang)
msg/async: 移除实验功能 (pr#7820, Haomai Wang)
msg: async: 小清理 (pr#7871, xie xingguo)
msg/async: 更智能的 MSG_MORE (pr#7625, Piotr Dałek)
msg: async: 在指定范围内绑定端口失败后重新开始 (issue#14928, issue#13002, pr#7852, xie xingguo)
msg/async: 支持 async messenger 中的非阻塞连接 (issue#12802, pr#5848, Jianhui Yuan)
msg/async: _try_send trim already sent for outcoming_bl more efficient (pr#7970, Yan Jun)
msg/async: 如果启用 async msg,将因 assertion 而崩溃 (pr#6640, Zhi Zhang)
msg: 绑定 osd addr 时过滤 lo 地址 (pr#7012, Ji Chen)
msgr: 添加 ceph_perf_msgr 工具 (Hoamai Wang)
msgr: async: 修复 seq 处理 (Haomai Wang)
msgr: async: 许多许多修复 (Haomai Wang)
msg: 从 Dispatcher 中移除不需要的 include (pr#6814, Michal Jarzabek)
msg: 移除重复代码 - local_delivery 现在将调用 'enqueue' (pr#7948, Avner BenHanoch)
msg: 移除不需要的 inline (pr#6989, Michal Jarzabek)
msgr: 修复大消息数据内容长度导致溢出 (pr#6809, Jun Huang, Haomai Wang)
msgr: simple: 修复 clear_pipe (#11381 Haomai Wang)
msgr: simple: 修复 connect_seq assert (Haomai Wang)
msgr: xio: fastpath 改进 (Raju Kurunkad)
msgr: xio: 修复 ip 和 nonce (Raju Kurunkad)
msgr: xio: 改进 lane 分配 (Vu Pham)
msgr: xio: 杂项修复 (#10735 Matt Benjamin, Kefu Chai, Danny Al-Gaaf, Raju Kurunkad, Vu Pham, Casey Bodley)
msgr: xio: 与 accellio v1.4 同步 (Vu Pham)
msg: 显著减少连接的最小内存使用量 (pr#7567, Piotr Dałek)
msg/simple: pipe: 签名检查失败时的内存泄漏 (pr#7096, Ruifeng Yang)
msg/simple: 移除不需要的 friend 声明 (pr#6924, Michal Jarzabek)
msg: 单元测试 (Haomai Wang)
msg/xio: 修复编译 (pr#7479, Roi Dayan)
msg/xio: 修复 (pr#7603, Roi Dayan)
mstart: 也为 rgw 启动不同的端口 (pr#8167, Abhishek Lekshmanan)
nfs for rgw (Matt Benjamin, Orit Wasserman) (pr#7634, Yehuda Sadeh, Matt Benjamin)
objectcacher: 杂项 bug 修复 (Jianpeng Ma)
objecter: 避免 Objecter::rwlock 的递归锁定 (pr#7343, Yan, Zheng)
organizationmap: 修改 org mail info. (pr#7240, Xiaowei Chen)
os/bluestore: 一些修复 (pr#8193, Sage Weil)
os/bluestore/BlueFS: 在 reap ioct 之前,它应该等待 io 完成 (pr#8178, Jianpeng Ma)
os/bluestore/BlueStore: 在写入前不要泄漏 trim overlay 数据。(pr#7895, Jianpeng Ma)
os/bluestore: ceph-bluefs-tool 修复 (issue#15261, pr#8292, Venky Shankar)
os/bluestore: 克隆 overlay 数据 (pr#7860, Jianpeng Ma)
os/bluestore: 修复 assert (issue#14436, pr#7293, xie xingguo)
os/bluestore: 修复 SPDK 路径解析中的拼写错误 (pr#7601, Jianjian Huo)
os/bluestore: 修复 bluestore_wal_transaction_t 编码测试 (pr#7342, Kefu Chai)
os/bluestore: 修复 bluestore_wal_transaction_t 编码测试 (pr#7419, Kefu Chai, Brad Hubbard)
os/bluestore: 将新的 onode 插入到 onode LRU 的开头位置 (pr#7492, Jianjian Huo)
os/bluestore/KernelDevice: 强制块大小 (pr#8006, Sage Weil)
os/bluestore: 使 bluestore_sync_transaction = true 可以工作。(pr#7674, Jianpeng Ma)
os/bluestore/NVMEDevice: 使 IO 线程使用 dpdk launch (pr#8160, Haomai Wang)
os/bluestore/NVMEDevice: 重构 probe/attach 代码并支持 zero 命令 (pr#7647, Haomai Wang)
os/bluestore: 改进 BlueFS bdev 管理并添加 perfcounters (issue#15376, pr#8431, Sage Weil)
os/bluestore: bluestore StupidAllocator 中的小修复 (pr#8101, Jianjian Huo)
os/bluestore: 为 Dir 使用 intrusive_ptr (pr#7247, Igor Fedotov)
osd: 在恢复期间推送 raw clone 时添加缓存提示 (pr#7069, Zhiqiang Wang)
osd: 添加配置选项 osd_read_ec_check_for_errors 用于测试 (pr#5865, David Zafman)
osd: 为 tier 操作添加延迟性能计数器 (Xinze Chi)
osd: 添加杂项 perfcounters (Xinze Chi)
osd: 为 usage message 添加缺失的换行符 (pr#7613, Willem Jan Withagen)
osd: 添加 osd op queue latency perfcounter (pr#5793, Haomai Wang)
osd: 为缓存 tier 添加 pin/unpin 支持 (11066) (pr#6326, Zhiqiang Wang)
osd: 添加 'proxy' 缓存模式 (issue#12814, pr#8210, Sage Weil)
osd: 添加 scrub persist/query API (issue#13505, pr#6898, Kefu Chai, Samuel Just)
osd: 在恢复中添加简单的睡眠注入 (Sage Weil)
osd: 添加对每个池 scrub 优先级的支持 (pr#7062, Zhiqiang Wang)
osd: HeartbeatDispatcher 修复和清理 (pr#7550, Kefu Chai)
osd: 允许使用配置修复 history.last_epoch_started (pr#6793, David Zafman)
osd: 允许稀疏读取的 SEEK_HOLE/SEEK_DATA (Zhiqiang Wang)
osd: 自动修复 EC 池 (issue#12754, pr#6196, Guang Yang)
osd: 避免为大多数操作计算 crush mapping (pr#6371, Sage Weil)
osd: 避免在 PG::get/put 中进行调试 std::string 初始化 (pr#7117, Evgeniy Firsov)
osd: 在 FileStore::_check_replay_guard 中避免对 replaying 和 can_checkpoint() 进行双重检查 (pr#6471, Ning Yao)
osd: 避免 ReplicatedBackend 中重复的 op->mark_started (pr#6689, Jacek J. Łakis)
osd: 避免在 pg 元数据中重复 omap set (Sage Weil)
osd: 避免在比较 scrub map 时 FORCE 更新 digest 被 MAYBE 覆盖 (pr#7051, Zhiqiang Wang)
osd: 避免多次 hit set 插入 (Zhiqiang Wang)
osd: 避免 osd_op_thread 因为 osd_scrub_sleep 自杀 (pr#7009, Jianpeng Ma)
osd: 在某些情况下避免 transaction append (Sage Weil)
osd: 如果正在关闭,则退出 _committed_osd_maps (pr#8267, Samuel Just)
osd: blockdevice: 避免隐式类型转换并添加 guard (pr#7460, xie xingguo)
osd: bluefs: 修复奇数页面大小的对齐问题 (pr#7900, Dan Mick)
osd: bluestore: 为虚拟函数添加 'override' (pr#7886, Michal Jarzabek)
osd: bluestore: 允许 _dump_onode 动态接受日志级别 (pr#7995, Jianpeng Ma)
osd: bluestore/blockdevice: 使用 std::mutex 等 (pr#7568, Sage Weil)
osd: bluestore: bluefs: 修复几个小 bug (issue#14344, issue#14343, pr#7200, xie xingguo)
osd: bluestore/BlueFS: 在 mkfs 中更早地初始化 super block_size (pr#7535, Sage Weil)
osd: bluestore: 在没有 libaio 时不包含 (issue#14207, pr#7169, Mykola Golub)
osd: bluestore: 修复 bluestore onode_t attr 泄漏 (pr#7125, Ning Yao)
osd: bluestore: 修复 bluestore_wal_transaction_t 编码测试 (pr#7168, Kefu Chai)
osd: bluestore: 修复检查写入是否落在同一 extent 内 (issue#14954, pr#7892, Jianpeng Ma)
osd: BlueStore: 修复 fsck 和 blockdevice 读取相关问题 (pr#7362, xie xingguo)
osd: BlueStore: 修复空指针访问 (issue#14561, pr#7435, xie xingguo)
osd: bluestore: 修复几个 bug (issue#14259, issue#14353, issue#14260, issue#14261, pr#7122, xie xingguo)
osd: bluestore: 修复空间重新平衡、collection split、buffered reads (pr#7196, Sage Weil)
osd: bluestore: 对于覆盖 extent,在 min_alloc_size 写入时分配新 extent (pr#7996, Jianpeng Ma)
osd: bluestore: 改进 fs-type 验证并整理 (pr#7651, xie xingguo)
osd: bluestore, kstore: 修复 nid overwritten 逻辑 (issue#14407, issue#14433, pr#7283, xie xingguo)
osd: bluestore: 杂项修复 (pr#7658, Jianpeng Ma)
osd: bluestore: 更多修复 (pr#7130, Sage Weil)
osd: BlueStore/NVMEDevice: 修复编译和 fd 泄漏 (pr#7496, xie xingguo)
osd: bluestore: NVMEDevice: 修复错误处理 (pr#7799, xie xingguo)
osd: bluestore: 移除不需要的 includes (pr#7870, Michal Jarzabek)
osd: bluestore: 撤销 NVMEDevice task cstor 和 refresh 接口更改 (pr#7729, Haomai Wang)
osd: bluestore 更新,scrub 修复 (pr#8035, Sage Weil)
osd: bluestore: 为 allocator 使用 btree_map (pr#7269, Igor Fedotov, Sage Weil)
osd: 将 PG 删除分成多次迭代 (#10198 Guang Yang)
osd: 缓存代理写入支持 (Zhiqiang Wang, Samuel Just)
osd: 缓存 tier: 添加 eviction check list size 的配置选项 (pr#6997, Yuan Zhou)
osd: 在新 split 的子 PG 上调用 on_new_interval (issue#13962, pr#6778, Sage Weil)
osd: 如果重新绑定网络失败,则取消故障报告 (pr#6278, Xinze Chi)
osdc: 修复 tick_event 和 shutdown 的竞争条件 (issue#14256, pr#7151, Adam C. Emerson)
osd: 将 mutex 更改为 spinlock 以优化线程上下文切换。(pr#6492, Xiaowei Chen)
osd: 在 do_restart 之前检查 do_shutdown (pr#6547, Xiaoxi Chen)
osd: 在 pre_booting 之前检查 health state (issue#14181, pr#7053, Xiaoxi Chen)
osd: 处理 map 时检查 scrub 状态 (Jianpeng Ma)
osd: 澄清 scrub 结果报告 (pr#6534, Li Wang)
osd/ClassHandler: 仅 dlclose() 未缺失的类 (pr#8354, Kefu Chai)
osd: 清理 CMPXATTR 检查 (pr#5961, Jianpeng Ma)
osd: 清理一些 constness, privateness (Kefu Chai)
osd: 如果 copy-from 失败,清理 temp object (pr#8487, Sage Weil)
osd: 如果 promotion 失败,清理 temp object (Jianpeng Ma)
osd: 停止 pgs 后清除 pg_stat_queue (issue#14212, pr#7091, Sage Weil)
osdc/Objecter: 允许每个池调用 op_cancel_writes (John Spray)
osdc/Objecter: 分配 tid 后 dout log (pr#8202, Xinze Chi)
osdc/Objecter: 修复 tid 分配的窄竞争条件 (issue#14364, pr#7981, Sage Weil)
osdc/Objecter: 在 PGNLS ops 中使用完整的 pgid hash (pr#8378, Sage Weil)
osd: 根据写入的最近程度配置 promotion (Zhiqiang Wang)
osd: 在让 agent 睡眠时考虑 high/low 模式 (issue#14752, pr#7631, Sage Weil)
osd: 将 collection 限制为 meta 和 PGs (normal 和 temp) (Sage Weil)
osd: 正确处理小的 osd_scrub_interval_randomize_ratio (pr#7147, Samuel Just)
osd: 推迟解码 MOSDRepOp/MOSDRepOpReply (pr#6503, Xinze Chi)
osd: 延迟填充内存中的 PG log hashmap (pr#6425, Piotr Dałek)
osd: 默认禁用 filestore_xfs_extsize (issue#14397, pr#7265, Ken Dreyer)
osd: 不在 pg 中保留旧 osdmap 的引用 (issue#13990, pr#7007, Kefu Chai)
osd: 不为用户发起的 scrub 进行随机 deep scrub (pr#6673, David Zafman)
osd: 不发送重复的 MMonGetOSDMap 请求 (Sage Weil, Kefu Chai)
osd: 如果没有必要,不更新 epoch 和 rollback_info 对象属性 (pr#6555, Ning Yao)
osd: 丢弃弃用的 removal pg 类型 (pr#6970, Igor Podoski)
osd: 丢弃 fiemap len=0 逻辑 (pr#7267, Sage Weil)
osd: 从 load_pgs() 中丢弃 interim set (pr#6277, Piotr Dałek)
osd: 使用 pg query 为每个 peer dump 缺失对象数量 (pr#6058, Guang Yang)
osd: 重复清除 peer_missing (pr#8315, Ning Yao)
osd: EIO 注入 (David Zhang)
osd: 消除 txn apend, ECSubWrite copy (Samuel Just)
osd: 为分片工作队列互斥锁启用 perfcounters (pr#6455, Jacek J. Łakis)
osd: 确保新 osdmap 在发布到 pgs 之前提交 (issue#15073, pr#8096, Sage Weil)
osd: erasure-code: 根据 LRU 丢弃条目 (Andreas-Joachim Peters)
osd: erasure-code: 修复 SHEC 浮点 bug (#12936 Loic Dachary)
osd: erasure-code: 更新到 ISA-L 2.14 (Yuan Zhou)
osd: filejournal: 清理 (David Zafman)
osd: FileJournal: _fdump 错误地返回 journal 当前不可读。(issue#13626, pr#6406, xie xingguo)
osd: FileJournal: 修复 create 方法的返回代码 (issue#14134, pr#6988, xie xingguo)
osd: FileJournal: 减少 write_aio_bl 中的锁定范围 (issue#12789, pr#5670, Zhi Zhang)
osd: filejournal: 报告 journal entry count (pr#7643, tianqing)
osd: FileJournal: 支持从 writeq 批量 peak 和 pop (pr#6701, Xinze Chi)
osd: FileStore: 添加一个字段指示 set xattr 时 xattr 只有一个 chunk。(pr#6244, Jianpeng Ma)
osd: FileStore: 添加 O_DSYNC 写入方案 (pr#7752, Somnath Roy)
osd: FileStore: 为 object_map->sync() 添加错误检查 (pr#7281, Chendi Xue)
osd: FileStore: 清理: 移除过时的选项 “filestore_xattr_use_omap” (issue#14356, pr#7217, Vikhyat Umrao)
osd: filestore: 使用 splice 克隆 (Jianpeng Ma)
osd: FileStore: 有条件的收集驱动器元数据 (pr#6956, Somnath Roy)
osd: filestore: FALLOC_FL_PUNCH_HOLE 必须与 FALLOC_FL_KEEP_SIZE 一起使用 (pr#7768, xinxin shu)
osd: filestore: 如果 statfs 遇到 ENOENT 则快速中止 (pr#7703, xie xingguo)
osd: FileStore: 修复 m_disable_wbthrottle 的初始化顺序 (pr#8067, Samuel Just)
osd: filestore: 修复 split vs collection_move_rename 和长对象名称的竞争条件 (issue#14766, pr#8136, Samuel Just)
osd: filestore: 修复递归锁 (Xinxin Shu)
osd: filestore: 修复克隆时错误代码被覆盖 (issue#14817, issue#14827, pr#7711, xie xingguo)
osd: filestore: 修复 mkfs 期间错误情况的结果代码范围错误 (issue#14814, pr#7704, xie xingguo)
osd: filestore: 修复 mount 期间错误情况的结果代码范围错误 (issue#14815, pr#7707, xie xingguo)
osd: FileStore: LFNIndex: 移除冗余的局部变量‘obj’。 (issue#13552, pr#6333, xiexingguo)
osd: FileStore: 修改冒号的格式 (pr#7333, Donghai Xu)
osd: FileStore:: 优化lfn_unlink (pr#6649, Jianpeng Ma)
osd: FileStore: 如果_fgetattrs失败,可能存在内存泄漏 (issue#13597, pr#6377, xie xingguo)
osd: FileStore: 如果读取文件失败,在osd断言之前打印文件名 (pr#7111, Ji Chen)
osd: FileStore: 移除__SWORD_TYPE依赖 (pr#6263, John Coyle)
osd: FileStore: 移除未使用的局部变量‘handle’ (pr#6381, xie xingguo)
osd: filestore: 重构journal和op队列限速 (pr#7767, Samuel Just)
osd: FileStore: 支持多个磁盘上的完成和应用完成器 (pr#6486, Xinze Chi, Haomai Wang)
osd: FileStore: 使用pwritev而不是lseek+writev (pr#7349, Haomai Wang, Tao Chang)
osd: 修复当缺少克隆时错误的scrub结果 (issue#12738, issue#12740, pr#5783, David Zafman)
osd: 修复损坏的平衡/本地化读取处理 (issue#13491, pr#6364, Jason Dillaman)
osd: 修复last_* PG状态时间戳中的bug (pr#6517, Li Wang)
osd: 修复omap操作的bug (pr#8230, Jianpeng Ma)
osd: 修复check_for_full (Henry Chang)
osd: 修复ClassHandler::ClassData::get_filter() (pr#6747, Yan, Zheng)
osd: 修复/清理完整map请求处理 (pr#8446, Sage Weil)
osd: 修复OSD::is_healthy中的调试信息 (pr#6226, Xiaoxi Chen)
osd: 修复make_writeable中的脏核算 (Zhiqiang Wang)
osd: 修复在未正确设置drity_info字段的情况下脏污信息的问题 (pr#8275, xie xingguo)
osd: 修复dump_ops_in_flight竞争条件 (issue#8885, pr#8044, David Zafman)
osd: 修复重复提升丢失操作的bug (Zhiqiang Wang)
osd: 修复当对象不可恢复时无休止的修复 (Jianpeng Ma, Kefu Chai)
osd: 修复handle_pg_create中的epoch检查 (pr#8382, Samuel Just)
osd: 修复op结果代码未检查或设置的几种情况 (issue#13566, pr#6347, xie xingguo)
osd: 修复ms_handle_connect()期间的失败报告处理 (pr#8348, xie xingguo)
osd: 修复FileStore::_destroy_collection错误返回代码 (pr#6612, Ruifeng Yang)
osd: 修复CALL操作的强制提升 (issue#14745, pr#7617, Sage Weil)
osd: 修复fusestore在停止/退出时挂起的问题 (issue#14786, pr#7677, xie xingguo)
osd: 修复hitset对象命名以使用GMT (Kefu Chai)
osd: 修复不准确的计数器并跳过空事务的排队 (pr#7754, xie xingguo)
osd: 修复WBThrottle中不正确的限速 (pr#6713, Zhang Huan)
osd: 修复process_copy_chunk中无效的列表遍历 (pr#7511, Samuel Just)
osd: 修复当flush失败时缺少对象解锁的问题 (issue#14511, pr#7584, Igor Fedotov)
osd: 修复日志信息 (pr#8273, Wei Jin)
osd: 修复杂项内存泄漏 (Sage Weil)
osd: 修复MOSDOp编码 (pr#6174, Sage Weil)
osd: 修复replica_scrub中MOSDRepScrub引用计数器 (pr#6730, Jie Wang)
osd: 修复回填期间负退化状态 (Guang Yang)
osd: 修复空指针访问和竞争条件 (issue#14072, pr#6916, xie xingguo)
osd: 修复osdmap转储黑名单项 (John Spray)
osd: 修复pg_stat_t中‘==’运算符重载 (issue#14921, pr#7842, xie xingguo)
osd: 修复FileStore中peek_queue锁定 (Xinze Chi)
osd: 修复pg复活 (#11429 Samuel Just)
osd: 修复提升与完整缓存层的冲突 (Samuel Just)
osd: 修复heartbeat_need_update的竞争条件 (issue#14387, pr#7739, xie xingguo)
osd: 修复reactivate (当我们已经有superblock时,在mkfs()中检查OSDSuperblock) (issue#13586, pr#6385, Vicente Cheng)
osd: 修复引用计数、罕见竞争条件等 (pr#8254, xie xingguo)
osd: 修复当pg仍在激活时重放重新排队 (#13116 Samuel Just)
osd: 修复maybe_handle_cache_detail()的返回值 (pr#7593, Igor Fedotov)
osd: 修复index()之前的rollback_info_trimmed_to (issue#13965, pr#6801, Samuel Just)
osd: 修复scrub开始hobject (pr#7467, Sage Weil)
osd: 修复scrub stat bugs (Sage Weil, Samuel Just)
osd: 修复缓存层中的快照刷新 (再次) (#11787 Samuel Just)
osd: 修复提升时的快照处理 (#11296 Sam Just)
osd: 修复稀疏读取结果代码检查逻辑 (issue#14151, pr#7016, xie xingguo)
osd: 修复临时清除 (David Zafman)
osd: 修复升级后临时对象移除 (issue#13862, pr#6976, David Zafman)
osd: 修复tick相关问题 (pr#8369, xie xingguo)
osd: 修复琐碎的scrub bug (pr#6533, Li Wang)
osd: 修复两个scrub相关问题 (pr#8462, xie xingguo)
osd: 修复从缓存池删除时 unnecessary object promotion (issue#13894, pr#7537, Igor Fedotov)
osd: 修复wip (l_osd_op_wip) perf计数器并移除repop_map (pr#7077, Xinze Chi)
osd: 修复错误放置的断言和一些清理工作 (pr#6766, xiexingguo, xie xingguo)
osd: 修复find_osd_on_ip()的错误返回类型 (issue#14872, pr#7812, xie xingguo)
osd: 修复localized read逻辑中右括号的错误使用 (pr#6566, Jie Wang)
osd: 强制提升EC无法处理的操作 (Zhiqiang Wang)
osd: ghobject_t: 使用!而不是@作为分隔符 (pr#7595, Sage Weil)
osd: 处理与pg删除竞争的重复pg_create (pr#8033, Sage Weil)
osd: 处理带有重叠条目的日志拆分 (#11358 Samuel Just)
osd: 在unfound calc中忽略不存在的osds (#10976 Mykola Golub)
osd: 改善在具有大内存页的机器上的行为 (Steve Capper)
osd: 改善缓存层代理的温度计算 (pr#4737, MingXin Liu)
osd: 在每个collection/pgid中包含一个临时命名空间 (Sage Weil)
osd: 增加默认最大打开文件数 (Owen Synge)
osd: 在构造时初始化last_recalibrate字段 (pr#8071, xie xingguo)
osd: init started to 0 (issue#13206, pr#6107, Sage Weil)
osd: KeyValueStore: 不要将NULL上下文排队 (pr#6783, Haomai Wang)
osd: KeyValueStore: 修复mkfs的返回代码 (pr#7036, xie xingguo)
osd: KeyValueStore: 修复keyvaluestore_default_strip_size的名称拼写错误 (pr#6375, Zhi Zhang)
osd: KeyValueStore: 修复错误放置的断言 (issue#14176, issue#14178, pr#7047, xie xingguo)
osd: keyvaluestore: 杂项修复 (Varada Kari)
osd: kstore: 修复_txc_finish()中的竞争条件 (pr#7804, Jianjian Huo)
osd: kstore: 延迟分解 (pr#7850, James Liu)
osd: kstore: 几个小的修复 (issue#14351, issue#14352, pr#7213, xie xingguo)
osd: kstore: kstore的小修复 (issue#14204, pr#7095, xie xingguo)
osd: kstore: 与最近的bluestore更新同步kstore (pr#7681, Jianjian Huo)
osd: 低速和高速刷新模式 (Mingxin Liu)
osd: 使后端和块设备代码更通用一些 (pr#6759, Sage Weil)
osd: 使list_missing查询missing_loc.needs_recovery_map (pr#6298, Guang Yang)
osd: 使自杀超时单独可配置 (Samuel Just)
osdmap: 移除未使用的局部变量 (pr#6864, luo kexue)
osdmap: 移除未使用的变量 (pr#8423, Wei Jin)
osd: memstore: 修复test_pageset的Page对齐 (pr#7587, Casey Bodley)
osd: memstore: 修复两个bug (pr#6963, Casey Bodley, Sage Weil)
osd: 将local_t和op_t txn合并为一个 (pr#6439, Xinze Chi)
osd: 将多个setattr调用合并为setattrs调用 (Xinxin Shu)
osd: min_write_recency_for_promote & min_read_recency_for_promote仅适用于分层 (pr#8081, huanwen ren)
osd: 杂项FileStore修复 (issue#14192, issue#14188, issue#14194, issue#14187, issue#14186, pr#7059, xie xingguo)
osd: 杂项修复 (Ning Yao, Kefu Chai, Xinze Chi, Zhiqiang Wang, Jianpeng Ma)
osd: 杂项map利用率优化 (pr#6950, Ning Yao)
osd, mon: 修复退出问题 (pr#7420, Jiaying Ren)
osd,mon: 将leveldb和rocksdb日志记录到ceph日志 (pr#6921, Sage Weil)
osd: 更多修复不正确脏污信息;重新发送重复的scrub-reserve请求的回复 (pr#8291, xie xingguo)
osd: 将MOSDOp和MOSDOpReply的最新解码版本移到前面 (pr#6642, Jacek J. Łakis)
osd: 在OpWQ中移动scrub (Samuel Just)
osd: 在函数中新建和删除ObjectStore::Transaction不是必需的 (pr#6299, Ruifeng Yang)
osd: newstore: 杂项更新 (包括kv和os/fs内容) (pr#6609, Sage Weil)
osd: newstore原型 (Sage Weil)
osd: 记下丢失的克隆数量 (pr#6654, Kefu Chai)
osd: ObjectStore内部API重构 (Sage Weil)
osd: Omap小bug适配 (pr#6669, Jianpeng Ma, David Zafman)
osd: 如果启用object-map,优化克隆写入路径 (pr#6403, xinxin shu)
osd: 优化get_object_context (pr#6305, Jianpeng Ma)
osd: 优化MOSDOp/do_op/handle_op (pr#5211, Jacek J. Lakis)
osd: 优化scrub subset_last_update计算 (pr#6518, Li Wang)
osd: 优化session_handle_reset函数 (issue#14182, pr#7054, songbaisen)
osd: os/chain_xattr: 在linux上使用linux/limits.h获取XATTR_NAME_MAX。 (pr#6343, John Coyle)
osd/OSD.cc: 每个MOSDMap消息完成full_map_request。 (issue#15130, pr#8147, Xiaoxi Chen)
osd/OSD: 修复build_past_intervals_parallel (pr#8215, David Zafman)
osd/OSDMap: 修复summarize_mapping_stats中的拼写错误 (pr#8088, Sage Weil)
osd: OSDMap: 当deepish_copy_from时重置osd_primary_affinity shared_ptr (issue#14686, pr#7553, Xinze Chi)
osd: OSDService: 修复osdmap注释中的拼写错误 (pr#7275, Brad Hubbard)
osd: os: 在FileStore中跳过检查pg_meta对象是否存在 (pr#6870, Ning Yao)
osd: 部分恢复“ReplicatedPG: result code not correctly set in some cases.” (issue#13796, pr#6622, Sage Weil)
osd: peer_features包括self (David Zafman)
osd: PG::activate(): 更优雅地处理意外的cached_removed_snaps (issue#14428, pr#7309, Alexey Sheplyakov)
osd/PG: 在pg查询输出中指示ignore_history_les是否有帮助 (pr#8156, Sage Weil)
osd: PGLog: 清理read_log (pr#7092, Jie Wang)
osd/PGLog: 修复警告 (pr#8057, Sage Weil)
osd: pg_pool_t: 为池选项添加字典 (issue#13077, pr#6081, Mykola Golub)
osd/PG: 为子pg设置epoch_created和parent_split_bits (issue#15426, pr#8552, Kefu Chai)
osd: 池大小更改触发新间隔 (#11771 Samuel Just)
osd: 当只有一个peer丢失时预填充needs_recovery_map (#9558 Guang Yang)
osd: 防止osd_recovery_sleep导致恢复线程自杀 (pr#7065, Jianpeng Ma)
osd: 概率缓存层提升限速 (pr#7465, Sage Weil)
osd: 随机化深度 scrubbing (pr#6550, Dan van der Ster, Herve Rousseau)
osd: 随机化scrub时间 (#10973 Kefu Chai)
osd: recovery, peering fixes (#11687 Samuel Just)
osd: 减少一些结构体的内存消耗 (pr#6475, Piotr Dałek)
osd: 减少coll_t::calc_str()中的字符串使用 (pr#6505, Igor Podoski)
osd: 重构scrub和digest记录 (Sage Weil)
osd: 拒绝在非零偏移处首次写入EC对象 (Jianpeng Ma)
osd: 放松代理读取上的回复顺序 (#11211 Zhiqiang Wang)
osd: scrub中断时释放相关资源 (pr#6744, Jianpeng Ma)
osd: 当OpRequest未注册时释放消息限速 (issue#14248, pr#7148, Samuel Just)
osd: 移除__SWORD_TYPE依赖 (pr#6262, John Coyle)
osd: 移除未使用的OSDMap::set_weightf() (issue#14369, pr#7231, huanwen ren)
osd: 移除up_thru_pending字段,该字段从未使用过 (pr#7991, xie xingguo)
osd: 重新排序PGLog结构中的bool字段 (pr#6279, Piotr Dałek)
osd: 在eversion_t::get_key_name中用更快的实现替换snprintf (pr#7121, Evgeniy Firsov)
osd/ReplicatedPG: 更仔细地调用publish_stats_to_osd() (issue#14962, pr#8039, Greg Farnum)
osd: replicatedpg: 如果在do_pg_op()期间遇到致命错误,则中断循环 (issue#14922, pr#7844, xie xingguo)
osd: ReplicatedPG: 清理未使用的函数 (pr#7211, Xiaowei Chen)
osd/ReplicatedPG: 在应用repops后更改时清除watches (issue#15151, pr#8163, Sage Weil)
osd/ReplicatedPG: 修复promotion recency logic (issue#14320, pr#6702, Sage Weil)
osd: ReplicatedPG: 移除未使用的局部变量 (issue#13575, pr#6360, xiexingguo)
osd/ReplicatedPG::_rollback_to: 更新OMAP标志 (issue#14777, pr#8495, Samuel Just)
osd: repop和lost-unfound大修 (pr#7765, Samuel Just)
osd: 要求firefly特性 (David Zafman)
osd: 在构建新的past_interval时重置primary和up_primary。 (issue#13471, pr#6240, xiexingguo)
osd: 解决启动与NOUP设置+清除竞争 (pr#7483, Sage Weil)
osd: scrub: 如果读取错误,不要赋值 (pr#6568, Li Wang)
osd/ScrubStore: 移除未使用的函数 (pr#8045, Kefu Chai)
osd: 设置初始crush权重时精度更高 (Sage Weil)
osd: 几个小的清理工作 (pr#7055, xie xingguo)
osd: SHEC不再是实验性的
osd: 如果在短时间内翻动次数过多,则关闭 (pr#6708, Xiaoxi Chen)
osd: 跳过带有FADVISE_DONTNEED/NOCACHE的writefull提升 (pr#7010, Jianpeng Ma)
osd: 跳过flush/evict操作的提升 (Zhiqiang Wang)
osd: 略微减小pg_log_entry_t的实际大小 (pr#6690, Piotr Dałek)
osd: memstore的小修复 (issue#14228, issue#14229, issue#14227, pr#7107, xie xingguo)
osd: 条带化小xattrs以适应XFS的255字节内联限制 (Sage Weil, Ning Yao)
osd: 支持池级别recovery_priority和recovery_op_priority (pr#5953, Guang Yang)
osd: 在syncfs时同步object_map (Samuel Just)
osd: 如果op是rw,则获取排他锁 (Samuel Just)
osd: 节流evict操作 (Yunchuan Wen)
osd: 尝试在刷新完成后驱逐 (pr#5630, Zhiqiang Wang)
osd: 升级必须经过hammer (Sage Weil)
osd: 使用临时对象进行恢复 (Sage Weil)
osd: 使用原子操作生成ceph_tid (pr#7017, Evgeniy Firsov)
osd: 使用blkid收集分区信息 (Joseph Handzik)
osd: 在object_stat_sum_t.is_zero()中使用优化的is_zero (pr#7203, Piotr Dałek)
osd: 引用PG时使用pg id(不带分片) (pr#6236, Guang Yang)
osd: 使用SEEK_HOLE / SEEK_DATA进行稀疏复制 (Xinxin Shu)
osd: utime_t, eversion_t, osd_stat_sum_t编码优化 (pr#6902, Xinze Chi)
osd: WBThrottle清理工作 (Jianpeng Ma)
osd: WeightedPriorityQueue: 移至侵入式容器 (pr#7654, Robert LeBlanc)
osd: write file journal optimization (pr#6484, Xinze Chi)
osd: 在干净关闭时写入日志头 (Xinze Chi)
os/filestore: 扩大getxattr缓冲区大小 (Jianpeng Ma)
os/filestore/FileJournal: 通过config option设置块大小 (pr#7628, Sage Weil)
os/filestore: 修复_zero中的punch hole用法 (pr#8050, Sage Weil)
os/filestore: 修复destroy_collection的结果处理逻辑 (pr#7721, xie xingguo)
os/filestore: 强制lfn属性原子写入,重构名称长度限制 (pr#8496, Samuel Just)
os/filestore: 要求完整对象读取的offset == length == 0;添加测试 (pr#7957, Jianpeng Ma)
os/fs: 修复io_getevents参数 (pr#7355, Jingkai Yuan)
os/fusestore: 添加错误处理 (pr#7395, xie xingguo)
os/keyvaluestore: 杀死KeyValueStore (pr#7320, Haomai Wang)
os/kstore: 将新的onode插入onode LRU的前面位置 (pr#7505, xie xingguo)
os/ObjectStore: 为ObjectStore::Transaction添加自定义移动操作 (pr#7303, Casey Bodley)
os/ObjectStore: 添加noexcept以确保使用移动构造函数 (pr#8421, Kefu Chai)
os/ObjectStore: 修复split dest_cid的_update_op (pr#8364, Sage Weil)
os/ObjectStore: 实现更高效的get_encoded_bytes() (pr#7775, Piotr Dałek)
os/ObjectStore: 使设备uuid探测输出更友好 (pr#8418, Sage Weil)
os/ObjectStore: transaction append中的try_move_rename并为store_test添加覆盖率 (issue#15205, pr#8359, Samuel Just)
packaging: 添加python devel包的构建依赖 (pr#7205, Josh Durgin)
packaging: 使infernalis -> jewel升级工作 (issue#15047, pr#8034, Nathan Cutler)
packaging: 将cephfs修复工具移至ceph-common (issue#15145, pr#8133, Boris Ranto, Ken Dreyer)
PG: pg down state被osd.x阻止,丢失osd.x无法解决peering卡住 (issue#13531, pr#6317, Xiaowei Chen)
pybind: 为Manila和类似框架添加ceph_volume_client接口 (pr#6205, John Spray)
pybind: 为libcephfs python绑定添加flock (pr#7902, John Spray)
pybind/cephfs: 添加symlink及其单元测试 (pr#6323, Shang Ding)
pybind: 在conf_parse_argv()中正确解码空字符串 (pr#6711, Josh Durgin)
pybind: 确保传递正确的python标志 (pr#7663, James Page)
pybind: 修复构建失败,移除方法中多余的分号 (issue#14371, pr#7235, Abhishek Lekshmanan)
pybind: 无论结果代码如何,都将RBD镜像标记为已关闭 (pr#8005, Jason Dillaman)
pybind: 实现rados_ioctx_snapshot_rollback (pr#6878, Florent Manens)
pybind/Makefile.am: 防止创建CYTHON_BUILD_DIR的竞争条件 (issue#15276, pr#8356, Dan Mick)
pybind: 将cephfs移至Cython (pr#7745, John Spray, Mehdi Abaakouk)
pybind: pep8清理工作 (Danny Al-Gaaf)
pybind: 将rbd绑定移植到Cython (issue#13115, pr#6768, Hector Martin)
pybind/rados: 修复aio中的对象生命周期问题和其他bug (pr#7778, Hector Martin)
pybind/rados: python3修复 (pr#8331, Mehdi Abaakouk)
pybind/rados: 使用__dealloc__因为__del__被cython忽略 (pr#7692, Mehdi Abaakouk)
pybind: 移除迭代器上的next() (pr#7706, Mehdi Abaakouk)
pybind: 将rbd的__del__替换为__dealloc__ (pr#7708, Josh Durgin)
pybind: 支持ioctx:exec (pr#6795, Noah Watkins)
pybind/test_rbd: 修复test_create_defaults (issue#14279, pr#7155, Josh Durgin)
pybind: 使用rados install-exec规则的正确子目录 (pr#7684, Josh Durgin)
pycephfs: 绑定的大量修复 (Haomai Wang)
python binding of librados with cython (pr#7621, Mehdi Abaakouk)
python: 使用pip而不是python setup.py (pr#7605, Loic Dachary)
qa: 添加工作单元运行ceph_test_rbd_mirror (pr#8221, Josh Durgin)
qa: 在RHEL/CentOS上禁用rbd/qemu-iotests测试用例055librbd: journal replay should honor inter-event dependencies (issue#14385, pr#7272, Jason Dillaman)
qa: erasure-code基准测试插件选择 (pr#6685, Loic Dachary)
qa: 修复filelock_interrupt.py测试 (Yan, Zheng)
qa: 改进ceph-disk测试 (Loic Dachary)
qa: 改进docker构建层 (Loic Dachary)
qa/krbd: Expunge generic/247 (pr#6831, Douglas Fuller)
qa: run-make-check.sh脚本 (Loic Dachary)
qa: 更新rest测试cephfs调用 (issue#15309, pr#8372, John Spray)
qa: 更新rest测试cephfs调用 (part 2) (issue#15309, pr#8393, John Spray)
qa/workunits/cephtool/test.sh: /tmp/obj1上的假阳性失败。 (pr#6837, Robin H. Johnson)
qa/workunits/cephtool/test.sh: 没有./ (pr#6748, Sage Weil)
qa/workunits/cephtool/test.sh: 在ceph_watch_start()中等待更长时间 (issue#14910, pr#7861, Kefu Chai)
qa/workunits: merge_diff不应尝试使用条带化 (issue#14165, pr#7041, Jason Dillaman)
qa/workunits/rados/test.sh: 也捕获stderr (pr#8004, Sage Weil)
qa/workunits/rados/test.sh: 测试tmap_migrate (pr#8114, Sage Weil)
qa/workunits/rbd: 在读取标志测试期间不使用对象map (pr#8104, Jason Dillaman)
qa/workunits/rbd: 新的在线维护操作测试 (pr#8216, Jason Dillaman)
qa/workunits/rbd: rbd-nbd测试应使用sudo进行map/unmap操作 (issue#14221, pr#7101, Jason Dillaman)
qa/workunits/rbd: 使用POSIX函数定义 (issue#15104, pr#8068, Nathan Cutler)
qa/workunits/rest/test.py: 为‘mds setmap’添加确认 (issue#14606, pr#7982, Sage Weil)
qa/workunits/rest/test.py: 不使用newfs (pr#8191, Sage Weil)
qa/workunits/snaps: 将快照测试移至fs子目录 (pr#6496, Yan, Zheng)
rados: 为bufferlist类型添加ceph::命名空间 (pr#8059, Noah Watkins)
rados: 添加--striper选项以使用libradosstriper (#10759 Sebastien Ponce)
rados: bench: 添加--no-verify选项以提高性能 (Piotr Dalek)
rados: bench: 修复off-by-one以避免写入超过object_size (pr#6677, Tao Chang)
rados bench: 杂项修复 (Dmitry Yatsushkevich)
rados: 修复write bench的bug (pr#7851, James Liu)
rados: 修复池移除失败时的错误消息 (Wido den Hollander)
radosgw-admin: 添加‘bucket check’功能以修复桶索引 (Yehuda Sadeh)
radosgw-admin: 允许 (pr#8529, Orit Wasserman)
radosgw-admin: 检查参数的合法性 (issue#13018, pr#5879, Qiankun Zheng)
radosgw-admin: 为--secret添加--secret-key别名 (issue#5821, pr#5335, Yuan Zhou)
radosgw-admin: 修复‘realm pull’ (pr#8404, Casey Bodley)
radosgw-admin: 修复subuser modify输出 (#12286 Guce)
radosgw-admin: metadata list user应该在user pool为空时返回空列表 (issue#13596, pr#6465, Orit Wasserman)
radosgw-admin: ‘period commit’提供用户可读的错误消息 (pr#8264, Casey Bodley)
rados: 正确处理--snapid参数 (Abhishek Lekshmanan)
rados: 实现rm --force选项以在满时强制移除 (pr#6202, Xiaowei Chen)
rados: 改进bench缓冲区处理,性能 (Piotr Dalek)
rados: 杂项bench修复 (Dmitry Yatsushkevich)
rados: write benchmark的新选项 (pr#6340, Joaquim Rocha)
rados: 新的池导入实现 (John Spray)
rados: 在CLI中将errno转换为字符串 (#10877 Kefu Chai)
rbd: 接受map options配置选项 (Ilya Dryomov)
rbd: 接受--user,拒绝-i命令行选项 (pr#6590, Ilya Dryomov)
rbd: 添加磁盘使用工具 (#7746 Jason Dillaman)
rbd: 对条带化参数进行额外验证 (pr#6914, Na Xie)
rbd: 为重构的CLI添加缺少的命令别名 (issue#13806, pr#6606, Jason Dillaman)
rbd: 添加--object-size选项,弃用--order (issue#12112, pr#6830, Vikhyat Umrao)
rbd: 为rbd admin socket命令添加池名称以消除歧义 (pr#6904, wuxiangwei)
rbd: 添加RBD池镜像配置API + CLI (pr#6129, Jason Dillaman)
rbd: 添加对镜像提升/降级/重新同步的支持 (pr#8138, Jason Dillaman)
rbd: 允许librados修剪命令行配置覆盖 (issue#15250, pr#8282, Jason Dillaman)
rbd: 允许按spec unmapping (Ilya Dryomov)
rbd: cli: 修复--io-pattern的arg解析 (Dmitry Yatsushkevich)
rbd: 克隆操作应默认为镜像格式2 (pr#8119, Jason Dillaman)
rbd: 纠正merge-diff的输出字符串 (pr#7046, Kongming Wu)
rbd: 弃用镜像格式1 (pr#7841, Jason Dillaman)
rbd: 弃用--new-format选项 (Jason Dillman)
rbd: 动态生成的bash补全 (issue#13494, pr#6316, Jason Dillaman)
rbd: 修复“--without-rbd”构建 (issue#14058, pr#6899, Piotr Dałek)
rbd: 修复克隆问题 (issue#13553, pr#6334, xinxin shu)
rbd: 修复错误消息 (#2862 Rajesh Nambiar)
rbd: 修复重构的CLI和相关测试 (pr#6738, Ilya Dryomov)
rbd: 修复init-rbdmap CMDPARAMS (issue#13214, pr#6109, Sage Weil)
rbd: 修复链接问题 (Jason Dillaman)
rbd: 修复静态初始化顺序问题 (pr#6978, Mykola Golub)
rbd-fuse: 镜像名称不能包含快照名称 (pr#7044, Yongqiang He)
rbd-fuse: 实现mv操作 (pr#6938, wuxiangwei)
rbd: 改进CLI参数解析、用法 (Ilya Dryomov)
rbd: journal: 通过conf, cli, api配置以及一些修复 (pr#6665, Mykola Golub)
rbd: journal reset应该禁用/重新启用journaling功能 (issue#15097, pr#8490, Jason Dillaman)
rbd: 使配置更改实际应用 (pr#6520, Mykola Golub)
rbdmap: 添加manpage (issue#15212, pr#8224, Nathan Cutler)
rbdmap: systemd支持 (issue#13374, pr#6479, Boris Ranto)
rbd: merge_diff测试应使用新的--object-size参数而不是--order (issue#14106, pr#6972, Na Xie, Jason Dillaman)
rbd-mirror: asok命令获取Mirror和Replayer级别的状态和刷新 (pr#8235, Mykola Golub)
rbd-mirror: 启用/禁用池镜像应更新镜像目录 (issue#15217, pr#8261, Ricardo Dias)
rbd-mirror: 修复镜像重放测试失败 (pr#8158, Jason Dillaman)
rbd-mirror: 修复由于主循环中等待30秒导致的长时间终止 (pr#8185, Mykola Golub)
rbd-mirror: 修复迭代器缺少增量 (pr#8352, runsisi)
rbd-mirror: ImageReplayer异步启动/停止 (pr#7944, Mykola Golub)
rbd-mirror: ImageReplayer改进 (pr#7759, Mykola Golub)
rbd-mirror: 实现ImageReplayer (pr#7614, Mykola Golub)
rbd-mirror: 初始故障转移/故障恢复支持 (pr#8287, Jason Dillaman)
rbd-mirror: 与镜像同步状态机集成 (pr#8079, Jason Dillaman)
rbd-mirror: 使远程上下文尊重env和argv配置参数 (pr#8182, Mykola Golub)
rbd-mirror: 对初始骨架实现的小修复 (pr#7958, Mykola Golub)
rbd-mirror: 当不在镜像模式时,防止启用/禁用镜像的镜像 (issue#15267, pr#8332, Ricardo Dias)
rbd-mirror: 远程到本地集群镜像同步 (pr#7979, Jason Dillaman)
rbd-mirror: 将fsid切换为mirror uuid (issue#15238, pr#8280, Ricardo Dias)
rbd-mirror: 在asok命令中使用池/镜像名称 (pr#8159, Mykola Golub)
rbd-mirror: 使用镜像目录检测候选镜像 (issue#15142, pr#8162, Ricardo Dias)
rbd-mirror: 解决lockdep单例交错的变通方法 (pr#8476, Jason Dillaman)
rbd: 当指定stripingv2功能时,必须同时指定stripe-unit和stripe-count (pr#7026, Donghai Xu)
rbd-nbd: 添加版权 (pr#7166, Li Wang)
rbd-nbd: 修复返回代码处理 (pr#7215, Mykola Golub)
rbd-nbd: RBD的网络块设备 (NBD) 支持 (pr#6657, Yunchuan Wen, Li Wang)
rbd-nbd: 日志记录和forking的小改进 (pr#7127, Mykola Golub)
rbd: 错误时输出格式化程序可能未关闭 (issue#13711, pr#6706, xie xingguo)
rbd: rbdmap改进 (pr#6445, Boris Ranto)
rbd: rbd order将在配置选项中设置为0时放置在22 (issue#14139, issue#14047, pr#6886, huanwen ren)
rbd: rbd-replay-prep和rbd-replay改进 (Jason Dillaman)
rbd: 识别queue_depth内核选项 (Ilya Dryomov)
rbd: 重构cli命令处理 (pr#5987, Jason Dillaman)
rbd/run_cli_tests.sh: 反映测试失败 (issue#14825, pr#7781, Zack Cerza)
rbd: stripe unit/count从配置设置不正确 (pr#6593, Mykola Golub)
rbd: 条带化参数应支持64位整数 (pr#6942, Na Xie)
rbd: 支持启用/禁用特定镜像的镜像功能 (issue#13296, pr#8056, Ricardo Dias)
rbd: 支持CLI的G和T单位 (Abhishek Lekshmanan)
rbd: 支持负布尔命令行选项 (issue#13784, pr#6607, Jason Dillaman)
rbd: 修复rbd map + cephx_sign_messages选项 (pr#6583, Ilya Dryomov)
rbd: 更新默认镜像功能 (pr#7846, Jason Dillaman)
rbd: 更新rbd man page (Ilya Dryomov)
rbd: 更新xfstests测试 (Douglas Fuller)
rbd: 未指定时使用配置中的默认order (pr#6965, Yunchuan Wen)
rbd: 在帮助中使用image-spec和snap-spec (Vikhyat Umrao, Ilya Dryomov)
release-notes: v0.94.4发行说明草稿 (pr#5907, Loic Dachary)
release-notes: v0.94.4发行说明草稿 (pr#6195, Loic Dachary)
release-notes: v0.94.4发行说明草稿 (pr#6238, Loic Dachary)
release-notes: v0.94.6发行说明草稿 (issue#13356, pr#7689, Abhishek Varshney, Loic Dachary)
release-notes: v10.0.3发行说明草稿 (pr#7592, Loic Dachary)
release-notes: v10.0.4发行说明草稿 (pr#7966, Loic Dachary)
release-notes: v9.2.1发行说明草稿 (issue#13750, pr#7694, Abhishek Varshney)
releases: 哪里合并了什么,什么时候合并的? (pr#8358, Loic Dachary)
rest-bench: 杂项修复 (Shawn Chen)
rest-bench: 支持https (#3968 Yuan Zhou)
rgw: 仅在第一次响应请求时接受数据 (pr#8084, sunspot)
rgw: 在admin接口中添加更多帮助选项 (pr#8410, Abhishek Lekshmanan)
rgw: 添加一个方法来在移除子用户时清除所有关联的key (issue#12890, pr#6002, Sangdi Xu)
rgw: 添加缺少的cap类型 (pr#6774, Yehuda Sadeh)
rgw: 在分配用户cap时添加对type字段的检查 (pr#6051, Kongming Wu)
rgw: 添加桶请求付费功能使用情况统计集成 (issue#13834, pr#6656, Javier M. Mellid)
rgw: 为TEMP_FAILURE_RETRY添加compat头文件 (pr#6294, John Coyle)
rgw: 添加默认配额配置 (pr#6400, Daniel Gryniewicz)
rgw: 添加生命周期功能 (pr#6331, Ji Chen)
rgw: 添加最大分段上传部分 (#12146 Abshishek Dixit)
rgw: 为admin op API添加缺少的错误代码 (pr#7037, Dunrong Huang)
rgw: 为Swift容器详细信息添加缺少的标头 (#10666 Ahmad Faheem, Dmytro Iurchenko)
rgw: 为account GET添加stats到标头 (#10684 Yuan Zhou)
rgw: 添加radosgw-admin sync status命令,提供特定区域同步过程的人类可读状态 (pr#8030, Yehuda Sadeh)
rgw: 添加对Keystone admin token缓存的支持。 (pr#7630, Radoslaw Zarzynski)
rgw: 添加对Swift帐户GET的“end_marker”参数支持。 (issue#10682, pr#4216, Radoslaw Zarzynski)
rgw: 添加对获取Swift DLO的支持,无需清单处理 (pr#6206, Radoslaw Zarzynski)
rgw: 添加对Swift容器PUT期间元数据上传的支持。 (pr#8002, Radoslaw Zarzynski)
rgw: 添加对Swift API的静态大对象支持 (issue#12886, issue#13452, pr#6643, Yehuda Sadeh, Radoslaw Zarzynski)
rgw: 添加对Swift API的系统请求支持 (pr#7666, Radoslaw Zarzynski)
rgw: 为响应添加Trasnaction-Id (Abhishek Dixit)
rgw: 为Swift容器添加X-Timestamp (#10938 Radoslaw Zarzynski)
rgw: 为rgw-admin help添加zone delete (pr#8184, Abhishek Lekshmanan)
rgw: 复制操作中桶不存在时调整错误代码 (issue#14975, pr#7916, Yehuda Sadeh)
rgw: 调整request_uri以支持http请求的absoluteURI (issue#12917, pr#7675, Wenjun Huang)
rgw: 用于检索使用情况信息的admin api (Ji Chen) (pr#8031, Yehuda Sadeh, Ji Chen)
rgw_admin: orphans finish segfaults (pr#6652, Igor Fedotov)
rgw-admin: 移除未使用的迭代器并修复错误消息 (pr#8507, Karol Mroz)
rgw_admin: 移除未使用的parent_period参数 (pr#8411, Abhishek Lekshmanan)
rgw: 允许Keystone情况下的隐式租户 (pr#8139, Pete Zaitcev)
rgw: 允许使用自签名证书进行Keystone身份验证 (issue#14853, issue#13422, pr#7777, Abhishek Lekshmanan)
rgw: 总是检查token是否过期 (#11367 Anton Aksola, Riku Lehto)
rgw: 近似AmazonS3 HostId错误字段。 (pr#7444, Robin H. Johnson)
rgw: aws4 subdomain calling bugfix (issue#15369, pr#8472, Javier M. Mellid)
rgw: bucket link现在设置bucket.instance acl (bug fix) (issue#11076, pr#8037, Zengran Zhang)
rgw: 桶请求付费支持 (issue#13427, pr#6214, Javier M. Mellid)
rgw: RadosGW和其他地方mtime异常的Bug修复 (pr#7328, Adam C. Emerson, Casey Bodley)
rgw: 与构建相关的修复 (pr#8076, Yehuda Sadeh, Matt Benjamin)
rgw: 仅在必要时在RGWPutObj_ObjStore中计算有效负载哈希。 (pr#7869, Radoslaw Zarzynski)
[rgw] 在RGWFileHandle::write中检查返回代码 (pr#7875, Brad Hubbard)
rgw: 调用fe->run()时检查返回值 (issue#14585, pr#7457, wei qiaomiao)
rgw: 澄清尝试创建已存在用户时的错误消息 (pr#5938, Zeqiang Zhuang)
rgw: 清理注释和消息 (pr#7633, Pete Zaitcev)
rgw: content length (issue#13582, pr#6975, Yehuda Sadeh)
rgw: 用于修复损坏分段对象的转换工具 (#12079 Yehuda Sadeh)
rgw: 在移除时将普通对象转换为版本化对象(带有空版本) (issue#15243, pr#8268, Yehuda Sadeh)
rgw: 删除默认区域 (pr#7005, YankunLi)
rgw: 记录池和对象的布局 (Pete Zaitcev)
rgw: 使用带有错误参数的admin op API时,不要中止radosgw服务器 (issue#14190, issue#14191, pr#7063, Dunrong Huang)
rgw: 不要用引号括起桶标头 (#11860 Wido den Hollander)
rgw: 不要为HEAD请求预取数据 (Guang Yang)
rgw: 复制对象时不要保留ACL (#12370 Yehuda Sadeh)
rgw: 在“304 Not Modified”响应上不要发送Content-Type (issue#15119, pr#8253, Wido den Hollander)
rgw: 如果长度为0,不要设置content-type (#11091 Orit Wasserman)
rgw: 设置ACL时不要覆盖桶/对象所有者 (#10978 Yehuda Sadeh)
rgw: 对于命名空间对象列表,不要使用end_marker (#11437 Yehuda Sadeh)
rgw: 如果配置了frontend,不要使用rgw_socket_path (#11160 Yehuda Sadeh)
rgw: 对于metadata api path entry,不要使用s->bucket (issue#14549, pr#7408, Yehuda Sadeh)
rgw: 删除调试消息 (pr#7280, Pete Zaitcev)
rgw: 启动后删除rgw/civetweb权限 (issue#13600, pr#8019, Karol Mroz)
rgw: 从rgw_admin.cc中删除未使用的usage_exit (pr#7632, Pete Zaitcev)
rgw: 在Swift cont/obj的POST上强制执行Content-Length (#10661 Radoslaw Zarzynski)
rgw: 如果前端没有发送所有数据,则报错 (#11851 Yehuda Sadeh)
rgw: 通过admin socket公开不健康worker的数量 (Guang Yang)
rgw: 扩展rgw_extended_http_attrs以影响Swift帐户和容器 (pr#5969, Radoslaw Zarzynski)
rgw: 如果分段上传未指定部分,则出错 (#11435 Yehuda Sadeh)
rgw: fcgi应该包含acconfig (pr#7760, Abhishek Lekshmanan)
rgw_file: 在新对象上设置owner uid, gid和Unix mode (pr#8321, Matt Benjamin)
rgw: 修复明显的语法错误 (pr#6888, Pavan Rallabhandi)
rgw: 修复复制对象属性的赋值 (#11563 Yehuda Sadeh)
rgw: 修复错误消息中的拼写错误 (pr#8434, Abhishek Lekshmanan)
rgw: 修复init-radosgw中的拼写错误 (pr#6817, Zhi Zhang)
rgw: 修复容器列表中的损坏统计信息 (#11285 Radoslaw Zarzynski)
rgw: 修复域/子域拆分中的bug (Robin H. Johnson)
rgw: 修复Content-Type标头的大小写 (Robin H. Johnson)
rgw: 修复civetweb最大线程数 (#10243 Yehuda Sadeh)
rgw: 修复编译警告 (pr#7160, Yehuda Sadeh)
rgw: 修复编译错误 (pr#8394, xie xingguo)
rgw: 修复Connection: 标头处理 (#12298 Wido den Hollander)
rgw: 修复复制元数据,支持swift的X-Copied-From (#10663 Radoslaw Zarzynski)
rgw: 修复数据损坏竞争条件 (#11749 Wuxingyi)
rgw: 修复Swift DLO GET上X-Object-Manifest的解码 (Radslow Rzarzynski)
rgw: 修复per-period元数据日志 (pr#7827, Casey Bodley)
rgw: 修复Swift帐户GET中limit == 0时的问题 (#10683 Radoslaw Zarzynski)
rgw: 修复Swift容器上空元数据项的处理 (#11088 Radoslaw Zarzynski)
rgw: 修复获取用户配额时的JSON响应 (#12117 Wuxingyi)
rgw: 修复以_开头的对象的locator (#11442 Yehuda Sadeh)
rgw: 修复lockdep假阳性 (pr#8284, Yehuda Sadeh)
rgw: 修复日志轮换 (Wuxingyi)
rgw: 修复mdlog (pr#8183, Orit Wasserman)
rgw: 修复重试路径中的分段上传 (#11604 Yehuda Sadeh)
rgw: 修复无法显示对象名称不包含...的对象 (issue#12963, pr#5738, Weijun Duan)
rgw: 修复openssl链接 (pr#6513, Yehuda Sadeh)
rgw: 修复rgw_admin和rgw_tools中的部分读取问题 (pr#6761, Jiaying Ren)
rgw: 修复删除以双下划线开头的对象的问题 (issue#15318, pr#8488, Orit Wasserman)
rgw: 修复POST上的配额强制执行 (#11323 Sergey Arkhipov)
rgw: 修复非Debian系统上的reload。 (pr#6482, Hervé Rousseau)
rgw: 修复reset_loc (#11974 Yehuda Sadeh)
rgw: 修复删除过期对象的响应 (issue#13469, pr#6228, Yuan Zhou)
rgw: 修复缺少上传时的返回代码 (#11436 Yehuda Sadeh)
rgw: 修复带有租户的子用户 (#7618 Pete Zaitcev)
rgw: 修复swift API返回不正确的帐户元数据 (issue#13140, pr#6047, Sangdi Xu)
rgw: 修复sysvinit脚本
rgw: 修复带有多个实例的sysvinit脚本 (Sage Weil, Pavan Rallabhandi)
rgw: 修复构建失败 (pr#6927, Kefu Chai)
rgw: 修复RGWHTTPClient::process错误消息中的拼写错误 (pr#6424, Brad Hubbard)
rgw: 修复parse()返回值的错误检查 (pr#6797, Dunrong Huang)
rgw: 修复S3桶POST期间错误的etag计算。 (issue#11241, pr#6030, Radoslaw Zarzynski)
rgw: 修复Swift帐户列表期间limit=0的错误处理。 (issue#14903, pr#7821, Radoslaw Zarzynski)
rgw: 为swift bucket stats请求强制执行content_type (#12095 Orit Wasserman)
rgw: 对没有body的响应强制执行content type标头 (#11438 Orit Wasserman)
rgw: 为civetweb生成Date标头 (#10873 Radoslaw Zarzynski)
rgw: 设置attrs时生成新的对象标签 (#11256 Yehuda Sadeh)
rgw: highres时间戳 (pr#8108, Yehuda Sadeh, Adam C. Emerson, Matt Benjamin)
rgw: 改进content-length env var处理 (#11419 Robin H. Johnson)
rgw: 改进swift帐户元数据支持 (Radoslaw Zarzynski)
rgw: 改进S3/Keystone集成中的错误处理 (pr#7597, Radoslaw Zarzynski)
rgw: 改进expirer中已移除桶的处理 (Radoslaw Rzarzynski)
rgw: 增加RGWObjManifest行的详细程度 (pr#7285, magicrobotmonkey)
rgw: indexless (pr#7786, Yehuda Sadeh)
rgw: 在刷新缓存数据之前为第一个块发出aio (#11322 Guang Yang)
rgw: Jewel nfs fixes 3 (pr#8460, Matt Benjamin)
rgw: keystone v3 (pr#7719, Mark Barnes, Radoslaw Zarzynski)
rgw: ldap修复 (pr#8168, Matt Benjamin)
rgw_ldap: 使ldap.h包含有条件 (pr#8500, Matt Benjamin)
rgw: ldap (Matt Benjamin) (pr#7985, Matt Benjamin)
rgw: 让radosgw-admin bucket stats返回标准的json (pr#7029, Ruifeng Yang)
rgw: 链接系统openssl(而不是在运行时dlopen) (pr#6419, Sage Weil)
rgw: 链接civetweb和openssl (Sage, Marcus Watts) (pr#7825, Marcus Watts, Sage Weil)
rgw: 将付款人信息链接到使用情况日志记录 (pr#7918, Yehuda Sadeh, Javier M. Mellid)
rgw: 记录到/var/log/ceph而不是/var/log/radosgw
rgw: 使init脚本等待radosgw停止 (#11140 Dmitry Yatsushkevich)
rgw: 使最大put大小可配置 (#6999 Yuan Zhou)
rgw: 使配额/gc线程可配置 (#11047 Guang Yang)
rgw: 使读取用户桶向后兼容 (#10683 Radoslaw Zarzynski)
rgw: mdlog trim添加使用提示 (pr#6059, Weijun Duan)
rgw: 使用前缀覆盖正确合并清单 (#11622 Yehuda Sadeh)
rgw: 修改radosgw-admin metadata list user操作时命令卡住的问题 (pr#7032, Peiyang Liu)
rgw: 修改执行“log show”命令时选项date的文档和帮助信息的描述 (pr#6080, Kongming Wu)
rgw: 修改parse_metadata_key方法中的条件语句。 (pr#5875, Zengran Zhang)
rgw: 从 rgw_front.h 移动 signal.h 依赖 (pr#7678, Matt Benjamin)
rgw: Multipart ListPartsResult ETag 引用 (issue#15334, pr#8387, Robin H. Johnson)
rgw: 对 Swift API 的 SLO/DLO 的 etag 计算进行了多项改进。 (pr#7764, Radoslaw Zarzynski)
rgw: TempURL 的多项 Swift API 合规性改进 (Radoslaw Zarzynsk) (issue#14806, issue#11163, pr#7891, Radoslaw Zarzynski)
rgw: multisite 修复 (pr#8013, Yehuda Sadeh)
rgw: multitenancy 支持 (pr#6784, Yehuda Sadeh, Pete Zaitcev)
rgw: 新的 multisite 合并 (issue#14549, pr#7709, Yehuda Sadeh, Orit Wasserman, Casey Bodley, Daniel Gryniewicz)
rgw: 仅扫描不在命名空间中的对象 (#11984 Yehuda Sadeh)
rgw: 孤立对象检测工具 (Yehuda Sadeh)
rgw: 更好地解析 --subuser (pr#7279, Pete Zaitcev)
rgw: 传入 civetweb 可配置参数 (#10907 Yehuda Sadeh)
rgw: 阻止匿名用户读取具有经过身份验证的读取 ACL 的 bucket (issue#13207, pr#6057, root)
rgw: radosgw-admin bucket check --fix 不起作用 (pr#7093, Weijun Duan)
rgw: 纠正 PUT 响应中的 202 Accepted (#11148 Radoslaw Zarzynski)
rgw: 当 s3 密钥为空时拒绝计算摘要 (issue#13133, pr#6045, Sangdi Xu)
rgw: 删除 RGWRados::get_bucket_info() 中的重复代码 (pr#7413, liyankun)
rgw: 删除 RGWGetObj::execute 中的额外检查 (issue#12352, pr#5262, Javier M. Mellid)
rgw: 删除 bucket 后删除元文件 (#11149 Orit Wasserman)
rgw: 从 HTTP_HOST 标头中删除尾随的 :port (Sage Weil)
rgw: 删除 PutMetadataAccount:execute 中未使用的代码 (pr#6668, Pete Zaitcev)
rgw: 删除 RGWPutMetadataBucket::execute 中未使用的变量 (pr#6735, Radoslaw Zarzynski)
rgw: 删除未使用的 vector (pr#7990, Na Xie)
rgw: 在遍历 bucket 对象时重置返回代码 (issue#14826, pr#7803, Orit Wasserman)
rgw: 在主节点关闭时重试 RGWRemoteMetaLog::read_log_info() (pr#8453, Casey Bodley)
rgw: 列出 buckets 时,如果限制错误,则返回 412 (#11613 Yehuda Sadeh)
rgw: 恢复 “rgw ldap” (pr#8075, Yehuda Sadeh)
rgw: 重做 X-Trans-Id 标头以符合 Swift API (Radoslaw Rzarzynski)
rgw/rgw_admin: 修复 list 和 stats 命令的错误 (pr#8200, Qiankun Zheng)
rgw/rgw_common.h: 修复 RGWBucketInfo 解码 (pr#8154, Kefu Chai)
rgw/rgw_common.h: 修复 RGWBucketInfo 解码 (pr#8165, Kefu Chai)
rgw: RGWLib::env 未使用,因此将其删除 (pr#7874, Brad Hubbard)
rgw/rgw_orphan: 检查 save_state 的返回值 (pr#7544, Boris Ranto)
rgw/rgw_resolve: 当 res_nquery 未实现时,回退到 res_query (pr#6292, John Coyle)
rgw: RGWZoneParams::create 不应处理 -EEXIST 错误 (pr#7927, Orit Wasserman)
rgw: s3 encoding-type for get bucket (Jeff Weber)
rgw: S3: 在 ListBucketResult 中设置 EncodingType (pr#7712, Victor Makarov)
rgw: 为 swift 发送 ETag, Last-Modified (#11087 Radoslaw Zarzynski)
rgw: 在 container GET, PUT, DELETE, HEAD 上设置 content length (#10971, #11036 Radoslaw Zarzynski)
rgw: 在 ceph.conf 中设置每个用户的最大 buckets 数量 (Vikhyat Umrao)
rgw: 在多个 librados 实例上分片工作 (Pavan Rallabhandi)
rgw: url 查询部分中包含转义字符的签名不匹配 (issue#15358, pr#8445, Javier M. Mellid)
rgw: 静态大对象 (Radoslaw Zarzynski, Yehuda Sadeh)
rgw: 在创建系统对象元数据时将其存储在缓存中 (issue#14678, pr#7615, Yehuda Sadeh)
rgw: 支持 radosgw 守护程序的 core file limit (pr#6346, Guang Yang)
rgw: 支持 swift container GET 上的 end marker (#10682 Radoslaw Zarzynski)
rgw: 支持 aws authentication v4 (Javier M. Mellid) (issue#10333, pr#7720, Yehuda Sadeh, Javier M. Mellid)
rgw: 支持 Swift expiration API (Radoslaw Rzarzynski, Yehuda Sadeh)
rgw: 支持 admin policy API 的 json 格式 (Dunrong Huang) (issue#14090, pr#8036, Yehuda Sadeh, Dunrong Huang)
rgw: swift: 允许使用 COPY 设置属性 (#10662 Ahmad Faheem, Dmytro Iurchenko)
rgw: swift 批量删除 (Radoslaw Zarzynski)
rgw: swift: 不要覆盖发送的 content type (#12363 Orit Wasserman)
rgw: swift: 在响应中强制执行 Content-Type (#12157 Radoslaw Zarzynski)
rgw: swift: 修复 account listing (#11501 Radoslaw Zarzynski)
rgw: swift: 修复复制时的元数据处理 (#10645 Radoslaw Zarzynski)
rgw: swift: 发送 Last-Modified 标头 (#10650 Radoslaw Zarzynski)
rgw: swift: 为 account GET 设置 Content-Length (#12158 Radoslav Zarzynski)
rgw: swift: 在 keystone tokens 上设置 content-length (#11473 Herv Rousseau)
rgw: swift 使用 Civetweb ssl 无法获取正确的 url (issue#13628, pr#6408, Weijun Duan)
rgw: swift 版本控制禁用 (pr#8066, Yehuda Sadeh, Radoslaw Zarzynski)
rgw: 同步修复 3 (pr#8170, Yehuda Sadeh)
rgw: 同步修复 4 (pr#8190, Yehuda Sadeh)
rgw 同步修复 (pr#8095, Yehuda Sadeh)
rgw: map 'headers' 被分配了错误的值 (pr#8481, weiqiaomiao)
rgw: 尝试按照配置中适当的顺序解析 Keystone token。 (pr#7822, Radoslaw Zarzynski)
rgw: 使用 token 信息更新 keystone 缓存 (#11125 Yehuda Sadeh)
rgw: 更新到最新的 civetweb,为 IPv6 启用配置 (#10965 Yehuda Sadeh)
rgw: 复制时使用源 bucket 的 attrs (#11639 Javier M. Mellid)
rgw: 为 gc chains 使用正确的 oid (#11447 Yehuda Sadeh)
rgw: 在 RGWUserBuckets 中使用 count fn 进行配额检查 (pr#8294, Abhishek Lekshmanan)
rgw: 为 RGWPeriodHistory 使用 pimpl 模式 (pr#7809, Casey Bodley)
rgw: 删除 bucket 时用户配额可能无法调整 (issue#14507, pr#7586, root)
rgw: user rm 是幂等的 (Orit Wasserman)
rgw: 为 C_Reinitwatch 使用智能指针 (pr#6767, Orit Wasserman)
rgw: 为 civetweb 使用唯一的 request id (#10295 Orit Wasserman)
rgw: 警告可疑的 civetweb 前端参数 (pr#6944, Matt Benjamin)
rocksdb: 为 get/put 延迟添加 perf counters (Xinxin Shu)
rocksdb: 使用 PORTABLE=1 构建 (pr#6311, Sage Weil)
rocksdb, leveldb: 修复 compact_on_mount (Xiaoxi Chen)
rocksdb: 将选项作为单个字符串传递 (Xiaoxi Chen)
rocksdb: 从 dist tarball 中删除 rdb 源文件 (issue#13554, pr#6379, Kefu Chai)
rocksdb: 从 dist tarball 中删除 rdb 源文件 (issue#13554, pr#7105, Venky Shankar)
rocksdb: 更新到最新版本 (Xiaoxi Chen)
rocksdb: 使用原生 rocksdb makefile (和我们的 autotools) (pr#6290, Sage Weil)
rpm: 添加 suse 防火墙文件 (Tim Serong)
rpm: 始终重新构建并安装 rpm 的手册页 (Owen Synge)
rpm: ceph.spec.in: 正确声明 SLE/openSUSE 的 systemd 依赖关系 (pr#6114, Nathan Cutler)
rpm: ceph.spec.in: 修复 libs-compat / devel-compat 条件 (issue#12315, pr#5219, Ken Dreyer)
rpm,deb: 删除 btrfs-progs 的条件 BuildRequires (issue#15042, pr#8016, Erwan Velu)
rpm: 放松 ceph-test 依赖关系 (Ken Dreyer)
rpm: 许多 spec 文件修复 (Owen Synge, Ken Dreyer)
rpm: 杂项修复 (Boris Ranto, Owen Synge, Ken Dreyer, Ira Cooper)
rpm: 杂项 systemd 和 SUSE 修复 (Owen Synge, Nathan Cutler)
rpm: 将 %post(un) ldconfig 调用移动到 ceph-base (issue#14940, pr#7867, Nathan Cutler)
rpm: 将运行时依赖关系移动到 ceph-base 并修复其他打包问题 (issue#14864, pr#7826, Nathan Cutler)
rpm: 创建 ceph 用户/组时优先使用 UID/GID 167 (issue#15246, pr#8277, Nathan Cutler)
rpm: 删除子包对“ceph”的依赖关系 (issue#15146, pr#8137, Ken Dreyer)
rpm: rhel 5.9 librados 编译修复,将 blkid 移动到 RBD 检查/编译 (issue#13177, pr#5954, Rohan Mars)
script: 向 stop.sh 脚本添加缺少的 stop_rgw 变量 (pr#7959, Karol Mroz)
scripts: 调整 mstart 和 mstop 脚本以在 cmake 构建下运行 (pr#6920, Orit Wasserman)
scripts: release_notes 可以跟踪原始问题 (pr#6009, Abhishek Lekshmanan)
script: subscription-manager 支持 (issue#14972, pr#7907, Loic Dachary)
selinux: 允许日志文件位于 /var/log/radosgw (pr#7604, Boris Ranto)
selinux policy (Boris Ranto, Milan Broz)
selinux: 更新策略以授予额外访问权限 (issue#14870, pr#7971, Boris Ranto)
按字节设置 128MB tcmalloc 缓存大小 (pr#8427, Star Guo)
sstring.hh: str_len(...) 的返回类型不需要是 const (pr#7679, Matt Benjamin)
字符串化输出的错误代码并修复不匹配的括号。 (pr#6998, xie.xingguo, xie xingguo)
Striper: 降低 assemble_result 日志级别 (pr#8426, Jason Dillaman)
submodules: 恢复意外的更改 (pr#7929, Yehuda Sadeh)
systemd: 正确转义块设备路径 (issue#14706, pr#7579, James Page)
systemd: 删除 systemd 施加的进程/线程限制 (pr#8450, James Page)
systemd: 修复拼写错误 (pr#6679, Tobias Suckow)
systemd: logrotate 修复 (Tim Serong, Lars Marowsky-Bree, Nathan Cutler)
systemd: 许多修复 (Sage Weil, Owen Synge, Boris Ranto, Dan van der Ster)
systemd: 以用户 ceph 身份运行守护程序
systemd: 在 rbdmap 单元文件中设置环境 (issue#14984, pr#8222, Nathan Cutler)
systemd: 按守护程序类型启动/停止/重新启动 ceph 服务 (issue#13497, pr#6276, Zhi Zhang)
sysvinit: 允许自定义集群名称 (pr#6732, Richard Chan)
sysvinit 兼容性: 杂项修复 (Owen Synge)
test: 添加缺少的 shut_down mock 方法 (pr#8125, Jason Dillaman)
test/bufferlist: 避免误报测试 (pr#7955, Erwan Velu)
test: ceph_test_rados: 减少 CPU 使用量 (pr#7513, Samuel Just)
test/cli-integration/rbd: 禁用进度输出 (issue#14931, pr#7858, Josh Durgin)
test: 修复使用未优化 cmake 构建发现的 librbd 错误 (pr#7914, Jason Dillaman)
test: 为具有不同前缀的 rbd 测试创建池 (pr#7738, Mykola Golub)
test: 启用已解决的 bug #2339 的测试。 (pr#7743, You Ji)
test/encoding/readable.sh 修复 (pr#6714, Igor Podoski)
Test.sh 上的测试退出值,修复 tier.cc (issue#15165, pr#8266, Samuel Just)
test: 修复 rbd 权限测试用例发现的问题 (pr#8129, Jason Dillaman)
test: 修复 osd-scrub-snaps.sh (pr#6697, Xinze Chi)
test: 修复测试以在具有 snap_### dirs 的 btrfs 上运行 (issue#15347, pr#8420, David Zafman)
test: rbd-mirror 测试的修复和改进 (pr#8090, Mykola Golub)
test: 修复 lfn 更改导致的 ut 测试失败 (issue#15464, pr#8544, xie xingguo)
test: 修复 rbd-mirror 测试用例的 valgrind memcheck 问题 (issue#15354, pr#8493, Jason Dillaman)
test: 处理 rbd lock 测试期间 close 抛出的异常 (pr#8124, Jason Dillaman)
test/libcephfs/flock: 为 flock 操作添加 sys/file.h 包含 (pr#6310, John Coyle)
test/librados/test.cc: 也清理 EC pools 的 crush 规则 (issue#13878, pr#6788, Loic Dachary, Dan Mick)
test/librbd/fsx: 使用 c++11 std::mt19937 生成器而不是 random_r() (pr#6332, John Coyle)
test: 杂项 fs 测试改进 (John Spray, Loic Dachary)
test/mon/osd-erasure-code-profile: 选择新的 mon port (pr#7161, Sage Weil)
test: TestWatchNotify 的更多调试日志记录 (pr#7737, Mykola Golub)
test: 新的 librbd flatten 测试用例 (pr#7609, Jason Dillaman)
test/osd: 放松 osd-markdown.sh 中的计时间隔 (pr#7899, Dan Mick)
test_pool_create.sh: 将测试文件放在测试目录中以便清理 (pr#8219, Josh Durgin)
test/pybind/test_ceph_argparse: 修复 reweight-by-utilization 测试 (pr#8027, Kefu Chai, Sage Weil)
test: python 测试,linter 清理 (Alfredo Deza)
test/radosgw-admin: 更新预期的用法输出 (pr#7723, Kefu Chai)
test: rbd-mirror: 添加“切换到下一个 tag”测试 (pr#8149, Mykola Golub)
test: rbd-mirror: 使用所有字段比较位置 (pr#8172, Mykola Golub)
test: rbd-mirror: 手动测试的脚本改进 (pr#8325, Mykola Golub)
test: writeback CoW 死锁的重现器 (pr#8009, Jason Dillaman)
test/rgw: 添加跨周期的元数据同步 multisite 测试 (pr#7887, Casey Bodley)
test_rgw_admin: 使用 freopen 进行输出重定向。 (pr#6303, John Coyle)
tests: 为 ec test 添加 const (pr#6911, Michal Jarzabek)
tests: 添加 Ubuntu 16.04 xenial dockerfile (pr#8519, Loic Dachary)
tests: 允许 docker-test.sh 在 root 下运行 (issue#13355, pr#6173, Loic Dachary)
tests: 允许 object corpus readable test 跳过特定的 incompat 实例 (pr#6932, Igor Podoski)
tests: centos7 需要启用 Continuous Release (CR) Repository for (issue#13997, pr#6842, Brad Hubbard)
tests: ceph-disk.sh: 应该使用 “readlink -f” 代替 (pr#7594, Kefu Chai)
tests: ceph-disk.sh: 使用 “readlink -f” 代替 fullpath (pr#7606, Kefu Chai)
tests: ceph-disk workunit 使用 configobj (pr#6342, Loic Dachary)
tests: ceph-helpers assert success 获取 backfills (pr#6699, Loic Dachary)
tests: ceph_test_keyvaluedb_iterators: 修复损坏的测试 (pr#6597, Haomai Wang)
tests: 拼接 test_rados_test_tool from src and qa (issue#13691, pr#6464, Loic Dachary)
tests: 默认使用 rocksdb 配置 (issue#14220, pr#7100, Loic Dachary)
tests: 在创建之前销毁 testprofile (issue#13664, pr#6446, Loic Dachary)
tests: 修复一些构建警告 (pr#7608, Sage Weil)
tests: rbd xstests 修复 (Douglas Fuller)
tests: 修复 osd-scrub-snap.sh 的失败 (issue#13986, pr#6890, Loic Dachary, Ning Yao)
tests: 修复 make check。 (pr#7102, David Zafman)
tests: 修复损坏的 test/cephtool-test-mon.sh 测试 (pr#8429, Erwan Velu)
tests: 修复测试自动 scrub 的竞争条件 (issue#13592, pr#6724, Xinze Chi, Loic Dachary)
tests: 修复 test_rados_tools.sh rados lookup (issue#13691, pr#6502, Loic Dachary)
tests: 修复 tiering 健康检查 (Loic Dachary)
tests: 修复 TestClsRbd.snapshots 测试用例中的拼写错误 (issue#13727, pr#6504, Jason Dillaman)
tests: 在销毁 MockImageCtx 之前刷新 op 工作队列 (issue#14092, pr#7002, Jason Dillaman)
tests for low-level performance (Haomai Wang)
tests: 忽略 test-suite.log (pr#6584, Loic Dachary)
tests: 提高 'make check' 执行时间 (pr#8131, Erwan Velu)
tests: 许多 ec 非回归改进 (Loic Dachary)
tests: 许多 ec 测试改进 (Loic Dachary)
tests: 通知 slave 需要等待 master (issue#13810, pr#7220, Jason Dillaman)
tests: --osd-scrub-load-threshold=2000 以获得更高的一致性 (issue#14027, pr#6871, Loic Dachary)
tests: osd-scrub-snaps.sh 在错误时显示完整的 osd 日志 (issue#13986, pr#6857, Loic Dachary)
tests: port 唯一性提醒 (pr#6387, Loic Dachary)
tests: 恢复 run-cli-tests (pr#6571, Loic Dachary, Sage Weil, Jason Dillaman)
tests: 在客户端更新测试中进行快照重命名和重建对象映射 (pr#7224, Jason Dillaman)
tests: 同步 ceph-erasure-code-corpus for mktemp -d (pr#7596, Loic Dachary)
tests: test/librados/test.cc 必须创建 profile (issue#13664, pr#6452, Loic Dachary)
tests: test_pidfile.sh 遗留进程 (issue#14834, pr#7734, Loic Dachary)
tests: unittest_bufferlist: 修复 hexdump test (pr#7152, Sage Weil)
tests: unittest_ipaddr: 修复 segv (pr#7154, Sage Weil)
test/system/rados_list_parallel: 如果 rados_write 失败,则打印 oid (issue#15240, pr#8309, Kefu Chai)
test/system/*: 使用动态生成的池名称 (issue#15240, pr#8318, Kefu Chai)
test/test-erasure-code.sh: 禁用 pg_temp priming (issue#15211, pr#8260, Sage Weil)
test: TestMirroringWatcher 测试用例未关闭镜像 (pr#8435, Jason Dillaman)
test/TestPGLog: 修复 FTBFS (issue#14930, pr#7855, Kefu Chai)
test/test_pool_create.sh: 修复 port (pr#8361, Sage Weil)
test/time: 比较时不需要 abs(uint64_t) (pr#7726, Kefu Chai)
test: 更新 rbd integration cram tests 以适应新的默认功能 (pr#8001, Jason Dillaman)
test: 为 object cacher test 使用顺序 journal_tid (issue#13877, pr#6710, Josh Durgin)
tools: 添加 cephfs-table-tool ‘take_inos’ (pr#6655, John Spray)
tools/cephfs: 添加 tmap_upgrade (pr#7003, John Spray)
tools/cephfs: 修复写入固定大小缓冲区时 header 溢出 (#13816) (pr#6617, John Spray)
tools/cephfs: 修复 tmap_upgrade (issue#15135, pr#8128, John Spray)
tools: ceph_monstore_tool: 添加 inflate-pgmap 命令 (issue#14217, pr#7097, Kefu Chai)
tools: ceph-monstore-update-crush: 在测试 crushmap 时添加 “--test” (pr#6418, Kefu Chai)
tools: 修复 cephfs-data-scan 中的布局处理 (#13898) (pr#6719, John Spray)
tools: monstore: 添加 ‘show-versions’ 命令。 (pr#7073, Cilang Zhao)
tools/rados: 通过 op_size 减少 “rados put” 内存使用量 (pr#7928, Piotr Dałek)
tools: 删除重复引用 (pr#5917, Bo Cai)
tools: 支持以可读方式打印部分集群图 (issue#13079, pr#5921, Bo Cai)
unittest_compression_zlib: 不要假设缓冲区将以 null 终止 (pr#8064, Sage Weil)
unittest_erasure_code_plugin: 修复死锁 (Alpine) (pr#8314, John Coyle)
unittest_osdmap: 默认 crush tunables 现在是 firefly (pr#8098, Sage Weil)
upstart: 限制重启 (#11798 Sage Weil, Greg Farnum)
vstart: 修复给出 VSTART_DEST 时 cmake 路径的问题 (pr#8363, Casey Bodley)
vstart: 授予 Swift 测试帐户完全访问权限 (pr#6239, Yuan Zhou)
vstart: 使 -k 与可选的 mon_num 一起使用。 (pr#8251, Jianpeng Ma)
vstart: 将 cephfs root uid/gid 设置为调用者 (pr#6255, John Spray)
vstart.sh: 添加 mstart, mstop, mrun 包装器用于在 src 树外运行多个 vstart 风格的测试集群 (pr#6901, Yehuda Sadeh)
vstart.sh: 避免通过 vstart.sh 启动 rgw 时的竞争条件 (issue#14829, pr#7727, Javier M. Mellid)
vstart.sh: 消除找不到 btrfs 时无害的 msg (pr#7640, Patrick Donnelly)
xio: 向 xio msgr logs 添加前缀 (pr#8148, Roi Dayan)
xio: 修复针对最新 accelio 的编译问题 (pr#8022, Roi Dayan)
xio: 修复在多个 RDMA port 的情况下分配不正确的 ip (pr#7747, Subramanyam Varanasi)
xio: 删除重复的 peer addr 分配 (pr#8025, Roi Dayan)
xio: 删除多余的魔术方法 (pr#7773, Roi Dayan)
xio: 删除未使用的变量 (pr#8023, Roi Dayan)
xio: xio_init 需要在任何其他 xio 函数之前调用 (pr#8227, Roi Dayan)
xxhash: 使用 xxhash.git 的克隆;添加 .gitignore (pr#7986, Sage Weil)