注意
本文档适用于 Ceph 的开发版本。
Giant
Giant 是 Ceph 的第 7 个稳定版本。它以大王乌贼(Architeuthis dux)命名。
v0.87.2 Giant
这是 Giant 的第二个(也可能是最后一个)点版本。
我们建议所有 v0.87.x Giant 用户升级到此版本。
值得注意的变更
ceph-objectstore-tool: 仅在不兼容时输出不受支持的功能 (#11176 David Zafman)
common: 在销毁时不要隐式解锁 rwlock (Federico Simoncelli)
common: 使空队列上的等待超时可配置 (#10818 Samuel Just)
crush: 选择匹配的 ruleset id 和 rule id (Xiaoxi Chen)
crush: 为新的纠删码 ruleset 设置 set_choose_tries = 100 (#10353 Loic Dachary)
librados: 安全检查初始化的 atomic (#9617 Josh Durgin)
librados: 修复 failed tick_event 断言 (#11183 Zhiqiang Wang)
librados: 修复跳过地图时的循环 (#9986 Ding Dinghua)
librados: 修复带有超时的 op 提交 (#10340 Samuel Just)
librados: pybind: 修复内存泄漏 (#10723 Billy Olsen)
librados: pybind: 保持对回调的引用 (#10775 Josh Durgin)
librados: 从 C API 转换操作标志 (Matthew Richards)
libradosstriper: 修复 ENOENT 上的 write_full (#10758 Sebastien Ponce)
libradosstriper: 使用 strtoll 而不是 strtol (Dongmao Zhang)
mds: 修复由系统时间回退引起的断言 (#11053 Yan, Zheng)
mon: 允许在写入时注入随机延迟 (Joao Eduardo Luis)
mon: 不要信任小的 osd epoch 缓存值 (#10787 Sage Weil)
mon: 如果对象正在 scrub,则使非阻塞刷新失败 (#8011 Samuel Just)
mon: 修复 stats dump 中的除以零错误 (Joao Eduardo Luis)
mon: 修复没有 osd 时的 get_rule_avail (#10257 Joao Eduardo Luis)
mon: 修复超时轮次周期 (#10546 Joao Eduardo Luis)
mon: 忽略 up_from 之前的 osd 故障 (#10762 Dan van der Ster, Sage Weil)
mon: paxos: 在写入存储之前重置接受超时 (#10220 Joao Eduardo Luis)
mon: 如果 fs 存在,则在 'fs new' 上返回 (Joao Eduardo Luis)
mon: 展开 profile 时使用 EntityName (#10844 Joao Eduardo Luis)
mon: 验证跨服务提案前提条件 (#10643 Joao Eduardo Luis)
mon: 在请求提案时等待 osdmon 可写入 (#9794 Joao Eduardo Luis)
mount.ceph: 避免关于 /etc/mtab 的错误消息 (#10351 Yan, Zheng)
msg/simple: 当我们忘记一个端点时允许 RESETSESSION (#10080 Greg Farnum)
msg/simple: 在传入队列之前丢弃延迟队列 (#9910 Sage Weil)
osd: 离开 Primary 时清除 clear_primary_state (#10059 Samuel Just)
osd: 在启动时不要忽略已删除的 pg (#10617 Sage Weil)
osd: 修复 FileJournal wrap 以首先获取 header (#10883 David Zafman)
osd: 修复 SnapTrimWQ 中的 PG 泄漏 (#10421 Kefu Chai)
osd: 修复 do_read_entry 中的 journalq 填充 (#6003 Samuel Just)
osd: 修复 op_queue_age_hit 和 fs_perf_stat 的 operator== (#10259 Samuel Just)
osd: 修复 split 后罕见的断言 (#10430 David Zafman)
osd: 在构建 past intervals 时从 last_map 获取 pgid ancestor (#10430 David Zafman)
osd: 在 {read,write}_log 中包含 rollback_info_trimmed_to (#10157 Samuel Just)
osd: 在 DBObjectMap::sync 中锁定 header_lock (#9891 Samuel Just)
osd: 在刷新它所阻塞的操作之前重新排队阻塞的操作 (#10512 Sage Weil)
osd: 在 backfill 上容忍 list 和 attr get 之间缺少对象 (#10150 Samuel Just)
osd: 对驱逐决策使用正确的 atime (Xinze Chi)
rgw: 在 get ACL 请求上刷新 XML header (#10106 Yehuda Sadeh)
rgw: 适当索引 swift keys (#10471 Hemant Bruman, Yehuda Sadeh)
rgw: 为 bucket index pending ops 发送取消 (#10770 Baijiaruo, Yehuda Sadeh)
rgw: swift: 支持 X_Remove_Container-Meta-{key} (#01475 Dmytro Iurchenko)
有关更详细的信息,请参阅 完整的 变更日志。
v0.87.1 Giant
这是 Giant 的第一个(也可能是最后一个)点版本。我们将重点放在稳定修复上,并将其转向 Hammer 和 Firefly。
我们建议所有 v0.87 Giant 用户升级到此版本。
升级
由于 Linux 内核版本 3.18 中的更改以及 FUSE 接口的限制,ceph-fuse 至少在某些系统上需要以 root 身份挂载。有关详细信息,请参阅问题 #9997、#10277 和 #10542。
值得注意的变更
build: 在汇编对象上禁用 stack-execute 位 (#10114 Dan Mick)
build: 支持 boost 1.57.0 (#10688 Ken Dreyer)
ceph-disk: 修复 dmcrypt 文件权限 (#9785 Loic Dachary)
ceph-disk: zap 后运行 partprobe,处理 partx 或 partprobe (#9665 #9721 Loic Dachary)
cephfs-journal-tool: 修复 aged journals 的导入 (#9977 John Spray)
cephfs-journal-tool: 修复 journal 导入 (#10025 John Spray)
ceph-fuse: 使用 remount 来 trim kernel dcache (#10277 Yan, Zheng)
common: 添加 cctid meta 变量 (#6228 Adam Crume)
common: 修复 ghobject_t 的 shard dump (#10063 Loic Dachary)
crush: 修复 bucket weight 下溢 (#9998 Pawel Sadowski)
erasure-code: 强制执行块大小对齐 (#10211 Loic Dachary)
erasure-code: 回归测试套件 (#9420 Loic Dachary)
erasure-code: 放松 caucy w 限制 (#10325 Loic Dachary)
libcephfs,ceph-fuse: 允许在 inject_release_failure 上使用 xattr caps (#9800 John Spray)
libcephfs,ceph-fuse: 修复 cap flush tid 比较 (#9869 Greg Farnum)
libcephfs,ceph-fuse: 新标志以指示排序的 dcache (#9178 Yan, Zheng)
libcephfs,ceph-fuse: 在重新连接到 MDS 之前修剪缓存 (Yan, Zheng)
librados: 限制 in-flight read requests 的数量 (#9854 Jason Dillaman)
libradospy: 修复线程关闭 (#8797 Dan Mick)
libradosstriper: 修复 truncate 中的锁定问题 (#10129 Sebastien Ponce)
librbd: 在关闭 image 之前完成 pending ops (#10299 Jason Dillaman)
librbd: 修复 image open failure 时的错误路径 (#10030 Jason Dillaman)
librbd: gracefully handle deleted/renamed pools (#10270 Jason Dillaman)
librbd: 在列出 children 时创建 ioctx 期间处理错误 (#10123 Jason Dillaman)
mds: 修复 MClientSession 中的 compat version (#9945 John Spray)
mds: 修复 journaler write error handling (#10011 John Spray)
mds: 修复文件大小恢复的锁定 (#10229 Yan, Zheng)
mds: 处理 shutdown 期间的 heartbeat_reset (#10382 John Spray)
mds: 为 straydir 存储 backtrace (Yan, Zheng)
mon: 允许 FS pools 的 tiers (#10135 John Spray)
mon: 修复 last_epoch_clean 的缓存, osdmap trimming (#9987 Sage Weil)
mon: 修复 peons 上的 'fs ls' (#10288 John Spray)
mon: 修复 peons 的 MDS health status (#10151 John Spray)
mon: 修复 paxos off-by-one (#9301 Sage Weil)
msgr: simple: 在持有全局锁时不要阻塞 takeover (#9921 Greg Farnum)
osd: 如果 hinfo 丢失,deep scrub 不能中止 (#10018 Loic Dachary)
osd: 修复 misdirected op detection (#9835 Sage Weil)
osd: 修复 acting 的 past_interval display (#9752 Loic Dachary)
osd: 修复 osdmaps 落后时的 PG peering backoff (#10431 Sage Weil)
osd: 处理带有 snapshot case 的 no-op write (#10262 Ssage Weil)
osd: 使用 fast-dispatch (Sage Weil, Greg Farnum)
rados: 修复写入 /dev/null (Loic Dachary)
radosgw-admin: 需要时创建 subuser (#10103 Yehuda Sadeh)
rbd: 在 image import 期间避免使 aio_write buffer 失效 (#10590 Jason Dillaman)
rbd: 修复 image > 2GB 的导出 (Vicente Cheng)
rgw: 更改 multipart upload id magic (#10271 Georgios Dimitrakakis, Yehuda Sadeh)
rgw: 检查 S3 POST 的 keystone auth (#10062 Abhishek Lekshmanan)
rgw: 检查 S3 keystone auth 的 timestamp (#10062 Abhishek Lekshmanan)
rgw: 修复 swift 的 partial GET (#10553 Yehuda Sadeh)
rgw: 修复 quota disable (#9907 Dong Lei)
rgw: 修复 put 时罕见的 object metadata 损坏 (#9576 Yehuda Sadeh)
rgw: 修复 S3 object copy content-type (#9478 Yehuda Sadeh)
rgw: headers 以 rn 结尾 (#9254 Benedikt Fraunhofer, Yehuda Sadeh)
rgw: 删除 swift user manifest DLO hash calculation (#9973 Yehuda Sadeh)
rgw: 当 len 为 0 时返回正确的 len (#9877 Yehuda Sadeh)
rgw: 返回 X-Timestamp 字段 (#8911 Yehuda Sadeh)
rgw: 使用 systemd 以 apache 身份运行 radosgw (#10125)
rgw: 在 S3 object copy 上发送 ETag (#9479 Yehuda Sadeh)
rgw: 在 fastcgi 中显式发送 HTTP status reason (Yehuda Sadeh)
rgw: 为 keystone token validation 设置 length (#7796 Mark Kirkwood, Yehuda Sadeh)
rgw: 在启动 daemon 之前在 sysvinit 上设置 ulimit -n (#9587 Sage Weil)
rgw: 在 set_attrs 上更新 bucket index (#5595 Yehuda Sadeh)
rgw: 认证时更新 swift subuser permission masks (#9918 Yehuda Sadeh)
rgw: URL 解码 HTTP query params correction (#10271 Georgios Dimitrakakis, Yehuda Sadeh)
rgw: 读取 object attrs 时使用缓存的 attrs (#10307 Yehuda Sadeh)
rgw: 为 content length 使用 strict_strtoll (#10701 Axel Dunkel, Yehuda Sadeh)
有关更详细的信息,请参阅 完整的 变更日志。
v0.87 Giant
此版本将构成稳定版本 Giant v0.87.x 的基础。Giant 的亮点包括
RADOS 性能:OSD 和客户端 librados 代码中进行了一系列改进,提高了闪存后端的吞吐量,并提高了快速机器上的并行度和可扩展性。
CephFS:我们修复了 CephFS 中的一系列错误,并构建了一些基本的 journal 恢复和诊断工具。Giant 中单 MDS 系统的稳定性和性能得到了极大改善。尽管我们尚不建议将 CephFS 用于生产部署,但我们鼓励对非关键工作负载进行测试,以便我们更好地评估功能、可用性、性能和稳定性差距。
局部恢复代码:OSD 现在支持一种纠删码方案,该方案存储一些额外的数据块,以减少从单个 OSD 故障中恢复所需的 IO。
降级与错位:'ceph -s' 和相关命令的 Ceph 健康报告现在区分降级数据(副本数量少于所需数量)和错位数据(存储在集群中的错误位置)。这种区别很重要,因为后者不会危及数据安全。
分层改进:我们对缓存分层实现进行了一些改进,提高了性能。最值得注意的是,对象不会通过一次读取就被提升到缓存层;它们必须在发生这种情况之前被发现足够热。
Monitor 性能:monitor 现在异步执行对本地数据存储的写入,从而提高了整体响应能力。
恢复工具:ceph_objectstore_tool 得到极大扩展,允许操作单个 OSD 的数据存储用于调试和修复目的。这主要由我们的 QA 基础设施用于演练恢复代码。
升级顺序
如果您现有的集群运行的版本早于 v0.80.x Firefly,请先升级到最新的 Firefly 版本,然后再升级到 Giant。我们尚未直接测试从 Emperor、Dumpling 或更早版本的升级。
我们已经测试了
Firefly 到 Giant
Dumpling 到 Firefly 到 Giant
请按以下顺序升级守护程序
监视器
OSD
MDSs 和/或 radosgw
请注意,OSD 和 monitor 的相对顺序无关紧要,但我们主要测试了首先升级 monitor。
从 v0.80x Firefly 升级
librbd 的客户端缓存现在默认启用(rbd cache = true)。还启用了一个安全选项(rbd cache writethrough until flush = true),以便在库观察到“flush”命令之前不使用回写缓存,这表明 librbd 用户正在将该操作从客户机 VM 传递。当与不支持 flush 的旧版本 qemu 一起使用时,这可以避免潜在的数据丢失。
leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB leveldb_block_size = 64*1024 = 65536 // 64KB leveldb_compression = false leveldb_log = “”
OSD 仍将保持以下 osd-specific defaults
leveldb_log = “”
‘rados getxattr …’ 命令过去会向 attr value 添加一个多余的换行符;现在不会了。
monitor 上的
*_kb perf计数器已被删除。它们被一组新的*_bytes计数器取代(例如,cluster_osd_kb被cluster_osd_bytes取代)。JSON dumps for pool stats 中的
rd_kb和wr_kb字段(通过ceph df detail -f json-pretty和相关命令访问)已被相应的*_bytes字段取代。类似地,total_space、total_used和total_avail字段被total_bytes、total_used_bytes和total_avail_bytes字段取代。rados df --format=json 输出中的
read_bytes和write_bytes字段之前错误地报告了 ops;现在已修复。rados df --format=json 输出之前包含
read_kb和write_kb字段;这些已被删除。请改用read_bytes和write_bytes(如果合适,除以 1024)。实验性 keyvaluestore-dev OSD 后端有一个磁盘格式更改,阻止了现有 OSD 数据升级。这仅影响开发人员和测试人员。
mon-specific 和 osd-specific leveldb 选项已被删除。从现在开始,用户应该使用 leveldb_* 通用选项并将选项添加到其配置文件的相应部分。Monitor 仍将保持以下 monitor-specific defaults
leveldb_write_buffer_size = 8*1024*1024 = 33554432 // 8MB leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB leveldb_block_size = 64*1024 = 65536 // 64KB leveldb_compression = false leveldb_log = “”
OSD 仍将保持以下 osd-specific defaults
leveldb_log = “”
CephFS 对传统 anchor table 的支持最终被删除。在 firefly 之前创建文件系统的用户应该确保在升级之前修改具有多个 hard links 的 inode,以确保 backtrace 正确写入。例如
sudo find /mnt/cephfs -type f -links +1 -exec touch \{\} \;
我们禁止无意义的“tier cache-mode”转换。从现在开始,“writeback”只能转换为“forward”,而“forward”可以转换为 1) “writeback”(如果有脏对象),或者 2) “any”(如果没有脏对象)。
v0.86 以来的显著变化
ceph-disk: 对 centos7/rhel7 使用新的 udev 规则 (#9747 Loic Dachary)
libcephfs-java: 修复 fstat mode (Noah Watkins)
librados: 修复列出 PG contents 时的死锁 (Guang Yang)
librados: 对新线程模型的杂项修复 (#9582 #9706 #9845 #9873 Sage Weil)
mds: 修复 inotable initialization (Henry C Chang)
mds: 优雅地处理 flock requests 中的未知 lock type (Yan, Zheng)
mon: 添加只读、读写和角色定义者 rols (Joao Eduardo Luis)
mon: 修复 mon cap checks (Joao Eduardo Luis)
mon: 对新 paxos async writes 的杂项修复 (#9635 Sage Weil)
mon: 在 PG creation 上设置 scrub timestamps (#9496 Joao Eduardo Luis)
osd: erasure code: 修复 buffer alignment (Janne Grunau, Loic Dachary)
osd: 修复 mixed clusters 上的 alloc hint induced crashes (#9419 David Zafman)
osd: 修复 rejection 上的 backfill reservation release (#9626, Samuel Just)
osd: 修复 ioprio option parsing (#9676 #9677 Loic Dachary)
osd: 修复 snap trimming 期间的内存泄漏 (#9113 Samuel Just)
osd: 杂项 peering 和 recovery fixes (#9614 #9696 #9731 #9718 #9821 #9875 Samuel Just, Guang Yang)
v0.80.x Firefly 以来的显著变化
bash completion 改进 (Wido den Hollander)
brag: 修复,改进 (Loic Dachary)
buffer: 改进 rebuild_page_aligned (Ma Jianpeng)
build: 修复 alpha 上的构建 (Michael Cree, Dmitry Smirnov)
build: 修复 CentOS 5 (Gerben Meijer)
build: 修复 x32 的 yasm 检查 (Daniel Schepler, Sage Weil)
ceph-brag: 添加 tox tests (Alfredo Deza)
ceph-conf: 在退出时刷新 log (Sage Weil)
ceph.conf: 更新 sample (Sebastien Han)
ceph-dencoder: 重构构建以限制依赖项 (Sage Weil, Dan Mick)
ceph-disk: 添加 Scientific Linux 支持 (Dan van der Ster)
ceph-disk: 不要无意中创建目录 (Owne Synge)
ceph-disk: 修复 dmcrypt 支持 (Sage Weil)
ceph-disk: 修复 dmcrypt 支持 (Stephen Taylor)
ceph-disk: 处理 corrupt volumes (Stuart Longlang)
ceph-disk: linter 清理,logging 改进 (Alfredo Deza)
ceph-disk: 根据需要进行 partprobe (Eric Eastman)
ceph-disk: 在 'ceph-disk list' 输出中显示有关 dmcrypt 的信息 (Sage Weil)
ceph-disk: 使用 partition type UUIDs 和 blkid (Sage Weil)
ceph: 修复非默认集群名称 (#8944, Dan Mick)
ceph-fuse, libcephfs: 用于处理 session resets, timeouts 的 asok hooks (Yan, Zheng)
ceph-fuse, libcephfs: 修复 trim_caps 中的 crash (John Spray)
ceph-fuse, libcephfs: 改进 cap trimming (John Spray)
ceph-fuse, libcephfs: 改进 traceless reply handling (Sage Weil)
ceph-fuse, libcephfs: 用于 rstat 的 virtual xattrs (Yan, Zheng)
ceph_objectstore_tool: 大大改进和扩展的工具,用于脱机处理 OSD 数据存储 (David Zafman)
ceph.spec: 许多修复 (Erik Logtenberg, Boris Ranto, Dan Mick, Sandon Van Ness)
ceph.spec: 拆分 ceph-common package,其他修复 (Sandon Van Ness)
ceph_test_librbd_fsx: 修复 RNG,使其具有确定性 (Ilya Dryomov)
cephtool: 修复 help (Yilong Zhao)
cephtool: 重构和改进 CLI tests (Joao Eduardo Luis)
cephtool: test cleanup (Joao Eduardo Luis)
clang build fixes (John Spray, Danny Al-Gaaf)
client: 改进的 MDS session dumps (John Spray)
common: 添加 config diff admin socket command (Joao Eduardo Luis)
common: 添加 rwlock assertion checks (Yehuda Sadeh)
common: 修复 dup log messages (#9080, Sage Weil)
common: perfcounters 现在使用 atomics 并且速度更快 (Sage Weil)
config: 支持 G, M, K, etc. 后缀 (Joao Eduardo Luis)
coverity cleanups (Danny Al-Gaaf)
crush: 清理 CrushWrapper 接口 (Xioaxi Chen)
crush: 在 dump 中包含新的 tunables (Sage Weil)
crush: 使 ruleset ids 唯一 (Xiaoxi Chen, Loic Dachary)
crush: 仅在 rule 被使用时才需要 rule features (#8963, Sage Weil)
crushtool: 将输出发送到 stdout,而不是 stderr (Wido den Hollander)
doc: cache tiering (John Wilkins)
doc: CRUSH 更新 (John Wilkins)
doc: 文档新的上游 wireshark dissector (Kevin Cox)
doc: 改进 manual install docs (Francois Lafont)
doc: keystone integration docs (John Wilkins)
doc: librados example fixes (Kevin Dalley)
doc: 许多文档更新 (John Wilkins)
doc: 许多安装文档更新 (John Wilkins)
doc: 杂项更新 (John Wilkins, Loic Dachary, David Moreau Simard, Wido den Hollander. Volker Voigt, Alfredo Deza, Stephen Jahl, Dan van der Ster)
doc: osd primary affinity (John Wilkins)
doc: pool quotas (John Wilkins)
doc: pre-flight doc 改进 (Kevin Dalley)
doc: 切换到不受限制的字体 (Ross Turk)
doc: 更新 simple configuration guides (John Wilkins)
doc: 更新 erasure docs (Loic Dachary, Venky Shankar)
doc: 更新 openstack docs (Josh Durgin)
filestore: 禁用使用 XFS hint (在旧内核上有 bug) (Samuel Just)
filestore: 修复 xattr spillout (Greg Farnum, Haomai Wang)
fix hppa arch build (Dmitry Smirnov)
fix i386 builds (Sage Weil)
fix struct vs class inconsistencies (Thorsten Behrens)
global: 即使在前台运行也写入 pid file (Alexandre Oliva)
hadoop: 改进 tests (Huamin Chen, Greg Farnum, John Spray)
hadoop: 更新 hadoop tests 以适应 Hadoop 2.0 (Haumin Chen)
init-ceph: 在 crush 或 mount failure 时继续启动其他 daemons (#8343, Sage Weil)
journaler: 修复 locking (Zheng, Yan)
keyvaluestore: 修复 hint crash (#8381, Haomai Wang)
keyvaluestore: header cache (Haomai Wang)
libcephfs-java: against older JNI headers 构建 (Greg Farnum)
libcephfs-java: 修复 gcj-jdk build (Dmitry Smirnov)
librados: 修复 read op timeout 时的 crash (#9362 Matthias Kiefer, Sage Weil)
librados: 修复 error paths 中的 lock leaks (#9022, Paval Rallabhandi)
librados: 修复 pool existence check (#8835, Pavan Rallabhandi)
librados: 修复 rados_pool_list bounds checks (Sage Weil)
librados: 修复 shutdown race (#9130 Sage Weil)
librados: 修复 watch/notify test (#7934 David Zafman)
librados: 修复 acting set change 上的 watch reregistration (#9220 Samuel Just)
librados: 给 Objecter 细粒度锁 (Yehuda Sadeh, Sage Weil, John Spray)
librados: lttng tracepoitns (Adam Crume)
librados, osd: 在 failed notify 上返回 ETIMEDOUT (Sage Weil)
librados: pybind: 修复存在 0 时的 reads (#9547 Mohammad Salehe)
librados_striper: librados 的 striping library (Sebastien Ponce)
librbd, ceph-fuse: 减少 cache flush overhead (Haomai Wang)
librbd: 检查 cache invalidate 上的 error code (Josh Durgin)
librbd: 默认启用 caching (Sage Weil)
librbd: 在 read requests 上强制执行 cache size (Jason Dillaman)
librbd: 修复 using clone of flattened image 时的 crash (#8845, Josh Durgin)
librbd: 修复 opening image 时的 error path (#8912, Josh Durgin)
librbd: shutdown 期间处理 blacklisting (#9105 John Spray)
librbd: lttng tracepoints (Adam Crume)
librbd: 用于 kernel map/unmap/showmapped 的新 libkrbd library (Ilya Dryomov)
librbd: 根据 id 存储和检索 snapshot metadata (Josh Durgin)
libs3: 更新到最新 (Danny Al-Gaaf)
log: fix derr level (Joao Eduardo Luis)
logrotate: 修复 ubuntu 上的 osd log rotation (Sage Weil)
lttng: tracing infrastructure (Noah Watkins, Adam Crume)
mailmap: 许多更新 (Loic Dachary)
mailmap: 更新 (Loic Dachary, Abhishek Lekshmanan, M Ranga Swami Reddy)
Makefile: 修复 out of source builds (Stefan Eilemann)
many many coverity fixes, cleanups (Danny Al-Gaaf)
mds: 适应新的 Objecter locking,给所有 Contexts 类型 (John Spray)
mds: 添加 file system name, enabled flag (John Spray)
mds: 添加 internal health checks (John Spray)
mds: 添加用于 snapshot creation/deletion 的 min/max UID (#9029, Wido den Hollander)
mds: 避免紧密的 mon reconnect loop (#9428 Sage Weil)
mds: boot refactor, cleanup (John Spray)
mds: cephfs-journal-tool (John Spray)
mds: 修复 killing sessions 时的 crash (#9173 John Spray)
mds: 修复 ctime updates (#9514 Greg Farnum)
mds: 修复 standby-replay 的 journal conversion (John Spray)
mds: 修复 replay locking (Yan, Zheng)
mds: 修复 standby-replay cache trimming (#8648 Zheng, Yan)
mds: 修复由 ACLs 触发的 xattr bug (Yan, Zheng)
mds: 给 perfcounters 有意义的名称 (Sage Weil)
mds: 改进 health reporting to monitor (John Spray)
mds: 改进 Journaler on-disk format (John Spray)
mds: 改进 journal locking (Zheng, Yan)
mds, libcephfs: 使用 client timestamp for mtime/ctime (Sage Weil)
mds: 使 max file recoveries 可调 (Sage Weil)
mds: 杂项 encoding 改进 (John Spray)
mds: 杂项 fixes for multi-mds (Yan, Zheng)
mds: multi-mds fixes (Yan, Zheng)
mds: OPTracker integration, dump_ops_in_flight (Greg Farnum)
mds: 适当优先处理 file recovery (Sage Weil)
mds: refactor beacon, improve reliability (John Spray)
mds: 删除 legacy anchor table (Yan, Zheng)
mds: 删除 legacy discover ino (Yan, Zheng)
mds: 在 EBLACKLISTED 上重启 (John Spray)
mds: separate inode recovery queue (John Spray)
mds: session ls, evict commands (John Spray)
mds: 在 async thread 中提交 log events (Yan, Zheng)
mds: 跟踪 RECALL progress, report failure (#9284 John Spray)
mds: 在 journal write 期间更新 segment references (John Spray, Greg Farnum)
mds: 使用 client-provided timestamp for user-visible file metadata (Yan, Zheng)
mds: 为 clients 使用 meaningful names (John Spray)
mds: 在 load 和 save 上验证 journal header (John Spray)
mds: 警告未撤销 caps 的 clients (Zheng, Yan, John Spray)
misc build errors/warnings for Fedora 20 (Boris Ranto)
misc build fixes for OS X (John Spray)
misc cleanup (Christophe Courtaut)
misc integer size cleanups (Kevin Cox)
misc memory leaks, cleanups, fixes (Danny Al-Gaaf, Sahid Ferdjaoui)
misc suse fixes (Danny Al-Gaaf)
misc word size fixes (Kevin Cox)
mon: 为所有 admin commands 添加 audit log (Joao Eduardo Luis)
mon: 添加 cluster fingerprint (Sage Weil)
mon: 添加 get-quota commands (Joao Eduardo Luis)
mon: 添加 'osd blocked-by' command 以轻松查看哪些 OSD 阻塞 peering progress (Sage Weil)
mon: 添加 'osd reweight-by-pg' command (Sage Weil, Guang Yang)
mon: 为 paxos operations 添加 perfcounters (Sage Weil)
mon: 在 pool create 时避免创建不必要的 rule (#9304 Loic Dachary)
monclient: 修复 hang (Sage Weil)
mon: 如果需要创建 default EC profile (Loic Dachary)
mon: 默认不创建 file system (John Spray)
mon: do not spam log (Aanchal Agrawal, Sage Weil)
mon: 删除 mon- 和 osd- specific leveldb options (Joao Eduardo Luis)
mon: ec pool profile fixes (Loic Dachary)
mon: 修复没有 auth keys 时的 bug (#8851, Joao Eduardo Luis)
mon: 修复 'ceph df' available space 的输出 (Xiaoxi Chen)
mon: 修复 MForward 的 compat version (Joao Eduardo Luis)
mon: 修复 loopback messages 和 paxos timeouts 时的 crash (#9062, Sage Weil)
mon: 修复 default replication pool ruleset choice (#8373, John Spray)
mon: 修复在添加 OSD 之前调整 pg_num 时的 divide by zero (#9101, Sage Weil)
mon: 修复 old MOSDBoot 的 double-free (Sage Weil)
mon: 修复 health down messages (Sage Weil)
mon: 修复 session reset 后偶尔的内存泄漏 (#9176, Sage Weil)
mon: 修复 op write latency perfcounter (#9217 Xinxin Shu)
mon: 修复 'osd perf' reported latency (#9269 Samuel Just)
mon: 修复 quorum feature check (#8738, Greg Farnum)
mon: 修复 ruleset/ruleid bugs (#9044, Loic Dachary)
mon: 修复 set cache_target_full_ratio (#8440, Geoffrey Hartz)
mon: 修复 startup 时的 store check (Joao Eduardo Luis)
mon: 在 df output 中包含 per-pool 'max avail' (Sage Weil)
mon: 使 paxos transaction commits asynchronous (Sage Weil)
mon: 使 usage dumps 以 bytes 为单位,而不是 kB (Sage Weil)
mon: 'osd crush reweight-subtree …' (Sage Weil)
mon, osd: 放松 client EC support requirements (Sage Weil)
mon: preload erasure plugins (#9153 Loic Dachary)
mon: 防止 cache pools 被 CephFS 直接使用 (#9435 John Spray)
mon: 防止 EC pools 被 cephfs 使用 (Joao Eduardo Luis)
mon: 防止使用 'osd setmaxosd …' 隐式销毁 OSD (#8865, Anand Bhat)
mon: 防止 nonsensical cache-mode transitions (Joao Eduardo Luis)
mon: 当 auto-marked out OSDs 重启时恢复原始 weight (Sage Weil)
mon: 限制 tiered pools 的一些 pool properties (Joao Eduardo Luis)
mon: some instrumentation (Sage Weil)
mon: 使用 msg header tid for MMonGetVersionReply (Ilya Dryomov)
mon: 使用 user-provided ruleset for replicated pool (Xiaoxi Chen)
mon: 验证 Paxos round 结束时所有 quorum members 是否contiguous (#9053, Sage Weil)
mon: 在 startup 时验证 available disk space (#9502 Joao Eduardo Luis)
mon: 在 load 时验证 erasure plugin version (Loic Dachary)
msgr: 发送 (大部分) 消息时避免 big lock (Greg Farnum)
msgr: 修复 logged address (Yongyue Sun)
msgr: fast dispatch 的杂项 locking fixes (#8891, Sage Weil)
msgr: 重构以 cleanly separate SimpleMessenger implemenetation,转向 Connection-based calls (Matt Benjamin, Sage Wei)
objecter: 标记被 caching 重定向的操作 (Sage Weil)
objectstore: 清理 key/value backends 的 KeyValueDB 接口 (Sage Weil)
osd: 考虑 hit_set_archive bytes (Sage Weil)
osd: 添加 prehash filestore directories 的能力 (Guang Yang)
osd: 添加 'dump_reservations' admin socket command (Sage Weil)
osd: 为 erasure plugins 添加 feature bit (Loic Dachary)
osd: 为 KeyValueStore 添加 header cache (Haomai Wang)
osd: 添加 ISA erasure plugin table cache (Andreas-Joachim Peters)
osd: 为 cache agent 添加 local_mtime (Zhiqiang Wang)
osd: 添加 local recovery code (LRC) erasure plugin (Loic Dachary)
osd: 添加基于 Seagate Kinetic 的 prototype KineticStore (Josh Durgin)
osd: 添加 READFORWARD caching mode (Luis Pabon)
osd: 为 KeyValueStore backend 添加 superblock (Haomai Wang)
osd: 添加对 Intel ISA-L erasure code library 的支持 (Andreas-Joachim Peters)
osd: 允许在运行时调整 map cache size (Sage Weil)
osd: 通过 ref 传递一些东西以避免 refcounting overhead (Somnath Roy)
osd: 避免共享不 durable 的 PG info (Samuel Just)
osd: 限制 PGs 之间的 osdmap epoch skew (Sage Weil)
osd: cache tier flushing fixes for snapped objects (Samuel Just)
osd: cap hit_set size (#9339 Samuel Just)
osd: 清理 shard_id_t, shard_t (Loic Dachary)
osd: 在 unlink 上清除 FDCache (#8914 Loic Dachary)
osd: 在 osd up/down 时清除 slow request latency info (Sage Weil)
osd: do not evict blocked objects (#9285 Zhiqiang Wang)
osd: do not skip promote for write-ordered reads (#9064, Samuel Just)
osd: 修复 agent early finish looping (David Zafman)
osd: 修复 blacklisted clients 的 ambigous encoding order (#9211, Sage Weil)
osd: 修复 OSD shutdown 期间的 bogus assert (Sage Weil)
osd: 修复 long object names 和 rename 时的 bug (#8701, Sage Weil)
osd: 修复 snapshotted objects 的 cache flush corner case (#9054, Samuel Just)
osd: 修复 cache full -> not full requeueing (#8931, Sage Weil)
osd: 修复 clone deletion case (#8334, Sam Just)
osd: 修复 clone vs cache_evict bug (#8629 Sage Weil)
osd: 修复 connection reconnect race (Greg Farnum)
osd: 修复 duplicate backfill reservation 导致的 crash (#8863 Sage Weil)
osd: 修复 dead peer connection checks (#9295 Greg Farnum, Sage Weil)
osd: 修复 old/obsolete subop replies 的 discard (#9259, Samuel Just)
osd: 修复 previous intervals 的 peer messages discard (Greg Farnum)
osd: 修复 EMFILE 上的 open fds dump (Sage Weil)
osd: 修复 dumps (Joao Eduardo Luis)
osd: 修复 erasure-code lib initialization (Loic Dachary)
osd: 修复 extent normalization (Adam Crume)
osd: 修复 filestore removal corner case (#8332, Sam Just)
osd: 修复 flush vs OpContext (Samuel Just)
osd: 修复 old OSD instances 的 messages gating (Greg Farnum)
osd: 修复 waiting for osdmap 时的 hang (#8338, Greg Farnum)
osd: 修复 peering 期间的 interval check corner case (#8104, Sam Just)
osd: 修复 ISA erasure alignment (Loic Dachary, Andreas-Joachim Peters)
osd: 修复 journal dump (Ma Jianpeng)
osd: 修复 journal-less operation (Sage Weil)
osd: 修复 keyvaluestore scrub (#8589 Haomai Wang)
osd: 修复 keyvaluestore upgrade (Haomai Wang)
osd: 修复 loopback msgr issue (Ma Jianpeng)
osd: 修复 LSB release parsing (Danny Al-Gaaf)
osd: 修复 MarkMeDown 和其他 shutdown races (Sage Weil)
osd: 修复 collection_move_rename, lock ordering 的 memstore bugs (Sage Weil)
osd: 修复 upgrade 上的 min_read_recency_for_promote default (Zhiqiang Wang)
osd: 修复 mon feature bit requirements bug 和 resulting log spam (Sage Weil)
osd: fix mount/remount sync race (#9144 Sage Weil)
osd: 修复 PG object listing/ordering bug (Guang Yang)
osd: 修复 tiering 时的 PG stat errors (#9082, Sage Weil)
osd: 修复 backfill 上的 purged_snap initialization (Sage Weil, Samuel Just, Dan van der Ster, Florian Haas)
osd: 修复 object deletion 上的 race condition (#9480 Somnath Roy)
osd: 修复 EC recovery 期间 recovery chunk size usage (Ma Jianpeng)
osd: 修复 EC pools 的 recovery reservation deadlock (Samuel Just)
osd: 修复 overwriting chained xattrs 时的 old xattrs removal (Ma Jianpeng)
osd: 修复 PG split 上的 requesting queueing (Samuel Just)
osd: 修复 scrub vs cache bugs (Samuel Just)
osd: 修复 cache tier 的 snap object writeback (#9054 Samuel Just)
osd: 修复 hitsets 的 trim (Sage Weil)
osd: 如果 fs 返回 E2BIG,则强制新的 xattrs 进入 leveldb (#7779, Sage Weil)
osd: implement alignment on chunk sizes (Loic Dachary)
osd: improved backfill priorities (Sage Weil)
osd: improve journal shutdown (Ma Jianpeng, Mark Kirkwood)
osd: improve locking for KeyValueStore (Haomai Wang)
osd: improve locking in OpTracker (Pavan Rallabhandi, Somnath Roy)
osd: improve prioritization of recovery of degraded over misplaced objects (Sage Weil)
osd: improve tiering agent arithmetic (Zhiqiang Wang, Sage Weil, Samuel Just)
osd: include backend information in metadata reported to mon (Sage Weil)
osd: locking, sharding, caching improvements in FileStore’s FDCache (Somnath Roy, Greg Farnum)
osd: lttng tracepoints for filestore (Noah Watkins)
osd: 使 blacklist encoding deterministic (#9211 Sage Weil)
osd: 使 tiering 在 hit_sets 未启用时表现正常 (Sage Weil)
osd: 许多重要的 bug fixes (Samuel Just)
osd: 许多 core fixes (Samuel Just)
osd: 许多重要 fixes (#8231 #8315 #9113 #9179 #9293 #9294 #9326 #9453 #9481 #9482 #9497 #9574 Samuel Just)
osd: 标记具有 incomplete clones 的 pools (Sage Weil)
osd: misc erasure code plugin fixes (Loic Dachary)
osd: fast dispatch 的杂项 locking fixes (Samuel Just, Ma Jianpeng)
osd, mon: 添加 rocksdb 支持 (Xinxin Shu, Sage Weil)
osd, mon: start 时的 config sanity checks (Sage Weil, Joao Eduardo Luis)
osd, mon: 在 cluster health 和 PG state reporting 中区分“misplaced”和“degraded”对象 (Sage Weil)
osd, msgr: OSD ops 的 fast-dispatch (Greg Farnum, Samuel Just)
osd, objecter: resend ops on last_force_op_resend barrier; fix cache overlay op ordering (Sage Weil)
osd: preload erasure plugins (#9153 Loic Dachary)
osd: 防止 old rados clients 使用 tiered pools (#8714, Sage Weil)
osd: reduce OpTracker overhead (Somnath Roy)
osd: 重构一些 ErasureCode functionality into command parent class (Loic Dachary)
osd: 删除 obsolete classic scrub code (David Zafman)
osd: scrub PGs with invalid stats (Sage Weil)
osd: set configurable hard limits on object and xattr names (Sage Weil, Haomai Wang)
osd: set rollback_info_completed on create (#8625, Samuel Just)
osd: sharded threadpool to improve parallelism (Somnath Roy)
osd: shard OpTracker to improve performance (Somnath Roy)
osd: simple io prioritization for scrub (Sage Weil)
osd: simple scrub throttling (Sage Weil)
osd: simple snap trimmer throttle (Sage Weil)
osd: tests for bench command (Loic Dachary)
osd: quickly trim old EC objects; verify on scrub (Samuel Just)
osd: 使用 FIEMAP 来通知 copy_range (Haomai Wang)
osd: use local time for tiering decisions (Zhiqiang Wang)
osd: 较少使用 xfs hint (Ilya Dryomov)
osd: 在 load 时验证 erasure plugin version (Loic Dachary)
osd: 解决 journal code 中的 GCC 4.8 bug (Matt Benjamin)
pybind/rados: 修复 small timeouts (John Spray)
qa: xfstests updates (Ilya Dryomov)
rados: 允许从 stdin 读取 setxattr value (Sage Weil)
rados bench: 修复 arg order (Kevin Dalley)
rados: 从 getxattr command 中删除 gratuitous n (Sage Weil)
rados: 修复 bench write arithmetic (Jiangheng)
rados: 修复 df output 的 {read,write}_ops values (Sage Weil)
rbd: 添加 rbdmap pre- 和 post post- hooks, 修复 misc bugs (Dmitry Smirnov)
rbd-fuse: 允许暴露单个 image (Stephen Taylor)
rbd-fuse: 修复 unlink (Josh Durgin)
rbd: 改进 option default behavior (Josh Durgin)
rbd: parallelize rbd import, export (Jason Dillaman)
rbd: rbd-replay utility to replay captured rbd workload traces (Adam Crume)
rbd: 当 caching 启用时使用 write-back (not write-through) (Jason Dillaman)
removed mkcephfs (deprecated since dumpling)
rest-api: 修复 help (Ailing Zhang)
rgw: 添加 civetweb 作为 port 7490 上的 default frontent (#9013 Yehuda Sadeh)
rgw: 添加 --min-rewrite-stripe-size for object restriper (Yehuda Sadeh)
rgw: 为 global clusters 添加 powerdns hook for dynamic DNS (Wido den Hollander)
rgw: 添加 S3 bucket get location operation (Abhishek Lekshmanan)
rgw: 允许 S3 access key 中的 : (Roman Haritonov)
rgw: automatically align writes to EC pool (#8442, Yehuda Sadeh)
rgw: bucket link uses instance id (Yehuda Sadeh)
rgw: cache bucket info (Yehuda Sadeh)
rgw: cache decoded user info (Yehuda Sadeh)
rgw: check entity permission for put_metadata (#8428, Yehuda Sadeh)
rgw: 如果 target bucket 在不同的 pool 中,则 copy object data (#9039, Yehuda Sadeh)
rgw: do not try to authenticate CORS preflight requests (#8718, Robert Hubbard, Yehuda Sadeh)
rgw: fix admin create user op (#8583 Ray Lv)
rgw: fix civetweb URL decoding (#8621, Yehuda Sadeh)
rgw: fix swift CORS preflight request 时的 crash (#8586, Yehuda Sadeh)
rgw: fix log filename suffix (#9353 Alexandre Marangone)
rgw: fix memory leak following chunk read error (Yehuda Sadeh)
rgw: fix memory leaks (Andrey Kuznetsov)
rgw: fix multipart object attr regression (#8452, Yehuda Sadeh)
rgw: fix multipart upload (#8846, Silvain Munaut, Yehuda Sadeh)
rgw: fix radosgw-admin ‘show log’ command (#8553, Yehuda Sadeh)
rgw: fix removal of objects during object creation (Patrycja Szablowska, Yehuda Sadeh)
rgw: fix striping for copied objects (#9089, Yehuda Sadeh)
rgw: fix test for identify whether an object has a tail (#9226, Yehuda Sadeh)
rgw: fix URL decoding (#8702, Brian Rak)
rgw: fix URL escaping (Yehuda Sadeh)
rgw: fix usage (Abhishek Lekshmanan)
rgw: fix user manifest (Yehuda Sadeh)
rgw: fix when stripe size is not a multiple of chunk size (#8937, Yehuda Sadeh)
rgw: handle empty extra pool name (Yehuda Sadeh)
rgw: improve civetweb logging (Yehuda Sadeh)
rgw: improve delimited listing of bucket, misc fixes (Yehuda Sadeh)
rgw: improve -h (Abhishek Lekshmanan)
rgw: many fixes for civetweb (Yehuda Sadeh)
rgw: misc civetweb fixes (Yehuda Sadeh)
rgw: misc civetweb frontend fixes (Yehuda Sadeh)
rgw: object and bucket rewrite functions to allow restriping old objects (Yehuda Sadeh)
rgw: powerdns backend for global namespaces (Wido den Hollander)
rgw: prevent multiobject PUT race (Yehuda Sadeh)
rgw: send user manifest header (Yehuda Sadeh)
rgw: subuser creation fixes (#8587 Yehuda Sadeh)
rgw: use systemd-run from sysvinit script (JuanJose Galvez)
rpm: do not restart daemons on upgrade (Alfredo Deza)
rpm: misc packaging fixes for rhel7 (Sandon Van Ness)
rpm: split ceph-common from ceph (Sandon Van Ness)
systemd: initial systemd config files (Federico Simoncelli)
systemd: wrap started daemons in new systemd environment (Sage Weil, Dan Mick)
sysvinit: add support for non-default cluster names (Alfredo Deza)
sysvinit: less sensitive to failures (Sage Weil)
test_librbd_fsx: test krbd as well as librbd (Ilya Dryomov)
unit test improvements (Loic Dachary)
upstart: increase max open files limit (Sage Weil)
vstart.sh: fix/improve rgw support (Luis Pabon, Abhishek Lekshmanan)
v0.86
这是 Giant 的候选发布版本,希望能在接下来的一两周内发布。我们大约一个月前冻结了功能,从那时起只进行了稳定和 bug 修复(以及一些低风险增强)。在最后的冲刺中增加了一些新功能,但它们已经烘焙了很长时间,我们对此感觉良好。
主要项目包括
librados locking refactor to improve scaling and client performance
local recovery code (LRC) erasure code plugin to trade some additional storage overhead for improved recovery performance
LTTNG tracing framework, with initial tracepoints in librados, librbd, and the OSD FileStore backend
separate monitor audit log for all administrative commands
asynchronous monitor transaction commits to reduce the impact on monitor read requests while processing updates
low-level tool for working with individual OSD data stores for debugging, recovery, and testing
many MDS improvements (bug fixes, health reporting)
此版本中仍有一些已知的 bug,但没有严重到足以阻止发布的程度。总的来说,我们对稳定性非常满意,并期望最终的 Giant 版本非常可靠。
请在您的非生产集群上尝试此预览
值得注意的变更
buffer: 改进 rebuild_page_aligned (Ma Jianpeng)
build: 修复 CentOS 5 (Gerben Meijer)
build: 修复 alpha 上的构建 (Michael Cree, Dmitry Smirnov)
build: 修复 x32 的 yasm 检查 (Daniel Schepler, Sage Weil)
ceph-disk: 添加 Scientific Linux 支持 (Dan van der Ster)
ceph-fuse, libcephfs: 修复 trim_caps 中的 crash (John Spray)
ceph-fuse, libcephfs: 改进 cap trimming (John Spray)
ceph-fuse, libcephfs: 用于 rstat 的 virtual xattrs (Yan, Zheng)
ceph.conf: 更新 sample (Sebastien Han)
ceph.spec: 许多修复 (Erik Logtenberg, Boris Ranto, Dan Mick, Sandon Van Ness)
ceph_objectstore_tool: 大大改进和扩展的工具,用于脱机处理 OSD 数据存储 (David Zafman)
common: 添加 config diff admin socket command (Joao Eduardo Luis)
common: 添加 rwlock assertion checks (Yehuda Sadeh)
crush: 清理 CrushWrapper 接口 (Xioaxi Chen)
crush: 使 ruleset ids 唯一 (Xiaoxi Chen, Loic Dachary)
doc: 改进 manual install docs (Francois Lafont)
doc: 杂项更新 (John Wilkins, Loic Dachary, David Moreau Simard, Wido den Hollander. Volker Voigt, Alfredo Deza, Stephen Jahl, Dan van der Ster)
global: 即使在前台运行也写入 pid file (Alexandre Oliva)
hadoop: 改进 tests (Huamin Chen, Greg Farnum, John Spray)
journaler: 修复 locking (Zheng, Yan)
librados, osd: 在 failed notify 上返回 ETIMEDOUT (Sage Weil)
librados: 修复 read op timeout 时的 crash (#9362 Matthias Kiefer, Sage Weil)
librados: 修复 shutdown race (#9130 Sage Weil)
librados: 修复 acting set change 上的 watch reregistration (#9220 Samuel Just)
librados: 修复 watch/notify test (#7934 David Zafman)
librados: 给 Objecter 细粒度锁 (Yehuda Sadeh, Sage Weil, John Spray)
librados: lttng tracepoitns (Adam Crume)
librados: pybind: 修复存在 0 时的 reads (#9547 Mohammad Salehe)
librbd: 在 read requests 上强制执行 cache size (Jason Dillaman)
librbd: shutdown 期间处理 blacklisting (#9105 John Spray)
librbd: lttng tracepoints (Adam Crume)
lttng: tracing infrastructure (Noah Watkins, Adam Crume)
mailmap: 更新 (Loic Dachary, Abhishek Lekshmanan, M Ranga Swami Reddy)
many many coverity fixes, cleanups (Danny Al-Gaaf)
mds: 适应新的 Objecter locking,给所有 Contexts 类型 (John Spray)
mds: 添加 internal health checks (John Spray)
mds: 避免紧密的 mon reconnect loop (#9428 Sage Weil)
mds: 修复 killing sessions 时的 crash (#9173 John Spray)
mds: 修复 ctime updates (#9514 Greg Farnum)
mds: 修复 replay locking (Yan, Zheng)
mds: 修复 standby-replay cache trimming (#8648 Zheng, Yan)
mds: 给 perfcounters 有意义的名称 (Sage Weil)
mds: 改进 health reporting to monitor (John Spray)
mds: 改进 journal locking (Zheng, Yan)
mds: 使 max file recoveries 可调 (Sage Weil)
mds: 适当优先处理 file recovery (Sage Weil)
mds: refactor beacon, improve reliability (John Spray)
mds: 在 EBLACKLISTED 上重启 (John Spray)
mds: 跟踪 RECALL progress, report failure (#9284 John Spray)
mds: 在 journal write 期间更新 segment references (John Spray, Greg Farnum)
mds: 为 clients 使用 meaningful names (John Spray)
mds: 警告未撤销 caps 的 clients (Zheng, Yan, John Spray)
mon: 添加 'osd reweight-by-pg' command (Sage Weil, Guang Yang)
mon: 为所有 admin commands 添加 audit log (Joao Eduardo Luis)
mon: 添加 cluster fingerprint (Sage Weil)
mon: 在 pool create 时避免创建不必要的 rule (#9304 Loic Dachary)
mon: do not spam log (Aanchal Agrawal, Sage Weil)
mon: 修复 'osd perf' reported latency (#9269 Samuel Just)
mon: 修复 old MOSDBoot 的 double-free (Sage Weil)
mon: 修复 op write latency perfcounter (#9217 Xinxin Shu)
mon: 修复 startup 时的 store check (Joao Eduardo Luis)
mon: 使 paxos transaction commits asynchronous (Sage Weil)
mon: preload erasure plugins (#9153 Loic Dachary)
mon: 防止 cache pools 被 CephFS 直接使用 (#9435 John Spray)
mon: 使用 user-provided ruleset for replicated pool (Xiaoxi Chen)
mon: 在 startup 时验证 available disk space (#9502 Joao Eduardo Luis)
mon: 在 load 时验证 erasure plugin version (Loic Dachary)
msgr: 修复 logged address (Yongyue Sun)
osd: 考虑 hit_set_archive bytes (Sage Weil)
osd: 添加 ISA erasure plugin table cache (Andreas-Joachim Peters)
osd: 添加 prehash filestore directories 的能力 (Guang Yang)
osd: 为 erasure plugins 添加 feature bit (Loic Dachary)
osd: 添加 local recovery code (LRC) erasure plugin (Loic Dachary)
osd: cap hit_set size (#9339 Samuel Just)
osd: 在 unlink 上清除 FDCache (#8914 Loic Dachary)
osd: do not evict blocked objects (#9285 Zhiqiang Wang)
osd: 修复 ISA erasure alignment (Loic Dachary, Andreas-Joachim Peters)
osd: 修复 clone vs cache_evict bug (#8629 Sage Weil)
osd: 修复 duplicate backfill reservation 导致的 crash (#8863 Sage Weil)
osd: 修复 dead peer connection checks (#9295 Greg Farnum, Sage Weil)
osd: 修复 keyvaluestore scrub (#8589 Haomai Wang)
osd: 修复 keyvaluestore upgrade (Haomai Wang)
osd: 修复 upgrade 上的 min_read_recency_for_promote default (Zhiqiang Wang)
osd: fix mount/remount sync race (#9144 Sage Weil)
osd: 修复 backfill 上的 purged_snap initialization (Sage Weil, Samuel Just, Dan van der Ster, Florian Haas)
osd: 修复 object deletion 上的 race condition (#9480 Somnath Roy)
osd: 修复 cache tier 的 snap object writeback (#9054 Samuel Just)
osd: improve journal shutdown (Ma Jianpeng, Mark Kirkwood)
osd: improve locking in OpTracker (Pavan Rallabhandi, Somnath Roy)
osd: improve tiering agent arithmetic (Zhiqiang Wang, Sage Weil, Samuel Just)
osd: lttng tracepoints for filestore (Noah Watkins)
osd: 使 blacklist encoding deterministic (#9211 Sage Weil)
osd: 许多重要 fixes (#8231 #8315 #9113 #9179 #9293 #9294 #9326 #9453 #9481 #9482 #9497 #9574 Samuel Just)
osd: misc erasure code plugin fixes (Loic Dachary)
osd: preload erasure plugins (#9153 Loic Dachary)
osd: shard OpTracker to improve performance (Somnath Roy)
osd: use local time for tiering decisions (Zhiqiang Wang)
osd: 在 load 时验证 erasure plugin version (Loic Dachary)
rados: 修复 bench write arithmetic (Jiangheng)
rbd: parallelize rbd import, export (Jason Dillaman)
rbd: rbd-replay utility to replay captured rbd workload traces (Adam Crume)
rbd: 当 caching 启用时使用 write-back (not write-through) (Jason Dillaman)
rgw: 添加 S3 bucket get location operation (Abhishek Lekshmanan)
rgw: 添加 civetweb 作为 port 7490 上的 default frontent (#9013 Yehuda Sadeh)
rgw: 允许 S3 access key 中的 : (Roman Haritonov)
rgw: fix admin create user op (#8583 Ray Lv)
rgw: fix log filename suffix (#9353 Alexandre Marangone)
rgw: fix usage (Abhishek Lekshmanan)
rgw: many fixes for civetweb (Yehuda Sadeh)
rgw: subuser creation fixes (#8587 Yehuda Sadeh)
rgw: use systemd-run from sysvinit script (JuanJose Galvez)
unit test improvements (Loic Dachary)
vstart.sh: fix/improve rgw support (Luis Pabon, Abhishek Lekshmanan)
v0.85
这是 Giant 发布前的倒数第二个包含新功能的开发版本。在此周期内上线的重大项目包括 Matt Benjamin 的 messenger 重构(为 RDMA 支持奠定基础)、SanDisk 的性能改进系列(提高了 SSD 上的性能)、对我们新的基于 civetweb 的独立 RGW 前端的许多改进,以及一个新的 'osd blocked-by' mon 命令,允许管理员轻松识别哪些 OSD 阻塞 peering progress。另一个重大变化是 OSD 和 Monitor 现在区分“misplaced”和“degraded”对象:后者意味着副本数量少于我们想要的数量,而前者仅意味着它们未存储在我们希望它们所在的集群位置。
另外值得注意的是 librbd 的一项更改,默认启用了客户端缓存。这与另一个选项相结合,使缓存变为 write-through,直到观察到“flush”操作:这意味着 librbd 用户(通常是 VM 客户机 OS)支持 barrier 和 flush,并且缓存可以安全地切换到回写模式而不会危及数据安全或完整性。长期以来,建议启用这些选项(例如,在 OpenStack 环境中),但直到现在它都不是默认设置。
我们已经冻结了即将到来的 Giant 版本的树,下一个开发版本将是包含最后一批新功能的发布候选版本。
升级
librbd 的客户端缓存现在默认启用(rbd cache = true)。还启用了一个安全选项(rbd cache writethrough until flush = true),以便在库观察到“flush”命令之前不使用回写缓存,这表明 librbd 用户正在将该操作从客户机 VM 传递。当与不支持 flush 的旧版本 qemu 一起使用时,这可以避免潜在的数据丢失。
leveldb_write_buffer_size = 32*1024*1024 = 33554432 // 32MB leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB leveldb_block_size = 64*1024 = 65536 // 64KB leveldb_compression = false leveldb_log = “”
OSD 仍将保持以下 osd-specific defaults
leveldb_log = “”
‘rados getxattr …’ 命令过去会向 attr value 添加一个多余的换行符;现在不会了。
值得注意的变更
ceph-disk: 不要无意中创建目录 (Owne Synge)
ceph-disk: 修复 dmcrypt 支持 (Sage Weil)
ceph-disk: linter 清理,logging 改进 (Alfredo Deza)
ceph-disk: 在 'ceph-disk list' 输出中显示有关 dmcrypt 的信息 (Sage Weil)
ceph-disk: 使用 partition type UUIDs 和 blkid (Sage Weil)
ceph: 修复非默认集群名称 (#8944, Dan Mick)
doc: 文档新的上游 wireshark dissector (Kevin Cox)
doc: 许多安装文档更新 (John Wilkins)
librados: 修复 error paths 中的 lock leaks (#9022, Paval Rallabhandi)
librados: 修复 pool existence check (#8835, Pavan Rallabhandi)
librbd: 默认启用 caching (Sage Weil)
librbd: 修复 using clone of flattened image 时的 crash (#8845, Josh Durgin)
librbd: 根据 id 存储和检索 snapshot metadata (Josh Durgin)
mailmap: 许多更新 (Loic Dachary)
mds: 添加用于 snapshot creation/deletion 的 min/max UID (#9029, Wido den Hollander)
misc build errors/warnings for Fedora 20 (Boris Ranto)
mon: 添加 'osd blocked-by' command 以轻松查看哪些 OSD 阻塞 peering progress (Sage Weil)
mon: 为 paxos operations 添加 perfcounters (Sage Weil)
mon: 如果需要创建 default EC profile (Loic Dachary)
mon: 修复 loopback messages 和 paxos timeouts 时的 crash (#9062, Sage Weil)
mon: 修复在添加 OSD 之前调整 pg_num 时的 divide by zero (#9101, Sage Weil)
mon: 修复 session reset 后偶尔的内存泄漏 (#9176, Sage Weil)
mon: 修复 ruleset/ruleid bugs (#9044, Loic Dachary)
mon: 使 usage dumps 以 bytes 为单位,而不是 kB (Sage Weil)
mon: 防止使用 'osd setmaxosd …' 隐式销毁 OSD (#8865, Anand Bhat)
mon: 验证 Paxos round 结束时所有 quorum members 是否contiguous (#9053, Sage Weil)
msgr: 重构以 cleanly separate SimpleMessenger implemenetation,转向 Connection-based calls (Matt Benjamin, Sage Wei)
objectstore: 清理 key/value backends 的 KeyValueDB 接口 (Sage Weil)
osd: 为 cache agent 添加 local_mtime (Zhiqiang Wang)
osd: 为 KeyValueStore backend 添加 superblock (Haomai Wang)
osd: 添加对 Intel ISA-L erasure code library 的支持 (Andreas-Joachim Peters)
osd: do not skip promote for write-ordered reads (#9064, Samuel Just)
osd: 修复 blacklisted clients 的 ambigous encoding order (#9211, Sage Weil)
osd: 修复 snapshotted objects 的 cache flush corner case (#9054, Samuel Just)
osd: 修复 old/obsolete subop replies 的 discard (#9259, Samuel Just)
osd: 修复 previous intervals 的 peer messages discard (Greg Farnum)
osd: 修复 EMFILE 上的 open fds dump (Sage Weil)
osd: 修复 journal dump (Ma Jianpeng)
osd: 修复 mon feature bit requirements bug 和 resulting log spam (Sage Weil)
osd: 修复 EC recovery 期间 recovery chunk size usage (Ma Jianpeng)
osd: 修复 EC pools 的 recovery reservation deadlock (Samuel Just)
osd: 修复 overwriting chained xattrs 时的 old xattrs removal (Ma Jianpeng)
osd: 修复 PG split 上的 requesting queueing (Samuel Just)
osd: 如果 fs 返回 E2BIG,则强制新的 xattrs 进入 leveldb (#7779, Sage Weil)
osd: implement alignment on chunk sizes (Loic Dachary)
osd: improve prioritization of recovery of degraded over misplaced objects (Sage Weil)
osd: locking, sharding, caching improvements in FileStore’s FDCache (Somnath Roy, Greg Farnum)
osd: 许多重要的 bug fixes (Samuel Just)
osd, mon: 添加 rocksdb 支持 (Xinxin Shu, Sage Weil)
osd, mon: 在 cluster health 和 PG state reporting 中区分“misplaced”和“degraded”对象 (Sage Weil)
osd: 重构一些 ErasureCode functionality into command parent class (Loic Dachary)
osd: set rollback_info_completed on create (#8625, Samuel Just)
rados: 允许从 stdin 读取 setxattr value (Sage Weil)
rados: 从 getxattr command 中删除 gratuitous n (Sage Weil)
rgw: 添加 --min-rewrite-stripe-size for object restriper (Yehuda Sadeh)
rgw: 为 global clusters 添加 powerdns hook for dynamic DNS (Wido den Hollander)
rgw: 如果 target bucket 在不同的 pool 中,则 copy object data (#9039, Yehuda Sadeh)
rgw: do not try to authenticate CORS preflight requests (#8718, Robert Hubbard, Yehuda Sadeh)
rgw: fix civetweb URL decoding (#8621, Yehuda Sadeh)
rgw: fix removal of objects during object creation (Patrycja Szablowska, Yehuda Sadeh)
rgw: fix striping for copied objects (#9089, Yehuda Sadeh)
rgw: fix test for identify whether an object has a tail (#9226, Yehuda Sadeh)
rgw: fix when stripe size is not a multiple of chunk size (#8937, Yehuda Sadeh)
rgw: improve civetweb logging (Yehuda Sadeh)
rgw: misc civetweb frontend fixes (Yehuda Sadeh)
sysvinit: add support for non-default cluster names (Alfredo Deza)
v0.84
下一个 Ceph 开发版本来了!此版本包含几个重要的项目,包括对 journaling 的 MDS 改进、删除 CephFS 文件系统(并命名它)的能力、对 tiered pools 的几个 mon 清理、几个 OSD 性能分支、一个新的“read forward”RADOS 缓存模式、一个 prototype Kinetic OSD 后端,以及各种 radosgw 改进(特别是新的独立 civetweb 前端)。还有无数 OSD bug 修复。Giant 版本即将在下个月发布,情况看起来相当不错。
升级
monitor 上的
*_kb perf计数器已被删除。它们被一组新的*_bytes计数器取代(例如,cluster_osd_kb被cluster_osd_bytes取代)。JSON dumps for pool stats 中的
rd_kb和wr_kb字段(通过ceph df detail -f json-pretty和相关命令访问)已被相应的*_bytes字段取代。类似地,total_space、total_used和total_avail字段被total_bytes、total_used_bytes和total_avail_bytes字段取代。rados df --format=json 输出中的
read_bytes和write_bytes字段之前错误地报告了 ops;现在已修复。rados df --format=json 输出之前包含
read_kb和write_kb字段;这些已被删除。请改用read_bytes和write_bytes(如果合适,除以 1024)。
显著更改
ceph-conf: 在退出时刷新 log (Sage Weil)
ceph-dencoder: 重构构建以限制依赖项 (Sage Weil, Dan Mick)
ceph.spec: 拆分 ceph-common package,其他修复 (Sandon Van Ness)
ceph_test_librbd_fsx: 修复 RNG,使其具有确定性 (Ilya Dryomov)
cephtool: 重构和改进 CLI tests (Joao Eduardo Luis)
client: 改进的 MDS session dumps (John Spray)
common: 修复 dup log messages (#9080, Sage Weil)
crush: 在 dump 中包含新的 tunables (Sage Weil)
crush: 仅在 rule 被使用时才需要 rule features (#8963, Sage Weil)
crushtool: 将输出发送到 stdout,而不是 stderr (Wido den Hollander)
fix i386 builds (Sage Weil)
fix struct vs class inconsistencies (Thorsten Behrens)
hadoop: 更新 hadoop tests 以适应 Hadoop 2.0 (Haumin Chen)
librbd, ceph-fuse: 减少 cache flush overhead (Haomai Wang)
librbd: 修复 opening image 时的 error path (#8912, Josh Durgin)
mds: 添加 file system name, enabled flag (John Spray)
mds: boot refactor, cleanup (John Spray)
mds: 修复 standby-replay 的 journal conversion (John Spray)
mds: separate inode recovery queue (John Spray)
mds: session ls, evict commands (John Spray)
mds: 在 async thread 中提交 log events (Yan, Zheng)
mds: 使用 client-provided timestamp for user-visible file metadata (Yan, Zheng)
mds: 在 load 和 save 上验证 journal header (John Spray)
misc build fixes for OS X (John Spray)
misc integer size cleanups (Kevin Cox)
mon: 添加 get-quota commands (Joao Eduardo Luis)
mon: 默认不创建 file system (John Spray)
mon: 修复 'ceph df' available space 的输出 (Xiaoxi Chen)
mon: 修复没有 auth keys 时的 bug (#8851, Joao Eduardo Luis)
mon: 修复 MForward 的 compat version (Joao Eduardo Luis)
mon: 限制 tiered pools 的一些 pool properties (Joao Eduardo Luis)
msgr: fast dispatch 的杂项 locking fixes (#8891, Sage Weil)
osd: 添加 'dump_reservations' admin socket command (Sage Weil)
osd: 添加 READFORWARD caching mode (Luis Pabon)
osd: 为 KeyValueStore 添加 header cache (Haomai Wang)
osd: 添加基于 Seagate Kinetic 的 prototype KineticStore (Josh Durgin)
osd: 允许在运行时调整 map cache size (Sage Weil)
osd: 通过 ref 传递一些东西以避免 refcounting overhead (Somnath Roy)
osd: 避免共享不 durable 的 PG info (Samuel Just)
osd: 在 osd up/down 时清除 slow request latency info (Sage Weil)
osd: 修复 PG object listing/ordering bug (Guang Yang)
osd: 修复 tiering 时的 PG stat errors (#9082, Sage Weil)
osd: 修复 long object names 和 rename 时的 bug (#8701, Sage Weil)
osd: 修复 cache full -> not full requeueing (#8931, Sage Weil)
osd: 修复 old OSD instances 的 messages gating (Greg Farnum)
osd: 修复 collection_move_rename, lock ordering 的 memstore bugs (Sage Weil)
osd: improve locking for KeyValueStore (Haomai Wang)
osd: 使 tiering 在 hit_sets 未启用时表现正常 (Sage Weil)
osd: 标记具有 incomplete clones 的 pools (Sage Weil)
osd: fast dispatch 的杂项 locking fixes (Samuel Just, Ma Jianpeng)
osd: 防止 old rados clients 使用 tiered pools (#8714, Sage Weil)
osd: reduce OpTracker overhead (Somnath Roy)
osd: set configurable hard limits on object and xattr names (Sage Weil, Haomai Wang)
osd: quickly trim old EC objects; verify on scrub (Samuel Just)
osd: 解决 journal code 中的 GCC 4.8 bug (Matt Benjamin)
rados bench: 修复 arg order (Kevin Dalley)
rados: 修复 df output 的 {read,write}_ops values (Sage Weil)
rbd: 添加 rbdmap pre- 和 post post- hooks, 修复 misc bugs (Dmitry Smirnov)
rbd: 改进 option default behavior (Josh Durgin)
rgw: automatically align writes to EC pool (#8442, Yehuda Sadeh)
rgw: fix swift CORS preflight request 时的 crash (#8586, Yehuda Sadeh)
rgw: fix memory leaks (Andrey Kuznetsov)
rgw: fix multipart upload (#8846, Silvain Munaut, Yehuda Sadeh)
rgw: improve -h (Abhishek Lekshmanan)
rgw: improve delimited listing of bucket, misc fixes (Yehuda Sadeh)
rgw: misc civetweb fixes (Yehuda Sadeh)
rgw: powerdns backend for global namespaces (Wido den Hollander)
systemd: initial systemd config files (Federico Simoncelli)
v0.83
另一个 Ceph 开发版本!这是一个较长的周期,因此在这一轮中进行了大量的 bug 修复和稳定化。还有一堆针对 RPM 发行版(RHEL/CentOS、Fedora 和 SUSE)和 systemd 的打包修复。我们还添加了 Sebastien Ponce 的新 librados-striper 库,它为应用程序提供了一个通用的条带化 API。
升级
实验性 keyvaluestore-dev OSD 后端有一个磁盘格式更改,阻止了现有 OSD 数据升级。这仅影响开发人员和测试人员。
mon-specific 和 osd-specific leveldb 选项已被删除。从现在开始,用户应该使用 leveldb_* 通用选项并将选项添加到其配置文件的相应部分。Monitor 仍将保持以下 monitor-specific defaults
leveldb_write_buffer_size = 32*1024*1024 = 33554432 // 32MB leveldb_cache_size = 512*1024*1204 = 536870912 // 512MB leveldb_block_size = 64*1024 = 65536 // 64KB leveldb_compression = false leveldb_log = “”
OSD 仍将保持以下 osd-specific defaults
leveldb_log = “”
Notable Changes
ceph-disk: 修复 dmcrypt 支持 (Stephen Taylor)
cephtool: 修复 help (Yilong Zhao)
cephtool: test cleanup (Joao Eduardo Luis)
doc: librados example fixes (Kevin Dalley)
doc: 许多文档更新 (John Wilkins)
doc: 更新 erasure docs (Loic Dachary, Venky Shankar)
filestore: 禁用使用 XFS hint (在旧内核上有 bug) (Samuel Just)
filestore: 修复 xattr spillout (Greg Farnum, Haomai Wang)
keyvaluestore: header cache (Haomai Wang)
librados_striper: librados 的 striping library (Sebastien Ponce)
libs3: 更新到最新 (Danny Al-Gaaf)
log: fix derr level (Joao Eduardo Luis)
logrotate: 修复 ubuntu 上的 osd log rotation (Sage Weil)
mds: 修复由 ACLs 触发的 xattr bug (Yan, Zheng)
misc memory leaks, cleanups, fixes (Danny Al-Gaaf, Sahid Ferdjaoui)
misc suse fixes (Danny Al-Gaaf)
misc word size fixes (Kevin Cox)
mon: 删除 mon- 和 osd- specific leveldb options (Joao Eduardo Luis)
mon: ec pool profile fixes (Loic Dachary)
mon: 修复 health down messages (Sage Weil)
mon: 修复 quorum feature check (#8738, Greg Farnum)
mon: 'osd crush reweight-subtree …' (Sage Weil)
mon, osd: 放松 client EC support requirements (Sage Weil)
mon: some instrumentation (Sage Weil)
objecter: 标记被 caching 重定向的操作 (Sage Weil)
osd: 清理 shard_id_t, shard_t (Loic Dachary)
osd: 修复 connection reconnect race (Greg Farnum)
osd: 修复 dumps (Joao Eduardo Luis)
osd: 修复 erasure-code lib initialization (Loic Dachary)
osd: 修复 extent normalization (Adam Crume)
osd: 修复 loopback msgr issue (Ma Jianpeng)
osd: 修复 LSB release parsing (Danny Al-Gaaf)
osd: improved backfill priorities (Sage Weil)
osd: 许多 core fixes (Samuel Just)
osd, mon: start 时的 config sanity checks (Sage Weil, Joao Eduardo Luis)
osd: sharded threadpool to improve parallelism (Somnath Roy)
osd: simple io prioritization for scrub (Sage Weil)
osd: simple scrub throttling (Sage Weil)
osd: tests for bench command (Loic Dachary)
osd: 较少使用 xfs hint (Ilya Dryomov)
pybind/rados: 修复 small timeouts (John Spray)
qa: xfstests updates (Ilya Dryomov)
rgw: cache bucket info (Yehuda Sadeh)
rgw: cache decoded user info (Yehuda Sadeh)
rgw: fix multipart object attr regression (#8452, Yehuda Sadeh)
rgw: fix radosgw-admin ‘show log’ command (#8553, Yehuda Sadeh)
rgw: fix URL decoding (#8702, Brian Rak)
rgw: handle empty extra pool name (Yehuda Sadeh)
rpm: do not restart daemons on upgrade (Alfredo Deza)
rpm: misc packaging fixes for rhel7 (Sandon Van Ness)
rpm: split ceph-common from ceph (Sandon Van Ness)
systemd: wrap started daemons in new systemd environment (Sage Weil, Dan Mick)
sysvinit: less sensitive to failures (Sage Weil)
upstart: increase max open files limit (Sage Weil)
v0.82
这是 Firefly 之后的第二个开发版本。它包括一系列 bug 修复和一些可用性改进。有一些 MDS 调试和诊断工具、改进的 'ceph df',以及一些 OSD 后端重构和清理。
值得注意的变更
ceph-brag: 添加 tox tests (Alfredo Deza)
common: perfcounters 现在使用 atomics 并且速度更快 (Sage Weil)
doc: CRUSH 更新 (John Wilkins)
doc: osd primary affinity (John Wilkins)
doc: pool quotas (John Wilkins)
doc: pre-flight doc 改进 (Kevin Dalley)
doc: 切换到不受限制的字体 (Ross Turk)
doc: 更新 openstack docs (Josh Durgin)
fix hppa arch build (Dmitry Smirnov)
init-ceph: 在 crush 或 mount failure 时继续启动其他 daemons (#8343, Sage Weil)
keyvaluestore: 修复 hint crash (#8381, Haomai Wang)
libcephfs-java: against older JNI headers 构建 (Greg Farnum)
librados: 修复 rados_pool_list bounds checks (Sage Weil)
mds: cephfs-journal-tool (John Spray)
mds: 改进 Journaler on-disk format (John Spray)
mds, libcephfs: 使用 client timestamp for mtime/ctime (Sage Weil)
mds: 杂项 encoding 改进 (John Spray)
mds: 杂项 fixes for multi-mds (Yan, Zheng)
mds: OPTracker integration, dump_ops_in_flight (Greg Farnum)
misc cleanup (Christophe Courtaut)
mon: 修复 default replication pool ruleset choice (#8373, John Spray)
mon: 修复 set cache_target_full_ratio (#8440, Geoffrey Hartz)
mon: 在 df output 中包含 per-pool 'max avail' (Sage Weil)
mon: 防止 EC pools 被 cephfs 使用 (Joao Eduardo Luis)
mon: 当 auto-marked out OSDs 重启时恢复原始 weight (Sage Weil)
mon: 使用 msg header tid for MMonGetVersionReply (Ilya Dryomov)
osd: 修复 OSD shutdown 期间的 bogus assert (Sage Weil)
osd: 修复 clone deletion case (#8334, Sam Just)
osd: 修复 filestore removal corner case (#8332, Sam Just)
osd: 修复 waiting for osdmap 时的 hang (#8338, Greg Farnum)
osd: 修复 peering 期间的 interval check corner case (#8104, Sam Just)
osd: 修复 journal-less operation (Sage Weil)
osd: include backend information in metadata reported to mon (Sage Weil)
rest-api: 修复 help (Ailing Zhang)
rgw: check entity permission for put_metadata (#8428, Yehuda Sadeh)
v0.81
这是 Firefly 之后的第一个开发版本。它包括了我们在稳定化期间推迟合并的大量工作。有许多新功能,以及一些正在烘焙的修复,然后才会向后移植。
升级
CephFS 对传统 anchor table 的支持最终被删除。在 firefly 之前创建文件系统的用户应该确保在升级之前修改具有多个 hard links 的 inode,以确保 backtrace 正确写入。例如
sudo find /mnt/cephfs -type f -links +1 -exec touch \{\} \;
禁止无意义的“tier cache-mode”转换。从现在开始,“writeback”只能转换为“forward”,而“forward”可以转换为 1) “writeback”(如果有脏对象),或者 2) “any”(如果没有脏对象)。
值得注意的变更
bash completion 改进 (Wido den Hollander)
brag: 修复,改进 (Loic Dachary)
ceph-disk: 处理 corrupt volumes (Stuart Longlang)
ceph-disk: 根据需要进行 partprobe (Eric Eastman)
ceph-fuse, libcephfs: 用于处理 session resets, timeouts 的 asok hooks (Yan, Zheng)
ceph-fuse, libcephfs: 改进 traceless reply handling (Sage Weil)
clang build fixes (John Spray, Danny Al-Gaaf)
config: 支持 G, M, K, etc. 后缀 (Joao Eduardo Luis)
coverity cleanups (Danny Al-Gaaf)
doc: cache tiering (John Wilkins)
doc: keystone integration docs (John Wilkins)
doc: 更新 simple configuration guides (John Wilkins)
libcephfs-java: 修复 gcj-jdk build (Dmitry Smirnov)
librbd: 检查 cache invalidate 上的 error code (Josh Durgin)
librbd: 用于 kernel map/unmap/showmapped 的新 libkrbd library (Ilya Dryomov)
Makefile: 修复 out of source builds (Stefan Eilemann)
mds: multi-mds fixes (Yan, Zheng)
mds: 删除 legacy anchor table (Yan, Zheng)
mds: 删除 legacy discover ino (Yan, Zheng)
monclient: 修复 hang (Sage Weil)
mon: 防止 nonsensical cache-mode transitions (Joao Eduardo Luis)
msgr: 发送 (大部分) 消息时避免 big lock (Greg Farnum)
osd: 限制 PGs 之间的 osdmap epoch skew (Sage Weil)
osd: cache tier flushing fixes for snapped objects (Samuel Just)
osd: 修复 agent early finish looping (David Zafman)
osd: 修复 flush vs OpContext (Samuel Just)
osd: 修复 MarkMeDown 和其他 shutdown races (Sage Weil)
osd: 修复 scrub vs cache bugs (Samuel Just)
osd: 修复 hitsets 的 trim (Sage Weil)
osd, msgr: OSD ops 的 fast-dispatch (Greg Farnum, Samuel Just)
osd, objecter: resend ops on last_force_op_resend barrier; fix cache overlay op ordering (Sage Weil)
osd: 删除 obsolete classic scrub code (David Zafman)
osd: scrub PGs with invalid stats (Sage Weil)
osd: simple snap trimmer throttle (Sage Weil)
osd: 使用 FIEMAP 来通知 copy_range (Haomai Wang)
rbd-fuse: 允许暴露单个 image (Stephen Taylor)
rbd-fuse: 修复 unlink (Josh Durgin)
removed mkcephfs (deprecated since dumpling)
rgw: bucket link uses instance id (Yehuda Sadeh)
rgw: fix memory leak following chunk read error (Yehuda Sadeh)
rgw: fix URL escaping (Yehuda Sadeh)
rgw: fix user manifest (Yehuda Sadeh)
rgw: object and bucket rewrite functions to allow restriping old objects (Yehuda Sadeh)
rgw: prevent multiobject PUT race (Yehuda Sadeh)
rgw: send user manifest header (Yehuda Sadeh)
test_librbd_fsx: test krbd as well as librbd (Ilya Dryomov)