发布 v13.2.7 mimic

dgalloway

这是 Mimic v13.2.x 长期稳定版系列的第七个错误修复版本。我们建议所有 Mimic 用户升级。

重要变更

MDS

  • 现在对缓存修剪进行了节流。通过 "ceph tell mds.cache drop" 命令或大幅减小缓存大小将不再导致服务不可用。
  • 回收 caps 的行为已得到显著改进,不再尝试一次性回收太多 caps,从而避免了不稳定性。具有大缓存(64GB+)的 MDS 应该更稳定。
  • MDS 现在提供了一个配置选项 "mds_max_caps_per_client" (默认值: 1M) 来限制客户端会话可以持有的 caps 数量。长时间运行的客户端会话持有大量 caps 在某些会话事件期间需要处理所有这些 caps 时一直是 MDS 不稳定的根源。建议不要不必要地增加此值。
  • 已删除配置参数 "mds_recall_state_timeout"。现在根据 MDS 已回收但未释放的 caps 数量生成延迟客户端回收警告。新的配置参数 "mds_recall_warning_threshold" (默认值: 32K) 和 "mds_recall_warning_decay_rate" (默认值: 60s) 设置了此警告的阈值。
  • 已删除 "cache drop" admin socket 命令。 "ceph tell mds.X cache drop" 仍然存在。

OSD

  • 如果任何计算间隔的平均 osd 心跳 ping 时间超过可配置的阈值,则会生成健康警告。OSD 计算 1 分钟、5 分钟和 15 分钟间隔的平均值、最小值和最大值。新的配置选项 "mon_warn_on_slow_ping_ratio" 指定 "osd_heartbeat_grace" 的百分比来确定阈值。值为零则禁用警告。新的配置选项 "mon_warn_on_slow_ping_time"(以毫秒为单位指定)会覆盖计算值,当 OSD 心跳 ping 时间超过指定量时触发警告。新的 admin 命令 "ceph daemon mgr.# dump_osd_network [threshold]" 列出所有 ping 时间长于指定阈值或由配置选项确定的值的连接,用于任何 3 个间隔的平均值。新的 admin 命令 ceph daemon osd.# dump_osd_network [threshold]" 执行相同操作,但仅包含由指定 OSD 发起的心跳。
  • “osd_deep_scrub_large_omap_object_key_threshold” 参数的默认值已降低,以便更容易检测到具有大量 omap 键的对象。

RGW

  • radosgw-admin 引入了两个子命令,允许管理在早期版本的 RGW 中进行 bucket reshard 后可能留下的过期对象。一个子命令列出此类对象,另一个删除它们。有关详细信息,请阅读动态 resharding 文档的故障排除部分。

