注意

本文档适用于 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

  • 请按以下顺序升级守护程序

    1. 监视器

    2. OSD

    3. 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_kbcluster_osd_bytes 取代)。

  • JSON dumps for pool stats 中的 rd_kbwr_kb 字段(通过 ceph df detail -f json-pretty 和相关命令访问)已被相应的 *_bytes 字段取代。类似地,total_spacetotal_usedtotal_avail 字段被 total_bytestotal_used_bytestotal_avail_bytes 字段取代。

  • rados df --format=json 输出中的 read_byteswrite_bytes 字段之前错误地报告了 ops;现在已修复。

  • rados df --format=json 输出之前包含 read_kbwrite_kb 字段;这些已被删除。请改用 read_byteswrite_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_kbcluster_osd_bytes 取代)。

  • JSON dumps for pool stats 中的 rd_kbwr_kb 字段(通过 ceph df detail -f json-pretty 和相关命令访问)已被相应的 *_bytes 字段取代。类似地,total_spacetotal_usedtotal_avail 字段被 total_bytestotal_used_bytestotal_avail_bytes 字段取代。

  • rados df --format=json 输出中的 read_byteswrite_bytes 字段之前错误地报告了 ops;现在已修复。

  • rados df --format=json 输出之前包含 read_kbwrite_kb 字段;这些已被删除。请改用 read_byteswrite_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)

由 Ceph 基金会为您呈现

Ceph 文档是由非营利性 Ceph 基金会 资助和托管的社区资源。如果您希望支持这项工作和我们的其他努力,请考虑 立即加入