v0.78 发布
此开发版本包含两个关键特性:擦除编码和缓存分层。本次发布合并了大量的代码,并且花费了数周时间来稳定代码库,现在它已准备好供更广泛的用户群进行测试。
这不是火fly发布。由于我们需要获得新代码的一些运行经验并进行额外的测试,然后再承诺长期支持,因此火fly发布将至少推迟一个 sprint。
请注意,虽然在本版本中可以创建和测试擦除编码池,但升级到 v0.79 时这些池将无法使用,因为 OSDMap 编码会发生微妙的变化。请勿将重要数据填充到您的测试池中,以免无法重新加载。
升级 ¶
按照以下顺序升级守护进程
- 监控器
- OSD
- MDS 和/或 radosgw
如果先重启 ceph-mds 守护进程,它将等待所有 OSD 都升级完成后才能完成启动序列。如果未在重启 ceph-osd 守护进程之前重启 ceph-mon 守护进程,它们将无法正确地将新的功能注册到集群中,并且在重启第二次之前,新功能可能无法使用。
一起升级 radosgw 守护进程。对于 multipart 上传,存在一种微妙的行为变化,它阻止了由新的 radosgw 发起的 multipart 请求被旧的 radosgw 完成。
CephFS 最近添加了对文件数据对象上名为“backtrace”的新属性的支持,该属性用于通过 inode 编号进行查找(即,NFS 重新导出和硬链接),并且以后将由 fsck 修复使用。这取代了用于硬链接解析的现有 anchor 表机制。为了完全淘汰它,任何具有过时 backtrace 属性的 inode 都会在 inode 本身修改时进行更新。这将在旧的 CephFS 文件系统升级后导致一些额外的负载。
librados 的 ObjectWriteOperation 接口中的每个操作的返回代码现在已填充。
librados 的 cmpxattr 操作现在处理包含空字节作为数据的 xattr,而不是以 null 结尾的字符串。
librados 中创建然后删除相同对象的复合操作现在明确禁止(失败,错误码为 -EINVAL)。
值得注意的更改 ¶
- ceph-brag:新的客户端和服务器工具 (Sebastien Han, Babu Shanmugam)
- ceph-disk:在 RHEL 或 CentOS 上使用 partx 代替 partprobe (Alfredo Deza)
- ceph:修复 ‘tell’ 和交互模式的组合 (Joao Eduardo Luis)
- ceph-fuse:修复内联数据和多个 MDS 相关的错误 (Zheng Yan)
- client:修复 getcwd() 以使用新的 LOOKUPPARENT 操作 (Zheng Yan)
- common:回退到 json-pretty 以进行 admin socket (Loic Dachary)
- common:修复 ‘config dump’ 调试前缀 (Danny Al-Gaaf)
- common:各种 Coverity 修复 (Danny Al-Gaaf)
- common:throttle、shared_cache 性能改进、TrackedOp (Greg Farnum, Samuel Just)
- crush:修复 dump 的 JSON 模式 (John Spray)
- crush:各种清理、测试 (Loic Dachary)
- crush:新的 vary_r 可调参数 (Sage Weil)
- crush:防止类型为 0 的无效 bucket (Sage Weil)
- keyvaluestore:添加 perfcounters,各种 bug 修复 (Haomai Wang)
- keyvaluestore:可移植性改进 (Noah Watkins)
- libcephfs:API 更改以更好地支持通过 Ganesha 进行 NFS 重新导出 (Matt Benjamin, Adam Emerson, Andrey Kuznetsov, Casey Bodley, David Zafman)
- librados:API 文档改进 (John Wilkins, Josh Durgin)
- librados:修复对象枚举错误;允许迭代器赋值 (Josh Durgin)
- librados:简化测试 (Josh Durgin)
- librados:支持 C API 的原子读取和 omap 操作 (Josh Durgin)
- librados:支持 osd 和 mon 命令超时 (Josh Durgin)
- librbd:将分配提示传递给 OSD (Ilya Dryomov)
- logrotate:修复阻止某些守护进程旋转的错误 (Loic Dachary)
- mds:避免在恢复期间重复发现 (Zheng Yan)
- mds:修复文件锁所有者检查 (Zheng Yan)
- mds:修复 LOOKUPPARENT,新的 LOOKUPNAME 操作以实现可靠的 NFS 重新导出 (Zheng Yan)
- mds:修复 setxattr 上的 xattr 处理 (Zheng Yan)
- mds:修复 getattr 回复中的 xattr (Sage Weil)
- mds:强制更新旧 inode 的 backtrace (Zheng Yan)
- mds:多个 multi-mds 和 dirfrag 错误修复 (Zheng Yan)
- mon:在池元数据中编码擦除条带宽度 (Loic Dachary)
- mon:擦除编码 crush 规则创建 (Loic Dachary)
- mon:擦除编码插件支持 (Loic Dachary)
- mon:修复初始 post-mkfs quorum 创建中的错误 (Sage Weil)
- mon:修复启动期间终端中的错误输出 (Joao Eduardo Luis)
- mon:修复旧 CRUSH 可调参数警告 (Sage Weil)
- mon:修复 osd_epochs 下限跟踪以进行 map 修剪 (Sage Weil)
- mon:修复 OSDMap 编码特性 (Sage Weil, Aaron Ten Clay)
- mon:修复 ‘pg dump’ JSON 输出 (John Spray)
- mon:在 ‘ceph df detail’ 中包含脏数据统计信息 (Sage Weil)
- mon:按 quorum 顺序列出 quorum 成员名称 (Sage Weil)
- mon:防止添加空的缓存层 (Sage Weil)
- mon:防止删除 CephFS 池 (John Spray)
- mon:警告缓存层接近 ‘full’ (Sage Weil)
- osd:分配提示,支持 XFS (Ilya Dryomov)
- osd:擦除编码池支持 (Samuel Just)
- osd:修复导致缓慢/停滞恢复的错误 (#7706) (Samuel Just)
- osd:修复日志合并中的错误 (Samuel Just)
- osd:修复/澄清读取时的 end-of-object 处理 (Loic Dachary)
- osd:修复不礼貌的 mon 会话回退,重新连接行为 (Greg Farnum)
- osd:修复 SnapContext 缓存 ID 错误 (Samuel Just)
- osd:增加默认 leveldb 缓存大小和写缓冲区 (Sage Weil, Dmitry Smirnov)
- osd:限制 ‘osd bench ...’ 参数的大小 (Joao Eduardo Luis)
- osdmaptool:新的 –test-map-pgs 模式 (Sage Weil, Ilya Dryomov)
- osd, mon:添加 primary-affinity 以调整主项的选择 (Sage Weil)
- osd:新的 ‘status’ admin socket 命令 (Sage Weil)
- osd:简单的分层代理 (Sage Weil)
- osd:存储擦除编码对象条带的校验和 (Samuel Just)
- osd:对象存储后端测试 (Haomai Wang)
- osd:各种重构和错误修复 (Samuel Just, David Zafman)
- rados:添加 ‘set-alloc-hint’ 命令 (Ilya Dryomov)
- rbd-fuse:修复 enumerate_images 溢出,内存泄漏 (Ilya Dryomov)
- rbdmap:修复 upstart 脚本 (Stephan Renatus)
- rgw:避免将系统事件记录到使用日志 (Yehuda Sadeh)
- rgw:修复 Swift 范围响应 (Yehuda Sadeh)
- rgw:提高 manifest 对象的扩展性 (Yehuda Sadeh)
- rgw:multipart 对象、策略的各种修复 (Yehuda Sadeh)
- rgw:支持非标准的 MultipartUpload 命令 (Yehuda Sadeh)
您可以从通常的位置获取 v0.78