v12.2.5 Luminous 发布
TheAnalyst
这是 Luminous v12.2.x 长期稳定版系列的第五个错误修复版本。此版本包含 Ceph 所有组件的一系列错误修复。我们建议所有 12.2.x 系列的用户进行更新。
重要变更 ¶
MGR
ceph-mon 包中包含的 ceph-rest-api 命令行工具已被 MGR “restful” 模块取代。ceph-rest-api 工具在此声明为已弃用,并将在 Mimic 版本中删除。
MGR “restful” 模块通过“直通”方法提供类似功能。有关详细信息,请参阅 https://docs.ceph.net.cn/docs/luminous/mgr/restful。
CephFS
将 MDS 集群升级到 12.2.3+ 将导致所有活动 MDS 因功能不兼容而退出。操作员可以忽略错误消息并继续升级/重新启动,或遵循以下升级序列
将 rank 数量减少到 1 (ceph fs set <fs_name> max_mds 1),等待所有其他 MDS 停用,只留下一个活动的 MDS,升级单个活动的 MDS,然后升级/启动备用 MDS。最后,恢复以前的 max_mds。
其他值得注意的更改 ¶
- 为 crushtool 添加 –add-bucket 和 –move 选项 (issue#23472, issue#23471, pr#21079, Kefu Chai)
- BlueStore.cc: _balance_bluefs_freespace: assert(0 == “allocate failed, wtf”) (issue#23063, pr#21394, Igor Fedotov, xie xingguo, Sage Weil, Zac Medico)
- bluestore: 正确检查所有块设备以决定 journal is_… (issue#23173, issue#23141, pr#20651, Greg Farnum)
- bluestore: statfs available 可以变为负数 (issue#23074, pr#20554, Igor Fedotov, Sage Weil)
- build Debian installation packages failure (issue#22856, issue#22828, pr#20250, Tone Zhang)
- build/ops: deb: 将 python-jinja2 依赖项移动到 mgr (issue#22457, pr#20748, Nathan Cutler)
- build/ops: deb: 将 python-jinja2 依赖项移动到 mgr (issue#22457, pr#21233, Nathan Cutler)
- build/ops: run-make-check.sh: 修复 SUSE 支持 (issue#22875, issue#23178, pr#20737, Nathan Cutler)
- cephfs-journal-tool: 修复 Dumper destroyed before shutdown (issue#22862, issue#22734, pr#20251, dongdong tao)
- ceph.in: 如果缺少参数,打印所有匹配的命令 (issue#22344, issue#23186, pr#20664, Luo Kexue, Kefu Chai)
- ceph-objectstore-tool 命令以修剪 pg 日志 (issue#23242, pr#20803, Josh Durgin, David Zafman)
- ceph osd force-create-pg 导致所有 ceph-mon 崩溃且无法再次启动 (issue#22942, pr#20399, Sage Weil)
- ceph-volume: 为 ‘lvm list’ 添加原始设备支持 (issue#23140, pr#20647, Andrew Schoen)
- ceph-volume: 允许并行创建 (issue#23757, pr#21509, Theofilos Mouratidis)
- ceph-volume: 允许在激活/创建时跳过 systemd 交互 (issue#23678, pr#21538, Alfredo Deza)
- ceph-volume: 自动 VDO 检测 (issue#23581, pr#21505, Alfredo Deza)
- ceph-volume 弹性应对 $PATH 问题 (pr#20716, Alfredo Deza)
- ceph-volume: 修复 tox 中的 action plugins 路径 (pr#20923, Guillaume Abrioux)
- ceph-volume 实现 ‘activate all’ 以帮助处理密集服务器或迁移 OSD (pr#21533, Alfredo Deza)
- ceph-volume 提高在测试中重新加载 vms 时的健壮性 (pr#21072, Alfredo Deza)
- ceph-volume lvm.activate 错误,如果未找到 bluestore OSD (issue#23644, pr#21335, Alfredo Deza)
- ceph-volume: 在研究代码时发现的小问题 (pr#21565, Dan Mick)
- ceph-volume tests 减轻重新加载时的 libvirt 超时 (issue#23163, pr#20754, Alfredo Deza)
- ceph-volume 更新 prepare/activate 标志的手册页 (pr#21574, Alfredo Deza)
- ceph-volume: 为 {vg|pv|lv}s 命令使用 –readonly (pr#21519, Erwan Velu)
- client: 允许客户端使用已被撤销但尚未返回的 caps (issue#23028, issue#23314, pr#20904, Jeff Layton)
- : Client: 修复 readdir 错误 (issue#22936, pr#20356, dongdong tao)
- client: 在使缓存失效后释放 revoking Fc (issue#22652, pr#20342, “Yan, Zheng”)
- Client: setattr 应该为 mtime 和 size 丢弃 “Fs” 而不是 “As” (issue#22935, pr#20354, dongdong tao)
- client: 使用 dentry_invalidate_cb 或 remount_cb 来使 k... 失效 (issue#23355, pr#20960, Zhi Zhang)
- cls/rbd: group_image_list 被错误地标记为 RW (issue#23407, issue#23388, pr#20967, Jason Dillaman)
- cls/rgw: 修复 bi_log_iterate_entries 返回错误的 truncated (issue#22737, issue#23225, pr#21054, Tianshan Qu)
- cmake: rbd resource agent 需要可执行 (issue#22980, pr#20617, Tim Bishop)
- common/dns_resolv.cc: 如果 ms_bind_ipv6 为 True,则查询 AAAA-记录 (issue#23078, issue#23174, pr#20710, Wido den Hollander)
- common/ipaddr: 不要选择 link-local IPv6 地址 (issue#21813, pr#21111, Willem Jan Withagen)
- common: 在客户端的帮助信息中省略 id 的短选项 (issue#23156, issue#23041, pr#20654, Patrick Donnelly)
- common: 不应检查 VERSION_ID (issue#23477, issue#23478, pr#21090, Kefu Chai, Shengjing Zhu)
- config: 将 bluestore_cache_kv_max 更改为 INT64 类型 (pr#20334, Zhi Zhang)
- Couldn’t init storage provider (RADOS) (issue#23349, issue#22351, pr#20896, Brad Hubbard)
- doc: 添加文档中缺少的 pg 状态 (issue#23113, pr#20584, David Zafman)
- doc: 概述 mds 集群的升级过程 (issue#23634, issue#23568, pr#21352, Patrick Donnelly)
- doc/rgw: 添加 http frontend 配置页面 (issue#13523, issue#22884, pr#20242, Casey Bodley)
- doc: rgw: 提及 civetweb 支持绑定到多个端口 (issue#20942, issue#23317, pr#20906, Abhishek Lekshmanan)
- docs fix ceph-volume 缺少子命令 (pr#20691, Katie Holly, Yao Zongyou, David Galloway, Sage Weil, Alfredo Deza)
- doc: 更新手册页以解释 ceph-volume 支持 bluestore (issue#23142, issue#22663, pr#20679, lijing)
- rados_getxattrs_next 中的双重释放 (issue#22940, issue#22042, pr#20358, Gu Zhongyan)
- openssl & libcurl 修复 (issue#23239, issue#23245, issue#22951, issue#23221, issue#23203, pr#20722, Marcus Watts, Abhishek Lekshmanan, Jesse Williamson)
- 查询 pool 参数时返回无效的 JSON (issue#23312, issue#23200, pr#20890, Chang Liu)
- is_qemu_running in qemu_rebuild_object_map.sh and qemu_dynamic_features.sh may return false positive (issue#23524, pr#21192, Mykola Golub)
- [journal] acquiring the lock 后分配新标签应使用 on-disk committed position (issue#23011, issue#22945, pr#20454, Jason Dillaman)
- journal: appending journal 时出现 Message too long 错误 (issue#23545, issue#23526, pr#21216, Mykola Golub)
- legal: 删除 doc license 歧义 (issue#23410, issue#23336, pr#20988, Nathan Cutler)
- librados: 将 OPERATION_FULL_FORCE 作为 rados_remove() 的默认值 (issue#23114, issue#22413, pr#20585, Kefu Chai)
- librados/snap_set_diff: don’t assert on empty snapset (issue#23423, pr#20991, Mykola Golub)
- librbd: 如果对象图检查遇到错误,可能会崩溃 (issue#22857, issue#22819, pr#20253, Jason Dillaman)
- log: 修复 AddressSanitizer: new-delete-type-mismatch (issue#23324, issue#23412, pr#20998, Brad Hubbard)
- mds: 为 MDS 状态添加 uptime (issue#23150, pr#20626, Patrick Donnelly)
- mds: FAILED assert (p != active_requests.end()) in MDRequestRef MDCache::request_get(metareqid_t) (issue#23154, issue#23059, pr#21176, “Yan, Zheng”)
- mds: 修复 session reference leak (issue#22821, issue#22969, pr#20432, “Yan, Zheng”)
- mds: 优化 getattr 文件大小 (issue#23013, issue#22925, pr#20455, “Yan, Zheng”)
- mgr: 回溯最近的 prometheus exporter 更改 (pr#20642, Jan Fajerski, Boris Ranto)
- mgr: 回溯最近的 prometheus rgw 更改 (pr#21492, Jan Fajerski, John Spray, Boris Ranto, Rubab-Syed)
- mgr/balancer: pool-specific 优化支持和错误修复 (pr#20359, xie xingguo)
- mgr: 在 bind() 失败时退出 (issue#23175, pr#20712, John Spray)
- mgr: 修复 MSG_MGR_MAP 处理 (issue#23409, pr#20973, Gu Zhongyan)
- mgr: prometheus: 修复 PG 状态名称 (pr#21365, John Spray)
- mgr: prometheus: 设置 metadata metrics 值为 '1' (#22717) (pr#20254, Konstantin Shalygin)
- mgr: 减少缺少 OSD 统计信息时的日志记录 (issue#23224, pr#21053, John Spray)
- mgr/zabbix: 回溯到 Luminous (pr#20781, Wido den Hollander)
- mon: 允许删除 ec overwritable pool 的 tier (issue#22971, issue#22754, pr#20433, Patrick Donnelly)
- mon: ops get stuck in “resend forwarded message to leader” (issue#22114, issue#23077, pr#21016, Kefu Chai, Greg Farnum)
- mon, osd: 修复 PG remapping 后潜在的 *Up Set* 冲突 (issue#23118, pr#20829, xie xingguo)
- mon/OSDMonitor.cc: 修复 expected_num_objects interpret error (issue#22530, issue#23315, pr#20907, Yang Honggang)
- mon: 在 PaxosService::may... 中更新 PaxosService::cached_first_committed (issue#23626, issue#11332, pr#21328, Xuehan Xu, yupeng chen)
- msg/async: EventCenter::file_events 的大小应大于 fd (issue#23253, issue#23306, pr#20867, Yupeng Chen)
- Objecter: 如果收到 redirect reply,添加 ignore overlay 标志 (pr#20766, Ting Yi Lin)
- os/bluestore: 避免 blob_t 中 std::function 的开销 (pr#20674, Radoslaw Zarzynski)
- os/bluestore: 避免 _do_read() 中不必要的 BlobRefing (pr#20675, Radoslaw Zarzynski)
- os/bluestore: 回溯 _reap_collection 附近的修复 (pr#20964, Jianpeng Ma)
- os/bluestore: 将 aio_t::res 的类型更改为 long (issue#23527, issue#23544, pr#21231, kungf)
- os/bluestore: _dump_onode() 不再延长 Onode (pr#20676, Radoslaw Zarzynski)
- os/bluestore: 解码 bluefs_fnode_t 时 recalc_allocated() (issue#23256, issue#23212, pr#20771, Jianpeng Ma, Igor Fedotov, Kefu Chai)
- os/bluestore: 每 50ms (而不是 200ms) 修剪缓存 (issue#23226, pr#21059, Sage Weil)
- osd: 添加 numpg_removing metric (pr#20785, Sage Weil)
- osdc/Journaler: 确保 flush() 写入足够的数据 (issue#22967, issue#22824, pr#20431, “Yan, Zheng”)
- osd: 在重新排队时不 release_reserved_pushes (pr#21229, Sage Weil)
- osd: 修复检查 missing version 时的 assert (issue#21218, issue#23024, pr#20495, David Zafman)
- osd: objecter sends out of sync with pg epochs for proxied ops (issue#22123, issue#23075, pr#20609, Sage Weil)
- osd/OSDMap: 跳过 out/crush-out osds (pr#20840, xie xingguo)
- osd/osd_types: 修复 hammer 的 pg_pool_t 编码 (pr#21283, Sage Weil)
- osd: 从 mclock op queues 中移除 cost;dmcl... 中 cost 处理不佳 (pr#21426, J. Eric Ivancich)
- osd: 移除被称为 DNE 的部分创建的 pg (issue#23160, issue#21833, pr#20668, David Zafman)
- osd: 如果 osd_pgtemp 没有被 acked,则重新发送 (issue#23610, issue#23630, pr#21330, Kefu Chai)
- osd: 对 log trimming 成功和错误写入的处理相同 (issue#23323, issue#22050, pr#20851, Josh Durgin)
- os/filestore: 修复 do_copy_range replay bug (issue#23351, issue#23298, pr#20957, Sage Weil)
- 在整个对象丢弃后仍然可以看到父块 (issue#23304, issue#23285, pr#20860, Ilya Dryomov, Jason Dillaman)
- PendingReleaseNotes: 添加关于升级 MDS 的注释 (issue#23414, pr#21001, Patrick Donnelly)
- : qa: 调整 kclient 的 cephfs full test (issue#22966, issue#22886, pr#20417, “Yan, Zheng”)
- qa: 忽略 mds-full test 中的 io pause warnings (issue#23062, issue#22990, pr#20525, Patrick Donnelly)
- qa: 在 thrashing mons 时忽略 MON_DOWN (issue#23061, pr#20523, Patrick Donnelly)
- qa/rgw: 为 beast testing 移除一些 civetweb overrides (issue#23002, issue#23176, pr#20736, Casey Bodley)
- qa: src/test/libcephfs/test.cc:376: Expected: (len) > (0), actual: -34 vs 0 (issue#22383, issue#22221, pr#21173, Patrick Donnelly)
- qa: 使 kcephfs suites 与 fs/multimds 同步 (issue#22891, issue#22627, pr#20302, Patrick Donnelly)
- qa/tests - 添加 tag: v12.2.2 以供 client.1 使用 (pr#21452, Yuri Weinstein)
- qa/tests - 将机器类型从 ‘vps’ 更改为 ‘ovh’,因为 ‘vps’ 不… (pr#21031, Yuri Weinstein)
- qa/workunits/rados/test-upgrade-to-mimic.sh: fix tee output (pr#21506, Sage Weil)
- qa/workunits/rbd: 切换 devstack tempest 到 17.2.0 tag (issue#23177, issue#22961, pr#20715, Jason Dillaman)
- radosgw-admin data sync run crashes (issue#23180, pr#20762, lvshanchun)
- rbd-mirror: 修复格式化状态消息时潜在的无限循环 (issue#22964, issue#22932, pr#20416, Mykola Golub)
- rbd-nbd: 修复 do map 时 ebusy (issue#23542, issue#23528, pr#21230, Li Wang)
- rgw: 添加 radosgw-admin sync error trim 以修剪 sync error log (issue#23302, pr#20859, fang yuxiang)
- rgw: 在 RGWCopyObj_ObjStore_S3 response msg 中添加 xml output header (issue#22416, issue#22635, pr#19883, Enming Zhang)
- rgw: Admin API 支持 bucket quota change (issue#23357, issue#21811, pr#20885, Jeegn Chen)
- rgw: 允许 beast frontend 监听特定的 IP 地址 (issue#22858, issue#22778, pr#20252, Yuan Zhou)
- rgw: 启用压缩时无法下载带 range 的对象 (issue#23146, issue#23179, issue#22852, pr#20741, fang yuxiang)
- rgw: versioned objects 的数据同步,注意更新 bi marker (issue#23025, pr#21214, Yehuda Sadeh)
- RGW doesn’t check time skew in auth v4 http header request (issue#23252, issue#22766, issue#22439, issue#22418, pr#20072, Bingyin Zhang, Casey Bodley)
- rgw_file: 避免对 readdir offset 评估 nullptr (issue#22889, pr#20345, Matt Benjamin)
- rgw: 修复 rgw_run_sync_thread false 导致的崩溃 (issue#23318, issue#20448, pr#20932, Orit Wasserman)
- rgw: 修复从客户端读取数据时的内存碎片问题 (issue#23347, pr#20953, Marcus Watts)
- rgw: 修复 mutlisite read-write issues (issue#23690, issue#22804, pr#21390, Niu Pengju)
- rgw: 修复 max-uploads 参数不工作 (issue#23020, issue#22825, pr#20476, Xin Liao)
- rgw_log, rgw_file: 考虑新的必需 envvars (issue#23192, issue#21942, pr#20672, Matt Benjamin)
- rgw: 在 civetweb frontend 的 access log 中记录正确的 http status code (issue#22812, issue#22538, pr#20157, Yao Zongyou)
- rgw: 正确解析带有 namespace 的旧 rgw_obj (issue#23102, issue#22982, pr#20586, Yehuda Sadeh)
- rgw 添加 recalculate stats 选项 (issue#23691, issue#23720, issue#23335, issue#23322, pr#21393, Abhishek Lekshmanan)
- rgw: 在支持之前拒绝加密对象 COPY (issue#23232, issue#23346, pr#20937, Jeegn Chen)
- rgw: rgw: reshard cancel 命令应该清除 bucket resharding flag (issue#21619, pr#21389, Orit Wasserman)
- rgw: s3website error handler 使用原始对象名称 (issue#23201, issue#23310, pr#20889, Casey Bodley)
- rgw: 上传配额时更新 max-buckets (issue#23022, pr#20477, zhaokun)
- rgw: usage log fixes (issue#23686, issue#23758, pr#21388, Yehuda Sadeh, Greg Farnum, Robin H. Johnson)
- rocksdb: 整合 RocksDB 中 no fast CRC32 path 的修复 (issue#22534, pr#20825, Radoslaw Zarzynski)
- 副本上未清除的 scrub errors 可能会在副本接管主节点时导致不一致的 pg 状态 (issue#23267, pr#21103, David Zafman)
- snapmapper inconsistency, crash on luminous (issue#23500, pr#21118, Sage Weil)
- hinfo_key 错误的特殊 scrub 处理 (issue#23654, issue#23428, issue#23364, pr#21397, David Zafman)
- src: s/–use-wheel// (pr#21177, Kefu Chai)
- systemd: Wait 10 seconds before restarting ceph-mgr (issue#23083, issue#23101, pr#20604, Wido den Hollander)
- test_admin_socket.sh may fail on wait_for_clean (issue#23507, pr#21124, Mykola Golub)
- test/ceph-disk: specify the python used for creating venv (issue#23281, pr#20817, Kefu Chai)
- TestLibRBD.RenameViaLockOwner may still fail with -ENOENT (issue#23152, issue#23068, pr#20628, Mykola Golub)
- test/librbd: 为 cache tier testing 利用 unique pool (issue#23064, issue#11502, pr#20550, Jason Dillaman)
- test/pybind/test_rbd: 允许 v1 images for testing (pr#21471, Sage Weil)
- test: Replace bc command with printf command (pr#21015, David Zafman)
- tests: drop upgrade/jewel-x/point-to-point-x in luminous and master (issue#23159, issue#22888, pr#20641, Nathan Cutler)
- tests: ENGINE Error in ‘start’ listener <bound in rados (issue#23606, pr#21307, John Spray)
- tests: rgw: swift tests target ceph-luminous branch (pr#21048, Nathan Cutler)
- tests: unittest_pglog timeout (issue#23522, issue#23504, pr#21134, Nathan Cutler)
- Update mgr/restful documentation (issue#23230, pr#20725, Boris Ranto)