变更日志

  • bluestore: 由于 bluefs_preextend_wal_files = false 而导致 50-100% 的 iops 丢失 (issue#40280, pr#28574, Vitaliy Filippov)
  • bluestore: 将 bluestore_fsck_on_mount_deep 的默认值更改为 false (pr#29699, Neha Ojha)
  • bluestore: _txc_add_transaction 错误 (39) 操作 21 (op 1, counting from 0) 上未处理目录非空 (issue#39692, pr#29217, Sage Weil)
  • bluestore: 应用 shared_alloc_size 到共享设备并更改日志级别 (pr#30219, Vikhyat Umrao, Josh Durgin, Sage Weil, Igor Fedotov)
  • bluestore: 避免 Stupid Allocator 返回的 extent 中的长度溢出 (issue#40758, issue#40703, pr#29024, Igor Fedotov)
  • bluestore: common/options: 将并发 bluestore rocksdb 压缩设置为 2 (pr#30150, Mark Nelson)
  • bluestore: bluestore/bluefs 默认使用 bitmap 分配器 (pr#28970, Igor Fedotov)
  • bluestore: 在“无跨越 blob id”中止前转储 (pr#28029, Igor Fedotov)
  • bluestore: 修复 >2GB bluefs 写入 (pr#28967, Sage Weil, kungf)
  • bluestore: 修复 bmap 分配器中的重复分配 (issue#40080, pr#28645, Igor Fedotov)
  • bluestore: 无条件加载 OSD 所有压缩设置 (issue#40480, pr#28894, Igor Fedotov)
  • build/ops: Cython 0.29 删除了对子解释器的支持:引发 ImportError: 检测到解释器更改 (issue#39593, issue#39592, pr#27971, Kefu Chai, Tim Serong)
  • build/ops: admin/build-doc: 使用 python3 (pr#30663, Kefu Chai)
  • build/ops: admin/build-doc: 使用 python3 (后续修复) (pr#30687, Nathan Cutler)
  • build/ops: backport miscellaneous install-deps.sh and ceph.spec.in fixes from master (issue#37707, pr#30718, Jeff Layton, Kefu Chai, Nathan Cutler, Brad Hubbard, Changcheng Liu, Sebastian Wagner, Yunchuan Wen, Tomasz Setkowski, Zack Cerza)
  • build/ops: ceph.spec.in: 为每个构建作业保留 2500MB (pr#30355, Dan van der Ster)
  • build/ops: cmake,run-make-check.sh: 默认禁用 SPDK (pr#30183, Kefu Chai)
  • build/ops: cmake: 使用 CHECK_C_COMPILER_FLAG 检测 armv8 crc 和 crypto 功能 (issue#17516, pr#30713, Kefu Chai)
  • build/ops: do_cmake.sh: 未找到 source (issue#39981, issue#40005, pr#28217, Nathan Cutler)
  • build/ops: 修复与 PYTHON_EXECUTABLE 变量相关的构建失败 (pr#30260, Ilsoo Byun)
  • build/ops: install-deps.sh: 删除 CR repo (issue#13997, pr#30128, Alfredo Deza, Brad Hubbard)
  • build/ops: install-deps.sh: 为 python*rpm-macros 安装 python*-devel (pr#30244, Kefu Chai)
  • build/ops: 使 "patch" 构建依赖项显式化 (issue#40269, issue#40175, pr#29150, Nathan Cutler)
  • build/ops: python3-cephfs 应该提供 python36-cephfs (pr#30982, Kefu Chai)
  • build/ops: rpm: 始终构建 ceph-test 包 (pr#30188, Nathan Cutler)
  • ceph-volume: PVolumes.filter 不应清除自身 (pr#30806, Rishabh Dave)
  • ceph-volume: VolumeGroups.filter 不应清除自身 (pr#30808, Rishabh Dave)
  • ceph-volume: 将 Ceph 的设备 ID 添加到库存 (pr#31211, Sebastian Wagner)
  • ceph-volume: api/lvm: 检查 LV 列表是否为空 (pr#31229, Rishabh Dave)
  • ceph-volume: 假设所有包含 mimic 的分支都使用 msgrV1 (pr#31615, Jan Fajerski)
  • ceph-volume: 批处理功能幂等性测试失败,因为消息现在位于 stderr (pr#29688, Jan Fajerski)
  • ceph-volume: pytest 更改后断言错误中断 (pr#28948, Alfredo Deza)
  • ceph-volume: 尝试删除 crypt mapper 时不要失败 (pr#30555, Guillaume Abrioux)
  • ceph-volume: 无法识别 ceph-disk 创建的 wal/db 分区 (pr#29463, Jan Fajerski)
  • ceph-volume: 确保设备列表不相交 (pr#30334, Jan Fajerski)
  • ceph-volume: 扩展批处理 (issue#40919, pr#29243, Andrew Schoen, Jan Fajerski, Sébastien Han, Volker Theile)
  • ceph-volume: 修复 stderr 重定向时解码/编码失败 (pr#30301, Alfredo Deza)
  • ceph-volume: 修复 pytest 引发的警告 (pr#30678, Rishabh Dave)
  • ceph-volume: 在 Size 中实现 __format__ 以在 py3 中格式化大小 (pr#30333, Jan Fajerski)
  • ceph-volume: 在 lsblk 中查找旋转数据 (pr#26991, Andrew Schoen)
  • ceph-volume: lvm.activate: 如果 WAL/DB 设备不存在则返回错误 (pr#29039, David Casier)
  • ceph-volume: lvm.zap 修复 db 分区的清理 (issue#40664, pr#30303, Dominik Csapak)
  • ceph-volume: 与使用 Volumes 类相关的次要优化 (pr#30096, Rishabh Dave)
  • ceph-volume: 杂项 backports (pr#31227, Mohamad Gebai, Andrew Schoen)
  • ceph-volume: 报告挂载时缺少字符串替换 (issue#40977, pr#29350, Shyukri Shyukriev)
  • ceph-volume: 更多 mimic backports (pr#29631, Andrew Schoen, Alfredo Deza)
  • ceph-volume: 更多缺失的 mimic backports (pr#31362, Mohamad Gebai, Kefu Chai)
  • ceph-volume: 在测试运行前预安装 python-apt 及其变体 (pr#30295, Alfredo Deza)
  • ceph-volume: 使用 --format json 时将错误打印到 stdout (issue#38548, pr#29507, Jan Fajerski)
  • ceph-volume: 将日志消息打印到 stdout (pr#29602, Jan Fajerski, Alfredo Deza, Kefu Chai)
  • ceph-volume: 将 testinfra command 替换为 py.test (pr#28930, Alfredo Deza)
  • ceph-volume: 简单的功能测试删除 lvm zap 测试 (pr#29661, Jan Fajerski)
  • ceph-volume: simple: 当 'type' 文件不存在时激活失败 (pr#29417, Jan Fajerski, Alfredo Deza)
  • ceph-volume: tests 在 tox 中添加睡眠以应对启动后缓慢的 OSD (pr#28947, Alfredo Deza)
  • ceph-volume: tests 为 Debian 设置非交互式标志 (pr#29900, Alfredo Deza)
  • ceph-volume: 更新测试 playbook 'deploy.yml' (pr#29074, Andrew Schoen, Guillaume Abrioux)
  • ceph-volume: 报告成功时使用 OSD 标识符 (pr#29770, Alfredo Deza)
  • ceph-volume: zap 总是跳过 block.db,留下它们 (issue#40664, pr#30306, Alfredo Deza)
  • ceph_detect_init: 添加对 ALT Linux 的支持 (pr#27028, Andrey Bychkov)
  • cephfs: MDSTableServer.cc: 83: FAILED assert(version == tid) (issue#39212, issue#38835, pr#29222, "Yan, Zheng")
  • cephfs: 避免错误地插入 map (pr#29833, XiaoGuoDong2019)
  • cephfs: ceph-fuse: 客户端挂起,因为其与 mds 的 session PipeConnection 错误 (issue#39305, issue#39685, pr#29200, Guan yunfei)
  • cephfs: client: 当 offset 为 0 时可能返回 EINVAL (pr#30932, wenpengLi)
  • cephfs: client: _readdir_cache_cb() 可能使用了已清除的 readdir_cache (issue#41148, pr#30933, huanwen ren)
  • cephfs: client: 在 lseek 中添加 SEEK_HOLE 和 SEEK_DATA 的处理 (pr#30918, Shen Hang)
  • cephfs: client: 将 ll_ref 从 int32 提升到 uint64_t (pr#29187, Xiaoxi CHEN)
  • cephfs: client: ceph.dir.rctime xattr 值错误地在纳秒组件前加上 09 (issue#40168, pr#28501, David Disseldorp)
  • cephfs: client: 修复 _lookup_parent 中错误的错误处理 (issue#40085, pr#29609, Jeff Layton)
  • cephfs: client: nfs-ganesha with cephfs client, 删除目录报告非空 (issue#40746, pr#30443, Peng Xie)
  • cephfs: client: 当不安全请求被丢弃时,同步文件返回 -EIO (issue#40877, pr#30241, simon gao)
  • cephfs: client: 将 snapdir 的链接计数设置为 1 (pr#30108, "Yan, Zheng")
  • cephfs: client: 支持 fuse 版本 >= 2.9 时的 fallocate() (issue#40615, pr#30228, huanwen ren)
  • cephfs: client: 解除 llref=0 的 inode 的 dentry 链接 (issue#40960, pr#29479, Xiaoxi CHEN)
  • cephfs: 修复内存泄漏 (pr#29915, XiaoGuoDong2019)
  • cephfs: 对 snap inode 的 getattr 挂起 (issue#40437, pr#29230, "Yan, Zheng")
  • cephfs: kcephfs TestClientLimits.test_client_pin 失败,因为客户端 caps 低于最小值 (issue#38270, issue#38687, pr#29211, "Yan, Zheng")
  • cephfs: mds: 修复驱逐列表中的重复客户端条目 (pr#30950, Sidharth Anupkrishnan)
  • cephfs: mds: 避免 mds 重启后一次发送太多 osd 请求 (issue#40042, issue#40028, pr#28650, simon gao)
  • cephfs: mds: 修剪落后,且 [dentry] 可清除但不再是! (issue#39223, issue#38679, pr#29224, "Yan, Zheng")
  • cephfs: mds: 无法将 mds 状态从 standby-replay 切换到 active (issue#40213, pr#29232, "Yan, Zheng", simon gao)
  • cephfs: mds: 更改 mds 回收陈旧 caps 的方式 (issue#38043, issue#17854, pr#28585, "Yan, Zheng", Rishabh Dave)
  • cephfs: mds: 检查 dir fragment 以在 mkdir 使其过大时拆分 dir (issue#39689, pr#28381, Erqi Chen)
  • cephfs: mds: 拆分 snap inode 时清理不需要的 client_snap_caps (issue#39987, pr#30234, "Yan, Zheng")
  • cephfs: mds: 延迟导出 pin 值超过最大 rank id 的目录 (issue#40603, pr#29940, Zhi Zhang)
  • cephfs: mds: 当 reconnect msg 来自不存在的 session 时销毁它以避免内存泄漏 (issue#40588, pr#28796, Shen Hang)
  • cephfs: mds: 仅当另一个客户端需要其 caps 时才驱逐无响应的客户端 (pr#30239, Rishabh Dave)
  • cephfs: mds: 修复 SnapRealm::resolve_snapname 的长名称 (issue#39472, pr#28186, "Yan, Zheng")
  • cephfs: mds: 修复重放开放会话的角落情况 (pr#28579, "Yan, Zheng")
  • cephfs: mds: 具有许多子树的高调试日志记录很慢 (issue#38875, pr#29219, Rishabh Dave)
  • cephfs: mds: 使 MDSIOContextBase 在关机时自行删除 (pr#30417, Xuehan Xu)
  • cephfs: mds: mds_cap_revoke_eviction_timeout 未用于初始化 Server::cap_revoke_eviction_timeout (issue#38844, issue#39210, pr#29220, simon gao)
  • cephfs: mds: 在格式转储中输出锁状态 (issue#39669, issue#39645, pr#28274, Zhi Zhang)
  • cephfs: mds: 删除 cache drop admin socket 命令 (issue#38020, issue#38099, pr#29210, Patrick Donnelly)
  • cephfs: mds: 在恢复期间长时间运行的循环中重置心跳 (issue#40222, pr#28918, "Yan, Zheng")
  • cephfs: mds: 关闭具有大缓存 (40GB+) 的 MDS 导致其错过心跳 (issue#38022, issue#38129, issue#37723, issue#38131, pr#28452, Patrick Donnelly)
  • cephfs: mds: 调用 Beacon::shutdown() 时出现断言 (issue#39215, issue#38822, pr#29223, huanwen ren)
  • cephfs: mount.ceph.c: 不要将 nofail 传递给内核 (issue#39233, pr#28090, Kenneth Waegeman)
  • cephfs: mount.ceph: 正确处理 -o strictatime (pr#30240, Jeff Layton)
  • cephfs: mount: 重新挂载时 key 解析失败 (issue#40165, pr#29225, Luis Henriques)
  • cephfs: pybind: 添加 lseek() (issue#39679, pr#28337, Xiaowei Chu)
  • cephfs: test_volume_client: 修复 test_put_object_versioned() (issue#39405, issue#39510, pr#30236, Rishabh Dave)
  • common/ceph_context: 避免服务线程关闭期间不必要的等待 (pr#31096, Jason Dillaman)
  • common/options.cc: 降低 osd_deep_scrub_large_omap_object_key_threshold 的默认值 (pr#29174, Neha Ojha)
  • common/util: 处理 /proc/cpuinfo 中的长行 (issue#39475, issue#38296, pr#28206, Sage Weil)
  • common: ceph auth get 创建的 keyring 不适用于 ceph auth import (issue#22227, issue#40547, pr#28741, Kefu Chai)
  • common: OutputDataSocket 中的数据竞争 (issue#40268, issue#40188, pr#29201, Casey Bodley)
  • common: 解析 ISO 8601 日期时间格式 (issue#40088, pr#28326, Sage Weil)
  • core: .mgrstat failed to decode mgrstat state; luminous dev version? (issue#38852, issue#38839, pr#29249, Sage Weil)
  • core: osd_snap_trim_sleep 的更好的默认值 (pr#29732, Neha Ojha)
  • core: 网络 ping 时间长的健康警告 (issue#40640, issue#40586, pr#30225, xie xingguo, David Zafman)
  • core: ceph daemon mon.a config set mon_health_to_clog false 导致 leader mon 断言 (issue#39625, pr#29741, huangjun)
  • core: crc 缓存应在发布预分配的 rx 缓冲区时失效 (issue#38437, pr#29247, Ilya Dryomov)
  • core: 延迟 omap 统计信息收集 (pr#29189, Brad Hubbard)
  • core: mon, osd: 并行 clean_pg_upmaps (issue#40104, issue#40230, pr#28619, xie xingguo)
  • core: mon,osd: 限制 MOSDMap 消息的大小和 map 数量 (issue#38277, issue#38040, pr#29242, Sage Weil)
  • core: mon/AuthMonitor: 修复旋转密钥的初始创建 (issue#40634, pr#30181, Sage Weil)
  • core: mon/MDSMonitor: 使用 stringstream 而不是 dout 进行 mds repaired (issue#40472, pr#30235, Zhi Zhang)
  • core: mon/MgrMonitor: 修复指定无效格式化程序时的空指针解引用 (pr#29593, Sage Weil)
  • core: mon/OSDMonitor.cc: 关于 min_size 的更好的错误消息 (pr#29618, Neha Ojha)
  • core: mon/OSDMonitor: 修剪不再存在的故障报告器 (pr#30903, NancySu05)
  • core: mon: C_AckMarkedDown 未处理 Callback Arguments (pr#30213, NancySu05)
  • core: mon: 确保 prepare_failure() 在 op 上标记 no_reply (pr#30481, Joao Eduardo Luis)
  • core: mon: paxos: 引入新的 reset_pending_committing_finishers 以确保安全 (issue#39744, issue#39484, pr#28540, Greg Farnum)
  • core: mon: 在 pool ls 命令中显示 pool id (issue#40287, pr#30485, Chang Liu)
  • core: osd beacon 有时具有空 pg 列表 (issue#40464, issue#40377, pr#29253, Sage Weil)
  • core: osd/OSD.cc: 使 osd bench 描述与参数保持一致 (issue#39374, issue#39006, pr#28097, Neha Ojha)
  • core: osd/OSDCap: 检查空命名空间 (issue#40835, pr#30214, Brad Hubbard)
  • core: osd/OSDMap: 将 get_out_osds 替换为 get_out_existing_osds (issue#39422, issue#39154, pr#28142, Brad Hubbard)
  • core: osd/OSDMap: 不要相信部分简化的 pg_upmap_item (pr#30898, xie xingguo)
  • core: osd/PG: 将 PG 添加到 large omap log 消息 (pr#30924, Brad Hubbard)
  • core: osd/PG: 修复 splitting 时的 last_complete 重新计算 (issue#39538, issue#26958, pr#28259, xie xingguo)
  • core: osd/PeeringState: 不要抱怨受 oldest epoch 约束的 past_intervals (pr#30222, Sage Weil)
  • core: osd/PeeringState: recover_got - 为空日志添加特殊处理程序 (pr#30895, xie xingguo)
  • core: osd/PrimaryLogPG: 避免在 finish_degr… 期间访问已销毁的引用 (pr#30291, Tao Ning)
  • core: osd/PrimaryLogPG: 在 backfill scan_range 期间跳过不存在的 obcs (pr#31029, Sage Weil)
  • core: osd/PrimaryLogPG: 在写入操作隐式截断 ob… 时更新 oi.size (pr#30275, xie xingguo)
  • core: osd: OSD 数量少于 osd_pool_default_size 时的更好的错误消息 (issue#38617, pr#30180, Kefu Chai, Sage Weil, zjh)
  • core: osd: 如果与 scrub 范围相交,则刷新后不要驱逐 (issue#38840, issue#39518, pr#28232, David Zafman)
  • core: osd: 在 snaptrim 相关的断言中不包含用户可更改的标志 (issue#38124, issue#39698, pr#28202, David Zafman)
  • core: osd: 修复 osd_stat_t 编码/解码的兼容性 (pr#31275, Kefu Chai, David Zafman)
  • core: osd: 在 copy_after() 和 copy_up_to() 中包含 dups (issue#39304, pr#28089, David Zafman)
  • core: osd: 如果存在二进制数据,则输出 CRC 头的 Base64 编码 (issue#39737, pr#28503, David Zafman)
  • core: osd: 从输出中删除未使用的 osdmap 标志 full, nearfull (pr#30901, David Zafman)
  • core: osd: 修复对象时清除 PG_STATE_CLEAN (pr#30243, Zengran Zhang)
  • core: osd: 修复 build_incremental_map_msg (issue#38282, pr#31236, Sage Weil)
  • core: osd: 使 project_pg_history 处理并发 osdmap 发布 (issue#26970, pr#29976, Sage Weil)
  • core: osd: primary 需要根据 replica log 的 crt 合并 replica log (pr#30916, Zengran Zhang)
  • core: osd: pg 在 backfill_wait 中卡住,但磁盘空间充足 (issue#38034, pr#28201, xie xingguo, David Zafman)
  • core: osd: 报告 omap/data/metadata 使用情况 (issue#40639, pr#28852, Sage Weil)
  • core: osd: rollforward 可能需要标记 pglog dirty (issue#40403, pr#31035, Zengran Zhang)
  • core: osd: 大对象上的 scrub 错误; 使 bluestore 拒绝在大对象上启动 (pr#30784, David Zafman, Sage Weil)
  • core: osd: 调用 heartbeat() 时获取 heartbeat_lock (issue#39513, issue#39439, pr#28220, Sage Weil)
  • core: osds 允许部分启动超过 N+2 (issue#38206, issue#38076, pr#29241, Sage Weil)
  • core: 如果 m<=0,则 ErasureCode::parse() 应报告 EINVAL (issue#38682, issue#38751, pr#28995, Sage Weil)
  • core: 应该在 del_event() 上设置 EPOLLET 标志 (issue#38856, pr#29250, Roman Penyaev)
  • doc/ceph-fuse: 在 ceph-fuse man page 中提及 -k 选项 (pr#30936, Rishabh Dave)
  • doc/rbd: s/guess/xml/ for codeblock lexer (pr#31090, Kefu Chai)
  • doc/rgw: 文档中使用 'realm pull' 而不是 'period pull' (issue#39655, pr#30131, Casey Bodley)
  • doc: 记录 fsync-after-close 的行为 (issue#24641, pr#29765, Jos Collin, Jeff Layton)
  • doc: Object Gateway multisite document read-only argument error (issue#40497, pr#29289, Chenjiong Deng)
  • doc: mon_health_to_clog_* 的默认值被翻转 (pr#30227, James McClune)
  • doc: 描述 metadata_heap 清理 (issue#18174, pr#30070, Dan van der Ster)
  • doc: 修复 rgw_ldap_dnattr 用户名 token (pr#30099, Thomas Kriechbaumer)
  • doc: rgw: s3 PUT Bucket request 的 CreateBucketConfiguration (issue#39602, issue#39597, pr#29257, Casey Bodley)
  • doc: 更新 bluestore 缓存设置并澄清数据分数 (issue#39522, pr#31258, Jan Fajerski)
  • doc: 日志记录部分中的 usage log 默认值错误 (issue#37891, issue#37856, pr#29014, Abhishek Lekshmanan)
  • filestore: 确保 pre-split 中有足够的叶子 (issue#39390, pr#30182, Jeegn Chen)
  • krbd: 避免 udev netlink socket overrun 并在 udev_enumerate_scan_devices() 出现瞬时错误时重试 (pr#31322, Ilya Dryomov, Adam C. Emerson)
  • krbd: 修复由于 udev 返回 subsystem 无序导致的 rbd map 挂起 (issue#39089, pr#30176, Zhi Zhang)
  • mgr/balancer: 修复 fudge (pr#28399, xie xingguo)
  • mgr/balancer: python3 兼容性问题 (pr#31013, Mykola Golub)
  • mgr/balancer: 将自动平衡限制为特定工作日 (pr#26499, xie xingguo)
  • mgr/crash: 修复 python3 无效语法问题 (pr#29029, Ricardo Dias)
  • mgr/dashboard: 修复 run-frontend-e2e-tests.sh (issue#40707, pr#28954, Kiefer Chang, Tiago Melo)
  • mgr/dashboard: 修复各种 RGW 问题 (pr#28210, Volker Theile)
  • mgr/dashboard: RGW 代理无法处理自签名 SSL 证书 (pr#30543, Volker Theile)
  • mgr/dashboard: cephfs multimds 图表堆叠在一起 (issue#40660, pr#28911, Kiefer Chang)
  • mgr/localpool: pg_num 是 'osd pool create' 的 int 参数 (pr#30447, Sage Weil)
  • mgr/prometheus: 将 collect_timeout (scrape_interval) 转换为 float (pr#31108, Ben Meekhof)
  • mgr/prometheus: 替换指标名称中的空格 (issue#39458, pr#28165, Alfonso Martínez)
  • mgr/telemetry: 当模块未启用时忽略报告中的崩溃 (pr#30846, Wido den Hollander)
  • mgr: DaemonServer::handle_conf_change - 损坏的锁定 (issue#38899, issue#38963, pr#29197, xie xingguo)
  • mgr: 死锁 (issue#39040, issue#39426, pr#28161, xie xingguo)
  • mgr: 如果未收集新指标,则不要重置报告 (pr#30391, Ilsoo Byun)
  • radosgw-admin: 完整同步期间 bucket 同步状态不是 'caught up' (issue#40806, pr#30170, Casey Bodley)
  • rbd-mirror: 无法恢复延迟删除的镜像映像 (pr#30828, Jason Dillaman, Mykola Golub)
  • rbd-mirror: 在列出镜像映像之前清除 bufferlist (issue#39461, issue#39407, pr#28123, Jason Dillaman)
  • rbd-mirror: 不要覆盖 replay 返回的状态错误 (pr#29872, Mykola Golub)
  • rbd-mirror: 处理 image sync throttler 队列中的重复项 (issue#40519, issue#40593, pr#28815, Mykola Golub)
  • rbd-mirror: 忽略与解析集群配置文件相关的错误 (pr#30117, Jason Dillaman)
  • rbd/action: 修复获取位置参数的错误 (issue#40095, pr#29294, songweibin)
  • rbd/tests: 在 krbd 测试中避免 hexdump skip 和 length 选项 (pr#30569, Ilya Dryomov)
  • rbd: 降低 cls/journal 和 cls/rbd 预期错误的日志级别 (issue#40865, pr#29565, Jason Dillaman)
  • rbd: 从 snap_list 中过滤掉 group/trash 快照 (issue#38538, issue#39186, pr#28138, songweibin, Jason Dillaman)
  • rbd: journal: 在跳过无效范围后正确推进读取 offset (pr#28814, Mykola Golub)
  • rbd: librbd: 为托管锁 helper 添加缺失的关闭状态 (issue#38387, issue#38509, pr#28151, Jason Dillaman)
  • rbd: librbd: async open/close 应在发出回调之前释放 ImageCtx (issue#39429, issue#39031, pr#28125, Jason Dillaman)
  • rbd: librbd: 避免在 deep-copy 期间解引用空容器 (issue#40368, pr#30177, Jason Dillaman)
  • rbd: librbd: 移动到 trash 时禁用映像镜像 (pr#28150, Mykola Golub)
  • rbd: librbd: 确保 compare-and-write 在 copyup 后不会跳过 compare (issue#38383, issue#38441, pr#28133, Ilya Dryomov)
  • rbd: librbd: 正确处理潜在的对象 map 失败 (issue#39952, issue#36074, pr#30796, Jason Dillaman, Mykola Golub)
  • rbd: librbd: 正确跟踪进行中的 flush 请求 (issue#40573, pr#28770, Jason Dillaman)
  • rbd: librbd: 验证 RBD 池时可能存在竞争条件 (issue#38500, issue#38563, pr#28139, Jason Dillaman)
  • rbd: 为 export 操作使用有序节流器 (issue#40435, pr#30178, Jason Dillaman)
  • restful: 查询 items 的 nodes_by_id (pr#31273, Boris Ranto)
  • rgw admin: 在 multiste env 中禁用 stale instance delete (pr#30340, Abhishek Lekshmanan)
  • rgw/OutputDataSocket: append_output(buffer::list&) 声称会 (但没有) 在 data_max_backlog 处丢弃输出 (issue#40178, issue#40351, pr#29279, Matt Benjamin)
  • rgw/cls: reset 后继续发出 bilog trim ops (issue#40187, pr#30074, Casey Bodley)
  • rgw/multisite: 不允许某些 radosgw-admin 命令在非 master 区域运行 (issue#39548, pr#30133, Shilpa Jagannath)
  • rgw/rgw_op: 通过 legacy options 从 hotpath 中删除 get_val (pr#30141, Mark Nelson)
  • rgw: 在 RGW Multi-site 中添加对 radosgw-admin bucket rm 命令的 --bypass-gc 标志的支持 (issue#39748, issue#24991, pr#29262, Casey Bodley)
  • rgw: 复制时未提供元数据指令时不要崩溃 (issue#40416, pr#29500, Adam C. Emerson)
  • rgw: 修复 bucket 版本控制与 swift 元数据错误 (pr#30140, Marcus Watts)
  • rgw: 修复 rgw 解压缩 log-print (pr#30156, Han Fengzhe)
  • rgw: 大型 multipart obj 的 multisite 同步损坏 (issue#40144, pr#29273, Casey Bodley, Tianshan Qu, Xiaoxi CHEN)
  • rgw: RGWCoroutine::call(nullptr) sets retcode=0 (pr#30159, Casey Bodley)
  • rgw: 在 bucket_stats 函数中返回 tenant 字段 (issue#40038, pr#28209, Volker Theile)
  • rgw: S3 策略评估不正确 (issue#38638, issue#39274, pr#29255, Pritha Srivastava)
  • rgw: 保存不必要的 RGWEnv 副本 (pr#29483, Mark Kogan)
  • rgw: Swift 接口: 如果对象名称包含 '?',则服务器端复制失败 (issue#27217, issue#40128, pr#29267, Casey Bodley)
  • rgw: TempURL 不应允许带有 X-Object-Manifest 的 PUT 请求 (issue#40133, issue#20797, pr#28711, Radoslaw Zarzynski)
  • rgw: abort multipart fix (pr#29016, J. Eric Ivancich)
  • rgw: asio: 在处理请求之前检查远程端点 (pr#30977, Abhishek Lekshmanan)
  • rgw: 有条件地允许具有非唯一电子邮件地址的内置用户 (issue#40089, issue#40507, pr#28716, Matt Benjamin)
  • rgw: 当没有 peer 读取时,trim data/bilogs (issue#39487, pr#30130, Casey Bodley)
  • rgw: datalog/mdlog trim commands loop until done (pr#30868, Casey Bodley)
  • rgw: 对网站配置进行必要的检查 (issue#40678, pr#30980, Enming Zhang)
  • rgw: frontend 发生 accept 错误时不要抛出 (pr#30154, Yuval Lifshitz)
  • rgw: 修复默认 zonegroup 下 CreateBucket with BucketLocation parameter 失败 (pr#30171, Enming Zhang)
  • rgw: 修复 bucket 列表在 BI_PREFIX_CHAR 之后可能重复列出键 (issue#40147, issue#39984, pr#28409, Casey Bodley, Tianshan Qu)
  • rgw: 修复 cls_bucket_list_unordered() 部分结果 (pr#30253, Mark Kogan)
  • rgw: 修复如果远程未初始化 data_log 则数据同步启动延迟 (pr#30510, Tianshan Qu)
  • rgw: 修复使用 bypass-gc 选项删除 bucket 时 drain handles 错误 (pr#29984, dongdong tao)
  • rgw: 修复使用 delimiter 列出 bucket 错误地跳过某些特殊键 (issue#40905, pr#30168, Tianshan Qu)
  • rgw: 修复 list versions starts with version_id=null (pr#30775, Tianshan Qu)
  • rgw: 修复潜在的 realm watch 丢失 (issue#40991, pr#30167, Tianshan Qu)
  • rgw: 修复 bucket reshard 和等待 reshard 完成的操作之间的竞争条件 (pr#29139, J. Eric Ivancich)
  • rgw: 修复 refcount tags 以匹配并更新 object 的 idtag (pr#30891, J. Eric Ivancich)
  • rgw: 修复使用 "radosgw-admin zone rm" 时 "unrecognized arg" 错误 (pr#30172, Hongang Chen)
  • rgw: gc remove tag after all sub io finish (issue#40903, pr#30173, Tianshan Qu)
  • rgw: radosgw-admin 和 cls 后端中重置统计信息操作的内务处理 (pr#30165, J. Eric Ivancich)
  • rgw: 增加 beast 解析缓冲区大小到 64k (pr#30450, Casey Bodley)
  • rgw: ldap auth: S3 auth failure 应返回 InvalidAccessKeyId (pr#30652, Matt Benjamin)
  • rgw: 使 dns 主机名匹配不区分大小写 (issue#40995, pr#30166, Casey Bodley, Abhishek Lekshmanan)
  • rgw: 减轻 bucket list with max-entries 过高 (pr#30134, J. Eric Ivancich)
  • rgw: multisite: 'radosgw-admin bucket sync status' 应调用 syncs_from(source.name) 而不是 id (issue#40022, issue#40141, pr#29270, Casey Bodley)
  • rgw: multisite: RGWListBucketIndexesCR for data full sync needs pagination (issue#39551, issue#40354, pr#29284, Shilpa Jagannath)
  • rgw: multisite: data sync loops back to the start of the datalog after reaching the end (issue#39033, issue#39074, pr#29021, Casey Bodley)
  • rgw: multisite: List Buckets 中的 bucket 创建时间不匹配 (issue#39635, issue#39734, pr#28483, Casey Bodley)
  • rgw: multisite: versioning-suspended buckets 中的覆盖无法同步 (issue#38080, issue#37792, pr#29017, Casey Bodley)
  • rgw: multisite: period pusher against other zonegroups gets 403 Forbidden (issue#39415, issue#39287, pr#29256, Casey Bodley)
  • rgw: 不存在的 mdlog 故障记录在级别 0 (issue#38747, issue#40033, pr#28757, Abhishek Lekshmanan)
  • rgw: perfcounters: 添加 gc retire counter (pr#30073, Matt Benjamin)
  • rgw: 允许 rgw-admin 通过 access-key 填充用户信息 (pr#30105, Matt Benjamin, Marc Koderer)
  • rgw: 提供对管理员友好的 reshard 状态输出 (issue#37615, issue#40357, pr#29285, Mark Kogan)
  • rgw: remove_olh_pending_entries() 不限制要删除的 xattrs 数量 (issue#39179, issue#39118, pr#28348, Casey Bodley)
  • rgw: versioned bucket resharding 导致 bucket stats 不一致 (issue#39532, pr#28249, J. Eric Ivancich)
  • rgw: 评估 bucket policy 时尽早返回 ERR_NO_SUCH_BUCKET (issue#38420, issue#39697, pr#28422, Abhishek Lekshmanan)
  • rgw: rgw_file: 所有目录对于内容都是虚拟的 (issue#40262, issue#40204, pr#28887, Matt Benjamin)
  • rgw: set null version object issues (issue#36763, issue#40360, pr#29288, Tianshan Qu)
  • rgw: 支持 delimiter 长度大于一个符号 (issue#39989, issue#38776, pr#29018, Tianshan Qu, Matt Benjamin)
  • rgw: swift object expiry fails when a bucket reshards (issue#39741, pr#29258, Casey Bodley, Abhishek Lekshmanan, J. Eric Ivancich)
  • rgw: swift: 使用 nginx 作为 GET 缓存时避免损坏静态大型对象 (pr#30135, Andrey Groshev)
  • rgw: S3 API 的 Multi-Object Delete 操作错误处理 Code 响应元素 (issue#18241, issue#40136, pr#29268, Radoslaw Zarzynski)
  • rgw: 更新 resharding 文档 (issue#39047, pr#29020, J. Eric Ivancich)
  • rgw_file: 修复顶层目录的失效 (issue#40215, pr#29276, Matt Benjamin)
  • rgw_file: advance_mtime() 应该考虑命名空间过期 (issue#40415, pr#30660, Matt Benjamin)
  • rgw_file: readdir: 修复 eof() calc--调用者停止意味着 !eof 并引入快速 S3 Unix stats (immutable) (issue#40375, issue#40456, pr#30077, Matt Benjamin)
  • rgw_file: 在哈希 bucket 名称时包含 tenant (issue#40225, issue#40118, pr#29277, Matt Benjamin)
  • rgw_file: readdir: 不要构造带有前导 '/' 的 marker (pr#30157, Matt Benjamin)
  • rgw_file: 在 setattr 中保存 etag 和 acl 信息 (issue#39229, pr#28073, Tao Chen)
  • rpm: python34-cephfs (和其他?) 缺少 python34-ceph-argparse 依赖项 (issue#24918, issue#24919, issue#37613, pr#27949, Kefu Chai)
  • tests: cls_rbd: 删除了 mirror peer pool 测试用例 (pr#31485, Jason Dillaman)
  • tests: librbd: 设置 nbd timeout,因为较新的内核默认开启它 (pr#30424, Jason Dillaman)
  • tests: ceph-disk: 使用 Python2.7 兼容版本的 pytest (pr#31254, Alfredo Deza)
  • tests: rgw: 在 s3a-hadoop suite 中不使用 ceph-ansible (issue#39706, pr#30069, Casey Bodley)
  • tests/workunits/rbd: 等待 rbd-nbd unmap 完成 (issue#39598, issue#39674, pr#28310, Jason Dillaman)
  • tests: 修复 vstart runner 中的问题 (pr#28208, Volker Theile)
  • tests: 限制等待 force-backfill/force-recovery 发生的循环 (issue#38351, issue#38309, pr#29245, David Zafman)
  • tests: remove s3tests ! (pr#31640, Yuri Weinstein)
  • tests: cephfs: TestMisc.test_evict_client fails (issue#40219, pr#29228, "Yan, Zheng")
  • tests: do not take ceph.conf.template from ceph/teuthology.git (pr#30841, Sage Weil)
  • tests: 忽略预期的 MDS_CLIENT_LATE_RELEASE 警告 (issue#40968, pr#29812, Patrick Donnelly)
  • tests: 为 fs suite 安装 python3-cephfs (pr#31285, Kefu Chai)
  • tests: kclient unmount hangs after file system goes down (issue#38709, issue#38677, pr#29218, Patrick Donnelly)
  • tests: krbd_msgr_segments.t: filter lvcreate output (pr#31324, Ilya Dryomov)
  • tests: make get_mon_status use mon addr (pr#31461, Sage Weil, Nathan Cutler)
  • tests: make: *** [hello_world_cpp] rados 中的错误 127 (issue#40320, pr#29203, Kefu Chai)
  • tests: qa/standalone/scrub/osd-scrub-snaps.sh 有时失败 (issue#40179, issue#40078, pr#29251, David Zafman)
  • tests: qa/tasks/ceph.py: 将 cluster_name 传递给 get_mons (pr#31424, Nathan Cutler)
  • tests: qa/workunits/rbd: stress test "rbd mirror pool status --verbose" (pr#29873, Mykola Golub)
  • tests: 删除 "1node" 和 "systemd" 测试,因为 ceph-deploy 没有积极开发 (pr#28457, Yuri Weinstein)
  • tests: 重置 kclient 后短暂睡眠 (pr#29751, Patrick Donnelly)
  • tests: test_volume_client: 正确打印 python 版本 (issue#40317, issue#40184, pr#29208, Lianne)
  • tests: 在 util/rgw.py 中使用 curl in wait_for_radosgw() (pr#28668, Ali Maredia)
  • tests: 使用 hard_reset 重启 kclient (issue#37681, pr#30233, Patrick Donnelly)
  • tests: whitelisted 'application not enabled' (pr#28389, Yuri Weinstein)
  • tools/rados: 列出 pg 中的对象 (issue#36732, pr#30893, Vikhyat Umrao, Li Wang)
  • tools/rbd-ggate: 在运行 postfork 之前关闭日志 (pr#30121, Willem Jan Withagen)
  • tools: 为 objectstore tool 添加 clear-data-digest 命令 (issue#37749, pr#29196, Li Yichao)
  • tools: ceph-objectstore-tool 无法删除带有 bad snapset 的 head (pr#30081, David Zafman)
  • tools: ceph-objectstore-tool: 如果 incmap 正常则返回 0 (pr#31659, Kefu Chai)
  • tools: ceph-objectstore-tool: update-mon-db: 如果 incmap 丢失则不要失败 (pr#30979, Kefu Chai)
  • tools: crushtool crash on Fedora 28 and newer (issue#39174, issue#39311, pr#27986, Brad Hubbard)