v0.85 发布

sage

这是 Giant 之前的最后一个开发版本,包含新的功能。本周期的大项包括 Matt Benjmain 贡献的消息传递重构,为 RDMA 支持奠定基础,SanDisk 贡献的性能改进系列,提高了 SSD 上的性能,大量改进了我们新的独立 civetweb 前端 RGW,以及一个新的 ‘osd blocked-by’ mon 命令,允许管理员轻松识别哪些 OSD 正在阻止对等进度。另一个重大变化是 OSD 和 Monitor 现在区分“错位”和“降级”对象:“降级”意味着副本少于我们想要的数量,而“错位”仅仅意味着它们没有存储在我们想要的位置。

值得注意的是,librbd 的一项更改默认启用了客户端缓存。这与另一个选项结合使用,该选项使缓存直到观察到“刷新”操作才变为写通:这意味着 librbd 用户(通常是 VM 客户操作系统)支持屏障和刷新,并且在不损害数据安全性和完整性的情况下,缓存可以安全地切换到写回模式。长期以来,建议启用这些选项(例如,在 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 特定的默认值

    leveldb_log = “”

  • ‘rados getxattr ...’ 命令过去会在 attr 值中添加一个多余的换行符;现在不再添加。

值得注意的更改

  • ceph-disk: 不要无意中创建目录 (Owne Synge)
  • ceph-disk: 修复 dmcrypt 支持 (Sage Weil)
  • ceph-disk: linter 清理,日志改进 (Alfredo Deza)
  • ceph-disk: 在 ‘ceph-disk list’ 输出中显示有关 dmcrypt 的信息 (Sage Weil)
  • ceph-disk: 使用分区类型 UUID 和 blkid (Sage Weil)
  • ceph: 修复非默认集群名称 (#8944, Dan Mick)
  • doc: 记录新的上游 wireshark 解码器 (Kevin Cox)
  • doc: 许多安装文档更新 (John Wilkins)
  • librados: 修复错误路径中的锁泄漏 (#9022, Paval Rallabhandi)
  • librados: 修复池存在性检查 (#8835, Pavan Rallabhandi)
  • librbd: 默认启用缓存 (Sage Weil)
  • librbd: 修复使用扁平化镜像的克隆中的崩溃 (#8845, Josh Durgin)
  • librbd: 基于 ID 存储和检索快照元数据 (Josh Durgin)
  • mailmap: 许多更新 (Loic Dachary)
  • mds: 为快照创建/删除添加最小/最大 UID (#9029, Wido den Hollander)
  • misc Fedora 20 构建错误/警告 (Boris Ranto)
  • mon: 添加 ‘osd blocked-by’ 命令以轻松查看哪些 OSD 正在阻止对等进度 (Sage Weil)
  • mon: 添加 paxos 操作的 perfcounters (Sage Weil)
  • mon: 如果需要,创建默认 EC 配置 (Loic Dachary)
  • mon: 修复环回消息和 paxos 超时时的崩溃 (#9062, Sage Weil)
  • mon: 修复 OSD 添加之前调整 pg_num 时的除以零错误 (#9101, Sage Weil)
  • mon: 修复会话重置后的偶发内存泄漏 (#9176, Sage Weil)
  • mon: 修复 ruleset/ruleid 错误 (#9044, Loic Dachary)
  • mon: 以字节为单位而不是 kB 显示使用量 (Sage Weil)
  • mon: 防止使用 ‘osd setmaxosd ...’ 隐式销毁 OSD (#8865, Anand Bhat)
  • mon: 在 Paxos 轮次结束时验证所有仲裁成员是否连续 (#9053, Sage Weil)
  • msgr: 重构以干净地分离 SimpleMessenger 实现,向基于连接的调用移动 (Matt Benjamin, Sage Wei)
  • objectstore: 清理 KeyValueDB 接口,用于键/值后端 (Sage Weil)
  • osd: 添加 local_mtime 以供缓存代理使用 (Zhiqiang Wang)
  • osd: 为 KeyValueStore 后端添加 superblock (Haomai Wang)
  • osd: 添加对 Intel ISA-L 擦除码库的支持 (Andreas-Joachim Peters)
  • osd: 不要跳过为写序读取的提升 (#9064, Samuel Just)
  • osd: 修复被黑名单客户端的模糊编码顺序 (#9211, Sage Weil)
  • osd: 修复快照对象缓存刷新边缘情况 (#9054, Samuel Just)
  • osd: 修复旧 subop 响应的丢弃 (#9259, Samuel Just)
  • osd: 修复先前间隔的对等消息的丢弃 (Greg Farnum)
  • osd: 修复 EMFILE 上的打开 fd 转储 (Sage Weil)
  • osd: 修复 journal 转储 (Ma Jianpeng)
  • osd: 修复 mon 功能位要求错误并导致日志垃圾邮件 (Sage Weil)
  • osd: 修复 EC 恢复期间的恢复块大小使用 (Ma Jianpeng)
  • osd: 修复 EC 池的恢复预留死锁 (Samuel Just)
  • osd: 修复覆盖链式 xattr 时删除旧 xattr (Ma Jianpeng)
  • osd: 修复 PG 分裂时的请求排队 (Samuel Just)
  • osd: 强制将新的 xattr 导入 leveldb,如果 fs 返回 E2BIG (#7779, Sage Weil)
  • osd: 实现块大小的对齐 (Loic Dachary)
  • osd: 改进降级对象相对于错位对象的恢复优先级 (Sage Weil)
  • osd: FileStore 的 FDCache 中的锁定、分片、缓存改进 (Somnath Roy, Greg Farnum)
  • osd: 许多重要的错误修复 (Samuel Just)
  • osd, mon: 添加 rocksdb 支持 (Xinxin Shu, Sage Weil)
  • osd, mon: 在集群健康状况和 PG 状态报告中区分“错位”和“降级”对象 (Sage Weil)
  • osd: 将一些 ErasureCode 功能重构到命令父类中 (Loic Dachary)
  • osd: 在创建时设置 rollback_info_completed (#8625, Samuel Just)
  • rados: 允许从 stdin 读取 setxattr 值 (Sage Weil)
  • rados: 删除 getxattr 命令中不必要的 n (Sage Weil)
  • rgw: 为对象重写器添加 –min-rewrite-stripe-size (Yehuda Sadeh)
  • rgw: 为全局集群添加 powerdns 钩子以进行动态 DNS (Wido den Hollander)
  • rgw: 如果目标桶位于不同的池中,则复制对象数据 (#9039, Yehuda Sadeh)
  • rgw: 不要尝试对 CORS 预检请求进行身份验证 (#8718, Robert Hubbard, Yehuda Sadeh)
  • rgw: 修复 civetweb URL 解码 (#8621, Yehuda Sadeh)
  • rgw: 修复对象创建期间对象的删除 (Patrycja Szablowska, Yehuda Sadeh)
  • rgw: 修复复制对象的条带化 (#9089, Yehuda Sadeh)
  • rgw: 修复测试以识别对象是否有尾部 (#9226, Yehuda Sadeh)
  • rgw: 修复条带大小不是块大小的倍数时的问题 (#8937, Yehuda Sadeh)
  • rgw: 改进 civetweb 日志记录 (Yehuda Sadeh)
  • rgw: 各种 civetweb 前端修复 (Yehuda Sadeh)
  • sysvinit: 添加对非默认集群名称的支持 (Alfredo Deza)

获取 Ceph