v14.2.5 Nautilus 发布

TheAnalyst

这是 Ceph Nautilus 发布系列的第五个版本。在众多值得注意的变更中,此版本修复了 14.2.3 中引入的一个关键 BlueStore 错误。建议所有 Nautilus 用户升级到此版本。

重要变更

关键修复

  • 此版本修复了一个关键 BlueStore 错误,该错误是在 14.2.3(以及 14.2.4 中也存在)中引入的,当使用单独的“WAL”设备时,可能导致数据损坏。

新的健康警告

  • 如果守护进程最近崩溃,Ceph 现在将发出健康警告。Ceph 自初始 Nautilus 版本以来一直在收集崩溃报告,但健康警报是新的。要查看新的崩溃(或者如果您刚升级,则查看所有崩溃),请使用

    ceph crash ls-new

    要确认特定崩溃(或所有崩溃)并消除健康警告,请使用

    ceph crash archive <crash-id> ceph crash archive-all

  • 如果 RADOS 池的 pg_num 值不是 2 的幂,Ceph 现在将发出健康警告。可以通过将池调整为附近的 2 的幂来修复此问题

    ceph osd pool set <pool-name> pg_num <new-pg-num>

    或者,可以使用以下命令禁用警告:

    ceph config set global mon_warn_on_pool_pg_num_not_power_of_two false

  • 如果 RADOS 池的 size 设置为 1,或者换句话说,如果池配置为没有冗余,Ceph 将发出健康警告。如果池大小设置为推荐的最小值,Ceph 将停止发出警告

    ceph osd pool set <pool-name> size <num-replicas>

    可以使用以下命令禁用警告:

    ceph config set global mon_warn_on_pool_no_redundancy false

  • 如果任何间隔计算的平均 osd 心跳 ping 时间超过可配置的阈值,Ceph 现在将发出健康警告。OSD 计算 1 分钟、5 分钟和 15 分钟间隔,并具有平均值、最小值和最大值。新的配置选项 mon_warn_on_slow_ping_ratio 指定 osd_heartbeat_grace 的百分比,以确定阈值。值为零会禁用警告。新的配置选项 mon_warn_on_slow_ping_time 以毫秒为单位指定,覆盖计算值,当 OSD 心跳 ping 超过指定的时间时,会发出警告。一个新的管理命令 ceph daemon mgr.# dump_osd_network [threshold] 将列出所有 ping 时间超过指定阈值或由配置选项确定的任何 3 个间隔平均值的连接。另一个新的管理命令 ceph daemon osd.# dump_osd_network [threshold] 将执行相同的操作,但仅包括由指定 OSD 发起的 Heartbeat。

遥测模块的变更

  • 遥测模块现在有一个“device”通道,默认启用,它将报告匿名化的硬盘和 SSD 健康指标到 telemetry.ceph.com,以便构建和改进设备故障预测算法。由于遥测报告的内容已更改,您需要重新选择加入:

    ceph telemetry on

    您可以在首先查看将报告哪些信息:

    ceph telemetry show ceph telemetry show device # 具体显示 device 通道

    如果您不希望共享设备指标,可以先禁用该通道,然后再重新选择加入:

    ceph config set mgr mgr/telemetry/channel_device false ceph telemetry on

  • 遥测模块现在报告有关 CephFS 文件系统的更多信息,包括:

    • 有多少 MDS 守护进程(总数和每个文件系统)
    • 哪些功能已启用(或已启用)
    • 有多少数据池
    • 近似的文件系统年龄(创建年份 + 月份)
    • 有多少文件、字节和快照
    • 有多少元数据正在被缓存

    我们还添加了

    • 监视器正在运行的 Ceph 版本
    • 监视器使用的 msgr v1 或 v2 地址
    • 监视器使用的 IPv4 或 IPv6 地址
    • 是否启用了 RADOS 缓存分层(以及哪种模式)
    • 池是复制的还是擦除编码的,以及使用的擦除编码配置文件插件和参数
    • 集群中的主机数量,以及每种守护进程的主机数量
    • 是否正在使用单独的 OSD 集群网络
    • 集群中的 RBD 池和镜像数量,以及有多少池启用了 RBD 镜像
    • RGW 守护进程、区域和区域组的数量;正在使用哪些 RGW 前端
    • 有关 CRUSH 映射的聚合统计信息,例如使用了哪些算法、桶有多大、定义了多少规则以及使用了哪些可调参数

    如果您已启用遥测,则需要重新选择加入:

    ceph telemetry on

    您可以在首先查看将报告哪些信息:

    ceph telemetry show # 查看所有内容 ceph telemetry show basic # 基本集群信息(包括所有新信息)

