v0.92 发布

sage

这是在 Hammer 之前的最后一次新功能更新。主要包括 OSD 对象上的附加校验和、缓存层中的代理读取、RBD 中的镜像锁定、优化的 OSD 事务和复制消息,以及大量的 RGW 和 MDS 错误修复。

升级

  • 实验性的 ‘keyvaluestore-dev’ OSD 后端已重命名为 ‘keyvaluestore’(为了简单起见),并标记为实验性的。要启用此未经测试的功能并确认您了解它未经测试且可能破坏数据,您需要在 ceph.conf 中添加以下内容:

    enable experimental unrecoverable data corrupting features = keyvaluestore

  • 以下 librados C API 函数调用接受一个 ‘flags’ 参数,其值现在被正确解释:

    rados_write_op_operate() rados_aio_write_op_operate() rados_read_op_operate() rados_aio_read_op_operate()

    这些标志没有被正确地从 librados 常量转换为内部值。现在它们被正确转换了。应审核所有将标志传递给这些方法的代码,以确保它们使用正确的 LIBRADOS_OP_FLAG_* 常量。

  • ‘rados’ CLI 的 ‘copy’ 和 ‘cppool’ 命令现在使用 copy-from 操作,这意味着最新的 CLI 无法对 pre-firefly OSD 运行这些命令。

  • librados watch/notify API 现在包含一个 watch_flush() 操作,用于刷新异步通知操作队列。在 rados_shutdown() 之前,任何 watch/notify 用户都应调用此操作。

