v0.94 Hammer 发布
此主要版本预计将成为下一个长期稳定系列的基石。它旨在取代 v0.80.x Firefly。
自 Giant 以来的亮点包括
- RADOS 性能:在 OSD 和客户端 librados 代码中进行了一系列改进,以提高闪存后端上的吞吐量,并提高快速机器上的并行性和可扩展性。
- 简化的 RGW 部署:ceph-deploy 工具现在有一个新的 ‘ceph-deploy rgw create HOST’ 命令,可以快速部署使用嵌入式 Civetweb 服务器的 S3/Swift 网关实例。这比以前基于 Apache 的部署方式简单得多。虽然还有一些粗糙的地方(例如,关于 SSL 支持),但我们鼓励用户尝试 新方法。
- RGW 对象版本控制:RGW 现在支持 S3 对象版本控制 API,该 API 会保留旧版本的对象,而不是覆盖它们。
- RGW bucket 分片:RGW 现在可以将大型 bucket 的 bucket 索引分片到多个节点,从而提高非常大的 bucket 的性能。
- RBD 对象映射:RBD 现在具有一个对象映射功能,可以跟踪图像的哪些部分正在分配,从而提高克隆以及导出和删除等命令的性能。
- RBD 强制锁定:RBD 具有一个新的强制锁定框架(默认情况下禁用),它增加了额外的保护措施,以防止多个客户端同时使用同一图像。
- RBD 读时复制:RBD 现在支持图像克隆的读时复制,从而提高某些工作负载的性能。
- CephFS 快照改进:CephFS 快照中的许多错误都已修复。虽然它们默认情况下仍然禁用,但稳定性得到了显着提高。
- CephFS 恢复工具:我们构建了一些日志恢复和诊断工具。单 MDS 系统的稳定性和性能在 Giant 中得到了极大的改进,现在在 Hammer 中又有了更多的改进。虽然我们仍然建议在存储重要数据到 CephFS 时要谨慎,但我们鼓励对非关键工作负载进行测试,以便我们更好地评估该功能的可用性、易用性、性能和稳定性差距。
- CRUSH 改进:我们添加了一个新的 straw2 bucket 算法,可以减少在更改集群时所需的数据迁移量。
- 分层擦除码 (SHEC):OSD 现在对分层擦除码具有实验性支持,这允许用少量的额外存储空间来换取改进的恢复性能。
- RADOS 缓存分层:对缓存分层代码进行了一系列更改,以提高性能并降低延迟。
- 实验性 RDMA 支持:现在通过 Accelio (libxio) 库对 RDMA 具有实验性支持。
- 新的管理员命令:‘ceph osd df’ 命令显示有关 OSD 磁盘利用率的详细信息。‘ceph pg ls ...’ 命令使在诊断集群问题时查询 PG 状态变得更加简单。
自 Firefly 以来的其他亮点包括
- CephFS:我们修复了 CephFS 中的大量错误,并构建了一些基本的日志恢复和诊断工具。单 MDS 系统的稳定性和性能在 Giant 中得到了极大的改进。虽然我们尚未建议将 CephFS 用于生产部署,但我们鼓励对非关键工作负载进行测试,以便我们更好地评估该功能的可用性、易用性、性能和稳定性差距。
- 本地恢复码:OSD 现在支持一种擦除编码方案,该方案存储一些额外的块,以减少从单个 OSD 故障中恢复所需的 IO。
- 降级与错位:‘ceph -s’ 和相关命令中的 Ceph 健康报告现在区分数据降级(副本数量少于所需数量)和数据错位(存储在集群中的错误位置)。这种区分很重要,因为后者不会损害数据安全。
- 分层改进:我们对缓存分层实现进行了多项改进,以提高性能。最值得注意的是,对象不会通过单个读取提升到缓存层;只有在发现它们足够热时才会发生这种情况。
- 监视器性能:监视器现在异步地将写入本地数据存储,从而提高整体响应速度。
- 恢复工具:ceph-objectstore-tool 得到了极大的扩展,允许操作单个 OSD 的数据存储,用于调试和修复目的。这主要由我们的 QA 基础设施用于行使恢复代码。
我想借此机会赞扬 Ceph 贡献者数量的惊人增长,这些贡献者来自 Inktank 核心开发团队之外。Hammer 具有来自 Intel、富士通、UnitedStack、Yahoo、UbuntuKylin、CohortFS、Mellanox、CERN、Deutsche Telekom 和 SanDisk 的主要新功能和改进。
献词 ¶
此版本献给 Sandon Van Ness,又名 Houkouonchi,他在几周前意外去世。Sandon 负责维护 Ceph 项目的构建和测试基础设施的庞大而复杂的 Sepia 实验室。他的努力对我们以相对较小的人员队伍可靠地测试 Ceph 产生了重要的影响。他是团队中备受重视的一员,我们将怀念他。H 也是 Houkouonchi 的首字母缩写。
升级 ¶
如果您的现有集群运行的版本早于 v0.80.x Firefly,请先升级到最新的 Firefly 版本,然后再升级到 Giant。我们尚未测试直接从 Emperor、Dumpling 或更早版本升级的情况。我们已经测试过
- Firefly 到 Hammer
- Firefly 到 Giant 到 Hammer
- Dumpling 到 Firefly 到 Hammer
请按以下顺序升级守护进程
- 监控器
- OSD
- MDS 和/或 radosgw
请注意,OSD 和监视器的相对顺序并不重要,但我们主要测试的是先升级监视器。
ceph-osd 守护进程将执行磁盘格式升级,以改进 PG 元数据布局并修复磁盘格式中的一个小错误。这可能需要一两分钟才能完成,具体取决于节点上存储的对象数量;如果它们在启动后立即未被集群标记为“启动”,请不要惊慌。
如果从 v0.93 升级,请设置
osd enable degraded writes = false
在升级之前,所有 osd。由于 11155,降级写入功能已被撤销。
发布包中的 librbd 和 librados 中的 LTTNG 跟踪已禁用,直到我们找到一种避免违反发行版安全策略的方法,同时链接 libust。
从 V0.80.X GIANT 升级 ¶
librbd 和 librados 包含在具有 liblttng 2.4 或更高版本的发行版中的 lttng 跟踪点(仅适用于 ceph.com 包中的 Ubuntu Trusty)。当运行使用这些库的守护进程时,即调用 fork(2) 或 clone(2) 而不使用 exec(3) 的应用程序,必须设置 LD_PRELOAD=liblttng-ust-fork.so.0 以防止在进程退出时 lttng atexit 处理程序崩溃。唯一需要此功能的 ceph 工具是 rbd-fuse。
如果定义了 rgw_socket_path 并且 rgw_frontends 定义了 socket_port 和 socket_host,那么现在允许 rgw_frontends 设置优先。此更改只会影响对 radosgw 配置进行非标准更改的用户。
如果您专门从 v0.92 升级,则必须停止所有 OSD 守护进程并刷新其日志(ceph-osd -i NNN --flush-journal)然后再升级。v0.92 中存在一个事务编码错误,导致不兼容。从 v0.93、v0.91 或更早版本升级是安全的。
实验性 ‘keyvaluestore-dev’ OSD 后端已重命名为 ‘keyvaluestore’(为了简单起见),并标记为实验性。要启用此未经测试的功能并确认您了解它未经测试并且可能会破坏数据,您需要在 ceph.conf 中添加以下内容
enable experimental unrecoverable data corrupting featuers = 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() 操作,用于刷新异步通知操作队列。任何 watch/notify 用户在调用 rados_shutdown() 之前都应调用此操作。
对象的 ‘category’ 字段已被删除。最初添加此字段是为了跟踪不同对象类别上 PG 统计汇总,供 radosgw 使用。它现在没有已知的用户,并且容易受到滥用,因为它可能导致无界的 pg_stat_t 结构。接受此字段的 librados API 调用现在忽略它,并且 OSD 不再跟踪每个类别的汇总。
‘rados df’ 的输出已更改。已删除 ‘category’ 级别,因此现在每个池只有一个 stat 对象。JSON 输出的结构不同,纯文本输出少一列。
‘rados create
[category]’ 可选类别参数不再受支持或识别。 rados.py 的 Rados 类不再具有 __del__ 方法;它导致解释器关闭和使用线程时出现问题。如果您的代码具有有限生命周期的 Rados 对象,并且担心锁定的资源,请显式调用 Rados.shutdown()。
具有大大改进的语义的新版本的 librados watch/notify API。鼓励使用此接口的任何应用程序迁移到新的 API。旧的 API 调用已被标记为已弃用,并最终将被删除。
librados rados_unwatch() 调用以前可以安全地在无效句柄上调用。新版本在传递错误值时(例如,当 rados_watch() 返回错误并且未定义句柄时)的行为未定义。
格式化 ‘pg stat’ 命令的结构已更改,以避免使用 ‘+’ 字符(出现在状态名称中)作为 XML 标记的一部分(它不合法)。
以前,格式化输出的 ‘ceph pg stat -f ...’ 是一个完整的 pg 转储,其中包含系统中所有 PG 的所有元数据。现在是高级 PG 统计信息的一个简洁摘要,就像未格式化的 ‘ceph pg stat’ 命令一样。
所有浮点值 JSON 转储都错误地用引号将值包围起来。这些引号已被删除。任何消费结构化 JSON 输出的消费者,如果之前正在解析带引号的字符串,现在可能需要修复以接收未带引号的数字。
列出所有命名空间中所有对象的新的能力,在并非所有 OSD 都已升级时可能会失败或返回不完整的结果。rados –all ls、rados cppool、rados export、rados cache-flush-evict-all 和 rados cache-try-flush-evict-all 功能也可能失败或返回不完整的结果。
由于 Linux 内核版本 3.18 的变化以及 FUSE 接口的限制,ceph-fuse 在至少某些系统上需要以 root 用户身份挂载。有关详细信息,请参阅 issue #9997、#10277 和 #10542。
从 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 特定的默认值
leveldb_log = “”
‘rados getxattr ...’ 命令过去会在 attr 值中添加一个多余的换行符;现在不再添加。
监视器上的 *_kb 性能计数器已被移除。这些已被一组新的 *_bytes 计数器取代(例如,cluster_osd_kb 被 cluster_osd_bytes 取代)。
池统计信息 JSON 转储中的 rd_kb 和 wr_kb 字段(通过 ceph df detail -f json-pretty 和相关命令访问)已被相应的 *_bytes 字段取代。 同样,total_space、total_used 和 total_avail 字段已被 total_bytes、total_used_bytes 和 total_avail_bytes 字段取代。
rados df --format=json 输出中的 read_bytes 和 write_bytes 字段错误地报告了 ops;现在已修复。
rados df --format=json 输出之前包含 read_kb 和 write_kb 字段;这些字段已被移除。请使用 read_bytes 和 write_bytes 代替(如果需要,除以 1024)。
实验性的 keyvaluestore-dev OSD 后端具有磁盘上的格式更改,这阻止了现有的 OSD 数据被升级。这只会影响开发人员和测试人员。
特定于监视器和特定于 OSD 的 leveldb 选项已被移除。从现在开始,用户应使用 leveldb_* 通用选项,并在配置文件的适当部分中添加这些选项。监视器将继续维护以下特定于监视器的默认值
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 特定的默认值
leveldb_log = “”
CephFS 对旧版锚点表的支持终于被移除。对于在 firefly 之前创建的文件系统,用户应确保在升级之前修改具有多个硬链接的 inode,以确保正确写入回溯信息。例如
sudo find /mnt/cephfs -type f -links +1 -exec touch \{\} \;
我们禁止无意义的“tier cache-mode”转换。从现在开始,“writeback”只能转换为“forward”,而“forward”可以转换为 1) 如果存在脏对象则转换为“writeback”,或者 2) 如果没有脏对象则转换为任何模式。
自 V0.93 以来的显著变化 ¶
- 构建:一些 cmake 修复 (Matt Benjamin)
- 构建:修复 RHEL/CentOS 5.9 上的构建 (Rohan Mars)
- 构建:重组 Makefile 以允许模块化构建 (Boris Ranto)
- ceph-fuse:对 remount 更加宽容 (#10982 Greg Farnum)
- ceph:改进 CLI 解析 (#11093 David Zafman)
- 通用:修复集群日志记录到默认通道 (#11177 Sage Weil)
- crush:修复 straw2 buckets 的解析 (#11015 Sage Weil)
- 文档:更新 man 页面 (David Zafman)
- librados:修复 C_TwoContexts 中的泄漏 (Xiong Yiliang)
- librados:修复 watch/notify 路径中的泄漏 (Sage Weil)
- librbd:修复并改进 AIO 缓存失效 (#10958 Jason Dillaman)
- librbd:修复内存泄漏 (Jason Dillaman)
- librbd:修复调整大小操作的排序/排队 (Jason Dillaman)
- librbd:在调整大小/展平时验证镜像是否为 r/w (Jason Dillaman)
- librbd:各种内部锁修复 (Jason Dillaman)
- lttng:在简化依赖项之前禁用跟踪 (Josh Durgin)
- mon:添加 bootstrap-rgw profile (Sage Weil)
- mon:不要用 CRUSH 检查的 CSV 文件污染 mon 目录 (Loic Dachary)
- mon:修复时钟漂移时间检查间隔 (#10546 Joao Eduardo Luis)
- mon:修复存储统计信息中的单位 (Joao Eduardo Luis)
- mon:改进擦除码 profile 设置时的错误处理 (#10488, #11144 Loic Dachary)
- mon:在“osd tier add-cache …”上设置 {read,write}_tier (Jianpeng Ma)
- ms:xio:修复各种错误 (Matt Benjamin, Vu Pham)
- osd:DBObjectMap:修复锁定以防止罕见的崩溃 (#9891 Samuel Just)
- osd:修复并记录 last_epoch_started 语义 (Samuel Just)
- osd:修复 PG 分裂时的不同条目处理 (Samuel Just)
- osd:修复关闭时的泄漏 (Kefu Chai)
- osd:修复 scrub 上的 digest 记录 (Samuel Just)
- osd:修复 whiteout 处理 (Sage Weil)
- rbd:允许克隆和导入的 v2 条带参数 (Jason Dillaman)
- rbd:修复镜像特征的格式化输出 (Jason Dillaman)
- rbd:更新 man 页面 (Ilya Dryomov)
- rgw:在设置 ACL 时不要覆盖 bucket/object owner (#10978 Yehuda Sadeh)
- rgw:为 civetweb 启用 IPv6 (#10965 Yehuda Sadeh)
- rgw:修复当 rgw_socket_path 未定义时的 sysvinit 脚本 (#11159 Yehuda Sadeh, Dan Mick)
- rgw:传递 civetweb 可配置项 (#10907 Yehuda Sadeh)
- rgw:使用新的 watch/notify API (Yehuda Sadeh, Sage Weil)
- osd:由于 11155 撤销降级写入功能
自 V0.87.X GIANT 以来的显著变化 ¶
- 添加实验性功能选项 (Sage Weil)
- arch:修复 NEON 特征检测 (#10185 Loic Dachary)
- asyncmsgr:各种修复 (Haomai Wang)
- buffer:添加“shareable”构造 (Matt Benjamin)
- buffer:添加 list::get_contiguous (Sage Weil)
- buffer:如果缓冲区已经连续,则避免重建 (Jianpeng Ma)
- 构建:CMake 支持 (Ali Maredia, Casey Bodley, Adam Emerson, Marcus Watts, Matt Benjamin)
- 构建:一些 cmake 修复 (Matt Benjamin)
- 构建:aarch64 构建修复 (Noah Watkins, Haomai Wang)
- 构建:调整构建依赖项以支持 yasm、virtualenv (Jianpeng Ma)
- 构建:修复“make check”竞争条件 (#10384 Loic Dachary)
- 构建:修复 RHEL/CentOS 5.9 上的构建 (Rohan Mars)
- 构建:修复缺少 libkeyutils 时的 pkg 名称 (Pankag Garg, Ken Dreyer)
- 构建:改进构建依赖项工具 (Loic Dachary)
- 构建:重组 Makefile 以允许模块化构建 (Boris Ranto)
- 构建:支持 jemalloc (Shishir Gowda)
- ceph-disk:Scientific Linux 支持 (Dan van der Ster)
- ceph-disk:允许日志分区重用 (#10146 Loic Dachary, Dav van der Ster)
- ceph-disk:调用 partx/partprobe 一致性 (#9721 Loic Dachary)
- ceph-disk:如果需要加密,则不要重用分区 (Loic Dachary)
- ceph-disk:修复 dmcrypt 密钥权限 (Loic Dachary)
- ceph-disk:修复 umount 竞争条件 (#10096 Blaine Gardner)
- ceph-disk:改进 systemd 支持 (Owen Synge)
- ceph-disk:init=none 选项 (Loic Dachary)
- ceph-disk:各种修复 (Christos Stavrakakis)
- ceph-disk:尊重 –statedir 以获取 keyring (Loic Dachary)
- ceph-disk:如果重用日志分区,则设置 guid (Dan van der Ster)
- ceph-disk:支持 LUKS 用于加密分区 (Andrew Bartlett, Loic Dachary)
- ceph-fuse, libcephfs:POSIX 文件锁支持 (Yan, Zheng)
- ceph-fuse, libcephfs:允许在 inject_release_failure 中使用 xattr caps (#9800 John Spray)
- ceph-fuse, libcephfs:修复 I_COMPLETE_ORDERED 检查 (#9894 Yan, Zheng)
- ceph-fuse, libcephfs:修复 cap flush 溢出 (Greg Farnum, Yan, Zheng)
- ceph-fuse, libcephfs:修复根 inode xattrs (Yan, Zheng)
- ceph-fuse, libcephfs:保留目录排序 (#9178 Yan, Zheng)
- ceph-fuse, libcephfs:在重新连接到 MDS 之前修剪 inode (Yan, Zheng)
- ceph-fuse,libcephfs:添加对 O_NOFOLLOW 和 O_PATH 的支持 (Greg Farnum)
- ceph-fuse,libcephfs:在完成 cap 重新连接之前重新发送请求 (#10912 Yan, Zheng)
- ceph-fuse:对 remount 更加宽容 (#10982 Greg Farnum)
- ceph-fuse:修复 3.18+ 内核上的内核缓存失效 (#9997 Yan, Zheng)
- ceph-fuse:修复内核缓存修剪 (#10277 Yan, Zheng)
- ceph-fuse:根据内核版本选择内核缓存失效机制 (Greg Farnum)
- ceph-monstore-tool:修复关闭 (#10093 Loic Dachary)
- ceph-monstore-tool:修复/改进 CLI (Joao Eduardo Luis)
- ceph-objectstore-tool:修复导入 (#10090 David Zafman)
- ceph-objectstore-tool:改进导入 (David Zafman)
- ceph-objectstore-tool:许多改进和测试 (David Zafman)
- ceph-objectstore-tool:许多许多改进 (David Zafman)
- ceph-objectstore-tool:各种改进、修复 (#9870 #9871 David Zafman)
- ceph.spec:打包 rbd-replay-prep (Ken Dreyer)
- ceph:添加“ceph osd df [tree]”命令 (#10452 Mykola Golub)
- ceph:不要解析 injectargs 两次 (Loic Dachary)
- ceph:修复“ceph tell ...”命令验证 (#10439 Joao Eduardo Luis)
- ceph:改进“ceph osd tree”输出 (Mykola Golub)
- ceph:改进 CLI 解析 (#11093 David Zafman)
- ceph:使“ceph -s”输出更具可读性 (Sage Weil)
- ceph:使“ceph -s”按排序顺序显示 PG 状态计数 (Sage Weil)
- ceph:使“ceph tell mon.* version”正常工作 (Mykola Golub)
- ceph:新的“ceph tell mds.$name_or_rank_or_gid” (John Spray)
- ceph:在“ceph osd tree”中显示 primary-affinity (Mykola Golub)
- ceph:测试鲁棒性 (Joao Eduardo Luis)
- ceph_objectstore_tool:使用 sharded 标志行为 (#9661 David Zafman)
- cephfs-journal-tool:添加 recover_dentries 函数 (#9883 John Spray)
- cephfs-journal-tool:修复日志导入 (#10025 John Spray)
- cephfs-journal-tool:跳过到 expire_pos (#9977 John Spray)
- cleanup rados.h 定义使用宏 (Ilya Dryomov)
- common:添加“perf reset …”管理命令 (Jianpeng Ma)
- common:添加 TableFormatter (Andreas Peters)
- common:添加换行符到刷新后的 json 输出 (Sage Weil)
- common:检查 syncfs() 返回代码 (Jianpeng Ma)
- common:不要在销毁时解锁 rwlock (Federico Simoncelli)
- common:过滤“perf dump” (John Spray)
- common:修复 Formatter factory 损坏 (#10547 Loic Dachary)
- common:修复块设备 discard 检查 (#10296 Sage Weil)
- common:使 json-pretty 输出更漂亮 (Sage Weil)
- common:移除损坏的 CEPH_LOCKDEP 选项 (Kefu Chai)
- common:shared_cache 单元测试 (Cheng Cheng)
- common:支持新的 gperftools 标头位置 (Key Dreyer)
- config:添加 $cctid meta 变量 (Adam Crume)
- crush:修复格式不佳规则的缓冲区溢出 (#9492 Johnu George)
- crush:修复 detach_bucket (#10095 Sage Weil)
- crush:修复 straw2 buckets 的解析 (#11015 Sage Weil)
- crush:修复 adjust_item_weight 中的几个错误 (Rongze Zhu)
- crush:修复树桶行为 (Rongze Zhu)
- crush:改进 constness (Loic Dachary)
- crush:新的改进的 straw2 桶类型 (Sage Weil, Christina Anderson, Xiaoxi Chen)
- crush:straw 桶权重计算修复 (#9998 Sage Weil)
- crush:更新用于独立规则的 tries 统计信息 (#10349 Loic Dachary)
- crush:为擦除码规则集使用更大的 choose_tries 值 (#10353 Loic Dachary)
- crushtool:添加 –location
命令 (Sage Weil, Loic Dachary) - debian,rpm:将 RBD udev 规则移动到 ceph-common (#10864 Ken Dreyer)
- debian:将 python-ceph 分割为 python-{rbd,rados,cephfs} (Boris Ranto)
- 默认使用 libnss 而不是 crypto++ (Federico Gimenez)
- 文档:CephFS 灾难恢复指南 (John Spray)
- 文档:CephFS 早期采用者 (John Spray)
- 文档:为 Fedora 和 CentOS/RHEL 添加构建文档指南 (Nilamdyuti Goswami)
- 文档:将 dumpling 添加到 firefly 升级部分 (#7679 John Wilkins)
- 文档:ceph osd reweight 与 crush weight (Laurent Guerby)
- 文档:不要建议危险的 XFS nobarrier 选项 (Dan van der Ster)
- 文档:记录擦除码池操作 (#9970 Loic Dachary)
- 文档:记录 LRC 每层插件配置 (Yuan Zhou)
- 文档:在 OpenStack 部署中启用 rbd 缓存 (Sebastien Han)
- 文档:擦除码文档更新 (Loic Dachary)
- 文档:文件系统 osd 配置设置 (Kevin Dalley)
- 文档:修复 OpenStack Glance 文档 (#10478 Sebastien Han)
- 文档:改进 CentOS/RHEL 安装说明 (John Wilkins)
- 文档:key/value 存储配置参考 (John Wilkins)
- 文档:各种清理 (Adam Spiers, Sebastien Han, Nilamdyuti Goswami, Ken Dreyer, John Wilkins)
- 文档:各种改进 (Nilamdyuti Goswami, John Wilkins, Chris Holcombe)
- 文档:各种更新 (#9793 #9922 #10204 #10203 Travis Rhoden, Hazem, Ayari, Florian Coste, Andy Allan, Frank Yu, Baptiste Veuillez-Mainard, Yuan Zhou, Armando Segnini, Robert Jansen, Tyler Brekke, Viktor Suprun)
- 文档:各种更新 (Alfredo Deza, VRan Liu)
- 文档:各种更新 (Nilamdyuti Goswami, John Wilkins)
- 文档:新的 man 页面 (Nilamdyuti Goswami)
- 文档:预飞行文档修复 (John Wilkins)
- 文档:将 cloudfiles 替换为 Swift 客户端 Python Swift 示例 (Tim Freund)
- 文档:更新 PG 计数指南 (Gerben Meijer, Laurent Guerby, Loic Dachary)
- 文档:更新 man 页面 (David Zafman)
- 文档:更新 OpenStack 文档以支持 Juno (Sebastien Han)
- 文档:更新发布说明 (Ken Dreyer)
- 文档:更新 sepia 硬件清单 (Sandon Van Ness)
- erasure-code:添加 mSHEC 擦除码支持 (Takeshi Miyamae)
- erasure-code:改进文档 (#10340 Loic Dachary)
- erasure-code:将 max_size 设置为 20 (#10363 Loic Dachary)
- 修复非监视器守护程序中的集群日志记录 (Sage Weil)
- init-ceph:在使用它之前检查 systemd-run (Boris Ranto)
- install-deps.sh:当 root 时不需要 sudo (Loic Dachary)
- keyvaluestore:各种修复 (Haomai Wang)
- keyvaluestore:性能改进 (Haomai Wang)
- libcephfs,ceph-fuse:添加“status” asok (John Spray)
- libcephfs,ceph-fuse:修复获取零长度 xattr (#10552 Yan, Zheng)
- libcephfs:修复 dirfrag 修剪 (#10387 Yan, Zheng)
- libcephfs:修复挂载超时 (#10041 Yan, Zheng)
- libcephfs:修复测试 (#10415 Yan, Zheng)
- libcephfs:修复 umount 时的 use-afer-free (#10412 Yan, Zheng)
- libcephfs:包含 ceph 和 git 版本在客户端元数据中 (Sage Weil)
- librados, osd:新的 watch/notify 实现 (Sage Weil)
- librados:添加 blacklist_add 便利方法 (Jason Dillaman)
- librados:添加 rados_pool_get_base_tier() 调用 (Adam Crume)
- librados:添加 watch_flush() 操作 (Sage Weil, Haomai Wang)
- librados:避免 getxattr、read 上的 memcpy (Jianpeng Ma)
- librados:限制缓冲区长度 (Loic Dachary)
- librados:通过池 ID 创建 ioctx (Jason Dillaman)
- librados:在快速调度中执行 notify 完成 (Sage Weil)
- librados:删除“category”特征 (Sage Weil)
- librados:公开 rados_{read|write}_op_assert_version 在 C API 中 (Kim Vandry)
- librados:修复跳过 map epoch 时的无限循环 (#9986 Ding Dinghua)
- librados:修复迭代器 operator= 错误 (#10082 David Zafman, Yehuda Sadeh)
- librados:修复 C_TwoContexts 中的泄漏 (Xiong Yiliang)
- librados:修复 watch/notify 路径中的泄漏 (Sage Weil)
- librados:修复池 DNE 时的空指针解引用 (#9944 Sage Weil)
- librados:修复 objecter 竞争条件 (#9617 Josh Durgin)
- librados:修复池删除处理 (#10372 Sage Weil)
- librados:修复池名称缓存 (#10458 Radoslaw Zarzynski)
- librados:修复资源泄漏、各种错误 (#10425 Radoslaw Zarzynski)
- librados:修复一些 watch/notify 锁定 (Jason Dillaman, Josh Durgin)
- librados:修复最近重构后的计时器竞争条件 (Sage Weil)
- librados:新的 fadvise API (Ma Jianpeng)
- librados:仅导出公共 API 符号 (Jason Dillaman)
- librados:删除阴影变量 (Kefu Chain)
- librados:从 C API 转换 op 标志 (Matthew Richards)
- libradosstriper:修复 remove() (Dongmao Zhang)
- libradosstriper:修复关闭挂起 (Dongmao Zhang)
- libradosstriper:修复 stat strtoll (Dongmao Zhang)
- libradosstriper:修复 trunc 方法 (#10129 Sebastien Ponce)
- libradosstriper:修复 write_full 在 ENOENT 时的错误 (#10758 Sebastien Ponce)
- libradosstriper:各种修复 (Sebastien Ponce)
- librbd:RBD 镜像映射的 CRC 保护 (Jason Dillaman)
- librbd:添加缺少的 python 文档字符串 (Jason Dillaman)
- librbd: 为提高性能添加每个镜像的对象映射 (Jason Dillaman)
- librbd: 添加预读 (Adam Crume)
- librbd: 添加对“对象映射”的支持,指示哪些对象存在 (Jason Dillaman)
- librbd: 调整内部锁 (Josh Durgin, Jason Dillaman)
- librbd: 更好地处理 watch 错误 (Jason Dillaman)
- librbd: 在关闭镜像之前完成待处理的操作 (#10299 Josh Durgin)
- librbd: 通过锁所有者协调维护操作 (Jason Dillaman)
- librbd: 复制时读取 (Min Chen, Li Wang, Yunchuan Wen, Cheng Cheng, Jason Dillaman)
- librbd: 区分只读与读写特性 (Jason Dillaman)
- librbd: 在失败路径中不要关闭已关闭的父镜像 (#10030 Jason Dillaman)
- librbd: 使用快照强制写入顺序 (Jason Dillaman)
- librbd: 独占镜像锁 (Jason Dillaman)
- librbd: fadvise API (Ma Jianpeng)
- librbd: fadvise 风格的提示;为某些操作添加杂项提示 (Jianpeng Ma)
- librbd:修复并改进 AIO 缓存失效 (#10958 Jason Dillaman)
- librbd: 修复 list_children 和 snap_unprotect 中的缓存层级 (Adam Crume)
- librbd: 修复 coverity 误报 (Jason Dillaman)
- librbd: 修复 diff 测试 (#10002 Josh Durgin)
- librbd: 修复来自无效池 ioctxs 的 list_children (#10123 Jason Dillaman)
- librbd: 修复预读的锁 (Jason Dillaman)
- librbd:修复内存泄漏 (Jason Dillaman)
- librbd:修复调整大小操作的排序/排队 (Jason Dillaman)
- librbd: 修复 ObjectCacher 中的性能回归 (#9513 Adam Crume)
- librbd: 修复快照创建竞争条件 (Jason Dillaman)
- librbd: 修复写入与导入竞争条件 (#10590 Jason Dillaman)
- librbd: 异步刷新 AIO 操作 (#10714 Jason Dillaman)
- librbd:优雅地处理已删除/重命名的池 (#10270 Jason Dillaman)
- librbd:lttng tracepoints (Adam Crume)
- librbd: 创建长时间运行的维护操作的异步版本 (Jason Dillaman)
- librbd: 杂项修复 (Xinxin Shu, Jason Dillaman)
- librbd: 模拟测试 (Jason Dillaman)
- librbd: 只导出公共 API 符号 (Jason Dillaman)
- librbd: 在破坏锁之前,可选地将客户端列入黑名单 (#10761 Jason Dillaman)
- librbd: 防止在收缩期间进行 copyup (Jason Dillaman)
- librbd: 重构单元测试以使用 fixtures (Jason Dillaman)
- librbd:在调整大小/展平时验证镜像是否为 r/w (Jason Dillaman)
- librbd:各种内部锁修复 (Jason Dillaman)
- 许多 coverity 修复 (Danny Al-Gaaf)
- 许多许多 coverity 清理 (Danny Al-Gaaf)
- mds: ‘flush journal’ 管理命令 (John Spray)
- mds: ENOSPC 和 OSDMap epoch 屏障 (#7317 John Spray)
- mds: 整个初始 scrub 基础设施 (Greg Farnum)
- mds: 添加 cephfs-table-tool (John Spray)
- mds: 用于获取子树映射的 asok 命令 (John Spray)
- mds: 避免在大多数情况下发送无痕回复 (Yan, Zheng)
- mds: 将 MDSCacheObjects 常量化 (John Spray)
- mds: dirfrag buf 修复 (Yan, Zheng)
- mds: 禁止在非活动 MDS 上执行大多数命令 (Greg Farnum)
- mds: 删除已删除目录上的条目和租约 (#10164 Yan, Zheng)
- mds: 导出 dir asok 命令 (John Spray)
- mds: 修复 MDLog IO 回调死锁 (John Spray)
- mds: 修复 MClientSession 的 compat_version (#9945 John Spray)
- mds: 修复 journal probe 与 purge 期间的死锁 (#10229 Yan, Zheng)
- mds: 修复修剪日志段的竞争条件 (Yan, Zheng)
- mds: 修复 reply snapbl (Yan, Zheng)
- mds: 修复 sessionmap 生命周期错误 (Yan, Zheng)
- mds: 修复 stray/purge perfcounters (#10388 John Spray)
- mds: 在关闭期间处理 heartbeat_reset (#10382 John Spray)
- mds: 处理零大小 xattr (#10335 Yan, Zheng)
- mds: 初始化根 inode xattr 版本 (Yan, Zheng)
- mds: 引入 auth caps (John Spray)
- mds: 许多许多与快照相关的修复 (Yan, Zheng)
- mds: 杂项错误 (Greg Farnum, John Spray, Yan, Zheng, Henry Change)
- mds: 重构,改进 Session 存储 (John Spray)
- mds: 存储 stray dir 的回溯 (Yan, Zheng)
- mds: 子树配额支持 (Yunchuan Wen)
- mds: 在获取 dirfrag 时验证回溯 (#9557 Yan, Zheng)
- memstore: 剩余空间跟踪 (John Spray)
- 杂项清理 (Danny Al-Gaaf, David Anderson)
- 杂项 coverity 修复 (Danny Al-Gaaf)
- 杂项 coverity 修复 (Danny Al-Gaaf)
- 杂项: 各种 valgrind 修复和清理 (Danny Al-Gaaf)
- mon: ‘osd crush reweight-all’ 命令 (Sage Weil)
- mon: 添加 ‘ceph osd rename-bucket ...’ 命令 (Loic Dachary)
- mon:添加 bootstrap-rgw profile (Sage Weil)
- mon: 添加每个 osd 的最大 pg 警告 (Sage Weil)
- mon: 为某些 mon 命令添加 noforward 标志 (Mykola Golub)
- mon: 允许将层级添加到 fs 池 (#10135 John Spray)
- mon: 允许手动清除 full 标志 (#9323 Sage Weil)
- mon: 清理 auth 列表输出 (Loic Dachary)
- mon: 延迟故障注入 (Joao Eduardo Luis)
- mon: 禁止空池名称 (#10555 Wido den Hollander)
- mon: 不要停用最后一个 MDS (#10862 John Spray)
- mon:不要用 CRUSH 检查的 CSV 文件污染 mon 目录 (Loic Dachary)
- mon: 删除旧的 ceph_mon_store_converter (Sage Weil)
- mon: 修复 ‘ceph pg dump_stuck degraded’ (Xinxin Shu)
- mon: 修复备用 MDS 的 ‘mds fail’ (John Spray)
- mon: 修复 ‘osd crush link’ id 解析 (John Spray)
- mon: 修复 ‘profile osd’ 在 mon 上使用 config-key 函数 (#10844 Joao Eduardo Luis)
- mon: 修复 _ratio 单位和类型 (Sage Weil)
- mon: 修复 JSON 转储,将浮点数转储为浮点数而不是字符串 (Sage Weil)
- mon: 修复来自 peons 的 MDS 健康状态 (#10151 John Spray)
- mon: 修复 min_last_epoch_clean 的缓存 (#9987 Sage Weil)
- mon:修复时钟漂移时间检查间隔 (#10546 Joao Eduardo Luis)
- mon: 修复 mkfs 期间的 compatset 初始化 (Joao Eduardo Luis)
- mon: 修复 add_data_pool 的错误输出 (#9852 Joao Eduardo Luis)
- mon: 修复选举期间的特性跟踪 (Joao Eduardo Luis)
- mon: 修复 formatter ‘pg stat’ 命令输出 (Sage Weil)
- mon: 修复 mds gid/rank/state 解析 (John Spray)
- mon: 修复杂项错误路径 (Joao Eduardo Luis)
- mon: 修复 paxos 漏算一的情况 (#9301 Sage Weil)
- mon: 修复 paxos 超时 (#10220 Joao Eduardo Luis)
- mon: 修复 stashed monmap 编码 (#5203 Xie Rui)
- mon:修复存储统计信息中的单位 (Joao Eduardo Luis)
- mon: 从 leader 获取规范 OSDMap (#10422 Sage Weil)
- mon: 忽略来自 up_from 之前的故障报告 (#10762 Dan van der Ster, Sage Weil)
- mon: 实现 ‘fs reset’ 命令 (John Spray)
- mon:改进擦除码 profile 设置时的错误处理 (#10488, #11144 Loic Dachary)
- mon: 改进了损坏 CRUSH 映射的检测 (Joao Eduardo Luis)
- mon: 在转发请求的审计日志中包含实体名称 (#9913 Joao Eduardo Luis)
- mon: 在 osdmap 摘要中包含 pg_temp 计数 (Sage Weil)
- mon: 将健康摘要记录到集群日志 (#9440 Joao Eduardo Luis)
- mon: 使 ‘mds fail’ 幂等 (John Spray)
- mon: 使 pg dump {sum,pgs,pgs_brief} 适用于 format=plain (#5963 #6759 Mykola Golub)
- mon: 新的 ‘ceph pool ls [detail]’ 命令 (Sage Weil)
- mon: 新的池安全标志 nodelete, nopgchange, nosizechange (#9792 Mykola Golub)
- mon: 新的、友好的 ‘ceph pg ls ...’ 命令 (Xinxin Shu)
- mon: paxos: 允许在提议时读取 (#9321 #9322 Joao Eduardo Luis)
- mon: 防止 MDS 从 STOPPING 状态转换 (#10791 Greg Farnum)
- mon: 提议所有待处理的工作在一个事务中 (Sage Weil)
- mon: 删除不存在池的 pg_temps (Joao Eduardo Luis)
- mon: 需要 mon_allow_pool_delete 选项才能删除池 (Sage Weil)
- mon: 尊重 down 标志以提升备用 (John Spray)
- mon: 将 globalid 预分配值设置为更大的值 (Sage Weil)
- mon:在“osd tier add-cache …”上设置 {read,write}_tier (Jianpeng Ma)
- mon: 跳过 get_rule_avail 中的零化 osd 统计信息 (#10257 Joao Eduardo Luis)
- mon: 验证 min_size 范围 (Jianpeng Ma)
- mon: 在等待可写之前进行交叉提议 (#9794 Joao Eduardo Luis)
- mount.ceph: 修复 suprious 错误消息 (#10351 Yan, Zheng)
- ms:xio:修复各种错误 (Matt Benjamin, Vu Pham)
- msgr: async: 将线程绑定到 CPU 核心,改进轮询 (Haomai Wang)
- msgr: async: 许多修复,单元测试 (Haomai Wang)
- msgr: async: 几个修复 (Haomai Wang)
- msgr: asyncmessenger: 添加 kqueue 支持 (#9926 Haomai Wang)
- msgr: 避免无用的 new/delete (Haomai Wang)
- msgr: 修复 RESETSESSION 错误 (#10080 Greg Farnum)
- msgr: 修复 crc 配置 (Mykola Golub)
- msgr: 修复延迟注入错误 (#9910 Sage Weil, Greg Farnum)
- msgr: 杂项单元测试 (Haomai Wang)
- msgr: 新的 AsymcMessenger 替代实现 (Haomai Wang)
- msgr: 在执行 recv 时预取数据 (Yehuda Sadeh)
- msgr: simple: 修复罕见的死锁 (Greg Farnum)
- msgr: simple: 在失败时重试绑定端口 (#10029 Wido den Hollander)
- msgr: xio: XioMessenger RDMA 支持 (Casey Bodley, Vu Pham, Matt Benjamin)
- objectstore: 弃用 collection attrs (Sage Weil)
- osd, librados: fadvise 风格的 librados 提示 (Jianpeng Ma)
- osd, librados: 修复 xattr_cmp_u64 (Dongmao Zhang)
- osd, librados: 改造 PG 列出 API 以处理命名空间 (#9031 #9262 #9438 David Zafman)
- osd, mds: ‘ops’ 作为 asok 上的 ‘dump_ops_in_flight’ 的简写 (Sage Weil)
- osd, mon: 为所有 OSDMap 添加校验和 (Sage Weil)
- osd, mon: 从 mon 向 osd 发送初始 pg 创建时间 (#9887 David Zafman)
- osd,mon: 添加 ‘norebalance’ 标志 (Kefu Chai)
- osd,mon: 在 MOSDBoot 中显式指定 OSD 特性 (#10911 Sage Weil)
- osd:DBObjectMap:修复锁定以防止罕见的崩溃 (#9891 Samuel Just)
- osd: EIO 在全对象读取时,校验和错误 (Sage Weil)
- osd: 添加擦除码语料库 (Loic Dachary)
- osd: 添加 fadvise 标志到 ObjectStore API (Jianpeng Ma)
- osd: 添加 get_latest_osdmap asok 命令 (#9483 #9484 Mykola Golub)
- osd: 添加杂项测试 (Loic Dachary, Danny Al-Gaaf)
- osd: 添加优先处理 heartbeat 网络流量的选项 (Jian Wen)
- osd: 添加对 SHEC 擦除码算法的支持 (Takeshi Miyamae, Loic Dachary)
- osd: 允许删除带有 watcher 的对象 (#2339 Sage Weil)
- osd: 允许在低于 min_size 时恢复 (Samuel Just)
- osd: 允许在少于 min_size OSD 的情况下恢复 (Samuel Just)
- osd: 允许 Push/Pull 的稀疏读取 (Haomai Wang)
- osd: 允许在缓存池中删除 whiteout (Sage Weil)
- osd: 允许对降级对象进行写入 (Samuel Just)
- osd: 允许对降级对象进行写入 (Samuel Just)
- osd: 避免发布未更改的 PG 统计信息 (Sage Weil)
- osd: 批量 pg log trim (Xinze Chi)
- osd: 缓存池: 当缓存已满时忽略 min flush age (Xinze Chi)
- osd: 缓存最近的 ObjectContexts (Dong Yuan)
- osd: 缓存 reverse_nibbles hash 值 (Dong Yuan)
- osd: 清理内部 ObjectStore 接口 (Sage Weil)
- osd: 清理 boost optionals (William Kennington)
- osd: 在间隔更改时清除缓存 (Samuel Just)
- osd: 不要代理读取,除非目标 OSD 是新的 (#10788 Sage Weil)
- osd: 不要中止 deep scrub 上的缺失 hinfo (#10018 Loic Dachary)
- osd: 不要更新不一致对象上的摘要 (#10524 Samuel Just)
- osd: 不要记录 snapdirs 的摘要 (#10536 Samuel Just)
- osd: 删除对 dumpling 之前的升级的支持 (Sage Weil)
- osd: 启用并使用 posix_fadvise (Sage Weil)
- osd: 擦除编码: 允许 bench.sh 测试 ISA 后端 (Yuan Zhou)
- osd: 擦除编码: 编码回归测试,语料库 (#9420 Loic Dachary)
- osd: 擦除编码: 强制块大小对齐 (#10211 Loic Dachary)
- osd: 擦除编码: jerasure 支持 NEON (Loic Dachary)
- osd: 擦除编码: 放宽 cauchy w 限制 (#10325 David Zhang, Loic Dachary)
- osd: 擦除编码: 更新 gf-complete 到最新的上游 (Loic Dachary)
- osd: 暴露非 journal 后端通过 ceph-osd CLI (Hoamai Wang)
- osd: filejournal: 不要缓存 journal,除非使用 direct IO (Jianpeng Ma)
- osd: 修复 JSON 输出 stray OSDs (Loic Dachary)
- osd: 修复 OSDCap 解析器在旧的 (el6) boost::spirit 上 (#10757 Kefu Chai)
- osd: 修复 OSDCap 解析在 el6 上 (#10757 Kefu Chai)
- osd: 修复 ObjectStore::Transaction 编码版本 (#10734 Samuel Just)
- osd: 修复 WBTHrottle perf 计数器 (Haomai Wang)
- osd:修复并记录 last_epoch_started 语义 (Samuel Just)
- osd: 修复 auth 对象选择在修复期间 (#10524 Samuel Just)
- osd: 修复 backfill 错误 (#10150 Samuel Just)
- osd: 修复挂起摘要更新中的错误 (#10840 Samuel Just)
- osd: 修复 cancel_proxy_read_ops (Sage Weil)
- osd: 修复中断 pg 删除的清理 (#10617 Sage Weil)
- osd:修复 PG 分裂时的不同条目处理 (Samuel Just)
- osd: 修复 ghobject_t 格式化输出以包含 shard (#10063 Loic Dachary)
- osd: 修复 ioprio 选项 (Mykola Golub)
- osd: 修复 ioprio 选项 (Loic Dachary)
- osd: 修复 journal 关闭竞争条件 (Sage Weil)
- osd: 修复 journal 包装错误 (#10883 David Zafman)
- osd: 修复 SnapTrimWQ 中的泄漏 (#10421 Kefu Chai)
- osd:修复关闭时的泄漏 (Kefu Chai)
- osd: 修复 memstore 剩余空间计算 (Xiaoxi Chen)
- osd: 修复混合版本配对问题 (Samuel Just)
- osd: 修复对象年龄驱逐 (Zhiqiang Wang)
- osd: 修复对象 atime 计算 (Xinze Chi)
- osd: 修复对象摘要更新错误 (#10840 Samuel Just)
- osd: 修复偶发的配对停滞 (#10431 Sage Weil)
- osd: 修复新的事务编码的顺序问题 (#10534 Dong Yuan)
- osd: 修复 osd peer 检查 scrub 消息 (#9555 Sage Weil)
- osd: 修复 past_interval 显示错误 (#9752 Loic Dachary)
- osd: 修复 past_interval 生成 (#10427 #10430 David Zafman)
- osd: 修复 pgls 过滤器 ops (#9439 David Zafman)
- osd:修复 scrub 上的 digest 记录 (Samuel Just)
- osd: 修复 scrub 延迟错误 (#10693 Samuel Just)
- osd: 修复 scrub vs try-flush 错误 (#8011 Samuel Just)
- osd: 修复 push 上的短读处理 (#8121 David Zafman)
- osd: 修复 stderr 与 -f 或 -d (Dan Mick)
- osd: 修复事务会计 (Jianpeng Ma)
- osd: 修复 watch 重连竞争条件 (#10441 Sage Weil)
- osd: 修复 watch 超时缓存状态更新 (#10784 David Zafman)
- osd:修复 whiteout 处理 (Sage Weil)
- osd: 立即从缓存层级刷新快照 (Sage Weil)
- osd: 强制执行 watch/notify 操作的提升 (Zhiqiang Wang)
- osd:处理带有快照的无操作写入 (#10262 Sage Weil)
- osd: 改进缓存提升/降级跨度的幂等性检测 (#8935 Sage Weil, Samuel Just)
- osd: 包含激活中的 peer 在 blocked_by 中 (#10477 Sage Weil)
- osd: jerasure 和 gf-complete 更新来自上游 (#10216 Loic Dachary)
- osd: journal: 检查 fsync/fdatasync 结果 (Jianpeng Ma)
- osd: journal: 修复对齐检查,避免无用的 memmove (Jianpeng Ma)
- osd: journal: 修复关闭期间的挂起 (#10474 David Zafman)
- osd: journal: 修复 header.committed_up_to (Xinze Chi)
- osd: journal: 修复在启用 direct IO 时 journal 清零 (Xie Rui)
- osd: journal: 初始化节流器 (Ning Yao)
- osd: journal: 杂项错误修复 (#6003 David Zafman, Samuel Just)
- osd: journal: 在重放后更新 committed_thru (#6756 Samuel Just)
- osd: keyvaluestore: 清理死代码 (Ning Yao)
- osd: keyvaluestore: 修复 getattr 语义 (Haomai Wang)
- osd: keyvaluestore: 修复键排序 (#10119 Haomai Wang)
- osd: keyvaluestore_dev: 优化 (Chendi Xue)
- osd: 限制正在进行的读取请求 (Jason Dillaman)
- osd: 记录 scrub 或 repair 开始时 (Loic Dachary)
- osd: 使 misdirected op 检查对 EC 池具有鲁棒性 (#9835 Sage Weil)
- osd: memstore: 修复大小限制 (Xiaoxi Chen)
- osd: 杂项 FIEMAP 修复 (Ma Jianpeng)
- osd: 杂项清理 (Xinze Chi, Yongyue Sun)
- osd: 杂项优化 (Xinxin Shu, Zhiqiang Wang, Xinze Chi)
- osd: 杂项 scrub 修复 (#10017 Loic Dachary)
- osd: 新的 ‘activating’ 状态在配对和活动之间 (Sage Weil)
- osd: 新的优化的 ObjectStore::Transaction 编码 (Dong Yuan)
- osd: 优化 Finisher (Xinze Chi)
- osd: 使用 unordered_map 优化 WBThrottle map (Ning Yao)
- osd: 优化 filter_snapc (Ning Yao)
- osd: 保留用于提升/降级的幂等性检查的 reqids (Sage Weil, Zhiqiang Wang, Samuel Just)
- osd: 代理读取支持 (Zhiqiang Wang)
- osd: 缓存提升期间的代理读取 (Zhiqiang Wang)
- osd: 移除死锁代码 (Xinxin Shu)
- osd: 移除遗留的经典 scrub 代码 (Sage Weil)
- osd: 移除 MOSDSubOp 中的未使用的字段 (Xiaoxi Chen)
- osd: 移除了一些死代码 (Xinze Chi)
- osd: 将 MOSDSubOp 消息替换为更简单、优化的 MOSDRepOp (Xiaoxi Chen)
- osd: 将 scrub 限制在一天中的特定时间 (Xinze Chi)
- osd: rocksdb: 修复关闭问题 (Hoamai Wang)
- osd: 为了更好的并发性,将 PG 元数据存储在每个集合的对象中 (Sage Weil)
- osd: 在 scrub 和 write_full 上存储整个对象的校验和 (Sage Weil)
- osd: 支持 journal trim 的 discard 功能 (Jianpeng Ma)
- osd: 使用 FIEMAP_FLAGS_SYNC 代替 fsync (Jianpeng Ma)
- osd: 在使用 XFS extsize ioctl 之前验证内核是否足够新,默认启用 (#9956 Sage Weil)
- pybind: 修复 librados 绑定中的内存泄漏 (Billy Olsen)
- pyrados: 添加对象锁支持 (#6114 Mehdi Abaakouk)
- pyrados: 修复错误的 wait_* 路由 (#10104 Dan Mick)
- pyrados: 杂项清理 (Kefu Chai)
- qa: 添加大型认证票据测试 (Ilya Dryomov)
- qa: 修复 mds 测试 (#10539 John Spray)
- qa: 修复 osd 创建重复测试 (#10083 Loic Dachary)
- qa: 忽略 rados ls 中的重复项 (Josh Durgin)
- qa: 改进 hadoop 测试 (Noah Watkins)
- qa: 许多 ‘make check’ 改进 (Loic Dachary)
- qa: 杂项测试 (Loic Dachary, Yan, Zheng)
- qa: 并行化 make check (Loic Dachary)
- qa: 重组 fs quota 测试 (Greg Farnum)
- qa: 容忍 make check 的近满磁盘 (Loic Dachary)
- rados: 修复 /dev/null 的 put 操作 (Loic Dachary)
- rados: 修复用法 (Jianpeng Ma)
- rados: 更严格地解析命令行参数 (#8983 Adam Crume)
- rados: 为 copy 和 cppool 使用 copy-from 操作 (Sage Weil)
- radosgw-admin: 添加 replicalog update 命令 (Yehuda Sadeh)
- rbd-fuse: 关闭时清理 (Josh Durgin)
- rbd-fuse: 修复内存泄漏 (Adam Crume)
- rbd-replay-many (Adam Crume)
- rbd-replay: 将 –anonymize 标志添加到 rbd-replay-prep (Adam Crume)
- rbd: 添加 ‘merge-diff’ 函数 (MingXin Liu, Yunchuan Wen, Li Wang)
- rbd:允许克隆和导入的 v2 条带参数 (Jason Dillaman)
- rbd: 修复非存在对象的 ‘rbd diff’ (Adam Crume)
- rbd: 修复镜像导入时的缓冲区处理 (#10590 Jason Dillaman)
- rbd: 修复格式为 1 时的条带化错误 (Sebastien Han)
- rbd: 修复大于 2GB 的镜像大小的导出 (Vicente Cheng)
- rbd:修复镜像特征的格式化输出 (Jason Dillaman)
- rbd: 默认情况下让 exclusive lockin goff 生效 (Jason Dillaman)
- rbd:更新 man 页面 (Ilya Dryomov)
- rbd: 更新 init-rbdmap 以修复重复挂载点 (Karel Striegel)
- rbd: 在导入、导出和基准测试操作中使用 IO 提示 (#10462 Jason Dillaman)
- rbd: 在 rbd bench-write 通量中使用滚动平均值 (Jason Dillaman)
- rbd_recover_tool: RBD 镜像恢复工具 (Min Chen)
- rgw: S3 样式的对象版本控制支持 (Yehuda Sadeh)
- rgw: 当对象位于另一个区域时添加 location 标头 (VRan Liu)
- rgw: 更改 multipart upload id magic (#10271 Yehuda Sadeh)
- rgw: 检查 S3 POST 请求的 keystone 认证 (#10062 Abhishek Lekshmanan)
- rgw: 检查 s3 keystone 认证中的时间戳 (#10062 Abhishek Lekshmanan)
- rgw: 基于 ETag 的条件 PUT (#8562 Ray Lv)
- rgw: 在创建用户时创建子用户(如果需要) (#10103 Yehuda Sadeh)
- rgw: 解码 http 查询参数修正 (#10271 Yehuda Sadeh)
- rgw:在设置 ACL 时不要覆盖 bucket/object owner (#10978 Yehuda Sadeh)
- rgw:为 civetweb 启用 IPv6 (#10965 Yehuda Sadeh)
- rgw: 扩展 replica log API (purge-all) (Yehuda Sadeh)
- rgw: 如果未配置 keystone,则使 S3 POST 失败 (#10688 Valery Tschopp, Yehuda Sadeh)
- rgw: 修复 If-Modified-Since (VRan Liu)
- rgw: 修复 get ACL 请求中的 XML 标头 (#10106 Yehuda Sadeh)
- rgw: 修复带有数据清除的 bucket 移除 (Yehuda Sadeh)
- rgw: 修复内容长度检查 (#10701 Axel Dunkel, Yehuda Sadeh)
- rgw: 修复 content-length 更新 (#9576 Yehuda Sadeh)
- rgw: 修复 max_size quota 的禁用 (#9907 Dong Lei)
- rgw: 修复错误代码 (#10334 #10329 Yehuda Sadeh)
- rgw: 修复 len 为 0 时的错误 (#9877 Yehuda Sadeh)
- rgw: 修复对象复制内容类型 (#9478 Yehuda Sadeh)
- rgw: 修复 swift 中的部分 GET (#10553 Yehuda Sadeh)
- rgw: 修复 replica log 索引 (#8251 Yehuda Sadeh)
- rgw: 修复关闭问题 (#10472 Yehuda Sadeh)
- rgw: 修复 swift 元数据标头名称 (Dmytro Iurchenko)
- rgw:修复当 rgw_socket_path 未定义时的 sysvinit 脚本 (#11159 Yehuda Sadeh, Dan Mick)
- rgw: 修复 get-user-info API 中的用户 stags (#9359 Ray Lv)
- rgw: 在 get ACL 请求上包含 XML ns (#10106 Yehuda Sadeh)
- rgw: 适当索引 swift 键 (#10471 Yehuda Sadeh)
- rgw: 使 sysvinit 脚本正确设置 ulimit -n (Sage Weil)
- rgw: 杂项修复 (#10307 Yehuda Sadeh)
- rgw: 仅跟踪我们写入的对象的清理 (Yehuda Sadeh)
- rgw:传递 civetweb 可配置项 (#10907 Yehuda Sadeh)
- rgw: 防止与放置规则不匹配的非法 bucket 策略 (Yehuda Sadeh)
- rgw: 在 abort 时从 bucket 索引中移除 multipart 条目 (#10719 Yehuda Sadeh)
- rgw: 移除 swift 用户 manifest (DLO) hash 计算 (#9973 Yehuda Sadeh)
- rgw: 对容器 POST 响应 204 (Yuan Zhou)
- rgw: 在 GET/HEAD 上返回时间戳 (#8911 Yehuda Sadeh)
- rgw: 重用 fcgx 连接结构 (#10194 Yehuda Sadeh)
- rgw: 使用 systemd 作为 apache 运行 radosgw (#10125 Loic Dachary)
- rgw: 发送显式的 HTTP 状态字符串 (Yehuda Sadeh)
- rgw: 在对象复制上设置 ETag (#9479 Yehuda Sadeh)
- rgw: 为 keystone 令牌验证请求设置长度 (#7796 Yehuda Sadeh, Mark Kirkwood)
- rgw: 支持 Swift 存储策略兼容的 X-Storage-Policy 标头 (Yehuda Sadeh)
- rgw: 支持多个主机名 (#7467 Yehuda Sadeh)
- rgw: swift: 转储容器的自定义元数据 (#10665 Ahmad Faheem, Dmytro Iurchenko)
- rgw: swift: 支持响应格式的 Accept 标头 (#10746 Dmytro Iurchenko)
- rgw: swift: 支持 X-Remove-Container-Meta-{key} (#10475 Dmytro Iurchenko)
- rgw: 调整错误代码 (#10329 #10334 Yehuda Sadeh)
- rgw: 在 attr 更改时更新 bucket 索引,用于多站点同步 (#5595 Yehuda Sadeh)
- rgw: 使用 rn 作为 http 标头 (#9254 Yehuda Sadeh)
- rgw: 使用 gc 进行 multipart abort (#10445 Aaron Bassett, Yehuda Sadeh)
- rgw:使用新的 watch/notify API (Yehuda Sadeh, Sage Weil)
- rpm: 杂项修复 (Key Dreyer)
- rpm: 将 rgw logrotate 移动到 radosgw 子包 (Ken Dreyer)
- systemd: 更好的 systemd 单元文件 (Owen Synge)
- sysvinit: 修复 ‘stop’ 中的竞争条件 (#10389 Loic Dachary)
- test: 修复 bufferlist 测试 (Jianpeng Ma)
- tests: 能够在 docker 下运行单元测试 (Loic Dachary)
- tests: centos-6 dockerfile (#10755 Loic Dachary)
- tests: 改进基于 docker 的测试 (Loic Dachary)
- tests: shared_cache 的单元测试 (Dong Yuan)
- udev: 修复 CentOS7/RHEL7 的规则 (Loic Dachary)
- 使用 clock_gettime 代替 gettimeofday (Jianpeng Ma)
- vstart.sh: 设置 s3-tests 的环境 (Luis Pabon)
- vstart.sh: 与 cmake 配合使用 (Yehuda Sadeh)