OSD

  • 一个新的 OSD 守护进程命令“dump_recovery_reservations”显示保留的恢复锁(in_progress)和在优先级队列中等待的锁。
  • 另一个新的 OSD 守护进程命令“dump_scrub_reservations”显示为本地(主)和远程(副本)PG 保留的 scrub 预留。

RGW

  • RGW 现在支持 S3 对象锁定 API 集,允许对存储对象进行 WORM 模型。已添加 6 个新的 API put/get bucket object lock、put/get object retention、put/get object legal hold。
  • RGW 现在支持 List Objects V2

变更日志

  • bluestore/KernelDevice: 修复 RW_IO_MAX 常量 (pr#31397, Sage Weil)
  • bluestore: 不要忘记 sub kv_submitted_waiters (pr#30048, Jianpeng Ma)
  • bluestore: 对过多的 blob 计数增长应用垃圾回收 (pr#30144, Igor Fedotov)
  • bluestore: 将 shared_alloc_size 应用于带有日志级别更改的共享设备 (pr#30229, Vikhyat Umrao, Sage Weil, Igor Fedotov, Neha Ojha)
  • bluestore: 仅合并来自同一设备的 extent (pr#31644, Igor Fedotov)
  • bluestore: 修复 STATE_KV_SUBMITTED 的不正确设置 (pr#30755, Igor Fedotov)
  • bluestore: 浅 fsck 模式和旧版 statfs 自动修复 (pr#30685, Sage Weil, Igor Fedotov)
  • bluestore: 检查碎片化的工具 (pr#29949, Adam Kupczyk)
  • build/ops: admin/build-doc: 使用 python3 (pr#30664, Kefu Chai)
  • build/ops: backport endian 修复 (issue#40114, pr#30697, Ulrich Weigand, Jeff Layton)
  • build/ops: cmake,rgw: IBM Z 构建修复 (pr#30696, Ulrich Weigand)
  • build/ops: cmake/BuildDPDK: 忽略 gcc8/9 警告 (pr#30360, Yuval Lifshitz)
  • build/ops: cmake: 允许在 FreeBSD 上构建时构建 cephfs 和 ceph-mds (pr#31011, Willem Jan Withagen)
  • build/ops: cmake: 强制使用 C++17,而不是依赖 cmake-compile-features (pr#30283, Kefu Chai)
  • build/ops: 修复与 PYTHON_EXECUTABLE 变量相关的构建失败 (pr#30261, Ilsoo Byun)
  • build/ops: 隐藏 corei7 在二进制软件包中的要求 (pr#29772, Kefu Chai)
  • build/ops: install-deps.sh: 为非 x86_64 架构添加 EPEL 仓库 (pr#30601, Kefu Chai, Nathan Cutler)
  • build/ops: install-deps.sh: 安装 python*-devel 以获取 python*rpm-macros (pr#30322, Kefu Chai)
  • build/ops: install-deps: 如果已安装 rpm,则不要安装 ceph.spec.in: s/pkgversion/version_nodots/ (pr#30708, Jeff Layton, Kefu Chai)
  • build/ops: 使 patch 构建依赖项明确 (issue#40175, pr#30046, Nathan Cutler
  • build/ops: python3-cephfs 应该提供 python36-cephfs (pr#30983, Kefu Chai)
  • build/ops: rpm: 始终构建 ceph-test 包 (pr#30049, Nathan Cutler)
  • build/ops: rpm: fdupes 在 SUSE 构建中符合打包指南 (issue#40973, pr#29784, Nathan Cutler)
  • build/ops: rpm: 使 librados2、libcephfs2 拥有(创建)/etc/ceph (pr#31125, Nathan Cutler)
  • build/ops: rpm: 将 librgw lttng SO 放入 librgw-devel 包中 (issue#40975, pr#29785, Nathan Cutler)
  • build/ops: seastar,dmclock: 使用父项目的 CXX_FLAGS (pr#30114, Kefu Chai)
  • build/ops: 使用 gcc-8 (issue#38892, pr#30089, Kefu Chai)
  • tools: ceph-objectstore-tool: update-mon-db: 如果 incmap 丢失,则不要失败 (pr#30740, Kefu Chai)
  • ceph-volume: PVolumes.filter 不应清除自身 (pr#30805, Rishabh Dave)
  • ceph-volume: VolumeGroups.filter 不应清除自身 (pr#30807, Rishabh Dave)
  • ceph-volume: 将 Ceph 的设备 ID 添加到清单 (pr#31210, Sebastian Wagner)
  • ceph-volume: 允许跳过 restorecon 调用 (pr#31555, Alfredo Deza)
  • ceph-volume: api/lvm: 检查 LV 列表是否为空 (pr#31228, Rishabh Dave)
  • ceph-volume: 检查我们是否在 selinux 环境中运行 (pr#31812, Jan Fajerski)
  • ceph-volume: 不要尝试删除 crypt mapper 时失败 (pr#30554, Guillaume Abrioux)
  • ceph-volume: 修复 stderr 失败,无法在重定向时解码/编码 (pr#30300, Alfredo Deza)
  • ceph-volume: 修复 pytest 引发的警告 (pr#30676, Rishabh Dave)
  • ceph-volume: lvm list 是 O(n^2) (pr#30093, Rishabh Dave)
  • ceph-volume: lvm.zap 修复 db 分区的清理 (issue#40664, pr#30304, Dominik Csapak)
  • ceph-volume: monkeypatch 调用 lvm 相关二进制文件 (pr#31405, Jan Fajerski)
  • ceph-volume: 在测试运行之前预安装 python-apt 及其变体 (pr#30294, Alfredo Deza)
  • ceph-volume: 重新排列 api/lvm.py (pr#31408, Rishabh Dave)
  • ceph-volume: systemd 修复日志消息中的错别字 (pr#30520, Manu Zurmühl)
  • ceph-volume: 在报告成功时使用 OSD 标识符 (pr#29769, Alfredo Deza)
  • ceph-volume: zap 始终跳过 block.db,将其保留在原地 (issue#40664, pr#30307, Alfredo Deza)
  • 工具: ceph.in: 除非必要,否则不要预加载 ASan (pr#31676, Kefu Chai)
  • 工具: ceph_volume_client: 将字符串转换为字节对象 (issue#39405, issue#40369, issue#39510, issue#40800, issue#40460, pr#30030, Rishabh Dave)
  • cephfs-shell: 将路径类型从字符串转换为字节 (pr#30057, Varsha Rao)
  • cephfs: 允许 mount.ceph 从 ceph 配置文件和密钥环获取挂载信息 (pr#30521, Jeff Layton)
  • cephfs: 避免错误插入 map (pr#29878, XiaoGuoDong2019)
  • cephfs: 客户端: 更精确的 CEPH_CLIENT_CAPS_PENDING_CAPSNAP (pr#30032, “Yan, Zheng”)
  • cephfs: 客户端: nfs-ganesha 与 cephfs 客户端,删除非空目录报告 (issue#40746, pr#30442, Peng Xie)
  • cephfs: 客户端: 返回 -eio,当同步文件时,不安全的请求已被丢弃 (issue#40877, pr#30043, simon gao)
  • cephfs: 修复内存泄漏 (pr#29879, XiaoGuoDong2019)
  • cephfs: mds: 修复 eviction 列表中重复的客户端条目 (pr#30951, Sidharth Anupkrishnan)
  • cephfs: mds: 在 standby replay mds 修剪日志段时清理截断的 inode (pr#29591, “Yan, Zheng”)
  • cephfs: mds: 延迟导出 pin 值超过最大 rank id 的目录 (issue#40603, pr#29938, Zhi Zhang)
  • cephfs: mds: 仅当另一个客户端需要其 cap 时才驱逐无响应的客户端 (pr#30031, Rishabh Dave)
  • cephfs: mds: 修复 InoTable::force_consume_to() (pr#30041, “Yan, Zheng”)
  • cephfs: mds: 修复 Locker::file_update_finish 中的无限循环 (pr#31079, “Yan, Zheng”)
  • cephfs: mds: 在关闭时删除自身 (pr#30418, Xuehan Xu)
  • cephfs: mds: 定期修剪缓存 (pr#30040, Patrick Donnelly)
  • cephfs: mds: 在强制更改锁状态后唤醒锁等待者 (issue#39987, pr#30508, “Yan, Zheng”)
  • cephfs: mount.ceph: 正确处理 -o strictatime (pr#30039, Jeff Layton)
  • cephfs: qa: 忽略预期的 MDS_CLIENT_LATE_RELEASE 警告 (issue#40968, pr#29811, Patrick Donnelly)
  • cephfs: qa: 在删除 MDS 后等待 MDS 恢复 (issue#40967, pr#29832, Patrick Donnelly)
  • cephfs: tests: 断电后客户端仍然发送会话关闭 (issue#37681, pr#29983, Patrick Donnelly)
  • common/ceph_context: 在服务线程关闭期间避免不必要的等待 (pr#31097, Jason Dillaman)
  • common/config_proxy: 在访问可变容器时保持锁 (pr#30661, Jason Dillaman)
  • common: 修复 rgw_user_max_buckets 选项长描述中的错别字 (pr#31605, Alfonso Martínez)
  • core/osd: 不要信任部分简化的 pg_upmap_item (issue#42052, pr#30899, xie xingguo)
  • core: 网络 ping 时间过长时的健康警告 (issue#40640, pr#30195, David Zafman)
  • core: 如果 nodeep-scrub/noscrub 标志设置在池而不是全局集群中。在 ceph 状态中列出池名称 (issue#38029, pr#29991, Mohamad Gebai)
  • core: 改进 backfill_toofull 和 recovery_toofull 的健康状态,并修复在最满的 OSD 处于 1% 的集群上看到的 backfill_toofull (pr#29999, David Zafman)
  • core: 使在 scrub 和 recovery 之间一致的保留信息转储 (pr#31444, David Zafman)
  • core: 撤销“rocksdb: 默认启用 rocksdb_rmrange=true” (pr#31612, Neha Ojha)
  • core: filestore 预分割可能无法分割足够的目录 (issue#39390, pr#29988, Jeegn Chen)
  • core: kv/RocksDBStore: 告诉 rocksdb 将模式设置为 0600,而不是 0644 (pr#31031, Sage Weil)
  • core: mon/MonClient: 向关闭的 mon 发送命令时出现 ENXIO (pr#31037, Sage Weil, Greg Farnum)
  • core: mon/MonCommands: “smart” 只需要读取权限 (pr#31111, Kefu Chai)
  • core: mon/MonMap: 编码(更多)有效的 compat monmap,当我们只有 v2-only 地址时 (pr#31658, Sage Weil)
  • core: mon/Monitor.cc: 修复检查未识别的 auth 模式的条件 (pr#31038, Neha Ojha)
  • core: mon/OSDMonitor: 为 mon 缓存使用通用优先级缓存调节器 (pr#30419, Sridhar Seshasayee, Kefu Chai, Mykola Golub, Mark Nelson)
  • core: mon/OSDMonitor: 在池大小命令中添加 crush 规则大小检查 (pr#30941, Vikhyat Umrao)
  • core: mon/OSDMonitor: 修剪不再存在的故障报告器 (pr#30904, NancySu05)
  • core: mon/PGMap: 修复删除池时错误的 pg_pool_sum (pr#31704, luo rixin)
  • core: mon: C_AckMarkedDown 未处理回调参数 (pr#29997, NancySu05)
  • core: mon: 确保 prepare_failure() 在 op 上标记 no_reply (pr#30480, Joao Eduardo Luis)
  • core: mon: 在 pool ls 命令中显示池 id (issue#40287, pr#30486, Chang Liu)
  • core: msg,mon/MonClient: 修复没有 CEPHX_V2 功能的客户端的 auth (pr#30524, Sage Weil)
  • core: msg/auth: 处理解码错误而不是抛出异常 (pr#31099, Sage Weil)
  • core: msg/simple: 在会话重置时将 in_seq_acked 重置为零 (pr#29592, Xiangyang Yu)
  • core: os/bluestore: 修复 objectstore_blackhole 读写冲突 (pr#31019, Sage Weil)
  • core: osd/OSDCap: 检查命名空间是否为空 (issue#40835, pr#29998, Brad Hubbard)
  • core: mon/OSDMonitor: 如果没有 rocksdb,则使内存自动调整禁用自身 (pr#32045, Sage Weil)
  • core: osd/PG: 将 PG 添加到大型 omap 日志消息 (pr#30923, Brad Hubbard)
  • core: osd/PGLog: 在完成配对时持久化副本的 num_objects_missing (pr#31077, xie xingguo)
  • core: osd/PeeringState: 不要抱怨过去的时间间隔受到最旧 epoch 的限制 (pr#30000, Sage Weil)
  • core: osd/PeeringState: 修复错误的合并目标历史记录 (pr#30280, xie xingguo)
  • core: osd/PeeringState: recover_got - 为空日志添加特殊处理程序,并改进独立测试 (pr#30528, Sage Weil, David Zafman, xie xingguo)
  • core: osd/PrimaryLogPG: 避免访问被销毁的引用 (pr#29994, Tao Ning)
  • core: osd/PrimaryLogPG: 更新 oi.size 在写入操作中隐式截断 ob… (pr#30278, xie xingguo)
  • core: osd/ReplicatedBackend: 在启用 crc 之前检查 data_included 是否为空 (pr#29716, xie xingguo)
  • core: osd/osd_types: 修复 spli… 期间 {omap,hitset_bytes}_stats_invalid 的处理 (pr#30643, Sage Weil)
  • core: osd: 当 OSD 计数小于 osd_pool_default_size 时提供更好的错误消息 (issue#38617, pr#29992, Kefu Chai, Sage Weil, zjh)
  • core: osd: 从输出中删除未使用的 osdmap 标志 full, nearfull (pr#30900, David Zafman)
  • core: osd: 添加日志信息以记录 do_osd_ops 失败的原因 (pr#30546, NancySu05)
  • core: osd: 在修复对象时清除 PG_STATE_CLEAN (pr#30050, Zengran Zhang)
  • core: osd: 修复发送动态性能统计报告时的潜在崩溃 (pr#30648, Mykola Golub)
  • core: osd: 根据副本日志的 crt 合并副本日志 (pr#30051, Zengran Zhang)
  • core: osd: 为任何潜在的伪造分割/合并 par… 准备分割/合并 (issue#38483, pr#30371, xie xingguo)
  • core: osd: 在合并期间释放 backoffs (pr#31822, Sage Weil)
  • core: osd: rollforward 可能需要标记 pglog 为 dirty (issue#40403, pr#31034, Zengran Zhang)
  • core: osd: scrub 大对象上的错误;使 bluestore 拒绝在大型对象上启动 (pr#30783, David Zafman, Sage Weil)
  • core: osd: 支持 osd_repair_during_recovery (issue#40620, pr#29748, Jeegn Chen)
  • core: pool_stat.dump() - num_store_stats 的值错误 (issue#39340, pr#29946, xie xingguo)
  • doc/ceph-kvstore-tool: 添加 ‘stats’ 命令的描述 (pr#30245, Josh Durgin, Adam Kupczyk)
  • doc/mgr/telemetry: 更新默认间隔 (pr#31009, Tim Serong)
  • doc/rbd: s/guess/xml/ 用于 codeblock lexer (pr#31074, Kefu Chai)
  • doc: 修复 rbd 命名空间文档 (pr#29731, Ricardo Marques)
  • doc: cephfs: 在 posix.rst 中添加关于 fsync 错误报告的部分 (issue#24641, pr#30025, Jeff Layton)
  • doc: mon_health_to_clog_* 的默认值被翻转 (pr#30003, James McClune)
  • doc: 修复 posix.rst 中的 url (pr#30686, Jos Collin)
  • doc: max_misplaced 选项在 Nautilus 中已重命名 (pr#30649, Nathan Fish)
  • doc: pg_num 应该始终是 2 的幂 (pr#30004, Lars Marowsky-Bree, Kai Wagner)
  • doc: 更新 bluestore 缓存设置并澄清数据分数 (issue#39522, pr#31259, Jan Fajerski)
  • mgr/ActivePyModules: 如果模块查询不存在的 devid,则表现 (pr#31411, Sage Weil)
  • mgr/BaseMgrStandbyModule: 在 ceph_get_module_option() 中释放 GIL (pr#30773, Kefu Chai)
  • mgr/balancer: python3 兼容性问题 (pr#31012, Mykola Golub)
  • mgr/crash: 回溯存档功能,健康警报 (pr#30851, Sage Weil)
  • mgr/crash: 在客户端.crash[.host] 之前尝试客户端.admin;添加 mon profile (issue#40781, pr#30844, Sage Weil, Dan Mick)
  • mgr/dashboard: 添加 transifex-i18ntool (pr#31160, Sebastian Krah)
  • mgr/dashboard: 允许禁用备用仪表板上的重定向 (issue#41813, pr#30382, Volker Theile)
  • mgr/dashboard: 配置 URL 前缀无法按预期工作 (pr#31375, Volker Theile)
  • mgr/dashbaord: 修复 PG 状态百分比的计算 (issue#41809, pr#30394, Tiago Melo)
  • mgr/dashboard: 修复 CephFS 图表 (pr#30691, Stephan Müller)
  • mgr/dashboard: 修复 grafana 仪表板 (pr#31733, Radu Toader)
  • mgr/dashboard: 改进 MDS 图表工具提示的位置 (pr#31565, Tiago Melo)
  • mgr/dashboard: 提供正在删除的对象的名称 (pr#31263, Ricardo Marques)
  • mgr/dashboard: RBD 测试必须使用具有 2 的幂的 pg_num 的池 (pr#31522, Ricardo Marques)
  • mgr/dashboard: 将 RO 设置为 RGW NFS 导出的默认 access_type (pr#30516, Tiago Melo)
  • mgr/dashboard: 在 e2e 测试中等待 breadcrumb 文本存在 (pr#31576, Volker Theile)
  • mgr/dashboard: access_control: 为 *-manager 角色添加 grafana 范围读取访问权限 (pr#30259, Ricardo Dias)
  • mgr/dashboard: 不要记录 token (pr#31413, Kefu Chai)
  • mgr/dashboard: 不要显示池详细信息中的非池数据 (pr#31516, Alfonso Martínez)
  • mgr/dashboard: 在其数据接收后编辑/克隆/复制 rbd 镜像 (pr#31349, Alfonso Martínez)
  • mgr/dashboard: 启用 AOT 的国际化支持 (pr#30910, Ricardo Dias, Tiago Melo)
  • mgr/dashboard: run-backend-api-tests.sh 改进 (pr#29487, Alfonso Martínez, Kefu Chai)
  • mgr/dashboard: tasks: 仅在 TaskManager 线程之后才取消阻止控制器线程 (pr#31526, Ricardo Dias)
  • mgr/devicehealth: 不要抓取 mon 设备 (pr#31446, Sage Weil)
  • mgr/devicehealth: 直接导入 _strptime (pr#32082, Sage Weil)
  • mgr/k8sevents: 初始 ceph -> k8s 事件集成 (pr#30215, Paul Cuzner, Sebastian Wagner)
  • mgr/pg_autoscaler: 修复 pool_logical_used (pr#31100, Ansgar Jazdzewski)
  • mgr/pg_autoscaler: 修复 pool 删除时的竞争条件 (pr#30008, Sage Weil)
  • mgr/prometheus: 将 collect_timeout (scrape_interval) 转换为浮点数 (pr#30007, Ben Meekhof)
  • mgr/prometheus: 修复 get_mgr_status 中的 KeyError (pr#30774, Sebastian Wagner)
  • mgr/rbd_support: module.py:1088: 错误:名称 ‘image_spec’ 未定义 (pr#29978, Jason Dillaman)
  • mgr/restful: requests api 添加对多个命令的支持 (pr#31334, Duncan Chiang)
  • mgr/telemetry: backport 大量内容 (pr#30849, alfonsomthd, Kefu Chai, Sage Weil, Dan Mick)
  • mgr/volumes: 修复不正确的快照路径创建 (pr#31076, Ramana Raja)
  • mgr/volumes: 在 purge 线程中处理异常并重试 (issue#41218, pr#30455, Venky Shankar)
  • mgr/volumes: 列出 FS 子卷、子卷组及其快照 (pr#30827, Jos Collin)
  • mgr/volumes: 细微的修复 (pr#29926, Venky Shankar, Jos Collin, Ramana Raja)
  • mgr/volumes: 对 “fs volume rm” 命令进行保护 (pr#30768, Jos Collin, Ramana Raja)
  • mgr/zabbix: 修复 PGs 在 backfill_wait 状态下的 key 名称中的拼写错误 (issue#39666, pr#30006, Wido den Hollander)
  • mgr/zabbix: 为了与 Python 3 兼容而编码字符串 (pr#30016, Nathan Cutler)
  • mgr/{dashboard,prometheus}: 返回 FQDN 而不是 ‘0.0.0.0’ (pr#31482, Patrick Seidensal)
  • mgr: 在调用 OSDMap::calc_pg_upmaps() 之前释放 GIL (pr#31682, David Zafman, Shyukri Shyukriev)
  • mgr: 无法重置/取消设置模块选项 (issue#40779, pr#29550, Sebastian Wagner)
  • mgr: 如果未收集到新的指标,则不要重置报告 (pr#30390, Ilsoo Byun)
  • mgr: 修复 health-alert daemon key 的奇怪问题 (pr#31039, xie xingguo)
  • mgr: 在 DeviceState::set_metadata() 中设置主机名 (pr#30624, Kefu Chai)
  • pybind/cephfs: 修改错误消息 (pr#30026, Varsha Rao)
  • pybind/rados: 修复 py3 上 set_omap() 的崩溃 (pr#30622, Sage Weil)
  • pybind/rbd: 弃用 parent_info (pr#30818, Ricardo Marques)
  • rbd: rbd-mirror: 无法恢复延迟删除的镜像 (pr#30825, Jason Dillaman, Mykola Golub)
  • rbd: rbd-mirror: 不要覆盖 replay 返回的状态错误 (pr#29870, Mykola Golub)
  • rbd: rbd-mirror: 忽略与解析集群配置文件相关的错误 (pr#30116, Jason Dillaman)
  • rbd: rbd-mirror: 简化 peer 引导 (pr#30821, Jason Dillaman)
  • rbd: rbd-nbd: 添加 netlink 支持和 nl resize (pr#30532, Mike Christie)
  • rbd: cls/rbd: 清理实体实例 messenger 版本类型 (pr#30822, Jason Dillaman)
  • rbd: cls/rbd: 清理从磁盘读取后镜像状态 peer 地址 (pr#31833, Jason Dillaman)
  • rbd: krbd: 避免 udev netlink socket 溢出并在 udev_enumerate_scan_devices() 中出现瞬态错误时重试 (pr#31075, Ilya Dryomov, Adam C. Emerson)
  • rbd: librbd: 在删除镜像时始终尝试获取独占锁 (pr#29869, Mykola Golub)
  • rbd: librbd: 在删除数据池时表现得更优雅 (pr#30824, Mykola Golub)
  • rbd: librbd: v1 克隆限制在同一命名空间 (pr#30823, Jason Dillaman)
  • mgr/restful: 查询 nodes_by_id 获取项目 (pr#31261, Boris Ranto)
  • rgw/amqp: 修复 AMQP 单元测试中的竞争条件 (pr#30889, Yuval Lifshitz)
  • rgw/amqp: 删除不稳定的 amqp 测试 (pr#31628, Yuval Lifshitz)
  • rgw/pubsub: backport 通知和 pubsub (pr#30579, Yuval Lifshitz)
  • rgw/rgw_op: 通过旧选项从热路径中删除 get_val (pr#30160, Mark Nelson)
  • rgw: putbj 中的潜在崩溃 (pr#29898, Adam C. Emerson)
  • rgw: Put User Policy 对空格敏感 (pr#29970, Abhishek Lekshmanan)
  • rgw: RGWCoroutine::call(nullptr) 将 retcode 设置为 0 (pr#30248, Casey Bodley)
  • rgw: Swift 元数据在启用 S3 bucket 版本控制后丢失 (pr#29961, Marcus Watts)
  • rgw: 添加 S3 对象锁定功能以支持对象 WORM (pr#29905, Chang Liu, Casey Bodley, zhang Shaowen)
  • rgw: 添加 minssing admin 属性以同步用户信息 (pr#30680, zhang Shaowen)
  • rgw: beast 前端在耗尽 FD 时抛出异常 (pr#29963, Yuval Lifshitz)
  • rgw: data/bilogs 在没有 peer 读取它们时被修剪 (issue#39487, pr#30999, Casey Bodley)
  • rgw: datalog/mdlog 修剪命令循环直到完成 (pr#30869, Casey Bodley)
  • rgw: dns 名称不区分大小写 (issue#40995, pr#29971, Casey Bodley, Abhishek Lekshmanan)
  • rgw: 修复 lifecycle 过期生成 delete marker 的 bug (issue#40393, pr#30037, zhang Shaowen)
  • rgw: 修复 cls_bucket_list_unordered() 部分结果 (pr#30252, Mark Kogan)
  • rgw: 修复数据池移除时 librbd 的行为 (pr#30824, Mykola Golub)
  • rgw: 修复 get_compression_type 的默认存储类 (pr#31026, Casey Bodley)
  • rgw: 修复在删除带有 bypass-gc 选项的 bucket 时 drain handles 错误 (pr#29956, dongdong tao)
  • rgw: 修复 list bucket with delimiter 错误地跳过一些特殊 key (issue#40905, pr#30068, Tianshan Qu)
  • rgw: 修复删除对象时的内存增长 (pr#30472, Mark Kogan)
  • rgw: 修复网站配置必要的检查的 bug (issue#40678, pr#30325, Enming Zhang)
  • rgw: 修复 “unrecognized arg” 错误在使用 “radosgw-admin zone rm” 时 (pr#30247, Hongang Chen)
  • rgw: housekeeping 重置统计信息 (pr#29803, J. Eric Ivancich)
  • rgw: 增加 beast parse 缓冲区大小到 64k (pr#30437, Casey Bodley)
  • rgw: ldap 身份验证:S3 身份验证失败应返回 InvalidAccessKeyId (pr#30651, Matt Benjamin)
  • rgw: lifecycle 天数可能为 0 (pr#31073, Matt Benjamin)
  • rgw: lifecycle 转换到不存在的放置目标 (pr#29955, Abhishek Lekshmanan)
  • rgw: list objects version 2 (pr#29849, Albin Antony, zhang Shaowen)
  • rgw: multisite: radosgw-admin bucket sync status 在完全同步期间错误地报告 “已同步” (issue#40806, pr#29974, Casey Bodley)
  • rgw: 潜在的 realm watch 丢失 (issue#40991, pr#29972, Tianshan Qu)
  • rgw: 使用锁保护 AioResultList 以避免竞争条件 (pr#30746, Ilsoo Byun)
  • rgw: radosgw-admin: 在 bucket list 命令中添加 –uid 检查 (pr#30604, Vikhyat Umrao)
  • rgw: 从 SLO 对象返回比请求范围多一个字节的数据 (pr#29960, Andrey Groshev)
  • rgw: rgw-admin: 按访问密钥搜索用户 (pr#29959, Matt Benjamin)
  • rgw: rgw-log 在解压缩失败时发出错误的消息 (pr#29965, Han Fengzhe)
  • rgw: rgw_file: 目录枚举可以通过从 S3/Swift 获取统计信息来加速 1-2 个数量级 (仅 S3/Swift 统计信息) (issue#40456, pr#29954, Matt Benjamin)
  • rgw: rgw_file: readdir: 不要使用前导 ‘/’ 构建标记 (pr#29969, Matt Benjamin)
  • rgw: 静默警告 “control reaches end of non-void function” (issue#40747, pr#31742, Jos Collin)
  • rgw: 与 elastic search v7 同步 (pr#31027, Chang Liu)
  • rgw: 为 boost::string_ref 使用显式 to_string() 重载 (issue#39611, pr#31650, Casey Bodley, Ulrich Weigand)
  • rgw: 在使用 radosgw-admin 列出 bucket 时,可以将 –max-entries 设置得过高 (pr#29777, J. Eric Ivancich)
  • tests: “CMake Error” 在 test_envlibrados_for_rocksdb.sh 中 (pr#29979, Kefu Chai)
  • tests: 使 libcephfs 和 cephfs 能够在 FreeBSD 上编译 (pr#31136, Willem Jan Withagen)
  • tests: 添加失败的 osd-release 设置的调试信息 (pr#31040, Patrick Donnelly)
  • tests: cephfs: 修复格式错误的 qa suite 配置 (pr#30038, Patrick Donnelly)
  • tests: cls_rbd/test_cls_rbd: 更新 TestClsRbd.sparsify (pr#30354, Kefu Chai)
  • tests: cls_rbd: 移除镜像 peer pool 测试用例 (pr#30948, Jason Dillaman)
  • tests: 启用 dashboard 测试,使其可以使用 “–suite rados/dashboard” 运行 (pr#31248, Nathan Cutler)
  • tests: librbd: 设置 nbd 超时时间,因为较新的内核默认设置了该超时时间 (pr#30423, Jason Dillaman)
  • tests: qa/suites/krbd: 仅使用 msgr1 运行 unmap 子套件 (pr#31290, Ilya Dryomov)
  • tests: qa/tasks/cbt: 在关闭时运行 stop-all.sh (pr#31304, Sage Weil)
  • tests: qa/tasks/ceph.conf.template: 增加 mon tell 重试次数 (pr#31641, Sage Weil)
  • tests: qa/workunits/rbd: 压力测试 rbd mirror pool 状态 –verbose (pr#29871, Mykola Golub)
  • tests: qa: 避免 krbd discard round off 测试中的页面缓存 (pr#30464, Ilya Dryomov)
  • tests: qa: 在重置 kclient 后短暂休眠 (pr#29750, Patrick Donnelly)
  • tests: rados/mgr/tasks/module_selftest: 白名单 mgr client 被列入黑名单 (issue#40867, pr#29649, Sage Weil)
  • tests: test_librados_build.sh: 在 nautilus 中从 nautilus 分支获取 (pr#31604, Nathan Cutler)
  • tests: valgrind: ceph::crypto::onwire::AES128GCM_OnWireRxHandler::authenticated_decrypt_update_final() 中的 UninitCondition (issue#38827, pr#29928, Radoslaw Zarzynski)
  • tools/rados: 添加 –pgid 到帮助信息 (pr#30607, Vikhyat Umrao)
  • tools/rados: 在 rados 连接后调用 pool_lookup() (pr#30605, Vikhyat Umrao)
  • tools/rbd-ggate: 在运行 postfork 之前关闭日志 (pr#30120, Willem Jan Withagen)
  • tools: ceph-backport.sh: 添加弃用警告 (pr#30748, Nathan Cutler)
  • tools: ceph-objectstore-tool 无法删除带有坏 snapset 的 head (pr#30080, David Zafman)