值得注意的更改

  • 添加实验性功能选项 (Sage Weil)
  • 构建:修复 ‘make check’ 竞争条件 (#10384 Loic Dachary)
  • 构建:修复缺少 libkeyutils 时的 pkg 名称 (Pankag Garg, Ken Dreyer)
  • ceph:使 ‘ceph -s’ 显示排序后的 PG 状态计数 (Sage Weil)
  • ceph:使 ‘ceph tell mon.* version’ 正常工作 (Mykola Golub)
  • ceph-monstore-tool:修复/改进 CLI (Joao Eduardo Luis)
  • ceph:在 ‘ceph osd tree’ 中显示 primary-affinity (Mykola Golub)
  • common:添加 TableFormatter (Andreas Peters)
  • common:检查 syncfs() 返回代码 (Jianpeng Ma)
  • doc:不要建议危险的 XFS nobarrier 选项 (Dan van der Ster)
  • doc:杂项更新 (Nilamdyuti Goswami, John Wilkins)
  • install-deps.sh:在 root 用户下不需要 sudo (Loic Dachary)
  • libcephfs:修复 dirfrag 修剪 (#10387 Yan, Zheng)
  • libcephfs:修复挂载超时 (#10041 Yan, Zheng)
  • libcephfs:修复测试 (#10415 Yan, Zheng)
  • libcephfs:修复卸载后的 use-afer-free (#10412 Yan, Zheng)
  • libcephfs:在客户端元数据中包含 ceph 和 git 版本 (Sage Weil)
  • librados:添加 watch_flush() 操作 (Sage Weil, Haomai Wang)
  • librados:避免在 getxattr、read 上进行 memcpy (Jianpeng Ma)
  • librados:通过池 ID 创建 ioctx (Jason Dillaman)
  • librados:在快速分发中执行通知完成 (Sage Weil)
  • librados:删除阴影变量 (Kefu Chain)
  • librados:从 C API 转换 op 标志 (Matthew Richards)
  • librbd:区分 R/O 与 R/W 功能 (Jason Dillaman)
  • librbd:独占镜像锁定 (Jason Dillaman)
  • librbd:修复写入与导入竞争条件 (#10590 Jason Dillaman)
  • librbd:优雅地处理已删除/重命名的池 (#10270 Jason Dillaman)
  • mds:用于获取子树映射的 asok 命令 (John Spray)
  • mds:constify MDSCacheObjects (John Spray)
  • misc:各种 valgrind 修复和清理 (Danny Al-Gaaf)
  • mon:修复 standby MDS 的 ‘mds fail’ (John Spray)
  • mon:修复存储的 monmap 编码 (#5203 Xie Rui)
  • mon:实现 ‘fs reset’ 命令 (John Spray)
  • mon:在提升 standby 时尊重 down 标志 (John Spray)
  • mount.ceph:修复 suprious 错误消息 (#10351 Yan, Zheng)
  • msgr:async:许多修复、单元测试 (Haomai Wang)
  • msgr:simple:在失败时重试绑定端口 (#10029 Wido den Hollander)
  • osd:将 fadvise 标志添加到 ObjectStore API (Jianpeng Ma)
  • osd:添加 get_latest_osdmap asok 命令 (#9483 #9484 Mykola Golub)
  • osd:校验和错误时,全对象读取出现 EIO (Sage Weil)
  • osd:filejournal:不缓存未使用 direct IO 时的 journal (Jianpeng Ma)
  • osd:修复 ioprio 选项 (Mykola Golub)
  • osd:修复 scrub 延迟错误 (#10693 Samuel Just)
  • osd:修复 watch 重连竞争条件 (#10441 Sage Weil)
  • osd:处理带有快照的无操作写入 (#10262 Sage Weil)
  • osd:journal:修复启用 direct IO 时的 journal 清零 (Xie Rui)
  • osd:keyvaluestore:清理死代码 (Ning Yao)
  • osd, mds:‘ops’ 作为 asok 上 ‘dump_ops_in_flight’ 的简写 (Sage Weil)
  • osd:memstore:修复大小限制 (Xiaoxi Chen)
  • osd:杂项 scrub 修复 (#10017 Loic Dachary)
  • osd:新的优化的 ObjectStore::Transaction 编码 (Dong Yuan)
  • osd:优化 filter_snapc (Ning Yao)
  • osd:使用 unordered_map 优化 WBThrottle 映射 (Ning Yao)
  • osd:在缓存提升期间代理读取 (Zhiqiang Wang)
  • osd:支持代理读取 (Zhiqiang Wang)
  • osd:删除旧的经典 scrub 代码 (Sage Weil)
  • osd:删除 MOSDSubOp 中的未使用字段 (Xiaoxi Chen)
  • osd:将 MOSDSubOp 消息替换为更简单、优化的 MOSDRepOp (Xiaoxi Chen)
  • osd:在 scrub、write_full 上存储全对象校验和 (Sage Weil)
  • osd:在默认情况下启用 XFS extsize ioctl 前,验证内核是否足够新 (Sage Weil)
  • rados:为 copy、cppool 使用 copy-from 操作 (Sage Weil)
  • rgw:更改 multipart 上传 ID magic (#10271 Yehuda Sadeh)
  • rgw:解码 http 查询参数修正 (#10271 Yehuda Sadeh)
  • rgw:修复内容长度检查 (#10701 Axel Dunkel, Yehuda Sadeh)
  • rgw:修复 swift 中的部分 GET (#10553 Yehuda Sadeh)
  • rgw:修复关闭 (#10472 Yehuda Sadeh)
  • rgw:在 get ACL 请求上包含 XML ns (#10106 Yehuda Sadeh)
  • rgw:杂项修复 (#10307 Yehuda Sadeh)
  • rgw:仅跟踪我们写入的对象的清理 (#10311 Yehuda Sadeh)
  • rgw:调整错误代码 (#10329 #10334 Yehuda Sadeh)
  • rgw:对 multipart abort 使用 gc (#10445 Aaron Bassett, Yehuda Sadeh)
  • sysvinit:修复 ‘stop’ 中的竞争条件 (#10389 Loic Dachary)
  • test:修复 bufferlist 测试 (Jianpeng Ma)
  • tests:改进基于 docker 的测试 (Loic Dachary)

获取 Ceph