v0.80 Firefly 发布
我们做到了! Firefly 已构建并推送到 ceph.com 仓库。
此版本将作为我们的长期支持版本 Firefly, v0.80.x 的基础。 主要的新功能是对擦除编码和缓存分层的支持,尽管代码库中还进行了广泛的其他功能、修复和改进。 亮点包括
- 擦除编码:支持各种擦除码,以降低存储开销并提高数据持久性。
- 缓存分层:支持创建“缓存池”,将热点、最近访问的对象存储在其中,并自动将冷数据降级到基础层。 通常,缓存池由更快的存储设备(如 SSD)支持。
- 主亲和性:Ceph 现在能够偏斜选择 OSD 作为“主”副本,这使得可以将读取工作负载廉价地偏斜到集群的某些部分,而无需迁移任何数据。
- 键/值 OSD 后端(实验性):Ceph OSD 进程的替代存储后端,它将所有数据放在键/值数据库(如 leveldb)中。 这为由键/值操作(如 radosgw bucket 索引)主导的工作负载提供更好的性能。
- 独立 radosgw(实验性):radosgw 进程现在可以以独立模式运行,而无需 apache(或类似)Web 服务器或 fastcgi。 这简化了部署并可以提高性能。
我们预计将维护基于 v0.80 Firefly 的一系列稳定版本长达一年。 同时,Ceph 的开发仍在继续,下一个版本 Giant 将包含对 CephFS 分布式文件系统、更多替代存储后端(如 RocksDB 和 f2fs)、RDMA 支持、对金字塔擦除码的支持以及块设备 (RBD) 中的其他功能(如复制读取和多站点镜像)的工作。
此版本是大约 100 名不同贡献者共同努力的成果。 感谢所有帮助使此版本成为可能的人!
升级顺序 ¶
如果您的现有集群运行的版本早于 v0.67 Dumpling,请先升级到最新的 Dumpling 版本,然后再升级到 v0.80 Firefly。 请参阅_Dumpling 升级_文档。
我们建议在升级之前将以下内容添加到您的 ceph.conf 文件的 [mon] 部分
mon warn on legacy crush tunables = false
这将防止由于使用旧 CRUSH 放置而产生的健康警告。 尽管可以重新平衡集群中的现有数据(请参阅下面的升级说明),但通常不建议在生产环境中这样做,因为将移动大量数据,并且重新平衡会产生显著的性能影响。
按照以下顺序升级守护进程
- 监控器
- OSD
- MDS 和/或 radosgw
如果 ceph-mds 守护进程首先重启,它将等待所有 OSD 升级完成后才能完成启动序列。 如果在重启 ceph-osd 守护进程之前没有重启 ceph-mon 守护进程,它们将无法正确地将新的功能注册到集群中,并且在重新启动第二次之前,新功能可能无法使用。
一起升级 radosgw 守护进程。 对于多部分上传,存在一种微妙的行为变化,它阻止由新的 radosgw 发起的 multipart 请求由旧的 radosgw 完成。
从 V0.79 升级
- OSDMap 的 json 格式转储中,键 ‘full’ 和 ‘nearfull’ 已更改。 以前作为 ‘true’ 或 ‘false’ 字符串输出的内容现在根据 json 语法输出为 ‘true’ 和 ‘false’ 布尔值。
- 健康警告 ‘mon osd down out interval == 0’。 将此选项设置为零的监视器就像设置了 ‘noout’ 标志一样。 仅当获得 ‘health’ 或 ‘status’ 请求的监视器将此选项设置为零时,才会报告此警告。
- 监视器 ‘auth’ 命令现在需要 mon ‘x’ 功能。 这与 dumpling v0.67.x 及更早版本相符,但与 emperor v0.72.x 不同。
- 对不存在的对象进行 librados WATCH 操作现在返回 ENOENT; 以前没有返回。
- Librados 接口更改:由于没有部分写入,rados_write() 和 rados_append() 操作现在像 rados_write_full() 一直那样在成功时返回 0。 这包括 C++ 接口等效项以及 aio 变体的 AIO 返回值。
从 V0.72 EMPEROR 升级 ¶
- 请参阅上面的说明。
- ‘ceph -s’ 或 ‘ceph status’ 命令的 ‘num_in_osds’ 字段在 JSON 和 XML 输出中已从字符串更改为 int。
- 新添加的 ‘ceph mds set allow_new_snaps’ 命令的语法已略有更改; 现在是 ‘ceph mds set allow_new_snaps true’。 删除了 ‘unset’ 命令; 相反,将值设置为 ‘false’。
- 允许快照的语法现在是 ‘mds set allow_new_snaps <true|false>’ 而不是 ‘mds <set,unset> allow_new_snaps’。
- ‘rbd ls’ 在从未保存 rbd 镜像的池上现在以代码 0 退出。 它在纯文本格式中不输出任何内容,或在非纯文本格式中输出一个空列表。 这与池曾经保存镜像但现在不包含任何镜像的行为一致。 依赖此行为的脚本应进行更新。
- MDS 需要此版本中添加的新 OSD 操作 TMAP2OMAP。 在升级时,请确保在升级 ceph-mds 守护进程之前升级并重新启动 ceph-osd 守护进程。 如果任何 OSD 不支持新功能,MDS 将拒绝启动。
- ‘ceph mds set_max_mds N’ 命令现已弃用,取而代之的是 ‘ceph mds set max_mds N’。
- ‘osd pool create ...’ 的语法已更改为擦除池。
- 默认 CRUSH 规则和布局现在使用最新的调优值和默认值。 使用旧值的集群现在将显示健康 WARN 状态。 可以通过将 ‘mon warn on legacy crush tunables = false’ 添加到 ceph.conf 来禁用此状态。
- 我们现在默认使用 bobtail (v0.56) 和 Linux 内核版本 v3.9 中首次支持的 ‘bobtail’ CRUSH 调优值。 如果您计划使用旧内核客户端访问新创建的 Ceph 集群,则应使用 ‘ceph osd crush tunables legacy’ 切换回旧行为。 请注意,进行此更改可能会导致系统中的一些数据移动,因此请在填充新集群的数据之前调整设置。
- 我们现在默认在新建的池(和新集群)上设置 HASHPSPOOL 标志。 此标志首次出现在 v0.64 中; v0.67 Dumpling 是第一个支持它的主要版本。 它首次由 Linux 内核版本 v3.9 支持。 如果您计划使用旧内核或客户端(例如,librados、librbd)从转储前的 Ceph 版本访问新创建的 Ceph 集群,则应将 ‘osd pool default flag hashpspool = false’ 添加到 ‘ceph.conf’ 文件的 ‘[global]’ 部分,然后再创建监视器(例如,在 ‘ceph-deploy new’ 之后但在 ‘ceph-deploy mon create ...’ 之前)。
- 配置选项 ‘osd pool default crush rule’ 已弃用,并替换为 ‘osd pool default crush replicated ruleset’。 ‘osd pool default crush rule’ 为了向后兼容性起作用,并显示使用它时的弃用警告。
- 作为修复 #6796 的一部分,‘ceph osd pool set
’ 现在接收 作为整数而不是字符串。 这会影响设置 ‘hashpspool’ 标志的方式:不再使用 ‘true’ 或 ‘false’,现在必须使用 ‘0’ 或 ‘1’。 - CRUSH ‘indep’ 选择模式的行为已更改。 除非有人手动提取 crush map、修改 CRUSH 规则以将 ‘firstn’ 替换为 ‘indep’、重新编译并重新注入新的 map 到集群中,否则不应有任何 ceph 集群使用此行为。 如果当前在集群中使用 ‘indep’ 模式,则应修改规则以使用 ‘firstn’,并在任何数据移动完成后再升级。
- ‘osd dump’ 命令现在将池快照转储为数组而不是对象。
从 V0.67 DUMPLING 升级 ¶
- 请参阅上面的说明。
- ceph-fuse 和 radosgw 现在使用与其他守护进程(ceph-osd、ceph-mon 等)相同的默认值作为管理套接字和日志文件路径。 如果您以非 root 用户身份运行这些守护进程,则可能需要调整 ceph.conf 以禁用这些选项或调整 /var/run/ceph 和 /var/log/ceph 上的权限。
- MDS 现在默认禁止快照,因为它们被认为不稳定。 命令 ‘ceph mds set allow_snaps’ 将启用它们。
- 对于在 v0.44 之前创建的集群(pre-argonaut,2012 年春季)并存储 radosgw 数据的集群,自动从 TMAP 转换为 OMAP 对象的升级已被禁用。 在升级之前,请确保在 pre-argonaut 版本上创建的任何 bucket 都已被修改(例如,通过 PUT 并在每个 bucket 中 DELETE 一个对象)。 创建于 argonaut (v0.48) 或更高版本的集群或不使用 radosgw 的集群从未依赖自动转换,并且不受此更改的影响。
- 直接使用 librados API 的 ‘tmap’ 部分的任何用户都应注意,自动 tmap -> omap 转换功能已被删除。
- 大多数使用 K 或 KB(例如,千字节)的输出现在使用小写 k 以匹配官方 SI 约定。 解析输出并检查大写 K 的脚本需要进行修改。
- librados::Rados::pool_create_async() 和 librados::Rados::pool_delete_async() 不会删除错误时的完成对象引用,调用者需要负责处理它。 这从未真正正常工作过,并且我们正在泄漏一个对象
- ‘ceph osd crush set
<loc..>’ 不再将 osd 添加到指定的区域,因为那是 ‘ceph osd crush add’ 的工作。 但是,只要 osd 已经存在于 crush map 中,它将继续以相同的方式工作。 - OSD 现在强制类写入方法不能同时修改对象并返回值。 违规者 rbd.assign_bid 方法已被删除。 这会破坏与转储前的 librbd 客户端的兼容性,阻止它们创建新镜像。
- librados 现在在同步调用时返回 commit 而不是 ack。 在 OSD 和客户端都崩溃的情况下,这更安全,并且可能就是它应该一直以来的行为。 用户可能不会注意到,但在某些情况下可能会导致性能降低。 那些关心的人应该切换到使用异步接口,该接口允许您精确地指定安全语义。
- C++ librados AioComplete::get_version() 方法错误地返回一个 int(通常是 32 位)。 为了避免破坏库兼容性,添加了一个 get_version64() 方法,该方法返回全宽度值。 旧方法已被弃用,将在未来的版本中删除。 使用 C++ librados API 并使用 get_version() 方法的用户应修改他们的代码以避免获得从 64 截断到 32 位的截断值。
自 V0.79 以来的值得注意的更改 ¶
- ceph-fuse, libcephfs: 修复多个缓存错误 (Yan, Zheng)
- ceph-fuse: 在 MDS 内存压力响应中修剪 inodes (Yan, Zheng)
- librados: 修复 API 错误值中的不一致性 (David Zafman)
- librados: 修复缓存池中的 watch 操作 (Sage Weil)
- librados: 新的快照回滚操作 (David Zafman)
- mds: 修复重生 (John Spray)
- mds: 杂项错误 (Yan, Zheng)
- mds: 杂项多 MDS 修复 (Yan, Zheng)
- mds: 使用 shared_ptr 进行请求 (Greg Farnum)
- mon: 修复对等功能检查 (Sage Weil)
- mon: 需要 ‘x’ mon 功能进行 auth 操作 (Joao Luis)
- mon: 在从 mon 集群中删除时关闭 (Joao Luis)
- msgr: 修复身份验证中的锁定错误 (Josh Durgin)
- osd: 修复日志回放/重启中的错误 (Sage Weil)
- osd: 修复了大量与分层缓存相关的错误 (Samuel Just)
- osd: 在 pg 统计信息中跟踪 omap 和 hit_set 对象 (Samuel Just)
- osd: 如果由于无效(拆分后)统计信息而无法启用代理,则发出警告 (Sage Weil)
- rados bench: 单独跟踪多次运行的元数据 (Guang Yang)
- rgw: 修复了子用户修改问题 (Yehuda Sadeh)
- rpm: 修复 redhat-lsb 依赖关系 (Sage Weil, Alfredo Deza)
自 V0.72 EMPEROR 以来的显著变化 ¶
- buffer: 进行了一些零拷贝的基础工作 (Josh Durgin)
- build: 杂项改进 (Ken Dreyer)
- ceph-conf: 停止创建虚假的日志文件 (Josh Durgin, Sage Weil)
- ceph-crush-location: 新的钩子,用于在启动时设置 osd 守护进程的 CRUSH 位置
- ceph-disk: 避免 fd0 (Loic Dachary)
- ceph-disk: 泛化路径名称,添加测试 (Loic Dachary)
- ceph-disk: 针对 puppet 的杂项改进 (Loic Dachary)
- ceph-disk: 多个错误修复 (Loic Dachary)
- ceph-fuse: 修复同步读取的竞争条件 (Sage Weil)
- ceph-fuse, libcephfs: 修复多个缓存错误 (Yan, Zheng)
- ceph-fuse: 在 MDS 内存压力响应中修剪 inodes (Yan, Zheng)
- ceph-kvstore-tool: 扩展了命令集和功能 (Joao Eduardo Luis)
- ceph.spec: 修复构建依赖关系 (Loic Dachary)
- common: bloom 过滤器改进 (Sage Weil)
- common: 在移除活动守护进程之前,检查预先存在的 admin socket (Loic Dachary)
- common: 修复对齐的缓冲区分配 (Loic Dachary)
- common: 修复大端架构上的身份验证 (Dan Mick)
- common: 修复配置变量替换 (Loic Dachary)
- common: 可移植性更改以支持 libc++ (Noah Watkins)
- common: 从 hash_map 切换到 unordered_map (Noah Watkins)
- config: 递归元变量扩展 (Loic Dachary)
- crush: 默认使用 bobtail 可调参数 (Sage Weil)
- crush: 修复最近重构中的一个 off-by-one 错误 (Sage Weil)
- crush: 许多额外的测试 (Loic Dachary)
- crush: 杂项修复和清理 (Loic Dachary)
- crush: 新的规则步骤,用于调整重试次数 (Sage Weil)
- crush, osd: 将 s/rep/replicated/ 用于减少混淆 (Loic Dachary)
- crush: 重构 descend_once 行为;支持 replicated 规则的 set_choose*_tries (Sage Weil)
- crush: 易用性和测试改进 (Loic Dachary)
- debian: 更改 ceph 和 ceph-common 之间的目录所有权 (Sage Weil)
- debian: 集成来自下游打包的杂项修复 (James Page)
- doc: 大幅更新安装文档 (John Wilkins)
- doc: 许多安装文档改进 (John Wilkins)
- doc: 许多更新 (John Wilkins)
- doc: 杂项修复 (David Moreau Simard, Kun Huang)
- erasure-code: 改进缓冲区对齐 (Loic Dachary)
- erasure-code: 使用向量运算重写 region-xor (Andreas Peters)
- init: 修复 OSD 的启动顺序/超时问题 (Dmitry Smirnov)
- libcephfs: 修复资源泄漏 (Zheng Yan)
- librados: 为原子写入操作添加 C API 覆盖 (Christian Marie)
- librados: 修复 API 错误值中的不一致性 (David Zafman)
- librados: 修复节流泄漏(最终导致死锁)(Josh Durgin)
- librados: 修复缓存池中的 watch 操作 (Sage Weil)
- librados: 新的快照回滚操作 (David Zafman)
- librados, osd: 新的 TMAP2OMAP 操作 (Yan, Zheng)
- librados: 直接读入用户缓冲区 (Rutger ter Borg)
- librbd: 修复 use-after-free aio 完成错误 #5426 (Josh Durgin)
- librbd: 本地化/分配父读取 (Sage Weil)
- librbd: 在复制稀疏镜像时跳过零/空洞 (Josh Durgin)
- mailmap: 关联更新 (Loic Dachary)
- mailmap 更新 (Loic Dachary)
- 许多可移植性改进 (Noah Watkins)
- 许多单元测试改进 (Loic Dachary)
- mds: 始终将回溯存储在默认池中 (Yan, Zheng)
- mds: 处理 MDS 创建期间的故障 (John Spray)
- mds: 修复 cap 迁移行为 (Yan, Zheng)
- mds: 修复客户端会话刷新 (Yan, Zheng)
- mds: 修复客户端睡眠/恢复时的崩溃 (Zheng Yan)
- mds: 修复许多多 MDS 错误 (Yan, Zheng)
- mds: 修复 readdir end 检查 (Zheng Yan)
- mds: 修复 Resetter 锁定 (Alexandre Oliva)
- mds: 修复重生 (John Spray)
- mds: 支持内联数据 (Li Wang, Yunchuan Wen)
- mds: 杂项错误 (Yan, Zheng)
- mds: 针对目录片段的杂项修复 (Zheng Yan)
- mds: 针对较大目录的杂项修复 (Zheng Yan)
- mds: 针对多个 MDS 的杂项修复 (Zheng Yan)
- mds: 杂项多 MDS 修复 (Yan, Zheng)
- mds: 移除 .ceph 目录 (John Spray)
- mds: 将目录存储在 omap 而不是 tmap 中 (Yan, Zheng)
- mds: 有机会更新旧格式的回溯 (Zheng Yan)
- mds: 使用 shared_ptr 进行请求 (Greg Farnum)
- misc: 来自 coverity 的清理 (Xing Lin)
- misc: coverity 修复和清理 (Danny Al-Gaaf)
- misc: coverity 修复 (Xing Lin, Li Wang, Danny Al-Gaaf)
- misc: 可移植性修复 (Noah Watkins, Alan Somers)
- misc: 可移植性修复 (Noah Watkins, Christophe Courtaut, Alan Somers, huanjun)
- misc: 可移植性工作 (Noah Watkins)
- mon: 添加擦除配置和改进擦除池创建 (Loic Dachary)
- mon: 添加 ‘mon getmap EPOCH’ (Joao Eduardo Luis)
- mon: 允许通过 ‘ceph mds set max_file_size’ 调整 cephfs 最大文件大小 (Sage Weil)
- mon: 允许通过 admin socket 进行 debug quorum_{enter,exit} 命令
- mon: ‘ceph osd pg-temp ...’ 和 primary-temp 命令 (Ilya Dryomov)
- mon: 更改 mds allow_new_snaps 语法,使其更一致 (Sage Weil)
- mon: 清理初始 crush 规则创建 (Loic Dachary)
- mon: 收集有关 osd 的杂项元数据(操作系统、内核等),新的 ‘osd metadata’ 命令 (Sage Weil)
- mon: 默认情况下不创建擦除规则 (Sage Weil)
- mon: 在某些情况下不要生成虚假的 MDSMap (Sage Weil)
- mon: 如果 auth = none,则不要使用 keyring (Loic Dachary)
- mon: 修复对等功能检查 (Sage Weil)
- mon: 修复 pg_temp 泄漏 (Joao Eduardo Luis)
- mon: 修复 ‘ceph -s’ 输出中的池计数 (Sage Weil)
- mon: 处理监视器功能中的更多空格(换行符、制表符)(Sage Weil)
- mon: 改进(复制或擦除)池创建 UX (Loic Dachary)
- mon: 处理混合版本监视器集群和 cli/rest API 的基础设施 (Greg Farnum)
- mon: MForward 测试 (Loic Dachary)
- mon: mkfs 现在是幂等的 (Loic Dachary)
- mon: 仅将新的 osdmaps 发送到当前的 OSD (Sage Weil)
- mon, osd: 创建擦除风格的 crush 规则 (Loic Dachary, Sage Weil)
- mon: ‘osd crush show-tunables’ (Sage Weil)
- mon: ‘osd dump’ 将池快照转储为数组,而不是对象 (Dan Mick)
- mon, osd: 新的 ‘erasure’ 池类型(尚未完全支持)
- mon: 将 quorum 功能持久化到磁盘 (Greg Farnum)
- mon: 防止池 pg_num 发生极端变化 (Greg Farnum)
- mon: 需要 ‘x’ mon 功能进行 auth 操作 (Joao Luis)
- mon: 在从 mon 集群中删除时关闭 (Joao Luis)
- mon: 将 ‘osd pool set ...’ 值作为整数,而不是字符串 (Joao Eduardo Luis)
- mon: 在 OSDMap 中跟踪 osd 功能 (Joao Luis, David Zafman)
- mon: 修剪 MDSMap (Joao Eduardo Luis)
- mon: 如果 crush 具有非最优的可调参数,则发出警告 (Sage Weil)
- mount.ceph: 添加 -n 以支持 autofs (Steve Stock)
- msgr: 修复身份验证中的锁定错误 (Josh Durgin)
- msgr: 修复 messenger 重启竞争条件 (Xihui He)
- msgr: 改进客户端和监视器之间的连接错误检测 (Greg Farnum, Sage Weil)
- osd: 添加/修复 jerasure 的 CPU 功能检测 (Loic Dachary)
- osd: 为读取操作添加 HitSet 跟踪 (Sage Weil, Greg Farnum)
- osd: 避免触及 leveldb 以获取某些 xattrs (Haomai Wang, Sage Weil)
- osd: 回填到多个目标 (David Zafman)
- osd: 回填到不在 acting set 中的 osd (David Zafman)
- osd: 支持快照的缓存池 (Sage Weil)
- osd: EC 的客户端 IO 路径更改 (Samuel Just)
- osd: 默认使用 3x 复制
- osd: 不要将回填目标包含在 acting set 中 (David Zafman)
- osd: 默认启用新的 hashpspool 布局 (Sage Weil)
- osd: 擦除插件基准测试工具 (Loic Dachary)
- osd: 修复并清理杂项回填问题 (David Zafman)
- osd: 修复日志回放/重启中的错误 (Sage Weil)
- osd: 修复 copy-get omap 错误 (Sage Weil)
- osd: 修复 Linux 内核版本检测 (Ilya Dryomov)
- osd: 修复 memstore segv (Haomai Wang)
- osd: 修复来自 emperor 的 object_info_t 编码错误 (Sam Just)
- osd: 修复 omap_clear 操作,不要清除 xattrs (Sam Just, Yan, Zheng)
- osd: 修复分层基础设施的多个错误
- osd: 修复节流线程 (Haomai Wang)
- osd: 修复 XFS 检测 (Greg Farnum, Sushma Gurram)
- osd: 泛化擦除 scrubbing 基础设施以允许 EC (David Zafman)
- osd: 处理 osd 功能中的更多空格(换行符、制表符)(Sage Weil)
- osd: 忽略旧池的 scrub 期间的 num_objects_dirty (Sage Weil)
- osd: 改进克隆上的 scrub 检查 (Sage Weil, Sam Just)
- osd: 改进 fd 查找缓存中的锁定 (Samuel Just, Greg Farnum)
- osd: 在 pg 查询结果中包含更多信息 (Sage Weil)
- osd, librados: 修复完全集群处理 (Josh Durgin)
- osd: 许多擦除修复 (Sam Just)
- osd: 修复了大量与分层缓存相关的错误 (Samuel Just)
- osd: 迁移到 jerasure2 库 (Loic Dachary)
- osd: 在默认 crush 层次结构中添加新的 ‘chassis’ 类型 (Sage Weil)
- osd: 新的基于 leveldb 的 keyvaluestore-dev 后端 (Haomai Wang)
- osd: 新的 OSDMap 编码 (Greg Farnum)
- osd: 为擦除池添加新的测试 (David Zafman)
- osd: 初步的缓存池支持(没有快照)(Greg Farnum, Sage Weil)
- osd: 减少 scrub 锁定争用 (Guang Yang)
- osd: requery unfound on stray notify (#6909) (Samuel Just)
- osd: 一些 PGBackend 基础设施 (Samuel Just)
- osd: 支持新的 ‘memstore’(内存支持)后端 (Sage Weil)
- osd: 跟踪擦除兼容性 (David Zafman)
- osd: 在 pg 统计信息中跟踪 omap 和 hit_set 对象 (Samuel Just)
- osd: 如果由于无效(拆分后)统计信息而无法启用代理,则发出警告 (Sage Weil)
- rados: 添加 ‘crush location’,智能副本选择/平衡 (Sage Weil)
- rados bench: 单独跟踪多次运行的元数据 (Guang Yang)
- rados: 一些性能优化 (Yehuda Sadeh)
- rados tool: 修复 listomapvals (Josh Durgin)
- rbd: 为在 book 上映射 rbd 镜像添加 ‘rbdmap’ init 脚本 (Adam Twardowski)
- rbd: 为 upstart 添加 rbdmap 支持 (Laurent Barbe)
- rbd: 通过 ‘rbd map’ 暴露内核 rbd 客户端选项 (Ilya Dryomov)
- rbd: 修复 bench-write 命令 (Hoamai Wang)
- rbd: 使 ‘rbd list’ 在空池上返回空列表和成功 (Josh Durgin)
- rbd: 防止删除具有观察者的镜像 (Ilya Dryomov)
- rbd: 支持 4096 个映射设备,从 ~250 增加 (Ilya Dryomov)
- rest-api: 不要在还没有 OSD 的情况下失败 (Dan Mick)
- rgw: 为 sysvinit 脚本添加 ‘status’ 命令 (David Moreau Simard)
- rgw: 允许多个前端 (Yehuda Sadeh)
- rgw: 允许使用擦除数据池 (Yehuda Sadeh)
- rgw: 按需将 bucket 信息转换为新格式 (Yehuda Sadeh)
- rgw: 修复了子用户修改问题 (Yehuda Sadeh)
- rgw: 修复设置 ACL 上的空所有者错误 (Yehuda Sadeh)
- rgw: 修复 fastcgi 死锁(不要从 librados 回调返回数据)(Yehuda Sadeh)
- rgw: 修复多部分 multipart 上传 (Yehuda Sadeh)
- rgw: 修复许多 CORS 错误 (Robin H. Johnson)
- rgw: 修复对象放置读取操作 (Yehuda Sadeh)
- rgw: 修复读取 bucket policy (#6940)
- rgw: 修复 read_user_buckets ‘max’ 行为 (Yehuda Sadeh)
- rgw: 修复几个 CORS 错误 (Robin H. Johnson)
- rgw: 修复释放完成句柄时的 use-after-free (Yehuda Sadeh)
- rgw: 改进 swift temp URL 支持 (Yehuda Sadeh)
- rgw: 使多对象删除幂等 (Yehuda Sadeh)
- rgw: 可选地延迟到 bucket ACL 而不是对象 ACL (Liam Monahan)
- rgw: 原型 mongoose 前端 (Yehuda Sadeh)
- rgw: 几个文档修复 (Alexandre Marangone)
- rgw: 支持用于 keystone 身份验证的密码(而不是 admin token)(Christophe Courtaut)
- rgw: 从 mongoose 切换到 civetweb (Yehuda Sadeh)
- rgw: 用户配额 (Yehuda Sadeh)
- rpm: 修复 redhat-lsb 依赖关系 (Sage Weil, Alfredo Deza)
- specfile: 修复 RHEL6 上的 RPM 构建 (Ken Dreyer, Derek Yarnell)
- specfile: 运送 libdir/ceph (Key Dreyer)
- sysvinit, upstart: 防止两个 init 系统启动相同的守护进程 (Josh Durgin)
自 V0.67 DUMPLING 以来的显著变化 ¶
- 使用 clang 清晰构建 (Christophe Courtaut)
- build: Makefile 重构 (Roald J. van Loon)
- build: 修复 [/usr]/sbin 位置 (Alan Somers)
- ceph-disk: 修复 journal 预分配
- ceph-fuse, radosgw: 默认启用 admin socket 和日志记录
- ceph-fuse: 修复 readahead 与 truncate 竞争问题 (Yan, Zheng)
- ceph-fuse: 从缓存中修剪已删除的 inode (Yan, Zheng)
- ceph-fuse: 使用较新的 fuse api (Jianpeng Ma)
- ceph-kvstore-tool: 用于处理 leveldb(复制、crc)的新工具 (Joao Luis)
- ceph-post-file: 新命令,用于轻松与 ceph 开发者共享日志或其他文件
- ceph: 改进 CEPH_ARGS 的解析 (Benoit Knecht)
- ceph: 在监视器关闭时使 -h 正常工作
- ceph: 解析 CEPH_ARGS 环境变量
- common: bloom_filter 改进、清理
- common: 在可能的情况下缓存 crc32c 值
- common: 更正 SI 是 kB 而不是 KB (Dan Mick)
- common: 修复 BSD 上的循环 (Alan Somers)
- common: 将 SharedPtrRegistry 迁移到使用 boost::shared_ptr<> (Loic Dachary)
- common: 杂项可移植性修复 (Noah Watkins)
- crc32c: 修复优化的 crc32c 代码(现在可以正确检测 arch 支持)
- crc32c: 改进 intel 优化的 crc32c 支持(我的笔记本上快 ~8 倍!)
- crush: 修复名称缓存
- doc: 擦除编码设计说明 (Loic Dachary)
- hadoop: 移除旧版本的 shim 以避免混淆用户 (Noah Watkins)
- librados, mon: 能够查询/ping 处于法定数量之外的监视器状态 (Joao Luis)
- librados: 修复异步 aio 完成唤醒
- librados: 修复已安装的头文件 #includes (Dan Mick)
- librados: C++ API 的 get_version64() 方法
- librados: hello_world 示例 (Greg Farnum)
- librados: 同步调用现在在提交时返回(而不是确认)(Greg Farnum)
- librbd python 绑定: 修复父镜像名称限制 (Josh Durgin)
- librbd, ceph-fuse: 避免一些 ceph-fuse、rbd 缓存停滞的来源
- mds: 避免在删除已截断的文件时泄漏对象 (Yan, Zheng)
- mds: 修复 F_GETLK (Yan, Zheng)
- mds: 修复 LOOKUPSNAP 错误
- mds: 修复堆分析器命令 (Joao Luis)
- mds: 修复锁定死锁 (David Disseldorp)
- mds: 修复许多与流浪(未链接)inode 相关的错误 (Yan, Zheng)
- mds: 修复许多目录碎片化错误 (Yan, Zheng)
- mds: 修复 mds rejoin 与旧版父 backpointer xattrs (Alexandre Oliva)
- mds: 修复罕见的重启/故障竞争 (Yan, Zheng)
- mds: 修复 standby-replay 在我们落后时的情况 (Yan, Zheng)
- mds: 修复流浪目录的清除 (Yan, Zheng)
- mds: 通知客户端已删除的文件(以便它们可以从缓存中释放) (Yan, Zheng)
- mds: 修复了集群 mds 的几个错误 (Yan, Zheng)
- mon, osd: 改进 osdmap 修剪逻辑 (Samuel Just)
- mon, osd: 配置分层存储的初始 CLI
- mon: 修复了几个 ‘ceph mon add’ 命令中的竞争条件(该命令现在是幂等的) (Joao Luis)
- mon: 允许在现有池上(取消)设置 HASHPSPOOL 标志 (Joao Luis)
- mon: 允许包含点的 cap 字符串不带引号
- mon: 允许调整集群日志的日志级别(/var/log/ceph/ceph.log)
- mon: 避免在重新启动时重写完整的 osdmaps (Joao Luis)
- mon: 在选举阶段继续发现对等地址信息
- mon: 在 ‘ceph mds set allow_new_snaps’ 之前禁止 CephFS 快照 (Greg Farnum)
- mon: 不要暴露 ‘osd crush {add,set} ...’ 的未提交状态 (Joao Luis)
- mon: 修复 ‘ceph osd crush reweight ...’ (Joao Luis)
- mon: 修复 bucket 的 ‘osd crush move ...’ 命令 (Joao Luis)
- mon: 修复字节计数(偏差 4 倍) (Dan Mick, Joao Luis)
- mon: 修复 paxos 边界情况
- mon: 池的 kv 属性以支持 EC (Loic Dachary)
- mon: 使 ‘osd pool rename’ 命令幂等 (Joao Luis)
- mon: 修改 ‘auth add’ 语义使其更合理 (Joao Luis)
- mon: 新的 ‘osd perf’ 命令用于转储最近的性能信息 (Samuel Just)
- mon: 新的且改进的 ‘ceph -s’ 或 ‘ceph status’ 命令(更多信息,更易于阅读)
- mon: 一些 auth 检查清理 (Joao Luis)
- mon: 跟踪每个池的统计信息 (Joao Luis)
- mon: 警告 pg_num 错误的池
- mon: 警告 mon 数据存储增长非常大 (Joao Luis)
- monc: 修复小的内存泄漏
- 拉取了新的 wireshark 补丁到树中 (Kevin Jones)
- objecter, librados: 基于缓存层配置重定向请求
- objecter: 修复集群取消暂停时可能发生的挂起 (Josh Durgin)
- osd, librados: 添加新的 COPY_FROM rados 操作
- osd, librados: 添加新的 COPY_GET rados 操作(由 COPY_FROM 使用)
- osd: ‘osd recover clone overlap limit’ 选项以限制恢复期间的克隆 (Samuel Just)
- osd: COPY_GET 的网络编码改进 (Greg Farnum)
- osd: 添加可配置的 ‘osd heartbeat min healthy ratio’(以前硬编码为 33%)
- osd: 添加禁用 pg 日志调试代码的选项(会消耗 CPU)
- osd: 允许包含点的 cap 字符串不带引号
- osd: 自动检测正确的 xattr 限制 (David Zafman)
- osd: 避免擦除编码参考实现中的额外复制 (Loic Dachary)
- osd: 基本缓存池重定向 (Greg Farnum)
- osd: 基本 whiteout、dirty 标志支持(尚未被使用)
- osd: bloom_filter 可编码性、修复、清理 (Loic Dachary, Sage Weil)
- osd: 清理并推广 copy-from 代码 (Greg Farnum)
- osd: cls_hello OSD 类示例
- osd: 擦除编码文档更新 (Loic Dachary)
- osd: 擦除编码插件基础设施、测试 (Loic Dachary)
- osd: 实验性支持 ZFS (zfsonlinux.org) (Yan, Zheng)
- osd: 修复 RWORDER 标志
- osd: 修复慢请求警告的指数退避 (Loic Dachary)
- osd: 修复读与写竞争的处理 (Samuel Just)
- osd: 修复各种操作返回的版本值 (Greg Farnum)
- osd: 通用的临时对象基础设施
- osd: ghobject_t 基础设施用于 EC (David Zafman)
- osd: 改进了 compatset 支持和存储 (David Zafman)
- osd: 基础设施用于从其他 OSD 复制对象
- osd: 仪器化对等状态 (David Zafman)
- osd: 各种 copy-from 改进
- osd: 默认禁用存储数据的机会性 crc 检查
- osd: 正确执行 rados 类的 RD/WR 标志
- osd: 减少对底层 fs 的阻塞 (Samuel Just)
- osd: 使用 PGBackend 重构恢复 (Samuel Just)
- osd: 移除旧的 tmap->omap 转换
- osd: 移除升级时的旧 pg 日志 (Samuel Just)
- osd: 恢复 xattr 大小限制(修复了大型 rgw 上传)
- osd: 使用 fdatasync(2) 代替 fsync(2) 以提高性能 (Sam Just)
- pybind: 修复黑名单 nonce (Loic Dachary)
- radosgw-agent: 多区域复制/DR
- rgw: 在关闭之前完成进行中的请求
- rgw: 默认日志级别现在更合理 (Yehuda Sadeh)
- rgw: 修复带有 response-* 查询字符串参数的 S3 身份验证 (Sylvain Munaut, Yehuda Sadeh)
- rgw: 修复一些小的内存泄漏 (Yehuda Sadeh)
- rgw: 修复 acl 组检查 (Yehuda Sadeh)
- rgw: 修复 std::list::size() 的低效使用 (Yehuda Sadeh)
- rgw: 修复内部缓存中的主要 CPU 利用率错误 (Yehuda Sadeh, Mark Nelson)
- rgw: 修复写入操作的顺序(防止崩溃时数据丢失) (Yehuda Sadeh)
- rgw: 修复多部分上传的写入顺序 (Yehuda Sadeh)
- rgw: 修复各种 CORS 错误 (Yehuda Sadeh)
- rgw: 修复/改进 swift COPY 支持 (Yehuda Sadeh)
- rgw: 改进帮助输出 (Christophe Courtaut)
- rgw: 各种修复以支持 DR (Josh Durgin, Yehuda Sadeh)
- rgw: 每个 bucket 的配额 (Yehuda Sadeh)
- rgw: 针对 keystone 验证 S3 令牌 (Roald J. van Loon)
- rgw: keystone 角色支持通配符 (Christophe Courtaut)
- rpm: 修复 junit 依赖项 (Alan Grosskurth)
- sysvinit radosgw: 修复状态返回码 (Danny Al-Gaaf)
- sysvinit rbdmap: 修复错误 ‘service rbdmap stop’ (Laurent Barbe)
- sysvinit: 添加 condrestart 命令 (Dan van der Ster)
- sysvinit: 修复关闭顺序(mons 最后) (Alfredo Deza)