发布 v13.2.5 Mimic
TheAnalyst
这是 Mimic v13.2.x 长期稳定版系列的第五个错误修复版本。我们建议所有 Mimic 用户升级。
重要变更 ¶
- 此版本修复了在 13.2.2 中引入的 pg log 硬限制错误,https://tracker.ceph.com/issues/36686。我们引入了一个名为 pglog_hardlimit 的标志,默认情况下处于关闭状态。启用此标志将限制 pg log 的长度。要启用此功能,必须在完全升级到 13.2.2 后运行 ceph osd set pglog_hardlimit 来设置该标志。一旦集群设置了此标志,pg log 的长度将受到硬限制。一旦设置,此标志不得再被取消设置。在 Luminous 中,此功能在 12.2.11 中引入。运行 12.2.11 并希望继续使用此功能的用户应升级到 13.2.5 或更高版本。
- 此版本还修复了 civetweb 上的一个 CVE 漏洞,CVE-2019-3821,即在初始协商失败的情况下,civetweb 中的 SSL 文件描述符未关闭。
- 对 RGW 动态和手动 resharding 进行了一些修复,现在不再留下需要手动删除的陈旧 bucket 实例。要查找和清理 resharding 留下的旧实例,应使用 radosgw-admin 命令 reshard stale-instances list 和 reshard stale-instances rm 进行必要的清理。这些命令不应用于多站点设置,因为陈旧实例可能并非来自 resharding,并可能带来后果。在下一个版本中,admin CLI 将阻止此命令在多站点集群上运行,但在当前版本中,强烈建议用户不要在多站点集群上使用删除命令。
变更日志 ¶
- build/ops: basic_string _GLIBCXX_USE_CXX11_ABI=0 和 C++17 模式的销毁导致无效删除 (issue#38177, pr#26593, Kefu Chai, Jason Dillaman)
- build/ops: rpm: require ceph-base instead of ceph-common (issue#37620, pr#25809, Sébastien Han)
- build/ops: run-make-check.sh ccache tweaks (issue#24817, issue#24777, pr#25153, Nathan Cutler, Jonathan Brielmaier, Erwan Velu)
- ceph-create-keys: 修复 Python 3 的八进制表示法,同时保持与 Python 2 的兼容性 (issue#37641, pr#25531, James Page)
- cephfs: MDCache::finish_snaprealm_reconnect() 创建和删除 MClientSnap 消息 (issue#38285, pr#26472, “Yan, Zheng”)
- cephfs: mgr/status: 修复 fs status 子命令未显示 standby-replay MDS 的性能信息 (issue#36399, pr#25031, Zhi Zhang)
- ceph-objectstore-tool: Dump hashinfo (issue#37597, pr#25721, David Zafman)
- ceph-volume-client: 允许设置 CephFS 卷的模式 (issue#36651, pr#25413, Tom Barron)
- ceph-volume: 启用设备丢弃 (issue#36532, pr#25749, Jonas Jelten)
- ceph-volume: 修复 inventory 中的 JSON 输出 (issue#37390, pr#25923, Sebastian Wagner)
- ceph-volume: 修复 TypeError: join() takes exactly one argument (2 given) (issue#37595, pr#25771, Sebastian Wagner)
- ceph-volume 将字符串到整数转换中的逗号标准化为点 (issue#37442, pr#25775, Alfredo Deza)
- ceph-volume: 恢复分区作为磁盘 (issue#37506, pr#26294, Jan Fajerski)
- ceph-volume: 在 prime-osd-dir 之前设置正确的权限 (issue#37486, pr#25777, Andrew Schoen, Alfredo Deza)
- ceph-volume tests/functional 声明 ceph-ansible 角色而不是导入它们 (issue#37805, pr#25837, Alfredo Deza)
- ceph-volume zap: 改进 zapping 以删除所有分区和所有 LV,无论是否加密 (issue#37449, pr#25351, Alfredo Deza)
- cli: dump osd-fsid as part of osd find
(issue#37966, pr#26035, Noah Watkins) - client: 在写入成功之前不要移动 f->pos (issue#37546, pr#25683, Junhui Tang)
- client: 修复使用 samba 时配额大小限制失败的问题 (issue#37547, pr#25678, Junhui Tang)
- client: 修复 fuse 客户端因与 mds 的管道不正常而挂起的问题 (issue#36079, pr#25903, Guan yunfei)
- client: 在 dcache 失效失败时重试重新挂载 (issue#27657, pr#24695, Venky Shankar)
- client: session flush 不会导致 cap release 消息 flush (issue#38009, pr#26424, Patrick Donnelly)
- cmake: 在 FreeBSD 上不要将 -B{symbolic,symbolic-functions} 传递给链接器 (issue#36717, pr#25525, Willem Jan Withagen)
- common: 修复 WeightedPriorityQueue 中的内存泄漏 (issue#36248, pr#25295, Radoslaw Zarzynski)
- common: 修复缺失 include boost/noncopyable.hpp (issue#38178, pr#26277, Willem Jan Withagen)
- core: list-inconsistent-obj 输出被截断,导致 osd-scrub-repair.sh 失败 (issue#37653, pr#25603, David Zafman)
- core: luminous->(mimic,nautilus): luminous 端 PGMapDigest 解码错误 (issue#38295, pr#26451, Sage Weil)
- core: Objecter::calc_op_budget: 修复对 extent union 成员的无效访问 (issue#37932, pr#26066, Simon Ruggier)
- core: scrub warning check 错误地使用 mon scrub interval (issue#37264, pr#26493, David Zafman)
- deep fsck 在检查非常大的 onodes 时失败 (issue#38065, pr#26291, Igor Fedotov)
- doc: 将 “breathe” 版本固定为 4.1.11 (issue#38229, pr#26333, Alfredo Deza)
- doc: rados/configuration: 刷新 osdmap 部分 (issue#38051, pr#26373, Ilya Dryomov)
- doc: 更新 Ceph 文档链接 (issue#37793, pr#26180, James McClune)
- doc/user-management: 移除过时的 reset caps 命令 (issue#37663, pr#25607, Brad Hubbard)
- journal: max journal order 被错误地设置为 64 (issue#37541, pr#25957, Mykola Golub)
- librbd: 修复如果 shrink 不允许时缺少 unblock_writes 的问题 (issue#36778, pr#25252, runsisi)
- librbd: 在 rbd_snap_list() 中重置快照 (issue#37508, pr#25459, Kefu Chai)
- mds: 禁用配额时向客户端广播配额消息 (issue#38054, pr#26292, Junhui Tang)
- mds: 为心跳超时创建单独的配置 (issue#37674, pr#26010, Patrick Donnelly)
- mds: 固定的目录在导出 mds 和导入 mds 之间来回复制 (issue#37368, pr#25521, Xuehan Xu)
- mds: 不允许将巨大的缓存转储到格式化程序 (issue#36703, pr#25642, Venky Shankar)
- mds: 不要调用 Journaler::_trim 两次 (issue#37566, pr#25561, Tang Junhui)
- mds: 修复 filelock 停留在 LOCK_XSYN 导致客户端无法读取数据的错误 (issue#37333, pr#25676, Guan yunfei)
- mds: 修复 purge queue 中遇到无效项时 l_pq_executing_ops 统计信息不正确的问题 (issue#37567, pr#25559, Junhui Tang)
- mds: 修复 _unlink_local_finish 中潜在的重新评估 stray dentry (issue#38263, pr#26474, Zhi Zhang)
- mds: 修复更新 wanted caps 的竞争条件 (issue#37464, pr#25680, “Yan, Zheng”)
- mds: 处理 fragment notify 竞争条件 (issue#36035, pr#26252, “Yan, Zheng”)
- mds: 处理状态更改竞争条件 (issue#37594, pr#26051, “Yan, Zheng”)
- mds: 将被驱逐的客户端记录到 clog/dbg (issue#37639, pr#25857, Patrick Donnelly)
- MDSMonitor: 允许来自滞后且正在停止的 MDS 的信标 (issue#37724, pr#25685, Patrick Donnelly)
- MDSMonitor: 缺少 osdmon 可写检查 (issue#37929, pr#26069, Patrick Donnelly)
- mds: 如果 PQ journal 损坏,purge queue 恢复在启动期间挂起 (issue#37543, pr#26055, Patrick Donnelly)
- mds: PurgeQueue write error handler 不处理 EBLACKLISTED (issue#37394, pr#25523, Patrick Donnelly)
- mds: 移除重复的 l_mdc_num_strays perfcounter set (issue#37516, pr#25681, Zhi Zhang)
- mds: 移除 Locker::snapflush_nudge 中的错误断言 (issue#37721, pr#25885, “Yan, Zheng”)
- mds: 几次 respawn 后文件描述符用尽 (issue#35850, pr#25822, Patrick Donnelly)
- mds: 解码 log event 中的 xattr_map 时出现严重的内部碎片 (issue#37399, pr#25519, “Yan, Zheng”)
- mds: journal flush 后 trim cache (issue#38010, pr#26214, Patrick Donnelly)
- mds: 如果未发送信标,等待更短的时间间隔 (issue#36367, pr#25980, Patrick Donnelly)
- mgr: 添加 get_latest_counter() 到 C++ -> Python 接口 (issue#38138, pr#26074, Jan Fajerski)
- mgr/balancer: 添加命令以列出所有计划 (issue#37418, pr#25293, Yang Honggang)
- mgr/balancer: 添加 crush_compat_metrics 参数以更改优化键 (issue#37412, pr#25291, Dan van der Ster)
- mgr/dashboard: 设置 mirror_mode 为 None (issue#37870, pr#26009, Sebastian Wagner)
- mgr: 死锁: _check_auth_rotating 可能的时钟偏差,旋转密钥过期过早 (issue#23460, pr#26426, Yan Jun)
- mgr: prometheus: 将 bluestore db 和 wal 设备添加到 ceph_disk_occupation metric (issue#36627, pr#25218, Konstantin Shalygin)
- mgr: daemon 状态和 'service status' 中的服务映射之间的竞争条件 (issue#36656, pr#25368, Mykola Golub)
- mgr/restful: 修复 py 在获取 osd info 时发生异常 (issue#38182, pr#26200, Boris Ranto, zouaiguo)
- mgr: 各种 python3 修复 (issue#37415, pr#25292, Noah Watkins)
- mgr 将拒绝来自在其之后启动的 monitor 的连接 (issue#37753, pr#26235, Xinying Song)
- mgr/zabbix: 向 Zabbix 发送更多 PG 信息 (issue#38180, pr#25944, Wido den Hollander)
- mon: 带有 PG_STATE_REPAIR 的 PG 不一定意味着数据损坏,PG_STATE_IN... (issue#38070, pr#26304, David Zafman)
- mon: log last command 跳过最新条目 (issue#36679, pr#25526, John Spray)
- mon: 将 REMOVE_SNAPS 消息标记为 no_reply (issue#37568, pr#25782, “Yan, Zheng”)
- mon/OSDMonitor: 不要将 void pg_temp 填充到 nextmap 中 (issue#37784, pr#25844, Aleksei Zakharov)
- mon: 提前关闭 messenger 以避免访问已删除的 logger (issue#37780, pr#25846, ningtao)
- msg/async: 回传最近的 messenger 修复 (issue#36497, issue#37778, pr#25958, xie xingguo)
- msg/async: 当 verify_authorizer 未实现提供的 authenticator 时崩溃 (issue#36443, pr#25299, Sage Weil)
- multisite: es sync null versioned object 失败,因为 olh info (issue#23842, issue#23841, pr#25578, Tianshan Qu, Shang Ding)
- os/bluestore: 修复访问销毁条件导致死锁或未定义的问题 (issue#37733, pr#26260, linbing)
- os/bluestore: KernelDevice::read() 现在执行 EIO 映射 (issue#36455, pr#25854, Radoslaw Zarzynski)
- os/bluestore: rename 不会保留旧名称处替换 onode 的旧引用 (issue#36541, pr#25313, Sage Weil)
- osd: 添加对 osd_delete_sleep 配置值的支持 (issue#36474, pr#25507, Jianpeng Ma, David Zafman)
- osd-backfill-stats.sh 在 rados/standalone/osd.yaml 中失败 (issue#37393, issue#35982, pr#26329, Sage Weil, David Zafman)
- osd: 回传最近的 upmap 修复 (issue#37940, issue#37881, pr#26128, huangjun, xie xingguo)
- osdc/Objecter: 在 _calc_target 中更新 op_target_t::paused (issue#37398, pr#25718, Song Shun, runsisi)
- osd: 当 osd_memory_target 选项不匹配时断言失败 (issue#37507, pr#25605, xie xingguo)
- osd: force-backfill 在 13.2.1 中设置 forced_recovery 而不是 forced_backfill (issue#27985, pr#26324, xie xingguo)
- osd/mon: 修复 pg log 硬限制的升级 (issue#36686, pr#26206, Neha Ojha)
- osd/OSDMap: 如果目标 osd 退出,取消映射 (issue#37501, pr#25699, ningtao, xie xingguo)
- osd/OSD: OSD::mkfs 在使用现有超级块重用磁盘时断言 (issue#37404, pr#25385, Igor Fedotov)
- osd/PG.cc: 计算缺失集,与 last_complete 无关 (issue#37919, pr#26239, Neha Ojha)
- osd/PrimaryLogPG: 修复同步读取的 extent length 错误 (issue#37680, pr#25708, Xiaofei Cui)
- osd: 优先处理用户指定的 scrub (issue#37269, pr#25513, David Zafman)
- os/filestore: fsync(2) 或 fdatasync(2) 失败时 ceph_abort() (issue#38258, pr#26438, Sage Weil)
- pybind/mgr: 删除不必要的 iterkeys 用法以兼容 py-3 (issue#37581, pr#25759, Mykola Golub)
- pybind/mgr/status: 修复 py3 环境中的 ceph fs status (issue#37573, pr#25694, Jan Fajerski)
- qa: pjd 测试在某些配置下似乎需要超过 3 小时的超时时间 (issue#36594, pr#25557, Patrick Donnelly)
- qa/rados/upgrade: 使 thrashing 与 upgrade suite 对齐,不要导入/导出 pgs (issue#37665, pr#25856, Sage Weil)
- qa/tasks/radosbench: 默认设置为 64k 写入 (issue#37797, pr#26354, Sage Weil)
- qa: test_damage 需要使 MDS_READ_ONLY 静音 (issue#37944, pr#26072, Patrick Donnelly)
- qa: test_damage 反复对同一对象执行 truncate 测试 (issue#37836, issue#37837, pr#26047, Patrick Donnelly)
- qa: teuthology 可能在 fuse mount 的诊断命令上挂起 (issue#36390, pr#25515, Patrick Donnelly)
- qa: whitelist cap revoke warning (issue#25188, pr#26496, Patrick Donnelly)
- qa/workunits/rados/test_health_warnings: 防止 osds out (issue#37776, pr#25850, Sage Weil)
- qa: msgr 失败设置错误 (issue#36676, pr#25517, Patrick Donnelly)
- rbd: 修复 trash move 的延迟时间计算 (issue#37861, pr#25954, Mykola Golub)
- rgw: v4 认证的调试日志不清理加密密钥 (issue#37847, pr#26003, Casey Bodley)
- rgw: 不要在 ARN 的资源部分中特殊处理冒号 (issue#23817, pr#25386, Adam C. Emerson)
- rgw: rgw 无法从默认配置在 Fedora 28 上启动 (issue#24228, pr#26129, Matt Benjamin)
- rgw: feature – 记录成功的 bucket resharding 事件 (issue#37647, pr#25740, J. Eric Ivancich)
- rgw_file: user info 自 librgw init 以来从未同步过 (issue#37527, pr#25485, Tao Chen)
- rgw: 修复 radosgw-admin 和 REST Admin API 中的 max-size (issue#37517, pr#25449, Nick Erdmann)
- rgw: 修复 version bucket stats (issue#21429, pr#25643, Shasha Lu)
- rgw: 处理带有元数据的 S3 version 2 pre-signed urls (issue#23470, pr#25899, Matt Benjamin)
- rgw: 在没有 zonegroup rm 的情况下删除 master zone 会破坏 rgw rados init (issue#37328, pr#25511, Abhishek Lekshmanan)
- rgw: multisite: sync gets stuck retrying deletes that fail with ERR_PRECONDITION_FAILED (issue#37448, pr#25505, Casey Bodley)
- rgw: 即使设置了 s3:DeleteObject policy,对象仍然可以被删除 (issue#37403, pr#26309, Enming.Zhang)
- rgw: “radosgw-admin bucket rm … –purge-objects” 可能会挂起 (issue#38134, pr#26266, J. Eric Ivancich)
- rgw: radosgw-admin: 翻译 reshard status codes (trivial) (issue#36486, pr#25198, Matt Benjamin)
- rgw: rgwgc: 在某些特殊情况下处理 coredump (issue#23199, pr#25624, zhaokun)
- rpm: 使用 hardened LDFLAGS (issue#36316, pr#25171, Boris Ranto)
- build/ops: basic_string _GLIBCXX_USE_CXX11_ABI=0 和 C++17 模式的销毁导致无效删除 (issue#38177, pr#26593, Kefu Chai, Jason Dillaman)